0 follower

Final Class Yiisoft\Db\Mssql\Column\ColumnFactory

InheritanceYiisoft\Db\Mssql\Column\ColumnFactory » Yiisoft\Db\Schema\Column\AbstractColumnFactory

Constants

Hide inherited constants

Constant Value Description Defined By
TYPE_MAP [ 'bit' => \Yiisoft\Db\Constant\ColumnType::BOOLEAN, 'tinyint' => \Yiisoft\Db\Constant\ColumnType::TINYINT, 'smallint' => \Yiisoft\Db\Constant\ColumnType::SMALLINT, 'int' => \Yiisoft\Db\Constant\ColumnType::INTEGER, 'bigint' => \Yiisoft\Db\Constant\ColumnType::BIGINT, 'numeric' => \Yiisoft\Db\Constant\ColumnType::DECIMAL, 'decimal' => \Yiisoft\Db\Constant\ColumnType::DECIMAL, 'smallmoney' => \Yiisoft\Db\Constant\ColumnType::MONEY, 'money' => \Yiisoft\Db\Constant\ColumnType::MONEY, 'float' => \Yiisoft\Db\Constant\ColumnType::FLOAT, 'real' => \Yiisoft\Db\Constant\ColumnType::FLOAT, 'double' => \Yiisoft\Db\Constant\ColumnType::DOUBLE, 'smalldatetime' => \Yiisoft\Db\Constant\ColumnType::DATETIME, 'datetime' => \Yiisoft\Db\Constant\ColumnType::DATETIME, 'datetime2' => \Yiisoft\Db\Constant\ColumnType::DATETIME, 'datetimeoffset' => \Yiisoft\Db\Constant\ColumnType::DATETIMETZ, 'time' => \Yiisoft\Db\Constant\ColumnType::TIME, 'date' => \Yiisoft\Db\Constant\ColumnType::DATE, 'char' => \Yiisoft\Db\Constant\ColumnType::CHAR, 'varchar' => \Yiisoft\Db\Constant\ColumnType::STRING, 'text' => \Yiisoft\Db\Constant\ColumnType::TEXT, 'nchar' => \Yiisoft\Db\Constant\ColumnType::CHAR, 'nvarchar' => \Yiisoft\Db\Constant\ColumnType::STRING, 'ntext' => \Yiisoft\Db\Constant\ColumnType::TEXT, 'binary' => \Yiisoft\Db\Constant\ColumnType::BINARY, 'varbinary' => \Yiisoft\Db\Constant\ColumnType::BINARY, 'image' => \Yiisoft\Db\Constant\ColumnType::BINARY, 'timestamp' => \Yiisoft\Db\Constant\ColumnType::BINARY, 'hierarchyid' => \Yiisoft\Db\Constant\ColumnType::STRING, 'uniqueidentifier' => \Yiisoft\Db\Constant\ColumnType::UUID, 'sql_variant' => \Yiisoft\Db\Constant\ColumnType::STRING, 'xml' => \Yiisoft\Db\Constant\ColumnType::STRING, 'table' => \Yiisoft\Db\Constant\ColumnType::STRING, ] Mapping from physical column types (keys) to abstract column types (values). Yiisoft\Db\Mssql\Column\ColumnFactory

Method Details

Hide inherited methods

fromPseudoType() public method

public \Yiisoft\Db\Schema\Column\ColumnInterface fromPseudoType ( string $pseudoType, array $info = [] )
$pseudoType string
$info array

                public function fromPseudoType(string $pseudoType, array $info = []): ColumnInterface
{
    if ($pseudoType === PseudoType::UUID_PK_SEQ && !isset($info['defaultValue'])) {
        $info['defaultValue'] = new Expression('newsequentialid()');
    }
    return parent::fromPseudoType($pseudoType, $info)->unsigned(false);
}

            
getColumnClass() protected method

protected string getColumnClass ( string $type, array $info = [] )
$type string
$info array

                protected function getColumnClass(string $type, array $info = []): string
{
    return match ($type) {
        ColumnType::BINARY => BinaryColumn::class,
        ColumnType::TIMESTAMP => DateTimeColumn::class,
        ColumnType::DATETIME => DateTimeColumn::class,
        ColumnType::DATETIMETZ => DateTimeColumn::class,
        ColumnType::TIME => DateTimeColumn::class,
        ColumnType::TIMETZ => DateTimeColumn::class,
        ColumnType::DATE => DateTimeColumn::class,
        default => parent::getColumnClass($type, $info),
    };
}

            
getType() protected method

protected string getType ( string $dbType, array $info = [] )
$dbType string
$info array

                protected function getType(string $dbType, array $info = []): string
{
    if (isset($info['check'], $info['name']) && str_starts_with($info['check'], "(isjson([{$info['name']}])")) {
        return ColumnType::JSON;
    }
    return parent::getType($dbType, $info);
}

            
normalizeNotNullDefaultValue() protected method

protected mixed normalizeNotNullDefaultValue ( string $defaultValue, \Yiisoft\Db\Schema\Column\ColumnInterface $column )
$defaultValue string
$column \Yiisoft\Db\Schema\Column\ColumnInterface

                protected function normalizeNotNullDefaultValue(string $defaultValue, ColumnInterface $column): mixed
{
    if ($defaultValue[0] === '(' && $defaultValue[-1] === ')') {
        $defaultValue = substr($defaultValue, 1, -1);
    }
    if (str_starts_with($defaultValue, '0x')) {
        return hex2bin(substr($defaultValue, 2));
    }
    if (preg_match('~^\((\d+)\.\)$~', $defaultValue, $matches) === 1) {
        return $column->phpTypecast($matches[1]);
    }
    return parent::normalizeNotNullDefaultValue($defaultValue, $column);
}