classViewDefinitionSet
final class ViewDefinitionSet
The views a database has, in an order they can be created in.
A view may select from another, so recreating them in the shadow means having the ones a view depends on before it.
Methods§
public function register(string $viewName, ViewDefinition $definition): voidRegister.
Parameters
$viewName | string | |
$definition | ViewDefinition |
Test cases 18
ReferencedTableLookupTest::testHasSchemaContextIncludesViewscallsReferencedTableLookupTest::testTableExistsRecognizesEachSchemaStatecallsTableContextBuilderTest::testBuildTableContextCombinesFixturesDefinitionsAndViewscallsTableContextTest::testBuildTableContextIncludesShadowTablesAndViewscallsTableContextTest::testTableExistsIncludesRegisteredMaterializedAndViewNamescallsMySqlRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsPgSqlRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsSqliteRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsMySqlViewShadowRendererTest::testRenderOrdersViewsAndUnqualifiesShadowedMySqlRelationscallsPgSqlViewShadowRendererTest::testRenderOrdersViewsAndUnqualifiesShadowedPostgreSqlRelationscallsSqliteViewShadowRendererTest::testRenderOrdersViewsAndUnqualifiesShadowedSqliteRelationscallsViewDefinitionSetTest::testHasAnswersForAViewTheSetKnowscallsViewDefinitionSetTest::testHasAnyViewsIsFalseUntilOneIsRegisteredcallsViewDefinitionSetTest::testKeepsCyclicDefinitionsDeterministiccallsViewDefinitionSetTest::testOrdersThreeDependencyLevelscallsViewDefinitionSetTest::testOrdersViewsAfterTheirDependenciescallsViewDefinitionSetTest::testRegisterMakesAViewOneOfTheSetcallsViewDefinitionSetTest::testRegisterUnderANameAlreadyThereTakesThePlaceOfItcalls
Called from 3
- method-call ZtdQuery\Platform\MySql\MySqlSessionFactory::create() packages/ztd-query-mysql/src/MySqlSessionFactory.php:58
- method-call ZtdQuery\Platform\Postgres\PgSqlSessionFactory::create() packages/ztd-query-postgres/src/PgSqlSessionFactory.php:65
- method-call ZtdQuery\Platform\Sqlite\SqliteSessionFactory::create() packages/ztd-query-sqlite/src/SqliteSessionFactory.php:58
public function has(string $viewName): boolReports whether.
Parameters
$viewName | string |
Returns
boolTest cases 1
Called from 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::tableExists() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:128
- method-call ZtdQuery\Platform\Postgres\Rewrite\Context\TableContext::tableExists() packages/ztd-query-postgres/src/Rewrite/Context/TableContext.php:82
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Context\ReferencedTableLookup::tableExists() packages/ztd-query-sqlite/src/Rewrite/Context/ReferencedTableLookup.php:74
public function hasAnyViews(): boolReports whether any views.
Returns
boolTest cases 1
Called from 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::hasSchemaContext() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:148
- method-call ZtdQuery\Platform\Postgres\Rewrite\Context\TableContext::hasSchemaContext() packages/ztd-query-postgres/src/Rewrite/Context/TableContext.php:102
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Context\ReferencedTableLookup::hasSchemaContext() packages/ztd-query-sqlite/src/Rewrite/Context/ReferencedTableLookup.php:94
public function orderedDefinitions(): array<string, ViewDefinition>Returns
array<string, ViewDefinition>Test cases 6
ViewDefinitionSetTest::testKeepsCyclicDefinitionsDeterministiccallsViewDefinitionSetTest::testOrderedDefinitionsIsEmptyForASetWithNoViewscallsViewDefinitionSetTest::testOrdersThreeDependencyLevelscallsViewDefinitionSetTest::testOrdersViewsAfterTheirDependenciescallsViewDefinitionSetTest::testRegisterMakesAViewOneOfTheSetcallsViewDefinitionSetTest::testRegisterUnderANameAlreadyThereTakesThePlaceOfItcalls
Called from 3
- method-call ZtdQuery\Platform\MySql\Rewrite\View\MySqlViewShadowRenderer::render() packages/ztd-query-mysql/src/Rewrite/View/MySqlViewShadowRenderer.php:21
- method-call ZtdQuery\Platform\Postgres\Rewrite\View\PgSqlViewShadowRenderer::render() packages/ztd-query-postgres/src/Rewrite/View/PgSqlViewShadowRenderer.php:21
- method-call ZtdQuery\Platform\Sqlite\Rewrite\View\SqliteViewShadowRenderer::render() packages/ztd-query-sqlite/src/Rewrite/View/SqliteViewShadowRenderer.php:20
Calls 1
- function-call
array_filterline 60
Private surface 1§
Implementation details, listed for orientation only.
private array<string, ViewDefinition> $definitions = []Test cases 43§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 8
ViewDefinitionSetTest::testHasAnswersForAViewTheSetKnowscallsViewDefinitionSetTest::testHasAnyViewsIsFalseUntilOneIsRegisteredcallsViewDefinitionSetTest::testKeepsCyclicDefinitionsDeterministiccallsViewDefinitionSetTest::testOrderedDefinitionsIsEmptyForASetWithNoViewscallsViewDefinitionSetTest::testOrdersThreeDependencyLevelscallsViewDefinitionSetTest::testOrdersViewsAfterTheirDependenciescallsViewDefinitionSetTest::testRegisterMakesAViewOneOfTheSetcallsViewDefinitionSetTest::testRegisterUnderANameAlreadyThereTakesThePlaceOfItcalls
Other tests reaching this symbol 35
ReferencedTableLookupTest::testAssertKnownTablesPermitsQueriesBeforeFixtureRegistrationcallsReferencedTableLookupTest::testAssertKnownTablesRejectsUnknownSourcesWhenContextExistscallsReferencedTableLookupTest::testFindUnknownTableIgnoresUserCtesAndFindsUnknownJoinSourcescallsReferencedTableLookupTest::testHasSchemaContextIncludesViewscallsReferencedTableLookupTest::testTableExistsRecognizesEachSchemaStatecallsTableContextBuilderTest::testBuildTableContextCombinesFixturesDefinitionsAndViewscallsTableContextTest::testApplyPartitionsUsesSharedParentRowscallsTableContextTest::testBuildTableContextcallsTableContextTest::testBuildTableContextIncludesShadowTablesAndViewscallsTableContextTest::testDataContextInfersTheUnionOfUnknownRowColumnscallsTableContextTest::testFillDefinitionsRetainsExistingRowsAndAddsUnmaterializedTablescallsTableContextTest::testFindUnknownTablecallsTableContextTest::testHasSchemaContextcallsTableContextTest::testHasSchemaContextTracksMutableRegistryStatecallsTableContextTest::testRequireKnownTablescallsTableContextTest::testTableExistscallsTableContextTest::testTableExistsIncludesRegisteredMaterializedAndViewNamescallsMySqlRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsPgSqlRewriterTest::testCommitRewriteStateRetainsAllocatedSequenceValuescallsPgSqlRewriterTest::testEmptyResultSelectProducesNoRowscallsPgSqlRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsPgSqlRewriterTest::testSplitStatementsPreservesQuotedSemicolonscallsPgSqlRewriterTest::testTransactionStatementParsesShadowTransactionOperationscallsSqliteRewriterTest::testRegisteredViewIsKnownAndMaterializedcallsStatementRewriterTest::testMutationStatementcallsStatementRewriterTest::testRewriteMutationStagesDdlUntilItIsAppliedcallsStatementRewriterTest::testRewriteStatementcallsStatementRewriterTest::testRewriteStatementRejectsUnknownReadSourcescallsStatementRewriterTest::testRewriteStatementShadowsRegisteredTablescallsStatementRewriterTest::testRewriteStatementSimulatesWritesWithoutApplyingThemcallsStatementRewriterTest::testRewriteStatementUsesShadowRowsForReadscallsStatementRewriterTest::testValidateReadTablesRejectsUndeclaredRelationscallsMySqlViewShadowRendererTest::testRenderOrdersViewsAndUnqualifiesShadowedMySqlRelationscallsPgSqlViewShadowRendererTest::testRenderOrdersViewsAndUnqualifiesShadowedPostgreSqlRelationscallsSqliteViewShadowRendererTest::testRenderOrdersViewsAndUnqualifiesShadowedSqliteRelationscalls
Relations§
Instantiated in 6
- new ZtdQuery\Platform\MySql\MySqlSessionFactory::create() packages/ztd-query-mysql/src/MySqlSessionFactory.php:56
- new ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter::__construct() packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:71
- new ZtdQuery\Platform\Postgres\PgSqlSessionFactory::create() packages/ztd-query-postgres/src/PgSqlSessionFactory.php:63
- new ZtdQuery\Platform\Postgres\Rewrite\PgSqlRewriter::__construct() packages/ztd-query-postgres/src/Rewrite/PgSqlRewriter.php:94
- new ZtdQuery\Platform\Sqlite\Rewrite\SqliteRewriter::__construct() packages/ztd-query-sqlite/src/Rewrite/SqliteRewriter.php:96
- new ZtdQuery\Platform\Sqlite\SqliteSessionFactory::create() packages/ztd-query-sqlite/src/SqliteSessionFactory.php:56
Method calls 12
- method-call ZtdQuery\Platform\MySql\MySqlSessionFactory::create() packages/ztd-query-mysql/src/MySqlSessionFactory.php:58
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::tableExists() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:128
- method-call ZtdQuery\Platform\MySql\Rewrite\Context\TableContext::hasSchemaContext() packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:148
- method-call ZtdQuery\Platform\MySql\Rewrite\View\MySqlViewShadowRenderer::render() packages/ztd-query-mysql/src/Rewrite/View/MySqlViewShadowRenderer.php:21
- method-call ZtdQuery\Platform\Postgres\PgSqlSessionFactory::create() packages/ztd-query-postgres/src/PgSqlSessionFactory.php:65
- method-call ZtdQuery\Platform\Postgres\Rewrite\Context\TableContext::tableExists() packages/ztd-query-postgres/src/Rewrite/Context/TableContext.php:82
- method-call ZtdQuery\Platform\Postgres\Rewrite\Context\TableContext::hasSchemaContext() packages/ztd-query-postgres/src/Rewrite/Context/TableContext.php:102
- method-call ZtdQuery\Platform\Postgres\Rewrite\View\PgSqlViewShadowRenderer::render() packages/ztd-query-postgres/src/Rewrite/View/PgSqlViewShadowRenderer.php:21
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Context\ReferencedTableLookup::tableExists() packages/ztd-query-sqlite/src/Rewrite/Context/ReferencedTableLookup.php:74
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Context\ReferencedTableLookup::hasSchemaContext() packages/ztd-query-sqlite/src/Rewrite/Context/ReferencedTableLookup.php:94
- method-call ZtdQuery\Platform\Sqlite\Rewrite\View\SqliteViewShadowRenderer::render() packages/ztd-query-sqlite/src/Rewrite/View/SqliteViewShadowRenderer.php:20
- method-call ZtdQuery\Platform\Sqlite\SqliteSessionFactory::create() packages/ztd-query-sqlite/src/SqliteSessionFactory.php:58
Type declarations 18
- type ZtdQuery\Platform\MySql\Rewrite\Context\TableContext packages/ztd-query-mysql/src/Rewrite/Context/TableContext.php:33
- type ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:50
- type ZtdQuery\Platform\MySql\Rewrite\MySqlRewriter packages/ztd-query-mysql/src/Rewrite/MySqlRewriter.php:62
- type ZtdQuery\Platform\MySql\Rewrite\StatementRewriter packages/ztd-query-mysql/src/Rewrite/StatementRewriter.php:35
- type ZtdQuery\Platform\MySql\Rewrite\View\MySqlViewShadowRenderer packages/ztd-query-mysql/src/Rewrite/View/MySqlViewShadowRenderer.php:19
- type ZtdQuery\Platform\Postgres\Rewrite\Context\TableContext packages/ztd-query-postgres/src/Rewrite/Context/TableContext.php:24
- type ZtdQuery\Platform\Postgres\Rewrite\Context\TableContext packages/ztd-query-postgres/src/Rewrite/Context/TableContext.php:29
- type ZtdQuery\Platform\Postgres\Rewrite\PgSqlRewriter packages/ztd-query-postgres/src/Rewrite/PgSqlRewriter.php:71
- type ZtdQuery\Platform\Postgres\Rewrite\PgSqlRewriter packages/ztd-query-postgres/src/Rewrite/PgSqlRewriter.php:83
- type ZtdQuery\Platform\Postgres\Rewrite\StatementRewriter packages/ztd-query-postgres/src/Rewrite/StatementRewriter.php:40
- type ZtdQuery\Platform\Postgres\Rewrite\StatementRewriter packages/ztd-query-postgres/src/Rewrite/StatementRewriter.php:45
- type ZtdQuery\Platform\Postgres\Rewrite\View\PgSqlViewShadowRenderer packages/ztd-query-postgres/src/Rewrite/View/PgSqlViewShadowRenderer.php:19
- type ZtdQuery\Platform\Sqlite\Rewrite\Context\ReferencedTableLookup packages/ztd-query-sqlite/src/Rewrite/Context/ReferencedTableLookup.php:28
- type ZtdQuery\Platform\Sqlite\Rewrite\Context\TableContextBuilder packages/ztd-query-sqlite/src/Rewrite/Context/TableContextBuilder.php:28
- type ZtdQuery\Platform\Sqlite\Rewrite\SqliteRewriter packages/ztd-query-sqlite/src/Rewrite/SqliteRewriter.php:64
- type ZtdQuery\Platform\Sqlite\Rewrite\SqliteRewriter packages/ztd-query-sqlite/src/Rewrite/SqliteRewriter.php:86
- type ZtdQuery\Platform\Sqlite\Rewrite\StatementRewriter packages/ztd-query-sqlite/src/Rewrite/StatementRewriter.php:46
- type ZtdQuery\Platform\Sqlite\Rewrite\View\SqliteViewShadowRenderer packages/ztd-query-sqlite/src/Rewrite/View/SqliteViewShadowRenderer.php:18