public function Schema::getFieldTypeMap in Drupal driver for SQL Server and SQL Azure 3.0.x
Same name and namespace in other branches
- 8.2 drivers/lib/Drupal/Driver/Database/sqlsrv/Schema.php \Drupal\Driver\Database\sqlsrv\Schema::getFieldTypeMap()
- 8 drivers/lib/Drupal/Driver/Database/sqlsrv/Schema.php \Drupal\Driver\Database\sqlsrv\Schema::getFieldTypeMap()
Returns a mapping of Drupal schema field names to DB-native field types.
Because different field types do not map 1:1 between databases, Drupal has its own normalized field type names. This function returns a driver-specific mapping table from Drupal names to the native names for each database.
Return value
array An array of Schema API field types to driver-specific field types.
Overrides Schema::getFieldTypeMap
1 call to Schema::getFieldTypeMap()
- Schema::processField in drivers/
lib/ Drupal/ Driver/ Database/ sqlsrv/ Schema.php - Set database-engine specific properties for a field.
File
- drivers/
lib/ Drupal/ Driver/ Database/ sqlsrv/ Schema.php, line 114
Class
Namespace
Drupal\Driver\Database\sqlsrvCode
public function getFieldTypeMap() {
// Put :normal last so it gets preserved by array_flip. This makes
// it much easier for modules (such as schema.module) to map
// database types back into schema types.
$utf8_string_types = [
'varchar:normal' => 'varchar',
'char:normal' => 'char',
'text:tiny' => 'varchar(255)',
'text:small' => 'varchar(255)',
'text:medium' => 'varchar(max)',
'text:big' => 'varchar(max)',
'text:normal' => 'varchar(max)',
];
$ucs2_string_types = [
'varchar:normal' => 'nvarchar',
'char:normal' => 'nchar',
'text:tiny' => 'nvarchar(255)',
'text:small' => 'nvarchar(255)',
'text:medium' => 'nvarchar(max)',
'text:big' => 'nvarchar(max)',
'text:normal' => 'nvarchar(max)',
];
$standard_types = [
'varchar_ascii:normal' => 'varchar(255)',
'serial:tiny' => 'smallint',
'serial:small' => 'smallint',
'serial:medium' => 'int',
'serial:big' => 'bigint',
'serial:normal' => 'int',
'int:tiny' => 'smallint',
'int:small' => 'smallint',
'int:medium' => 'int',
'int:big' => 'bigint',
'int:normal' => 'int',
'float:tiny' => 'real',
'float:small' => 'real',
'float:medium' => 'real',
'float:big' => 'float(53)',
'float:normal' => 'real',
'numeric:normal' => 'numeric',
'blob:big' => 'varbinary(max)',
'blob:normal' => 'varbinary(max)',
'date:normal' => 'date',
'datetime:normal' => 'datetime2(0)',
'time:normal' => 'time(0)',
];
$standard_types += $this
->isUtf8() ? $utf8_string_types : $ucs2_string_types;
return $standard_types;
}