Final Class Yiisoft\Db\Sqlite\Column\ColumnFactory
| Inheritance | Yiisoft\ |
|---|
Public Methods
| Method | Description | Defined By |
|---|---|---|
| fromPseudoType() | Yiisoft\ |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| getType() | Yiisoft\ |
|
| normalizeNotNullDefaultValue() | Yiisoft\ |
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' => \ |
Mapping from physical column types (keys) to abstract column types (values). | Yiisoft\ |
Method Details
| public \ | ||
| $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, \ | ||
| $defaultValue | string | |
| $column | \ |
|
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);
}
User Contributed Notes
Leave a comment
Join the conversation to share a note.