Class SchemaDialect
Base class for schema implementations.
This class contains methods that are common across the various SQL dialects.
Property Summary
-
$_driver protected
Cake\Database\DriverInterface
The driver instance being used.
Method Summary
-
__construct() public
Constructor
-
_applyTypeSpecificColumnConversion() protected
Tries to use a matching database type to convert a SQL column definition to an abstract type definition.
-
_convertConstraintColumns() protected
Convert foreign key constraints references to a valid stringified list
-
_convertOnClause() protected
Convert string on clauses to the abstract ones.
-
_foreignOnClause() protected
Generate an ON clause for a foreign key.
-
_getTypeSpecificColumnSql() protected
Tries to use a matching database type to generate the SQL fragment for a single column in a table.
-
addConstraintSql() abstract public
Generate the SQL queries needed to add foreign key constraints to the table
-
columnSql() abstract public
Generate the SQL fragment for a single column in a table.
-
constraintSql() abstract public
Generate the SQL fragments for defining table constraints.
-
convertColumnDescription() abstract public
Convert field description results into abstract schema fields.
-
convertForeignKeyDescription() abstract public
Convert a foreign key description into constraints on the Table object.
-
convertIndexDescription() abstract public
Convert an index description results into abstract schema indexes or constraints.
-
convertOptionsDescription() public
Convert options data into table options.
-
createTableSql() abstract public
Generate the SQL to create a table.
-
describeColumnSql() abstract public
Generate the SQL to describe a table.
-
describeForeignKeySql() abstract public
Generate the SQL to describe the foreign keys in a table.
-
describeIndexSql() abstract public
Generate the SQL to describe the indexes in a table.
-
describeOptionsSql() public
Generate the SQL to describe table options
-
dropConstraintSql() abstract public
Generate the SQL queries needed to drop foreign key constraints from the table
-
dropTableSql() public
Generate the SQL to drop a table.
-
indexSql() abstract public
Generate the SQL fragment for a single index in a table.
-
listTablesSql() abstract public
Generate the SQL to list the tables.
-
listTablesWithoutViewsSql() public @method
Generate the SQL to list the tables, excluding all views.
-
truncateTableSql() abstract public
Generate the SQL to truncate a table.
Method Detail
__construct() ¶ public
__construct(Cake\Database\DriverInterface $driver)
Constructor
This constructor will connect the driver so that methods like columnSql() and others will fail when the driver has not been connected.
Parameters
-
Cake\Database\DriverInterface
$driver The driver to use.
_applyTypeSpecificColumnConversion() ¶ protected
_applyTypeSpecificColumnConversion(string $columnType, array $definition): array|null
Tries to use a matching database type to convert a SQL column definition to an abstract type definition.
Parameters
-
string
$columnType The column type.
-
array
$definition The column definition.
Returns
array|null
_convertConstraintColumns() ¶ protected
_convertConstraintColumns(array<string>|string $references): string
Convert foreign key constraints references to a valid stringified list
Parameters
-
array<string>|string
$references The referenced columns of a foreign key constraint statement
Returns
string
_convertOnClause() ¶ protected
_convertOnClause(string $clause): string
Convert string on clauses to the abstract ones.
Parameters
-
string
$clause The on clause to convert.
Returns
string
_foreignOnClause() ¶ protected
_foreignOnClause(string $on): string
Generate an ON clause for a foreign key.
Parameters
-
string
$on The on clause
Returns
string
_getTypeSpecificColumnSql() ¶ protected
_getTypeSpecificColumnSql(string $columnType, Cake\Database\Schema\TableSchemaInterface $schema, string $column): string|null
Tries to use a matching database type to generate the SQL fragment for a single column in a table.
Parameters
-
string
$columnType The column type.
-
Cake\Database\Schema\TableSchemaInterface
$schema The table schema instance the column is in.
-
string
$column The name of the column.
Returns
string|null
addConstraintSql() ¶ abstract public
addConstraintSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL queries needed to add foreign key constraints to the table
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table instance the foreign key constraints are.
Returns
array
columnSql() ¶ abstract public
columnSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragment for a single column in a table.
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table instance the column is in.
-
string
$name The name of the column.
Returns
string
constraintSql() ¶ abstract public
constraintSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragments for defining table constraints.
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table instance the column is in.
-
string
$name The name of the column.
Returns
string
convertColumnDescription() ¶ abstract public
convertColumnDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert field description results into abstract schema fields.
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table object to append fields to.
-
array
$row The row data from
describeColumnSql
.
Returns
void
convertForeignKeyDescription() ¶ abstract public
convertForeignKeyDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert a foreign key description into constraints on the Table object.
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table object to append a constraint to.
-
array
$row The row data from
describeForeignKeySql
.
Returns
void
convertIndexDescription() ¶ abstract public
convertIndexDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert an index description results into abstract schema indexes or constraints.
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table object to append an index or constraint to.
-
array
$row The row data from
describeIndexSql
.
Returns
void
convertOptionsDescription() ¶ public
convertOptionsDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert options data into table options.
Parameters
-
Cake\Database\Schema\TableSchema
$schema Table instance.
-
array
$row The row of data.
Returns
void
createTableSql() ¶ abstract public
createTableSql(Cake\Database\Schema\TableSchema $schema, array<string> $columns, array<string> $constraints, array<string> $indexes): array<string>
Generate the SQL to create a table.
Parameters
-
Cake\Database\Schema\TableSchema
$schema Table instance.
-
array<string>
$columns The columns to go inside the table.
-
array<string>
$constraints The constraints for the table.
-
array<string>
$indexes The indexes for the table.
Returns
array<string>
describeColumnSql() ¶ abstract public
describeColumnSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe a table.
Parameters
-
string
$tableName The table name to get information on.
-
array<string, mixed>
$config The connection configuration.
Returns
array
describeForeignKeySql() ¶ abstract public
describeForeignKeySql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe the foreign keys in a table.
Parameters
-
string
$tableName The table name to get information on.
-
array<string, mixed>
$config The connection configuration.
Returns
array
describeIndexSql() ¶ abstract public
describeIndexSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe the indexes in a table.
Parameters
-
string
$tableName The table name to get information on.
-
array<string, mixed>
$config The connection configuration.
Returns
array
describeOptionsSql() ¶ public
describeOptionsSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe table options
Parameters
-
string
$tableName Table name.
-
array<string, mixed>
$config The connection configuration.
Returns
array
dropConstraintSql() ¶ abstract public
dropConstraintSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL queries needed to drop foreign key constraints from the table
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table instance the foreign key constraints are.
Returns
array
dropTableSql() ¶ public
dropTableSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL to drop a table.
Parameters
-
Cake\Database\Schema\TableSchema
$schema Schema instance
Returns
array
indexSql() ¶ abstract public
indexSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragment for a single index in a table.
Parameters
-
Cake\Database\Schema\TableSchema
$schema The table object the column is in.
-
string
$name The name of the column.
Returns
string
listTablesSql() ¶ abstract public
listTablesSql(array<string, mixed> $config): array
Generate the SQL to list the tables.
Parameters
-
array<string, mixed>
$config The connection configuration to use for getting tables from.
Returns
array
listTablesWithoutViewsSql() ¶ public @method
listTablesWithoutViewsSql(array $config): array<mixed>
Generate the SQL to list the tables, excluding all views.
Parameters
-
array
$config
Returns
array<mixed>
truncateTableSql() ¶ abstract public
truncateTableSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL to truncate a table.
Parameters
-
Cake\Database\Schema\TableSchema
$schema Table instance.
Returns
array