Properties

$_constraintsIdMap

$_constraintsIdMap : array

Array containing the foreign keys constraints names Necessary for composite foreign keys to be handled

Type

array

$_hasSequences

$_hasSequences : boolean

Whether there is any table in this connection to SQLite containing sequences.

Type

boolean

Methods

__construct()

__construct(\Cake\Database\Driver  $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\Driver $driver

The driver to use.

dropTableSql()

dropTableSql(\Cake\Database\Schema\TableSchema  $schema) : array

Generate the SQL to drop a table.

Parameters

\Cake\Database\Schema\TableSchema $schema

Schema instance

Returns

array —

SQL statements to drop a table.

listTablesSql()

listTablesSql(array  $config) : array

Generate the SQL to list the tables.

Parameters

array $config

The connection configuration to use for getting tables from.

Returns

array —

An array of (sql, params) to execute.

describeColumnSql()

describeColumnSql(string  $tableName, array  $config) : array

Generate the SQL to describe a table.

Parameters

string $tableName

The table name to get information on.

array $config

The connection configuration.

Returns

array —

An array of (sql, params) to execute.

describeIndexSql()

describeIndexSql(string  $tableName, array  $config) : array

Generate the SQL to describe the indexes in a table.

Parameters

string $tableName

The table name to get information on.

array $config

The connection configuration.

Returns

array —

An array of (sql, params) to execute.

describeForeignKeySql()

describeForeignKeySql(string  $tableName, array  $config) : array

Generate the SQL to describe the foreign keys in a table.

Parameters

string $tableName

The table name to get information on.

array $config

The connection configuration.

Returns

array —

An array of (sql, params) to execute.

describeOptionsSql()

describeOptionsSql(string  $tableName, array  $config) : array

Generate the SQL to describe table options

Parameters

string $tableName

Table name.

array $config

The connection configuration.

Returns

array —

SQL statements to get options for a table.

convertColumnDescription()

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.

convertIndexDescription()

convertIndexDescription(\Cake\Database\Schema\TableSchema  $schema, array  $row) : void

Convert an index description results into abstract schema indexes or constraints.

Since SQLite does not have a way to get metadata about all indexes at once, additional queries are done here. Sqlite constraint names are not stable, and the names for constraints will not match those used to create the table. This is a limitation in Sqlite's metadata features.

Parameters

\Cake\Database\Schema\TableSchema $schema

The table object to append an index or constraint to.

array $row

The row data from describeIndexSql.

convertForeignKeyDescription()

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.

convertOptionsDescription()

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.

createTableSql()

createTableSql(\Cake\Database\Schema\TableSchema  $schema, array  $columns, array  $constraints, array  $indexes) : array

Generate the SQL to create a table.

Parameters

\Cake\Database\Schema\TableSchema $schema

Table instance.

array $columns

The columns to go inside the table.

array $constraints

The constraints for the table.

array $indexes

The indexes for the table.

Returns

array —

SQL statements to create a table.

columnSql()

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.

Throws

\Cake\Database\Exception

when the column type is unknown

Returns

string —

SQL fragment.

addConstraintSql()

addConstraintSql(\Cake\Database\Schema\TableSchema  $schema) : array

Generate the SQL queries needed to add foreign key constraints to the table

SQLite can not properly handle adding a constraint to an existing table. This method is no-op

Parameters

\Cake\Database\Schema\TableSchema $schema

The table instance the foreign key constraints are.

Returns

array —

SQL fragment.

dropConstraintSql()

dropConstraintSql(\Cake\Database\Schema\TableSchema  $schema) : array

Generate the SQL queries needed to drop foreign key constraints from the table

SQLite can not properly handle dropping a constraint to an existing table. This method is no-op

Parameters

\Cake\Database\Schema\TableSchema $schema

The table instance the foreign key constraints are.

Returns

array —

SQL fragment.

constraintSql()

constraintSql(\Cake\Database\Schema\TableSchema  $schema, string  $name) : string

Generate the SQL fragments for defining table constraints.

Note integer primary keys will return ''. This is intentional as Sqlite requires that integer primary keys be defined in the column definition.

Parameters

\Cake\Database\Schema\TableSchema $schema

The table instance the column is in.

string $name

The name of the column.

Returns

string —

SQL fragment.

indexSql()

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 —

SQL fragment.

truncateTableSql()

truncateTableSql(\Cake\Database\Schema\TableSchema  $schema) : array

Generate the SQL to truncate a table.

Parameters

\Cake\Database\Schema\TableSchema $schema

Table instance.

Returns

array —

SQL statements to truncate a table.

hasSequences()

hasSequences() : boolean

Returns whether there is any table in this connection to SQLite containing sequences

Returns

boolean

_foreignOnClause()

_foreignOnClause(string|null  $on) : string

Generate an ON clause for a foreign key.

Parameters

string|null $on

The on clause

Returns

string

_convertOnClause()

_convertOnClause(string  $clause) : string|null

Convert string on clauses to the abstract ones.

Parameters

string $clause

The on clause to convert.

Returns

string|null

_convertConstraintColumns()

_convertConstraintColumns(string|array  $references) : string

Convert foreign key constraints references to a valid stringified list

Parameters

string|array $references

The referenced columns of a foreign key constraint statement

Returns

string

_convertColumn()

_convertColumn(string  $column) : array

Convert a column definition to the abstract types.

The returned type will be a type that Cake\Database\Type can handle.

Parameters

string $column

The column type + length

Throws

\Cake\Database\Exception

when unable to parse column type

Returns

array —

Array of column information.

_defaultValue()

_defaultValue(string|null  $default) : string|null

Manipulate the default value.

Sqlite includes quotes and bared NULLs in default values. We need to remove those.

Parameters

string|null $default

The default value.

Returns

string|null