classCreateTableAsSelectMutation
final class CreateTableAsSelectMutation
implements ResultSetMutation
Applies CREATE TABLE ... AS SELECT ... operation to the virtual schema. This mutation creates a new table with structure and data from SELECT.
Methods§
public function __construct(
string $tableName,
list<string> $columnNames,
TableDefinitionRegistry $registry,
ColumnDeclaration $fallbackColumnType,
bool $ifNotExists = false,
)Parameters
$tableName | string | The name of the new table to create. |
$columnNames | list<string> | Column names extracted from SELECT. |
$registry | TableDefinitionRegistry | The registry. |
$fallbackColumnType | ColumnDeclaration | The dialect-provided type used when result metadata is unavailable. |
$ifNotExists | bool | Whether to skip if table exists. |
public function apply(ShadowStore $store, array $rows): void{@inheritDoc}
Parameters
$store | ShadowStore | |
$rows | array |
Test cases 6
CreateTableAsSelectMutationTest::testApplyInfersColumnsFromResultRowsForSelectStarcallsCreateTableAsSelectMutationTest::testApplyKeepsParsedProjectionNamesWhenMetadataIsUnavailablecallsCreateTableAsSelectMutationTest::testApplyRegistersTableWithColumnsFromSelectcallsCreateTableAsSelectMutationTest::testApplyStoresRowsFromSelectResultcallsCreateTableAsSelectMutationTest::testApplyThrowsExceptionWhenTableExistscallsCreateTableAsSelectMutationTest::testApplyWithIfNotExistsSkipsWhenTableExistscalls
Calls 2
- method-call CreateTableAsSelectMutation::applyResultSet() line 57
- new ResultSet line 57
public function applyResultSet(ShadowStore $store, ResultSet $result): voidParameters
$store | ShadowStore | |
$result | ResultSet |
Throws
RuntimeException When the result set does not describe a table that could be createdTest cases 5
ResultSetMutationTest::testApplyResultSetGivesTheNewTableTheColumnsTheResultDescribedcallsResultSetMutationTest::testApplyResultSetGivesTheNewTableTheRowsTheResultCarriedcallsCreateTableAsSelectMutationTest::testApplyResultSetCreatesEmptyTableFromMetadatacallsCreateTableAsSelectMutationTest::testApplyResultSetKeepsExplicitColumnNamesWithMetadataTypescallsCreateTableAsSelectMutationTest::testApplyResultSetUsesMetadataTypesInsteadOfTextFallbackcalls
Called from 1
Calls 7
- method-call TableDefinitionRegistry::has() line 65
- new
RuntimeExceptionline 69 - function-call
array_mapline 75 - function-call
array_keysline 78 - new TableDefinition line 93
- method-call TableDefinitionRegistry::register() line 102
- method-call ShadowStore::set() line 103
public function tableName(): string{@inheritDoc}
Returns
stringTest cases 1
Private surface 5§
Implementation details, listed for orientation only.
private string $tableNameprivate list<string> $columnNamesprivate TableDefinitionRegistry $registryprivate ColumnDeclaration $fallbackColumnTypeprivate bool $ifNotExistsTest cases 64§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 10
CreateTableAsSelectMutationTest::testApplyInfersColumnsFromResultRowsForSelectStarcallsCreateTableAsSelectMutationTest::testApplyKeepsParsedProjectionNamesWhenMetadataIsUnavailablecallsCreateTableAsSelectMutationTest::testApplyRegistersTableWithColumnsFromSelectcallsCreateTableAsSelectMutationTest::testApplyResultSetCreatesEmptyTableFromMetadatacallsCreateTableAsSelectMutationTest::testApplyResultSetKeepsExplicitColumnNamesWithMetadataTypescallsCreateTableAsSelectMutationTest::testApplyResultSetUsesMetadataTypesInsteadOfTextFallbackcallsCreateTableAsSelectMutationTest::testApplyStoresRowsFromSelectResultcallsCreateTableAsSelectMutationTest::testApplyThrowsExceptionWhenTableExistscallsCreateTableAsSelectMutationTest::testApplyWithIfNotExistsSkipsWhenTableExistscallsCreateTableAsSelectMutationTest::testTableNameReturnsNewTableNamecalls
Other tests reaching this symbol 54
MySqlRewriterTest::testCreateTableAsSelectCreatesTableWithDatacallsMySqlRewriterTest::testRewriteCreateTableAsSelectCreatesMutationcallsResultSetMutationTest::testApplyResultSetGivesTheNewTableTheColumnsTheResultDescribedcallsResultSetMutationTest::testApplyResultSetGivesTheNewTableTheRowsTheResultCarriedcallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsAliasedAndExprColumnscallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsColumnNamescallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsColumnsFromAliasedExprscallsMySqlMutationResolverTest::testResolveCreateTableAsSelectExtractsPlainColumnNamescallsMySqlMutationResolverTest::testResolveCreateTableAsSelectHandlesExpressionWithoutAliascallsMySqlMutationResolverTest::testResolveCreateTableAsSelectReturnsCreateTableAsSelectMutationcallsMySqlMutationResolverTest::testResolveCreateTableAsSelectWithColumnNamescallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectCommaInSubquerycallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectExpressionColumncallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectExtractsColumnNamescallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectExtractsColumnscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectIfNotExistscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectLowercaseSelectAndFromcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectLowercaseSelectExtractsCorrectColumnscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectNewlineBeforeFromExtractsColumnscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectNoFromcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectNoFromClausecallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectNoFromLowercasecallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectQuotedColumnAliascallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectReturnsCreateTableAsSelectMutationcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectStarReturnsEmptyColumnscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectTableDotColumncallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithAliasescallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithAliasExtractsAliasNamecallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithColumnAliascallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithColumnsMultilinecallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithCommaInSelectcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithDoubleQuotedAliascallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithDoubleQuotedStringContainCommacallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithExpressioncallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithExpressionscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithLowercaseAliasAscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithLowercaseAliasAsV2callsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithLowercaseSelectAndAscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithLowercaseSelectExtractsColumnscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithLowercaseSqlcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithNewlineBeforeFromcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithNewlineInSelectListcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithNoFromcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithNoFromLowercaseSelectcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithPaddedStarcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithQuotedAliascallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithQuotedColumncallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithQuotedStringContainCommacallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithQuotedStringContainingCommacallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithStarcallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithSubquerycallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithTableQualifiedColumncallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithTableQualifiedColumnscallsPgSqlMutationResolverTest::testResolveCreateTableAsSelectWithWildcardcalls
Relations§
Instantiated in 2
- new ZtdQuery\Platform\MySql\Shadow\Mutation\Table\TableMutationResolver::resolveCreateTable() packages/ztd-query-mysql/src/Shadow/Mutation/Table/TableMutationResolver.php:65
- new ZtdQuery\Platform\Postgres\Shadow\Mutation\Table\TableMutationResolver::resolveCreateTable() packages/ztd-query-postgres/src/Shadow/Mutation/Table/TableMutationResolver.php:80