Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MariaDbGrammar.php
Строк: 122
<?php

namespace IlluminateDatabaseSchemaGrammars;

use 
IlluminateDatabaseSchemaBlueprint;
use 
IlluminateSupportFluent;

class 
MariaDbGrammar extends MySqlGrammar
{
    
/** @inheritDoc */
    
public function compileRenameColumn(Blueprint $blueprintFluent $command)
    {
        if (
version_compare($this->connection->getServerVersion(), '10.5.2''<')) {
            return 
$this->compileLegacyRenameColumn($blueprint$command);
        }

        return 
parent::compileRenameColumn($blueprint$command);
    }

    
/**
     * Create the column definition for a uuid type.
     *
     * @param  IlluminateSupportFluent  $column
     * @return string
     */
    
protected function typeUuid(Fluent $column)
    {
        if (
version_compare($this->connection->getServerVersion(), '10.7.0''<')) {
            return 
'char(36)';
        }

        return 
'uuid';
    }

    
/**
     * Create the column definition for a spatial Geometry type.
     *
     * @param  IlluminateSupportFluent  $column
     * @return string
     */
    
protected function typeGeometry(Fluent $column)
    {
        
$subtype $column->subtype strtolower($column->subtype) : null;

        if (! 
in_array($subtype, ['point''linestring''polygon''geometrycollection''multipoint''multilinestring''multipolygon'])) {
            
$subtype null;
        }

        return 
sprintf('%s%s',
            
$subtype ?? 'geometry',
            
$column->srid ' ref_system_id='.$column->srid ''
        
);
    }

    
/**
     * Compile a vector index key command.
     *
     * @param  IlluminateDatabaseSchemaBlueprint  $blueprint
     * @param  IlluminateSupportFluent  $command
     * @return string
     */
    
public function compileVectorIndex(Blueprint $blueprintFluent $command)
    {
        return 
sprintf(
            
'alter table %s add %s %s(%s) %s%s',
            
$this->wrapTable($blueprint),
            
'vector index',
            
$this->wrap($command->index),
            
$this->columnize($command->columns),
            
$command->operatorClass ?? '',
            
$command->lock ', lock='.$command->lock ''
        
);
    }

    
/**
     * Wrap the given JSON selector.
     *
     * @param  string  $value
     * @return string
     */
    
protected function wrapJsonSelector($value)
    {
        [
$field$path] = $this->wrapJsonFieldAndPath($value);

        return 
'json_value('.$field.$path.')';
    }
}
Онлайн: 1
Реклама