0 follower

Final Class Yiisoft\Db\Sqlite\Column\ColumnFactory

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

Constants

Hide inherited constants

Constant Value Description Defined By
TYPE_MAP [ 'bool' => \Yiisoft\Db\Constant\ColumnType::BOOLEAN, 'boolean' => \Yiisoft\Db\Constant\ColumnType::BOOLEAN, 'bit' => \Yiisoft\Db\Constant\ColumnType::BIT, 'tinyint' => \Yiisoft\Db\Constant\ColumnType::TINYINT, 'smallint' => \Yiisoft\Db\Constant\ColumnType::SMALLINT, 'mediumint' => \Yiisoft\Db\Constant\ColumnType::INTEGER, 'int' => \Yiisoft\Db\Constant\ColumnType::INTEGER, 'integer' => \Yiisoft\Db\Constant\ColumnType::INTEGER, 'bigint' => \Yiisoft\Db\Constant\ColumnType::BIGINT, 'float' => \Yiisoft\Db\Constant\ColumnType::FLOAT, 'real' => \Yiisoft\Db\Constant\ColumnType::FLOAT, 'double' => \Yiisoft\Db\Constant\ColumnType::DOUBLE, 'decimal' => \Yiisoft\Db\Constant\ColumnType::DECIMAL, 'numeric' => \Yiisoft\Db\Constant\ColumnType::DECIMAL, 'char' => \Yiisoft\Db\Constant\ColumnType::CHAR, 'varchar' => \Yiisoft\Db\Constant\ColumnType::STRING, 'tinytext' => \Yiisoft\Db\Constant\ColumnType::TEXT, 'mediumtext' => \Yiisoft\Db\Constant\ColumnType::TEXT, 'longtext' => \Yiisoft\Db\Constant\ColumnType::TEXT, 'text' => \Yiisoft\Db\Constant\ColumnType::TEXT, 'blob' => \Yiisoft\Db\Constant\ColumnType::BINARY, 'year' => \Yiisoft\Db\Constant\ColumnType::SMALLINT, 'date' => \Yiisoft\Db\Constant\ColumnType::DATE, 'time' => \Yiisoft\Db\Constant\ColumnType::TIME, 'timetz' => \Yiisoft\Db\Constant\ColumnType::TIMETZ, 'datetime' => \Yiisoft\Db\Constant\ColumnType::DATETIME, 'datetimetz' => \Yiisoft\Db\Constant\ColumnType::DATETIMETZ, 'timestamp' => \Yiisoft\Db\Constant\ColumnType::TIMESTAMP, 'json' => \Yiisoft\Db\Constant\ColumnType::JSON, ] Mapping from physical column types (keys) to abstract column types (values). Yiisoft\Db\Sqlite\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
{
    // SQLite doesn't support unsigned types
    return parent::fromPseudoType($pseudoType, $info)->unsigned(false);
}

            
getType() protected method

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

                protected function getType(string $dbType, array $info = []): string
{
    return match ($dbType) {
        'bit', 'tinyint' => isset($info['size']) && $info['size'] === 1
            ? ColumnType::BOOLEAN
            : parent::getType($dbType, $info),
        'text' => match ($info['defaultValueRaw'] ?? null) {
            'CURRENT_TIMESTAMP' => ColumnType::DATETIMETZ,
            'CURRENT_DATE' => ColumnType::DATE,
            'CURRENT_TIME' => ColumnType::TIMETZ,
            default => parent::getType($dbType, $info),
        },
        default => 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] === '"') {
        $value = substr($defaultValue, 1, -1);
        $value = str_replace('""', '"', $value);
        return $column->phpTypecast($value);
    }
    return parent::normalizeNotNullDefaultValue($defaultValue, $column);
}