classTableDefinitionBuilder
final class TableDefinitionBuilder
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Accumulates column and key declarations in their original CREATE TABLE order.
Methods§
public function addDefinition(string $definition): voidAdds one column or table constraint, ignoring unsupported table constraints.
Parameters
$definition | string |
Test cases 4
TableDefinitionBuilderTest::testAddConstraintPreservesCompositeAndUniqueKeyscallsTableDefinitionBuilderTest::testAddDefinitionCollectsTypedColumnsAndPrimaryKeyscallsTableDefinitionBuilderTest::testBuildDisablesIdentityForWithoutRowidcallsTableDefinitionBuilderTest::testBuildRejectsMissingColumnsAndUnknownUniqueColumnscalls
Called from 1
Calls 7
- function-call
trimline 61 - new ColumnDefinitionParser line 65
- method-call ColumnDefinitionParser::leadingKeyword() line 66
- function-call
in_arrayline 67 - method-call TableDefinitionBuilder::addConstraint() line 68
- method-call ColumnDefinitionParser::parseColumnDefinition() line 71
- method-call TableDefinitionBuilder::addColumn() line 73
public function addConstraint(string $definition): voidRecords table-level PRIMARY KEY and UNIQUE declarations.
Parameters
$definition | string |
Test cases 2
Called from 1
Calls 3
- function-call
preg_matchline 83 - method-call ColumnDefinitionParser::parseColumnNameList() line 84
- new ColumnDefinitionParser line 84
public function addColumn(array{name: string, type: string|null, notNull: bool, primaryKey: bool, unique: bool, default: string|null, generatedExpression: string|null} $colInfo): voidParameters
$colInfo | array{name: string, type: string|null, notNull: bool, primaryKey: bool, unique: bool, default: string|null, generatedExpression: string|null} |
Called from 1
Calls 1
- function-call
in_arrayline 113
public function build(string $sql): ?TableDefinitionValidates referenced columns and produces a complete portable table definition.
Parameters
$sql | string |
Returns
Test cases 5
TableDefinitionBuilderTest::testAddColumnPreservesDefaultsAndGeneratedExpressionscallsTableDefinitionBuilderTest::testAddConstraintPreservesCompositeAndUniqueKeyscallsTableDefinitionBuilderTest::testAddDefinitionCollectsTypedColumnsAndPrimaryKeyscallsTableDefinitionBuilderTest::testBuildDisablesIdentityForWithoutRowidcallsTableDefinitionBuilderTest::testBuildRejectsMissingColumnsAndUnknownUniqueColumnscalls
Called from 1
Calls 11
- function-call
in_arrayline 142 - method-call SqliteColumnTypeMapper::map() line 153
- new SqliteColumnTypeMapper line 153
- function-call
array_valuesline 156 - static-call TableBodyParser::hasWithoutRowid() line 158
- function-call
countline 158 - class-const IdentityGenerationStrategy::MaxValue() line 161
- new TableDefinition line 165
- function-call
array_uniqueline 169 - method-call SqliteForeignKeyDefinitionParser::parseCreateTable() line 175
- new SqliteForeignKeyDefinitionParser line 175
Private surface 8§
Implementation details, listed for orientation only.
private list<string> $columns = []private array<string, string> $columnTypes = []private array<string, string> $primaryKeyMap = []private list<string> $notNullColumns = []private array<string, list<string>> $uniqueConstraints = []private array<string, string> $columnDefaults = []private array<string, string> $generatedExpressions = []private int $uniqueIndex = 0Test cases 12§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 5
TableDefinitionBuilderTest::testAddColumnPreservesDefaultsAndGeneratedExpressionscallsTableDefinitionBuilderTest::testAddConstraintPreservesCompositeAndUniqueKeyscallsTableDefinitionBuilderTest::testAddDefinitionCollectsTypedColumnsAndPrimaryKeyscallsTableDefinitionBuilderTest::testBuildDisablesIdentityForWithoutRowidcallsTableDefinitionBuilderTest::testBuildRejectsMissingColumnsAndUnknownUniqueColumnscalls
Other tests reaching this symbol 7
SqliteRewriterTestcallsStatementRewriterTestcallsSqliteSchemaParserTestcallsAddColumnResolverTestcallsTableMutationResolverTestcallsSqliteMutationResolverTestcallsSqliteSessionFactoryTestcalls