Final Class Yiisoft\Db\Sqlite\Column\ColumnFactory
| Inheritance | Yiisoft\Db\Sqlite\Column\ColumnFactory » Yiisoft\Db\Schema\Column\AbstractColumnFactory |
|---|
Public Methods
| Method | Description | Defined By |
|---|---|---|
| fromPseudoType() | Yiisoft\Db\Sqlite\Column\ColumnFactory |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| getType() | Yiisoft\Db\Sqlite\Column\ColumnFactory | |
| normalizeNotNullDefaultValue() | Yiisoft\Db\Sqlite\Column\ColumnFactory |
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
| 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);
}
| 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),
};
}
| 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);
}
Signup or Login in order to comment.