classShadowStore
class ShadowStore
Public API: explicitly declared with
@visibility public.Holds in-memory shadow rows for tables.
Type Aliases§
Row = import from TableDefinition$store = new \ZtdQuery\Shadow\ShadowStore();
$store->set('users', [['id' => 1, 'name' => 'Alice']]);
$snapshot = $store->snapshot();
$store->update('users', [['id' => 1, 'name' => 'Bob']], ['id']);
$store->get('users') // => [['id' => 1, 'name' => 'Bob']]
$store->restore($snapshot);
$store->get('users') // => [['id' => 1, 'name' => 'Alice']]Methods§
public function __construct(private RowMatch $match = new \ZtdQuery\Shadow\Row\RowMatch())Parameters
$match | RowMatch | Decides when a stored row is the row a caller means |
Test cases 19
ShadowStoreTest::testClearRemovesAllDatacoversShadowStoreTest::testDeleteFallsBackToRowMatchWithoutPrimaryKeyscoversShadowStoreTest::testDeleteNoOpWhenTableMissingcoversShadowStoreTest::testDeleteUsesPrimaryKeysWhenProvidedcoversShadowStoreTest::testEnsureCreatesEmptyTablecoversShadowStoreTest::testGetAllReturnsCurrentTablescoversShadowStoreTest::testGetReturnsEmptyArrayForMissingTablecoversShadowStoreTest::testHasDistinguishesMissingFromIntentionallyEmptyTablecoversShadowStoreTest::testInsertAppendsRowscoversShadowStoreTest::testRemoveClearsRowsAndInitializationcoversShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecoversShadowStoreTest::testSetPreservesTheCallersSparseRowKeyscoversShadowStoreTest::testSnapshotIsARecordOfTheRowsRatherThanAViewOfThemcoversShadowStoreTest::testSnapshotPreservesOpaqueValuesAndSparseKeysThroughUpdatescoversShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcoversShadowStoreTest::testUpdateIdentifiedWritesTheRowTheOldKeyPointsAtcoversShadowStoreTest::testUpdateNoOpWhenNoMatchcoversShadowStoreTest::testUpdateReplacesMatchingRowcoversShadowStoreTest::testUpdateWithoutPrimaryKeysThrowscovers
public function set(string $tableName, array<int, Row> $rows): voidReplaces every shadow row of a table.
The caller's row keys and values are retained unchanged.
Parameters
$tableName | string | |
$rows | array<int, Row> | Rows the table now has, in order |
Test cases 178
ShadowStoreBench::setUpcallsMutationContractTest::testDeleteDecreasesRowCountcallsMutationContractTest::testDeleteOnEmptyTablecallsMutationContractTest::testIdempotentTruncatecallsMutationContractTest::testInsertIncreasesRowCountcallsMutationContractTest::testInsertIntoEmptyTablecallsMutationContractTest::testInsertWithEmptyStringValuescallsMutationContractTest::testInsertWithNullValuescallsMutationContractTest::testMutationTableIsolationcallsMutationContractTest::testTruncateEmptiesTablecallsMutationContractTest::testUpdateOnEmptyTablecallsMutationContractTest::testUpdatePreservesRowCountcallsRewriterContractTest::testDeleteReturnsWriteSimulatedWithMutationcallsRewriterContractTest::testRewriteIsDeterministiccallsRewriterContractTest::testUpdateReturnsWriteSimulatedWithMutationcallsCascadingShop::shadowcallsClassAliasesTest::testLegacyNamesConstructWorkingSchemaAndMutationObjectscallsClassAliasesTest::testLegacyTransactionNameRollsBackRowscallsSessionTest::testApplyShadowWritesTheMutationAndAnswersWhatItCameTocallsSessionTest::testApplyTransactionStatementDoesWhatTheStatementSayscallsSessionTest::testCommitTransactionKeepsWhatTheTransactionDidcallsSessionTest::testDisableStopsZtdWithoutTouchingTheShadowcallsSessionTest::testForeignKeyFailureRestoresShadowStatecallsSessionTest::testMutationFailureIsConvertedToDatabaseExceptioncallsSessionTest::testRollBackTransactionPutsTheShadowBackToWhereItBegancallsSessionTest::testRunResultSelectAndApplyShadowReadsBackWhatTheStatementWouldHaveWrittencallsSessionTest::testTransactionsAnswersWhatATransactionStatementIsAppliedTocallsForeignKeyCascadeTest::testCarryDeleteDropsEveryChildThatWasHoldingTheKeyWhereTheActionCascadescallsForeignKeyCascadeTest::testCarryDeleteReachesNothingWhereTheParentTableStillHoldsTheKeycallsForeignKeyCascadeTest::testCarryDeleteSetsTheKeyToNullWhereTheActionSaysToRatherThanDroppingTheRowcallsForeignKeyCascadeTest::testCarryUpdateReachesNothingWhereTheParentTableStillHoldsTheOldKeycallsForeignKeyCascadeTest::testCarryUpdateWritesTheNewKeyIntoEveryChildThatWasHoldingTheOldOnecallsForeignKeyCascadeTest::testOfCarriesTheNewKeyToTheChildrenOfAnUpdatedParentcallsForeignKeyCascadeTest::testOfDeletesTheChildrenOfADeletedParentWhereTheActionSaysToCascadecallsForeignKeyCascadeTest::testOfFollowsNothingThroughAKeyWhoseEndsDisagreecallsForeignKeyCascadeTest::testOfLeavesTheChildrenAloneWhileAnotherParentRowHoldsTheKeyUpcallsForeignKeyIntegrityTest::testAssertHoldsChecksNothingThroughAKeyWhoseEndsDisagreecallsForeignKeyIntegrityTest::testAssertHoldsLeavesAKeyWithANullInItAlonecallsForeignKeyIntegrityTest::testAssertHoldsLeavesARowThatDoesNotCarryTheKeyColumnsAlonecallsForeignKeyIntegrityTest::testAssertHoldsPassesAShadowInWhichEveryChildFindsItsParentcallsForeignKeyIntegrityTest::testAssertHoldsRefusesAShadowInWhichAChildReferencesNothingcallsMutationImpactTest::testAppliedUpsertReturnsResultRowsAndIsInsertLikecallsMutationImpactTest::testSkippedConditionalUpsertHasNoAffectedOrReturningRowscallsDeleteMutationTest::testApplyRemovesMultipleRowscallsDeleteMutationTest::testApplyRemovesRowsByPrimaryKeycallsDeleteMutationTest::testApplyWithCompositePrimaryKeycallsDeleteMutationTest::testApplyWithEmptyRowsDoesNothingcallsDeleteMutationTest::testApplyWithNonExistentRowDoesNothingcallsInsertMutationTest::testApplyInsertsMultipleRowscallsInsertMutationTest::testApplyWithCompositePrimaryKeycallsInsertMutationTest::testInsertIgnoreSkipsDuplicatescallsInsertMutationTest::testInsertIgnoreSkipsUniqueKeyConflictcallsInsertMutationTest::testInsertIgnoreUsesPartialConflictPredicatecallsInsertMutationTest::testTableNameApplyAppendsRowscallsInsertMutationTest::testUniqueConstraintAllowsNullcallsInsertMutationTest::testValidatePrimaryKeyDuplicateThrowsExceptioncallsInsertMutationTest::testValidateUniqueThrowsExceptioncallsInsertMutationTest::testValidationDisabledByDefaultAllowsDuplicatescallsMultiDeleteMutationTest::testApplyDeletesFromMultipleTablescallsMultiDeleteMutationTest::testApplyDeletesMultipleRowsFromMultipleTablescallsMultiUpdateMutationTest::testApplySkipsRowsWithIncompleteValuesOrIdentitycallsMultiUpdateMutationTest::testApplyUpdatesMultipleRowscallsMultiUpdateMutationTest::testApplyUpdatesMultipleTablescallsReplaceMutationTest::testApplyInsertsNewRowWhenNoDuplicatecallsReplaceMutationTest::testApplyRemovesEveryRowConflictingWithAnyCandidateKeycallsReplaceMutationTest::testApplyReplacesExistingRowByPrimaryKeycallsReplaceMutationTest::testApplyReplacesMultipleRowscallsReplaceMutationTest::testApplyWithCompositePrimaryKeycallsReplaceMutationTest::testApplyWithMissingPrimaryKeyDoesNotMatchcallsReplaceMutationTest::testApplyWithoutCandidateKeysDoesNotReplaceEqualRowscallsUpdateMutationTest::testApplyLeavesATableTheOldKeyPointsAtNothingInAlonecallsUpdateMutationTest::testApplyWritesTheNewRowOverTheRowTheOldKeyPointsAtcallsUpdateMutationTest::testTableNameApplyReplacesRowsByPrimaryKeycallsUpdateMutationTest::testUpdateSameRowUniqueDoesNotThrowcallsUpdateMutationTest::testValidateNotNullThrowsExceptioncallsUpdateMutationTest::testValidateUniqueThrowsExceptioncallsUpdateMutationTest::testValidationDisabledByDefaultAllowsNullInNotNullColumncallsShadowMutationTest::testApplyWritesWhatTheStatementDidIntoTheShadowcallsDropTableMutationTest::testApplyClearsDataFromShadowStorecallsDropTableMutationTest::testApplyUnregistersTableFromSchemacallsDropTableMutationTest::testApplyWithIfExistsDropsExistingTablecallsMultiTruncateMutationTest::testApplyClearsEveryTargetTablecallsSynchronizeMutationTest::testTableNameApplyReplacesTheCompleteTableStatecallsTruncateMutationTest::testApplyClearsAllRowscallsTruncateMutationTest::testApplyIgnoresProvidedRowscallsTruncateMutationTest::testApplyOnEmptyTableDoesNothingcallsUpsertMutationTest::testApplyAccumulatesExistingAndIncomingValuescallsUpsertMutationTest::testApplyAccumulatesSequentialConflictsAgainstLatestRowcallsUpsertMutationTest::testApplyHandlesMixedInsertAndUpdatecallsUpsertMutationTest::testApplyInsertsNewRowWhenNoDuplicatecallsUpsertMutationTest::testApplyUpdatesAllNonPrimaryColumnsWhenNoUpdateColumnsSpecifiedcallsUpsertMutationTest::testApplyUpdatesExistingRowOnDuplicatecallsUpsertMutationTest::testApplyUpdatesExistingRowOnUniqueKeyConflictcallsUpsertMutationTest::testApplyUsesConflictPredicateAndReportsOnlyAppliedRowscallsUpsertMutationTest::testApplyUsesDatabaseEvaluatedValuesAndStripsMetadatacallsUpsertMutationTest::testApplyWithCompositePrimaryKeycallsUpsertMutationTest::testApplyWithExcludedColumnReferencecallsUpsertMutationTest::testApplyWithExcludedQuotedColumnReferencecallsUpsertMutationTest::testApplyWithLiteralUpdateValuecallsUpsertMutationTest::testApplyWithMissingPrimaryKeyInsertsNewRowcallsUpsertMutationTest::testApplyWithUpdateValuesExpressioncallsUpsertMutationTest::testConflictPredicateRestrictsIncomingAndExistingCandidateRowscallsUpsertMutationTest::testDatabaseEvaluatedBatchDetectsConflictsWithRowsInsertedEarlierInStatementcallsUpsertMutationTest::testDatabaseEvaluatedBatchReevaluatesAgainstLatestConflictRowcallsUpsertMutationTest::testDatabaseEvaluatedBatchRejectsStaleUnsupportedExpressioncallsUpsertMutationTest::testDatabaseEvaluatedPredicateFallsBackWhenMetadataIsMissingcallsUpsertMutationTest::testResultRowsAnswersEveryRowTheStatementWroteOrLeftAsItWascallsUpsertMutationTest::testSkippedConditionalRowDoesNotStopFollowingRowscallsParentKeyLookupTest::testDoesNotExistWhenNoRowCarriesTheValuescallsParentKeyLookupTest::testExistsOnlyWhenOneRowCarriesEveryColumnOfACompositeKeycallsParentKeyLookupTest::testExistsWhenSomeRowStillCarriesTheValuescallsReferentialIntegrityEnforcerTest::testAcceptsExplicitReferenceToNonPrimaryCandidateKeycallsReferentialIntegrityEnforcerTest::testCascadeNormalizesSparseChildRowIndexescallsReferentialIntegrityEnforcerTest::testCompositeDeleteSetNullNormalizesEveryForeignKeyColumncallsReferentialIntegrityEnforcerTest::testCompositePrimaryKeyUpdateCascadesOnlyMatchingChildrencallsReferentialIntegrityEnforcerTest::testDeleteCascadePropagatesAcrossMultipleLevelscallsReferentialIntegrityEnforcerTest::testDeleteCascadeRemovesAllMatchingChildrenAndKeepsOtherscallsReferentialIntegrityEnforcerTest::testDeleteRestrictRejectsParentRemovalcallsReferentialIntegrityEnforcerTest::testDeleteSetNullCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testDeleteSetNullUpdatesChildcallsReferentialIntegrityEnforcerTest::testEmptySelfReferentialCascadeTerminatesWithoutSyntheticEventscallsReferentialIntegrityEnforcerTest::testExplicitReferencedColumnsAreNotReplacedByPrimaryKeycallsReferentialIntegrityEnforcerTest::testFallbackContinuesAfterIdentityMatchedRowcallsReferentialIntegrityEnforcerTest::testFallbackReferencedPrimaryKeyAppearsInUpdateViolationcallsReferentialIntegrityEnforcerTest::testFallbackTransitionPropagatesUpdateAndDeleteFromOneTablecallsReferentialIntegrityEnforcerTest::testIdentityTransitionSkipsIncompleteChangeAndProcessesFollowingChangecallsReferentialIntegrityEnforcerTest::testMatchingConstraintAfterUnrelatedConstraintStillCascadescallsReferentialIntegrityEnforcerTest::testMissingReferencedValuesDoNotStopLaterUpdateOrDeleteCascadescallsReferentialIntegrityEnforcerTest::testMultiTruncateCascadesFromEveryChangedParentTablecallsReferentialIntegrityEnforcerTest::testPrimaryKeyUpdateCascadesThroughOriginalRowIdentitycallsReferentialIntegrityEnforcerTest::testRejectsInsertWhoseParentDoesNotExistcallsReferentialIntegrityEnforcerTest::testRetainedOldKeyDoesNotStopFollowingUpdateCascadecallsReferentialIntegrityEnforcerTest::testRowsWithMissingPrimaryKeyCannotMatchRowsThatHaveTheKeycallsReferentialIntegrityEnforcerTest::testSchemaMutationDoesNotTriggerRowValidationcallsReferentialIntegrityEnforcerTest::testSchemaMutationSkipsRowIntegrityCheckscallsReferentialIntegrityEnforcerTest::testSynchronizeCascadesDeletedRowscallsReferentialIntegrityEnforcerTest::testUpdateCascadeCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testUpdateDoesNotCascadeWhileOldParentKeyStillExistscallsReferentialIntegrityEnforcerTest::testValidationContinuesPastMissingAndNullForeignKeyscallsShadowApplicationTest::testApplyAnswersWhatTheStatementCameTocallsShadowApplicationTest::testApplyLeavesTheShadowAsItWasWhenTheStatementIsRefusedcallsShadowApplicationTest::testApplyWritesTheRowsAMutationDescribesIntoTheShadowcallsShadowApplicationTest::testLastInsertIdOfAnswersTheIdentityTheTableSaysIsNumberedcallsShadowApplicationTest::testLastInsertIdOfFallsBackToASingleColumnKeycallsShadowApplicationTest::testLastInsertIdOfIsNothingForAStatementThatInsertedNothingcallsShadowApplicationTest::testLastInsertIdOfIsNothingWhereNoColumnIsNumberedcallsShadowSavepointTest::testOfRemembersTheRowsAsTheyWereRatherThanAsTheyBecomecallsShadowSavepointTest::testRestoreIntoLeavesTheTablesAloneWhereNothingIsDescribingThemcallsShadowStoreTest::testClearRemovesAllDatacovers and callsShadowStoreTest::testDeleteFallsBackToRowMatchWithoutPrimaryKeyscovers and callsShadowStoreTest::testDeleteUsesPrimaryKeysWhenProvidedcovers and callsShadowStoreTest::testGetAllReturnsCurrentTablescovers and callsShadowStoreTest::testRemoveClearsRowsAndInitializationcovers and callsShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecovers and callsShadowStoreTest::testSetPreservesTheCallersSparseRowKeyscovers and callsShadowStoreTest::testSnapshotIsARecordOfTheRowsRatherThanAViewOfThemcovers and callsShadowStoreTest::testSnapshotPreservesOpaqueValuesAndSparseKeysThroughUpdatescovers and callsShadowStoreTest::testUpdateIdentifiedWritesTheRowTheOldKeyPointsAtcovers and callsShadowStoreTest::testUpdateNoOpWhenNoMatchcovers and callsShadowStoreTest::testUpdateReplacesMatchingRowcovers and callsShadowStoreTest::testUpdateWithoutPrimaryKeysThrowscovers and callsShadowTransactionsTest::testBeginIsIgnoredWhereATransactionHasAlreadyBeguncallsShadowTransactionsTest::testCommitLeavesNothingToRollBackTocallsShadowTransactionsTest::testPositionOfIsNothingForANameNothingWasDeclaredUndercallsShadowTransactionsTest::testReleaseGivesUpTheSavepointAndEveryNestedOneWithoutUndoingAnythingcallsShadowTransactionsTest::testRollBackPutsBackTheRowsTheTablesAndWhatDescribesThemcallsShadowTransactionsTest::testRollBackToKeepsTheSavepointAndGivesUpEveryLaterOnecallsShadowTransactionsTest::testRollBackToLeavesItsTargetToBeRolledBackToAgaincallsShadowTransactionsTest::testSavepointDeclaredTwiceUnderOneNameTakesThePlaceOfTheFirstcallsTableTransitionsTest::testOfAnswersOneEntryPerTableSomethingHappenedTocallsTableTransitionsTest::testOfLeavesOutATableNothingHappenedTocallsTableTransitionsTest::testOfReadsTheResultRowsOnlyForTheTableAnUpdateNamescallsTransactionStatementParserTest::testParseReadsAStatementThatOpensATransactioncallsTransactionStatementTest::testBeginStartsATransactionARollbackCanGoBackTocallsTransactionStatementTest::testCommitKeepsEverythingTheTransactionDidcallsTransactionStatementTest::testReleaseCommitAppliesNamedTransactionLifecycleWithoutSqlcallsTransactionStatementTest::testRollbackAppliesRollbackcallsTransactionStatementTest::testRollbackToGoesBackToTheSavepointAndLeavesItDeclaredcalls
Called from 7
- method-call ZtdQuery\Shadow\ForeignKeyCascade::of() packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:84
- method-call ZtdQuery\Shadow\Mutation\Row\ReplaceMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/ReplaceMutation.php:50
- method-call ZtdQuery\Shadow\Mutation\Table\CreateTableAsSelectMutation::applyResultSet() packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableAsSelectMutation.php:103
- method-call ZtdQuery\Shadow\Mutation\Table\MultiTruncateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/MultiTruncateMutation.php:29
- method-call ZtdQuery\Shadow\Mutation\Table\SynchronizeMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/SynchronizeMutation.php:70
- method-call ZtdQuery\Shadow\Mutation\Table\TruncateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/TruncateMutation.php:37
- method-call ZtdQuery\Shadow\Mutation\UpsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/UpsertMutation.php:146
public function get(string $tableName): array<int, Row>Get all shadow rows for a table.
Parameters
$tableName | string |
Returns
array<int, Row>Test cases 139
MutationContractTest::testDeleteDecreasesRowCountcallsMutationContractTest::testDeleteOnEmptyTablecallsMutationContractTest::testIdempotentTruncatecallsMutationContractTest::testInsertIncreasesRowCountcallsMutationContractTest::testInsertIntoEmptyTablecallsMutationContractTest::testInsertWithEmptyStringValuescallsMutationContractTest::testInsertWithNullValuescallsMutationContractTest::testMutationTableIsolationcallsMutationContractTest::testTruncateEmptiesTablecallsMutationContractTest::testUpdateOnEmptyTablecallsMutationContractTest::testUpdatePreservesRowCountcallsClassAliasesTest::testLegacyNamesConstructWorkingSchemaAndMutationObjectscallsClassAliasesTest::testLegacyTransactionNameRollsBackRowscallsSessionTest::testApplyShadowWritesTheMutationAndAnswersWhatItCameTocallsSessionTest::testApplyTransactionStatementDoesWhatTheStatementSayscallsSessionTest::testCommitTransactionKeepsWhatTheTransactionDidcallsSessionTest::testDisableStopsZtdWithoutTouchingTheShadowcallsSessionTest::testForeignKeyFailureRestoresShadowStatecallsSessionTest::testRollBackTransactionPutsTheShadowBackToWhereItBegancallsSessionTest::testTransactionsAnswersWhatATransactionStatementIsAppliedTocallsForeignKeyCascadeTest::testOfCarriesTheNewKeyToTheChildrenOfAnUpdatedParentcallsForeignKeyCascadeTest::testOfDeletesTheChildrenOfADeletedParentWhereTheActionSaysToCascadecallsForeignKeyCascadeTest::testOfLeavesTheChildrenAloneWhileAnotherParentRowHoldsTheKeyUpcallsMutationImpactTest::testAppliedUpsertReturnsResultRowsAndIsInsertLikecallsMutationImpactTest::testSkippedConditionalUpsertHasNoAffectedOrReturningRowscallsDeleteMutationTest::testApplyRemovesMultipleRowscallsDeleteMutationTest::testApplyRemovesRowsByPrimaryKeycallsDeleteMutationTest::testApplyWithCompositePrimaryKeycallsDeleteMutationTest::testApplyWithEmptyRowsDoesNothingcallsDeleteMutationTest::testApplyWithNonExistentRowDoesNothingcallsInsertMutationTest::testApplyInsertsMultipleRowscallsInsertMutationTest::testApplyInsertsToEmptyTablecallsInsertMutationTest::testApplyWithCompositePrimaryKeycallsInsertMutationTest::testInsertIgnoreSkipsDuplicatescallsInsertMutationTest::testInsertIgnoreSkipsUniqueKeyConflictcallsInsertMutationTest::testInsertIgnoreUsesPartialConflictPredicatecallsInsertMutationTest::testTableNameApplyAppendsRowscallsInsertMutationTest::testUniqueConstraintAllowsNullcallsInsertMutationTest::testValidationDisabledByDefaultAllowsDuplicatescallsMultiDeleteMutationTest::testApplyDeletesFromMultipleTablescallsMultiDeleteMutationTest::testApplyDeletesMultipleRowsFromMultipleTablescallsMultiUpdateMutationTest::testApplySkipsRowsWithIncompleteValuesOrIdentitycallsMultiUpdateMutationTest::testApplyUpdatesMultipleRowscallsMultiUpdateMutationTest::testApplyUpdatesMultipleTablescallsReplaceMutationTest::testApplyInsertsNewRowWhenNoDuplicatecallsReplaceMutationTest::testApplyRemovesEveryRowConflictingWithAnyCandidateKeycallsReplaceMutationTest::testApplyReplacesExistingRowByPrimaryKeycallsReplaceMutationTest::testApplyReplacesMultipleRowscallsReplaceMutationTest::testApplyWithCompositePrimaryKeycallsReplaceMutationTest::testApplyWithMissingPrimaryKeyDoesNotMatchcallsReplaceMutationTest::testApplyWithoutCandidateKeysDoesNotReplaceEqualRowscallsResultSetMutationTest::testApplyResultSetGivesTheNewTableTheRowsTheResultCarriedcallsUpdateMutationTest::testApplyLeavesATableTheOldKeyPointsAtNothingInAlonecallsUpdateMutationTest::testApplyWritesTheNewRowOverTheRowTheOldKeyPointsAtcallsUpdateMutationTest::testTableNameApplyReplacesRowsByPrimaryKeycallsUpdateMutationTest::testUpdateSameRowUniqueDoesNotThrowcallsUpdateMutationTest::testValidationDisabledByDefaultAllowsNullInNotNullColumncallsShadowMutationTest::testApplyWritesWhatTheStatementDidIntoTheShadowcallsCreateTableAsSelectMutationTest::testApplyResultSetCreatesEmptyTableFromMetadatacallsCreateTableAsSelectMutationTest::testApplyStoresRowsFromSelectResultcallsCreateTableLikeMutationTest::testApplyEnsuresNewTableInShadowStorecallsCreateTableMutationTest::testApplyEnsuresTableInShadowStorecallsDropTableMutationTest::testApplyClearsDataFromShadowStorecallsDropTableMutationTest::testApplyWithIfExistsDropsExistingTablecallsMultiTruncateMutationTest::testApplyClearsEveryTargetTablecallsSynchronizeMutationTest::testTableNameApplyReplacesTheCompleteTableStatecallsTruncateMutationTest::testApplyClearsAllRowscallsTruncateMutationTest::testApplyIgnoresProvidedRowscallsTruncateMutationTest::testApplyOnEmptyTableDoesNothingcallsUpsertMutationTest::testApplyAccumulatesExistingAndIncomingValuescallsUpsertMutationTest::testApplyAccumulatesSequentialConflictsAgainstLatestRowcallsUpsertMutationTest::testApplyHandlesMixedInsertAndUpdatecallsUpsertMutationTest::testApplyInsertsNewRowWhenNoDuplicatecallsUpsertMutationTest::testApplyUpdatesAllNonPrimaryColumnsWhenNoUpdateColumnsSpecifiedcallsUpsertMutationTest::testApplyUpdatesExistingRowOnDuplicatecallsUpsertMutationTest::testApplyUpdatesExistingRowOnUniqueKeyConflictcallsUpsertMutationTest::testApplyUsesConflictPredicateAndReportsOnlyAppliedRowscallsUpsertMutationTest::testApplyUsesDatabaseEvaluatedValuesAndStripsMetadatacallsUpsertMutationTest::testApplyWithCompositePrimaryKeycallsUpsertMutationTest::testApplyWithExcludedColumnReferencecallsUpsertMutationTest::testApplyWithExcludedQuotedColumnReferencecallsUpsertMutationTest::testApplyWithLiteralUpdateValuecallsUpsertMutationTest::testApplyWithMissingPrimaryKeyInsertsNewRowcallsUpsertMutationTest::testApplyWithUpdateValuesExpressioncallsUpsertMutationTest::testConflictPredicateRestrictsIncomingAndExistingCandidateRowscallsUpsertMutationTest::testDatabaseEvaluatedBatchDetectsConflictsWithRowsInsertedEarlierInStatementcallsUpsertMutationTest::testDatabaseEvaluatedBatchReevaluatesAgainstLatestConflictRowcallsUpsertMutationTest::testDatabaseEvaluatedPredicateFallsBackWhenMetadataIsMissingcallsUpsertMutationTest::testSkippedConditionalRowDoesNotStopFollowingRowscallsReferentialIntegrityEnforcerTest::testAcceptsExplicitReferenceToNonPrimaryCandidateKeycallsReferentialIntegrityEnforcerTest::testCompositeDeleteSetNullNormalizesEveryForeignKeyColumncallsReferentialIntegrityEnforcerTest::testCompositePrimaryKeyUpdateCascadesOnlyMatchingChildrencallsReferentialIntegrityEnforcerTest::testDeleteCascadePropagatesAcrossMultipleLevelscallsReferentialIntegrityEnforcerTest::testDeleteCascadeRemovesAllMatchingChildrenAndKeepsOtherscallsReferentialIntegrityEnforcerTest::testDeleteSetNullCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testDeleteSetNullUpdatesChildcallsReferentialIntegrityEnforcerTest::testExplicitReferencedColumnsAreNotReplacedByPrimaryKeycallsReferentialIntegrityEnforcerTest::testMatchingConstraintAfterUnrelatedConstraintStillCascadescallsReferentialIntegrityEnforcerTest::testMultiTruncateCascadesFromEveryChangedParentTablecallsReferentialIntegrityEnforcerTest::testPrimaryKeyUpdateCascadesThroughOriginalRowIdentitycallsReferentialIntegrityEnforcerTest::testRowsWithMissingPrimaryKeyCannotMatchRowsThatHaveTheKeycallsReferentialIntegrityEnforcerTest::testSchemaMutationDoesNotTriggerRowValidationcallsReferentialIntegrityEnforcerTest::testSchemaMutationSkipsRowIntegrityCheckscallsReferentialIntegrityEnforcerTest::testSynchronizeCascadesDeletedRowscallsShadowApplicationTest::testApplyLeavesTheShadowAsItWasWhenTheStatementIsRefusedcallsShadowApplicationTest::testApplyWritesTheRowsAMutationDescribesIntoTheShadowcallsShadowSavepointTest::testOfRemembersTheRowsAsTheyWereRatherThanAsTheyBecomecallsShadowSavepointTest::testRestoreIntoLeavesTheTablesAloneWhereNothingIsDescribingThemcallsShadowStoreTest::testDeleteFallsBackToRowMatchWithoutPrimaryKeyscovers and callsShadowStoreTest::testDeleteNoOpWhenTableMissingcovers and callsShadowStoreTest::testDeleteUsesPrimaryKeysWhenProvidedcovers and callsShadowStoreTest::testEnsureCreatesEmptyTablecovers and callsShadowStoreTest::testGetReturnsEmptyArrayForMissingTablecovers and callsShadowStoreTest::testHasDistinguishesMissingFromIntentionallyEmptyTablecovers and callsShadowStoreTest::testInsertAppendsRowscovers and callsShadowStoreTest::testRemoveClearsRowsAndInitializationcovers and callsShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecovers and callsShadowStoreTest::testSetPreservesTheCallersSparseRowKeyscovers and callsShadowStoreTest::testSnapshotIsARecordOfTheRowsRatherThanAViewOfThemcoversShadowStoreTest::testSnapshotPreservesOpaqueValuesAndSparseKeysThroughUpdatescovers and callsShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcoversShadowStoreTest::testUpdateIdentifiedWritesTheRowTheOldKeyPointsAtcovers and callsShadowStoreTest::testUpdateNoOpWhenNoMatchcovers and callsShadowStoreTest::testUpdateReplacesMatchingRowcovers and callsShadowTransactionsTest::testBeginIsIgnoredWhereATransactionHasAlreadyBeguncallsShadowTransactionsTest::testCommitLeavesNothingToRollBackTocallsShadowTransactionsTest::testPositionOfIsNothingForANameNothingWasDeclaredUndercallsShadowTransactionsTest::testReleaseGivesUpTheSavepointAndEveryNestedOneWithoutUndoingAnythingcallsShadowTransactionsTest::testRollBackPutsBackTheRowsTheTablesAndWhatDescribesThemcallsShadowTransactionsTest::testRollBackToKeepsTheSavepointAndGivesUpEveryLaterOnecallsShadowTransactionsTest::testRollBackToLeavesItsTargetToBeRolledBackToAgaincallsShadowTransactionsTest::testSavepointDeclaredTwiceUnderOneNameTakesThePlaceOfTheFirstcallsStatementSimulatorTest::testWriteStatementUpdatesShadowStorecallsTransactionStatementParserTest::testParseReadsAStatementThatOpensATransactioncallsTransactionStatementTest::testBeginStartsATransactionARollbackCanGoBackTocallsTransactionStatementTest::testCommitKeepsEverythingTheTransactionDidcallsTransactionStatementTest::testReleaseCommitAppliesNamedTransactionLifecycleWithoutSqlcallsTransactionStatementTest::testRollbackAppliesRollbackcallsTransactionStatementTest::testRollbackToGoesBackToTheSavepointAndLeavesItDeclaredcalls
Called from 12
- method-call ZtdQuery\Shadow\ForeignKeyCascade::of() packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:73
- method-call ZtdQuery\Shadow\ForeignKeyIntegrity::assertHolds() packages/ztd-query-core/src/Shadow/ForeignKeyIntegrity.php:52
- method-call ZtdQuery\Shadow\Mutation\Row\InsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/InsertMutation.php:104
- method-call ZtdQuery\Shadow\Mutation\Row\ReplaceMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/ReplaceMutation.php:42
- method-call ZtdQuery\Shadow\Mutation\Row\UpdateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/UpdateMutation.php:92
- method-call ZtdQuery\Shadow\Mutation\UpsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/UpsertMutation.php:119
- method-call ZtdQuery\Shadow\ParentKeyLookup::exists() packages/ztd-query-core/src/Shadow/ParentKeyLookup.php:40
- method-call ZtdQuery\Shadow\ShadowApplication::apply() packages/ztd-query-core/src/Shadow/ShadowApplication.php:58
- method-call ZtdQuery\Shadow\ShadowApplication::apply() packages/ztd-query-core/src/Shadow/ShadowApplication.php:83
- method-call ZtdQuery\Shadow\ShadowStore::insert() packages/ztd-query-core/src/Shadow/ShadowStore.php:170
- method-call ZtdQuery\Shadow\TableTransitions::of() packages/ztd-query-core/src/Shadow/TableTransitions.php:64
- method-call ZtdQuery\Shadow\TableTransitions::of() packages/ztd-query-core/src/Shadow/TableTransitions.php:65
public function has(string $tableName): boolWhether the store contains a shadow entry for a table, including an intentionally empty table.
Parameters
$tableName | string |
Returns
boolTest cases 5
ShadowStoreTest::testHasDistinguishesMissingFromIntentionallyEmptyTablecovers and callsShadowStoreTest::testRemoveClearsRowsAndInitializationcoversShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecovers and callsShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcoversShadowTransactionsTest::testRollBackPutsBackTheRowsTheTablesAndWhatDescribesThemcalls
Called from 1
Calls 1
- function-call
array_key_existsline 80
public function state(string $tableName): ShadowTableStateReturn the typed presence state for a shadow table.
Parameters
$tableName | string |
Returns
Test cases 2
ShadowStoreTest::testRemoveClearsRowsAndInitializationcovers and callsShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcovers and calls
Calls 4
- method-call ShadowStore::has() line 88
- class-const ShadowTableState::Missing() line 89
- class-const ShadowTableState::Initialized() line 93
- class-const ShadowTableState::Materialized() line 96
public function getAll(): array<string, array<int, Row>>Get all stored shadow tables.
Returns
array<string, array<int, Row>>Test cases 3
FakeSqlRewriter::buildShadowContextcallsShadowStoreTest::testClearRemovesAllDatacovers and callsShadowStoreTest::testGetAllReturnsCurrentTablescovers and calls
Called from 1
public function clear(): voidRemove all shadow data.
Test cases 1
ShadowStoreTest::testClearRemovesAllDatacovers and calls
public function snapshot(): selfSnapshot.
Returns
selfTest cases 35
ShadowStoreBench::benchDeleteAndRestorecallsShadowStoreBench::benchUpdateAndRestorecallsReferentialIntegrityEnforcerTest::testAcceptsExplicitReferenceToNonPrimaryCandidateKeycallsReferentialIntegrityEnforcerTest::testCascadeNormalizesSparseChildRowIndexescallsReferentialIntegrityEnforcerTest::testCompositeDeleteSetNullNormalizesEveryForeignKeyColumncallsReferentialIntegrityEnforcerTest::testCompositePrimaryKeyUpdateCascadesOnlyMatchingChildrencallsReferentialIntegrityEnforcerTest::testDeleteCascadePropagatesAcrossMultipleLevelscallsReferentialIntegrityEnforcerTest::testDeleteCascadeRemovesAllMatchingChildrenAndKeepsOtherscallsReferentialIntegrityEnforcerTest::testDeleteRestrictRejectsParentRemovalcallsReferentialIntegrityEnforcerTest::testDeleteSetNullCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testDeleteSetNullUpdatesChildcallsReferentialIntegrityEnforcerTest::testEmptySelfReferentialCascadeTerminatesWithoutSyntheticEventscallsReferentialIntegrityEnforcerTest::testExplicitReferencedColumnsAreNotReplacedByPrimaryKeycallsReferentialIntegrityEnforcerTest::testFallbackContinuesAfterIdentityMatchedRowcallsReferentialIntegrityEnforcerTest::testFallbackReferencedPrimaryKeyAppearsInUpdateViolationcallsReferentialIntegrityEnforcerTest::testFallbackTransitionPropagatesUpdateAndDeleteFromOneTablecallsReferentialIntegrityEnforcerTest::testIdentityTransitionSkipsIncompleteChangeAndProcessesFollowingChangecallsReferentialIntegrityEnforcerTest::testMatchingConstraintAfterUnrelatedConstraintStillCascadescallsReferentialIntegrityEnforcerTest::testMissingReferencedValuesDoNotStopLaterUpdateOrDeleteCascadescallsReferentialIntegrityEnforcerTest::testMultiTruncateCascadesFromEveryChangedParentTablecallsReferentialIntegrityEnforcerTest::testPrimaryKeyUpdateCascadesThroughOriginalRowIdentitycallsReferentialIntegrityEnforcerTest::testRejectsInsertWhoseParentDoesNotExistcallsReferentialIntegrityEnforcerTest::testRetainedOldKeyDoesNotStopFollowingUpdateCascadecallsReferentialIntegrityEnforcerTest::testSchemaMutationDoesNotTriggerRowValidationcallsReferentialIntegrityEnforcerTest::testSchemaMutationSkipsRowIntegrityCheckscallsReferentialIntegrityEnforcerTest::testSynchronizeCascadesDeletedRowscallsReferentialIntegrityEnforcerTest::testUpdateCascadeCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testUpdateDoesNotCascadeWhileOldParentKeyStillExistscallsReferentialIntegrityEnforcerTest::testValidationContinuesPastMissingAndNullForeignKeyscallsShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecovers and callsShadowStoreTest::testSnapshotIsARecordOfTheRowsRatherThanAViewOfThemcovers and callsShadowStoreTest::testSnapshotPreservesOpaqueValuesAndSparseKeysThroughUpdatescovers and callsTableTransitionsTest::testOfAnswersOneEntryPerTableSomethingHappenedTocallsTableTransitionsTest::testOfLeavesOutATableNothingHappenedTocallsTableTransitionsTest::testOfReadsTheResultRowsOnlyForTheTableAnUpdateNamescalls
public function restore(self $snapshot): voidRestore.
Parameters
$snapshot | self |
Test cases 4
public function ensure(string $tableName): voidEnsure a table key exists in the store.
Parameters
$tableName | string |
Test cases 4
InsertMutationTest::testApplyInsertsToEmptyTablecallsShadowStoreTest::testEnsureCreatesEmptyTablecovers and callsShadowStoreTest::testHasDistinguishesMissingFromIntentionallyEmptyTablecovers and callsShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcovers and calls
Called from 2
- method-call ZtdQuery\Shadow\Mutation\Table\CreateTableLikeMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableLikeMutation.php:64
- method-call ZtdQuery\Shadow\Mutation\Table\CreateTableMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableMutation.php:64
public function remove(string $tableName): voidRemove both rows and explicit table context from the store.
Parameters
$tableName | string |
Test cases 1
ShadowStoreTest::testRemoveClearsRowsAndInitializationcovers and calls
public function insert(string $tableName, array<int, Row> $rows): voidAppend rows to a table shadow set.
Parameters
$tableName | string | |
$rows | array<int, Row> |
Test cases 12
ClassAliasesTest::testLegacyTransactionNameRollsBackRowscallsShadowStoreTest::testInsertAppendsRowscovers and callsShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecovers and callsShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcovers and callsShadowTransactionsTest::testPositionOfIsNothingForANameNothingWasDeclaredUndercallsShadowTransactionsTest::testReleaseGivesUpTheSavepointAndEveryNestedOneWithoutUndoingAnythingcallsShadowTransactionsTest::testRollBackPutsBackTheRowsTheTablesAndWhatDescribesThemcallsShadowTransactionsTest::testRollBackToKeepsTheSavepointAndGivesUpEveryLaterOnecallsShadowTransactionsTest::testRollBackToLeavesItsTargetToBeRolledBackToAgaincallsShadowTransactionsTest::testSavepointDeclaredTwiceUnderOneNameTakesThePlaceOfTheFirstcallsTransactionStatementTest::testReleaseCommitAppliesNamedTransactionLifecycleWithoutSqlcallsTransactionStatementTest::testRollbackAppliesRollbackcalls
Called from 2
Calls 3
- method-call ShadowStore::get() line 170
- new RowSet line 171
- function-call
array_mergeline 171
public function delete(
string $tableName,
array<int, Row> $deletedRows,
array<int, string> $primaryKeys = [],
): voidDelete rows from the shadow set.
Parameters
$tableName | string | |
$deletedRows | array<int, Row> | |
$primaryKeys | array<int, string> |
Test cases 4
ShadowStoreBench::benchDeleteAndRestorecallsShadowStoreTest::testDeleteFallsBackToRowMatchWithoutPrimaryKeyscovers and callsShadowStoreTest::testDeleteNoOpWhenTableMissingcovers and callsShadowStoreTest::testDeleteUsesPrimaryKeysWhenProvidedcovers and calls
Called from 2
Calls 2
- method-call RowMatch::identifies() line 192
- new RowSet line 203
public function update(
string $tableName,
array<int, Row> $updatedRows,
array<int, string> $primaryKeys,
): voidUpdate rows matched by primary keys.
Parameters
$tableName | string | |
$updatedRows | array<int, Row> | |
$primaryKeys | array<int, string> |
Throws
MissingPrimaryKeyException When the table declares no key to identify a row byTest cases 5
ShadowStoreBench::benchUpdateAndRestorecallsShadowStoreTest::testSnapshotPreservesOpaqueValuesAndSparseKeysThroughUpdatescovers and callsShadowStoreTest::testUpdateNoOpWhenNoMatchcovers and callsShadowStoreTest::testUpdateReplacesMatchingRowcovers and callsShadowStoreTest::testUpdateWithoutPrimaryKeysThrowscovers and calls
Calls 3
- new MissingPrimaryKeyException line 221
- method-call RowMatch::identifies() line 228
- new RowSet line 235
public function updateIdentified(
string $tableName,
list<array{row: Row, identity: Row}> $updates,
array<int, string> $primaryKeys,
): voidParameters
Throws
MissingPrimaryKeyException When the table declares no key to identify a row byTest cases 1
ShadowStoreTest::testUpdateIdentifiedWritesTheRowTheOldKeyPointsAtcovers and calls
Called from 2
Calls 3
- new MissingPrimaryKeyException line 250
- method-call RowMatch::identifies() line 256
- new RowSet line 263
Private surface 3§
Implementation details, listed for orientation only.
private RowMatch $match = new \ZtdQuery\Shadow\Row\RowMatch()private array<string, RowSet> $fixtures = []private array<string, string> $initializedTables = []Test cases 242§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 19
ShadowStoreTest::testClearRemovesAllDatacovers and callsShadowStoreTest::testDeleteFallsBackToRowMatchWithoutPrimaryKeyscovers and callsShadowStoreTest::testDeleteNoOpWhenTableMissingcovers and callsShadowStoreTest::testDeleteUsesPrimaryKeysWhenProvidedcovers and callsShadowStoreTest::testEnsureCreatesEmptyTablecovers and callsShadowStoreTest::testGetAllReturnsCurrentTablescovers and callsShadowStoreTest::testGetReturnsEmptyArrayForMissingTablecovers and callsShadowStoreTest::testHasDistinguishesMissingFromIntentionallyEmptyTablecovers and callsShadowStoreTest::testInsertAppendsRowscovers and callsShadowStoreTest::testRemoveClearsRowsAndInitializationcovers and callsShadowStoreTest::testRestoreSnapshotRestoreSnapshotRestoreIncludesRowsAndInitializedPresencecovers and callsShadowStoreTest::testSetPreservesTheCallersSparseRowKeyscovers and callsShadowStoreTest::testSnapshotIsARecordOfTheRowsRatherThanAViewOfThemcovers and callsShadowStoreTest::testSnapshotPreservesOpaqueValuesAndSparseKeysThroughUpdatescovers and callsShadowStoreTest::testStateDistinguishesMutationMaterializationFromInitializationcovers and callsShadowStoreTest::testUpdateIdentifiedWritesTheRowTheOldKeyPointsAtcovers and callsShadowStoreTest::testUpdateNoOpWhenNoMatchcovers and callsShadowStoreTest::testUpdateReplacesMatchingRowcovers and callsShadowStoreTest::testUpdateWithoutPrimaryKeysThrowscovers and calls
Other tests reaching this symbol 223
ShadowStoreBench::benchDeleteAndRestorecallsShadowStoreBench::benchUpdateAndRestorecallsShadowStoreBench::setUpcallsMutationContractTest::testDeleteDecreasesRowCountcallsMutationContractTest::testDeleteOnEmptyTablecallsMutationContractTest::testIdempotentTruncatecallsMutationContractTest::testInsertIncreasesRowCountcallsMutationContractTest::testInsertIntoEmptyTablecallsMutationContractTest::testInsertWithEmptyStringValuescallsMutationContractTest::testInsertWithNullValuescallsMutationContractTest::testMutationTableIsolationcallsMutationContractTest::testTruncateEmptiesTablecallsMutationContractTest::testUpdateOnEmptyTablecallsMutationContractTest::testUpdatePreservesRowCountcallsRewriterContractTest::buildRewritercallsRewriterContractTest::testDeleteReturnsWriteSimulatedWithMutationcallsRewriterContractTest::testRewriteIsDeterministiccallsRewriterContractTest::testUpdateReturnsWriteSimulatedWithMutationcallsCascadingShop::shadowcallsFakeSessionFactory::createcallsFakeSqlRewriter::buildShadowContextcallsSessionUnderTest::plaincallsClassAliasesTest::testLegacyNamesConstructWorkingSchemaAndMutationObjectscallsClassAliasesTest::testLegacyTransactionNameRollsBackRowscallsSqlRewriterTest::testEmptyResultSelectAnswersAStatementThatYieldsNoRowscallsSqlRewriterTest::testRewriteAnswersAPlanForTheStatementItWasGivencallsSqlRewriterTest::testRewriteAnswersASimulatedWriteForAStatementThatWouldChangeSomethingcallsSqlRewriterTest::testRewriteMultipleAnswersOnePlanPerStatementOfABatchcallsSqlRewriterTest::testSplitStatementsAnswersTheStatementsABatchIsWrittenAscallsSqlRewriterTest::testTransactionStatementIsNothingForAStatementThatIsNotOnecallsSessionTest::testApplyShadowWritesTheMutationAndAnswersWhatItCameTocallsSessionTest::testApplyTransactionStatementDoesWhatTheStatementSayscallsSessionTest::testBeginTransactionRollBackTransactionBeginTransactionUsesProvidedTransactionManagerForSchemaRollbackcallsSessionTest::testCommitTransactionKeepsWhatTheTransactionDidcallsSessionTest::testDisableEnableDisableEnableAndDisablecallsSessionTest::testDisableStopsZtdWithoutTouchingTheShadowcallsSessionTest::testForeignKeyFailureRestoresShadowStatecallsSessionTest::testMutationFailureIsConvertedToDatabaseExceptioncallsSessionTest::testParameterBindingCompilerResultColumnTypeResolverParameterBindingCompilerDelegatesCopyTargetsToTheConfiguredPlatformSupportcallsSessionTest::testRollBackTransactionPutsTheShadowBackToWhereItBegancallsSessionTest::testRunResultSelectAndApplyShadowReadsBackWhatTheStatementWouldHaveWrittencallsSessionTest::testSplitStatementsUsesPlatformRewritercallsSessionTest::testTableDefinitionReturnsRegisteredSchemaOrNullcallsSessionTest::testTransactionsAnswersWhatATransactionStatementIsAppliedTocallsForeignKeyCascadeTest::testCarryDeleteDropsEveryChildThatWasHoldingTheKeyWhereTheActionCascadescallsForeignKeyCascadeTest::testCarryDeleteReachesNothingWhereTheParentTableStillHoldsTheKeycallsForeignKeyCascadeTest::testCarryDeleteSetsTheKeyToNullWhereTheActionSaysToRatherThanDroppingTheRowcallsForeignKeyCascadeTest::testCarryUpdateReachesNothingWhereTheParentTableStillHoldsTheOldKeycallsForeignKeyCascadeTest::testCarryUpdateWritesTheNewKeyIntoEveryChildThatWasHoldingTheOldOnecallsForeignKeyCascadeTest::testOfCarriesTheNewKeyToTheChildrenOfAnUpdatedParentcallsForeignKeyCascadeTest::testOfDeletesTheChildrenOfADeletedParentWhereTheActionSaysToCascadecallsForeignKeyCascadeTest::testOfFollowsNothingThroughAKeyWhoseEndsDisagreecallsForeignKeyCascadeTest::testOfLeavesTheChildrenAloneWhileAnotherParentRowHoldsTheKeyUpcallsForeignKeyIntegrityTest::testAssertHoldsChecksNothingThroughAKeyWhoseEndsDisagreecallsForeignKeyIntegrityTest::testAssertHoldsLeavesAKeyWithANullInItAlonecallsForeignKeyIntegrityTest::testAssertHoldsLeavesARowThatDoesNotCarryTheKeyColumnsAlonecallsForeignKeyIntegrityTest::testAssertHoldsPassesAShadowInWhichEveryChildFindsItsParentcallsForeignKeyIntegrityTest::testAssertHoldsRefusesAShadowInWhichAChildReferencesNothingcallsMutationImpactTest::testAppliedUpsertReturnsResultRowsAndIsInsertLikecallsMutationImpactTest::testSkippedConditionalUpsertHasNoAffectedOrReturningRowscallsDeleteMutationTest::testApplyRemovesMultipleRowscallsDeleteMutationTest::testApplyRemovesRowsByPrimaryKeycallsDeleteMutationTest::testApplyWithCompositePrimaryKeycallsDeleteMutationTest::testApplyWithEmptyRowsDoesNothingcallsDeleteMutationTest::testApplyWithNonExistentRowDoesNothingcallsInsertMutationTest::testApplyInsertsMultipleRowscallsInsertMutationTest::testApplyInsertsToEmptyTablecallsInsertMutationTest::testApplyWithCompositePrimaryKeycallsInsertMutationTest::testInsertIgnoreSkipsDuplicatescallsInsertMutationTest::testInsertIgnoreSkipsUniqueKeyConflictcallsInsertMutationTest::testInsertIgnoreUsesPartialConflictPredicatecallsInsertMutationTest::testTableNameApplyAppendsRowscallsInsertMutationTest::testUniqueConstraintAllowsNullcallsInsertMutationTest::testValidateNotNullThrowsExceptioncallsInsertMutationTest::testValidatePrimaryKeyDuplicateThrowsExceptioncallsInsertMutationTest::testValidateUniqueThrowsExceptioncallsInsertMutationTest::testValidationDisabledByDefaultAllowsDuplicatescallsMultiDeleteMutationTest::testApplyDeletesFromMultipleTablescallsMultiDeleteMutationTest::testApplyDeletesMultipleRowsFromMultipleTablescallsMultiUpdateMutationTest::testApplySkipsRowsWithIncompleteValuesOrIdentitycallsMultiUpdateMutationTest::testApplyUpdatesMultipleRowscallsMultiUpdateMutationTest::testApplyUpdatesMultipleTablescallsReplaceMutationTest::testApplyInsertsNewRowWhenNoDuplicatecallsReplaceMutationTest::testApplyRemovesEveryRowConflictingWithAnyCandidateKeycallsReplaceMutationTest::testApplyReplacesExistingRowByPrimaryKeycallsReplaceMutationTest::testApplyReplacesMultipleRowscallsReplaceMutationTest::testApplyWithCompositePrimaryKeycallsReplaceMutationTest::testApplyWithMissingPrimaryKeyDoesNotMatchcallsReplaceMutationTest::testApplyWithoutCandidateKeysDoesNotReplaceEqualRowscallsResultSetMutationTest::testApplyResultSetGivesTheNewTableTheColumnsTheResultDescribedcallsResultSetMutationTest::testApplyResultSetGivesTheNewTableTheRowsTheResultCarriedcallsUpdateMutationTest::testApplyLeavesATableTheOldKeyPointsAtNothingInAlonecallsUpdateMutationTest::testApplyWritesTheNewRowOverTheRowTheOldKeyPointsAtcallsUpdateMutationTest::testTableNameApplyReplacesRowsByPrimaryKeycallsUpdateMutationTest::testUpdateSameRowUniqueDoesNotThrowcallsUpdateMutationTest::testValidateNotNullThrowsExceptioncallsUpdateMutationTest::testValidateUniqueThrowsExceptioncallsUpdateMutationTest::testValidationDisabledByDefaultAllowsNullInNotNullColumncallsShadowMutationTest::testApplyWritesWhatTheStatementDidIntoTheShadowcallsCreateTableAsSelectMutationTest::testApplyInfersColumnsFromResultRowsForSelectStarcallsCreateTableAsSelectMutationTest::testApplyKeepsParsedProjectionNamesWhenMetadataIsUnavailablecallsCreateTableAsSelectMutationTest::testApplyRegistersTableWithColumnsFromSelectcallsCreateTableAsSelectMutationTest::testApplyResultSetCreatesEmptyTableFromMetadatacallsCreateTableAsSelectMutationTest::testApplyResultSetKeepsExplicitColumnNamesWithMetadataTypescallsCreateTableAsSelectMutationTest::testApplyResultSetUsesMetadataTypesInsteadOfTextFallbackcallsCreateTableAsSelectMutationTest::testApplyStoresRowsFromSelectResultcallsCreateTableAsSelectMutationTest::testApplyThrowsExceptionWhenTableExistscallsCreateTableAsSelectMutationTest::testApplyWithIfNotExistsSkipsWhenTableExistscallsCreateTableLikeMutationTest::testApplyCopiesSchemaFromSourceTablecallsCreateTableLikeMutationTest::testApplyEnsuresNewTableInShadowStorecallsCreateTableLikeMutationTest::testApplyThrowsExceptionWhenSourceTableDoesNotExistcallsCreateTableLikeMutationTest::testApplyThrowsExceptionWhenTargetTableExistscallsCreateTableLikeMutationTest::testApplyWithIfNotExistsSkipsWhenTableExistscallsCreateTableMutationTest::testApplyEnsuresTableInShadowStorecallsCreateTableMutationTest::testApplyRegistersTableInSchemacallsCreateTableMutationTest::testApplyThrowsExceptionWhenTableExistscallsCreateTableMutationTest::testApplyWithIfNotExistsCreatesWhenTableDoesNotExistcallsCreateTableMutationTest::testApplyWithIfNotExistsSkipsWhenTableExistscallsDropTableMutationTest::testApplyClearsDataFromShadowStorecallsDropTableMutationTest::testApplyThrowsExceptionWhenTableDoesNotExistcallsDropTableMutationTest::testApplyUnregistersTableFromSchemacallsDropTableMutationTest::testApplyWithIfExistsDropsExistingTablecallsDropTableMutationTest::testApplyWithIfExistsSkipsWhenTableDoesNotExistcallsMultiTruncateMutationTest::testApplyClearsEveryTargetTablecallsSynchronizeMutationTest::testApplyRejectsDuplicateCandidateKeyscallsSynchronizeMutationTest::testApplyRejectsNullInNotNullColumncallsSynchronizeMutationTest::testTableNameApplyReplacesTheCompleteTableStatecallsTruncateMutationTest::testApplyClearsAllRowscallsTruncateMutationTest::testApplyIgnoresProvidedRowscallsTruncateMutationTest::testApplyOnEmptyTableDoesNothingcallsUpsertMutationTest::testApplyAccumulatesExistingAndIncomingValuescallsUpsertMutationTest::testApplyAccumulatesSequentialConflictsAgainstLatestRowcallsUpsertMutationTest::testApplyHandlesMixedInsertAndUpdatecallsUpsertMutationTest::testApplyInsertsNewRowWhenNoDuplicatecallsUpsertMutationTest::testApplyUpdatesAllNonPrimaryColumnsWhenNoUpdateColumnsSpecifiedcallsUpsertMutationTest::testApplyUpdatesExistingRowOnDuplicatecallsUpsertMutationTest::testApplyUpdatesExistingRowOnUniqueKeyConflictcallsUpsertMutationTest::testApplyUsesConflictPredicateAndReportsOnlyAppliedRowscallsUpsertMutationTest::testApplyUsesDatabaseEvaluatedValuesAndStripsMetadatacallsUpsertMutationTest::testApplyWithCompositePrimaryKeycallsUpsertMutationTest::testApplyWithExcludedColumnReferencecallsUpsertMutationTest::testApplyWithExcludedQuotedColumnReferencecallsUpsertMutationTest::testApplyWithLiteralUpdateValuecallsUpsertMutationTest::testApplyWithMissingPrimaryKeyInsertsNewRowcallsUpsertMutationTest::testApplyWithUpdateValuesExpressioncallsUpsertMutationTest::testConflictPredicateRestrictsIncomingAndExistingCandidateRowscallsUpsertMutationTest::testDatabaseEvaluatedBatchDetectsConflictsWithRowsInsertedEarlierInStatementcallsUpsertMutationTest::testDatabaseEvaluatedBatchReevaluatesAgainstLatestConflictRowcallsUpsertMutationTest::testDatabaseEvaluatedBatchRejectsStaleUnsupportedExpressioncallsUpsertMutationTest::testDatabaseEvaluatedPredicateFallsBackWhenMetadataIsMissingcallsUpsertMutationTest::testResultRowsAnswersEveryRowTheStatementWroteOrLeftAsItWascallsUpsertMutationTest::testSkippedConditionalRowDoesNotStopFollowingRowscallsParentKeyLookupTest::testDoesNotExistWhenNoRowCarriesTheValuescallsParentKeyLookupTest::testDoesNotExistWhenTheTableHasNoRowsAtAllcallsParentKeyLookupTest::testExistsOnlyWhenOneRowCarriesEveryColumnOfACompositeKeycallsParentKeyLookupTest::testExistsWhenSomeRowStillCarriesTheValuescallsReferentialIntegrityEnforcerTest::testAcceptsExplicitReferenceToNonPrimaryCandidateKeycallsReferentialIntegrityEnforcerTest::testCascadeNormalizesSparseChildRowIndexescallsReferentialIntegrityEnforcerTest::testCompositeDeleteSetNullNormalizesEveryForeignKeyColumncallsReferentialIntegrityEnforcerTest::testCompositePrimaryKeyUpdateCascadesOnlyMatchingChildrencallsReferentialIntegrityEnforcerTest::testDeleteCascadePropagatesAcrossMultipleLevelscallsReferentialIntegrityEnforcerTest::testDeleteCascadeRemovesAllMatchingChildrenAndKeepsOtherscallsReferentialIntegrityEnforcerTest::testDeleteRestrictRejectsParentRemovalcallsReferentialIntegrityEnforcerTest::testDeleteSetNullCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testDeleteSetNullUpdatesChildcallsReferentialIntegrityEnforcerTest::testEmptySelfReferentialCascadeTerminatesWithoutSyntheticEventscallsReferentialIntegrityEnforcerTest::testExplicitReferencedColumnsAreNotReplacedByPrimaryKeycallsReferentialIntegrityEnforcerTest::testFallbackContinuesAfterIdentityMatchedRowcallsReferentialIntegrityEnforcerTest::testFallbackReferencedPrimaryKeyAppearsInUpdateViolationcallsReferentialIntegrityEnforcerTest::testFallbackTransitionPropagatesUpdateAndDeleteFromOneTablecallsReferentialIntegrityEnforcerTest::testIdentityTransitionSkipsIncompleteChangeAndProcessesFollowingChangecallsReferentialIntegrityEnforcerTest::testMatchingConstraintAfterUnrelatedConstraintStillCascadescallsReferentialIntegrityEnforcerTest::testMissingReferencedValuesDoNotStopLaterUpdateOrDeleteCascadescallsReferentialIntegrityEnforcerTest::testMultiTruncateCascadesFromEveryChangedParentTablecallsReferentialIntegrityEnforcerTest::testPrimaryKeyUpdateCascadesThroughOriginalRowIdentitycallsReferentialIntegrityEnforcerTest::testRejectsInsertWhoseParentDoesNotExistcallsReferentialIntegrityEnforcerTest::testRetainedOldKeyDoesNotStopFollowingUpdateCascadecallsReferentialIntegrityEnforcerTest::testRowsWithMissingPrimaryKeyCannotMatchRowsThatHaveTheKeycallsReferentialIntegrityEnforcerTest::testSchemaMutationDoesNotTriggerRowValidationcallsReferentialIntegrityEnforcerTest::testSchemaMutationSkipsRowIntegrityCheckscallsReferentialIntegrityEnforcerTest::testSynchronizeCascadesDeletedRowscallsReferentialIntegrityEnforcerTest::testUpdateCascadeCarriesOriginalRowIntoNextLevelcallsReferentialIntegrityEnforcerTest::testUpdateDoesNotCascadeWhileOldParentKeyStillExistscallsReferentialIntegrityEnforcerTest::testValidationContinuesPastMissingAndNullForeignKeyscallsShadowApplicationTest::testApplyAnswersWhatTheStatementCameTocallsShadowApplicationTest::testApplyLeavesTheShadowAsItWasWhenTheStatementIsRefusedcallsShadowApplicationTest::testApplyWritesTheRowsAMutationDescribesIntoTheShadowcallsShadowApplicationTest::testLastInsertIdOfAnswersTheIdentityTheTableSaysIsNumberedcallsShadowApplicationTest::testLastInsertIdOfFallsBackToASingleColumnKeycallsShadowApplicationTest::testLastInsertIdOfIsNothingForAStatementThatInsertedNothingcallsShadowApplicationTest::testLastInsertIdOfIsNothingWhereNoColumnIsNumberedcallsShadowSavepointTest::testIsNamedAnswersForTheNameItWasDeclaredUndercallsShadowSavepointTest::testIsNamedIsFalseForTheTransactionItselfcallsShadowSavepointTest::testOfRemembersTheRowsAsTheyWereRatherThanAsTheyBecomecallsShadowSavepointTest::testOfRemembersWhichTablesThereWerecallsShadowSavepointTest::testRestoreIntoLeavesTheTablesAloneWhereNothingIsDescribingThemcallsShadowSavepointTest::testTheNameIsReadableWithoutBeingGuessedAtcallsShadowTransactionsTest::testBeginIsIgnoredWhereATransactionHasAlreadyBeguncallsShadowTransactionsTest::testCommitLeavesNothingToRollBackTocallsShadowTransactionsTest::testPositionOfIsNothingForANameNothingWasDeclaredUndercallsShadowTransactionsTest::testReleaseGivesUpTheSavepointAndEveryNestedOneWithoutUndoingAnythingcallsShadowTransactionsTest::testRollBackPutsBackTheRowsTheTablesAndWhatDescribesThemcallsShadowTransactionsTest::testRollBackToKeepsTheSavepointAndGivesUpEveryLaterOnecallsShadowTransactionsTest::testRollBackToLeavesItsTargetToBeRolledBackToAgaincallsShadowTransactionsTest::testSavepointDeclaredTwiceUnderOneNameTakesThePlaceOfTheFirstcallsTableTransitionsTest::testOfAnswersOneEntryPerTableSomethingHappenedTocallsTableTransitionsTest::testOfLeavesOutATableNothingHappenedTocallsTableTransitionsTest::testOfReadsTheResultRowsOnlyForTheTableAnUpdateNamescallsStatementSimulatorTest::testReadStatementReturnsFalseWhenExecutorFailscallsStatementSimulatorTest::testReadStatementReturnsRowCountcallsStatementSimulatorTest::testSimulateRefusesAWriteThePlanCarriesNoMutationForcallsStatementSimulatorTest::testUnsupportedSqlThrowscallsStatementSimulatorTest::testWriteStatementUpdatesShadowStorecallsTransactionStatementParserTest::testParseReadsAStatementThatDeclaresASavepointcallsTransactionStatementParserTest::testParseReadsAStatementThatGivesUpASavepointcallsTransactionStatementParserTest::testParseReadsAStatementThatOpensATransactioncallsTransactionStatementTest::testApplyDoesWhatEachOperationSayscallsTransactionStatementTest::testBeginStartsATransactionARollbackCanGoBackTocallsTransactionStatementTest::testCommitKeepsEverythingTheTransactionDidcallsTransactionStatementTest::testReleaseCommitAppliesNamedTransactionLifecycleWithoutSqlcallsTransactionStatementTest::testRollbackAppliesRollbackcallsTransactionStatementTest::testRollbackToGoesBackToTheSavepointAndLeavesItDeclaredcallsTransactionStatementTest::testSavepointPreservesTheNamedTransactionBoundarycalls
Relations§
Method calls 32
- method-call ZtdQuery\Shadow\ForeignKeyCascade::of() packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:73
- method-call ZtdQuery\Shadow\ForeignKeyCascade::of() packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:84
- method-call ZtdQuery\Shadow\ForeignKeyIntegrity::assertHolds() packages/ztd-query-core/src/Shadow/ForeignKeyIntegrity.php:52
- method-call ZtdQuery\Shadow\Mutation\Row\DeleteMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/DeleteMutation.php:45
- method-call ZtdQuery\Shadow\Mutation\Row\InsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/InsertMutation.php:104
- method-call ZtdQuery\Shadow\Mutation\Row\InsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/InsertMutation.php:136
- method-call ZtdQuery\Shadow\Mutation\Row\MultiDeleteMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/MultiDeleteMutation.php:50
- method-call ZtdQuery\Shadow\Mutation\Row\MultiUpdateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/MultiUpdateMutation.php:50
- method-call ZtdQuery\Shadow\Mutation\Row\ReplaceMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/ReplaceMutation.php:42
- method-call ZtdQuery\Shadow\Mutation\Row\ReplaceMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/ReplaceMutation.php:50
- method-call ZtdQuery\Shadow\Mutation\Row\ReplaceMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/ReplaceMutation.php:51
- method-call ZtdQuery\Shadow\Mutation\Row\UpdateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/UpdateMutation.php:92
- method-call ZtdQuery\Shadow\Mutation\Row\UpdateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Row/UpdateMutation.php:100
- method-call ZtdQuery\Shadow\Mutation\Table\CreateTableAsSelectMutation::applyResultSet() packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableAsSelectMutation.php:103
- method-call ZtdQuery\Shadow\Mutation\Table\CreateTableLikeMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableLikeMutation.php:64
- method-call ZtdQuery\Shadow\Mutation\Table\CreateTableMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableMutation.php:64
- method-call ZtdQuery\Shadow\Mutation\Table\DropTableMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/DropTableMutation.php:58
- method-call ZtdQuery\Shadow\Mutation\Table\MultiTruncateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/MultiTruncateMutation.php:29
- method-call ZtdQuery\Shadow\Mutation\Table\SynchronizeMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/SynchronizeMutation.php:70
- method-call ZtdQuery\Shadow\Mutation\Table\TruncateMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/Table/TruncateMutation.php:37
- method-call ZtdQuery\Shadow\Mutation\UpsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/UpsertMutation.php:119
- method-call ZtdQuery\Shadow\Mutation\UpsertMutation::apply() packages/ztd-query-core/src/Shadow/Mutation/UpsertMutation.php:146
- method-call ZtdQuery\Shadow\ParentKeyLookup::exists() packages/ztd-query-core/src/Shadow/ParentKeyLookup.php:40
- method-call ZtdQuery\Shadow\ShadowApplication::apply() packages/ztd-query-core/src/Shadow/ShadowApplication.php:58
- method-call ZtdQuery\Shadow\ShadowApplication::apply() packages/ztd-query-core/src/Shadow/ShadowApplication.php:59
- method-call ZtdQuery\Shadow\ShadowApplication::apply() packages/ztd-query-core/src/Shadow/ShadowApplication.php:74
- method-call ZtdQuery\Shadow\ShadowApplication::apply() packages/ztd-query-core/src/Shadow/ShadowApplication.php:83
- method-call ZtdQuery\Shadow\ShadowSavepoint::of() packages/ztd-query-core/src/Shadow/ShadowSavepoint.php:49
- method-call ZtdQuery\Shadow\ShadowSavepoint::restoreInto() packages/ztd-query-core/src/Shadow/ShadowSavepoint.php:62
- method-call ZtdQuery\Shadow\TableTransitions::of() packages/ztd-query-core/src/Shadow/TableTransitions.php:60
- method-call ZtdQuery\Shadow\TableTransitions::of() packages/ztd-query-core/src/Shadow/TableTransitions.php:64
- method-call ZtdQuery\Shadow\TableTransitions::of() packages/ztd-query-core/src/Shadow/TableTransitions.php:65
Type declarations 31
- type ZtdQuery\Session packages/ztd-query-core/src/Session.php:85
- type ZtdQuery\Shadow\ForeignKeyCascade packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:60
- type ZtdQuery\Shadow\ForeignKeyCascade packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:105
- type ZtdQuery\Shadow\ForeignKeyCascade packages/ztd-query-core/src/Shadow/ForeignKeyCascade.php:141
- type ZtdQuery\Shadow\ForeignKeyIntegrity packages/ztd-query-core/src/Shadow/ForeignKeyIntegrity.php:43
- type ZtdQuery\Shadow\Mutation\Row\DeleteMutation packages/ztd-query-core/src/Shadow/Mutation/Row/DeleteMutation.php:43
- type ZtdQuery\Shadow\Mutation\Row\InsertMutation packages/ztd-query-core/src/Shadow/Mutation/Row/InsertMutation.php:102
- type ZtdQuery\Shadow\Mutation\Row\MultiDeleteMutation packages/ztd-query-core/src/Shadow/Mutation/Row/MultiDeleteMutation.php:38
- type ZtdQuery\Shadow\Mutation\Row\MultiUpdateMutation packages/ztd-query-core/src/Shadow/Mutation/Row/MultiUpdateMutation.php:38
- type ZtdQuery\Shadow\Mutation\Row\ReplaceMutation packages/ztd-query-core/src/Shadow/Mutation/Row/ReplaceMutation.php:40
- type ZtdQuery\Shadow\Mutation\Row\ResultSetMutation packages/ztd-query-core/src/Shadow/Mutation/Row/ResultSetMutation.php:22
- type ZtdQuery\Shadow\Mutation\Row\UpdateMutation packages/ztd-query-core/src/Shadow/Mutation/Row/UpdateMutation.php:82
- type ZtdQuery\Shadow\Mutation\ShadowMutation packages/ztd-query-core/src/Shadow/Mutation/ShadowMutation.php:30
- type ZtdQuery\Shadow\Mutation\Table\CreateTableAsSelectMutation packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableAsSelectMutation.php:55
- type ZtdQuery\Shadow\Mutation\Table\CreateTableAsSelectMutation packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableAsSelectMutation.php:63
- type ZtdQuery\Shadow\Mutation\Table\CreateTableLikeMutation packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableLikeMutation.php:49
- type ZtdQuery\Shadow\Mutation\Table\CreateTableMutation packages/ztd-query-core/src/Shadow/Mutation/Table/CreateTableMutation.php:51
- type ZtdQuery\Shadow\Mutation\Table\DropTableMutation packages/ztd-query-core/src/Shadow/Mutation/Table/DropTableMutation.php:48
- type ZtdQuery\Shadow\Mutation\Table\MultiTruncateMutation packages/ztd-query-core/src/Shadow/Mutation/Table/MultiTruncateMutation.php:26
- type ZtdQuery\Shadow\Mutation\Table\SynchronizeMutation packages/ztd-query-core/src/Shadow/Mutation/Table/SynchronizeMutation.php:46
- type ZtdQuery\Shadow\Mutation\Table\TruncateMutation packages/ztd-query-core/src/Shadow/Mutation/Table/TruncateMutation.php:35
- type ZtdQuery\Shadow\Mutation\UpsertMutation packages/ztd-query-core/src/Shadow/Mutation/UpsertMutation.php:117
- type ZtdQuery\Shadow\ParentKeyLookup packages/ztd-query-core/src/Shadow/ParentKeyLookup.php:38
- type ZtdQuery\Shadow\ReferentialIntegrityEnforcer packages/ztd-query-core/src/Shadow/ReferentialIntegrityEnforcer.php:45
- type ZtdQuery\Shadow\ReferentialIntegrityEnforcer packages/ztd-query-core/src/Shadow/ReferentialIntegrityEnforcer.php:46
- type ZtdQuery\Shadow\ShadowApplication packages/ztd-query-core/src/Shadow/ShadowApplication.php:38
- type ZtdQuery\Shadow\ShadowSavepoint packages/ztd-query-core/src/Shadow/ShadowSavepoint.php:31
- type ZtdQuery\Shadow\ShadowSavepoint packages/ztd-query-core/src/Shadow/ShadowSavepoint.php:45
- type ZtdQuery\Shadow\ShadowSavepoint packages/ztd-query-core/src/Shadow/ShadowSavepoint.php:60
- type ZtdQuery\Shadow\ShadowTransactions packages/ztd-query-core/src/Shadow/ShadowTransactions.php:43
- type ZtdQuery\Shadow\TableTransitions packages/ztd-query-core/src/Shadow/TableTransitions.php:55