classRowMutationResolver
final class RowMutationResolver
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Dml resolver operations for PostgreSQL mutation.
Methods§
public function __construct(
PgSqlParser $parser,
TableDefinitionRegistry $registry,
ShadowStore $shadowStore,
)Supplies the dependencies used by this RowMutationResolver.
Parameters
$parser | PgSqlParser | |
$registry | TableDefinitionRegistry | |
$shadowStore | ShadowStore |
public function resolveInsert(string $sql): ShadowMutationResolve insert.
Parameters
$sql | string |
Returns
Throws
Test cases 2
Called from 1
Calls 13
- method-call PgSqlParser::extractInsertTable() line 51
- new UnsupportedSqlException line 53
- method-call TableDefinitionRegistry::get() line 56
- method-call StorageTable::storageTable() line 58
- new StorageTable line 58
- method-call PgSqlParser::hasOnConflict() line 60
- method-call PgSqlParser::extractOnConflictUpdateColumns() line 61
- method-call PgSqlParser::extractOnConflictTarget() line 65
- new PgSqlUpsertExpressionParser line 75
- method-call RowMutationResolver::resolveUpsert() line 78
- new InsertMutation line 81
- method-call PgSqlUpsertExpressionParser::parse() line 87
- method-call RowMutationResolver::resolvePlainInsert() line 92
public function resolvePlainInsert(
string $sql,
string $storageTable,
list<string> $primaryKeys,
?TableDefinition $definition,
): ShadowMutationPreserve the reflected constraints when resolving an ordinary INSERT.
Parameters
$sql | string | |
$storageTable | string | |
$primaryKeys | list<string> | |
$definition | ?TableDefinition |
Returns
Called from 1
Calls 1
public function resolveUpdate(string $sql): ShadowMutationResolve update.
Parameters
$sql | string |
Returns
Test cases 1
Called from 1
Calls 10
- method-call PgSqlParser::extractUpdateTable() line 120
- new UnsupportedSqlException line 122
- method-call TableDefinitionRegistry::get() line 125
- method-call ShadowStore::state() line 126
- class-const ShadowTableState::Initialized() line 126
- new UnknownSchemaException line 127
- method-call StorageTable::storageTable() line 130
- new StorageTable line 130
- method-call ShadowStore::ensure() line 131
- new UpdateMutation line 134
public function resolveDelete(string $sql): ShadowMutationResolve delete.
Parameters
$sql | string |
Returns
Test cases 1
Called from 1
Calls 10
- method-call PgSqlParser::extractDeleteTable() line 144
- new UnsupportedSqlException line 146
- method-call TableDefinitionRegistry::get() line 149
- method-call ShadowStore::state() line 150
- class-const ShadowTableState::Initialized() line 150
- new UnknownSchemaException line 151
- method-call StorageTable::storageTable() line 154
- new StorageTable line 154
- method-call ShadowStore::ensure() line 155
- new DeleteMutation line 158
public function resolveMerge(string $sql): ShadowMutationResolve merge.
Parameters
$sql | string |
Returns
Throws
Test cases 1
Called from 1
Calls 9
- method-call PgSqlMergeParser::parse() line 167
- new PgSqlMergeParser line 167
- method-call TableDefinitionRegistry::get() line 168
- method-call ShadowStore::state() line 170
- class-const ShadowTableState::Initialized() line 170
- new UnknownSchemaException line 172
- new SynchronizeMutation line 175
- method-call StorageTable::storageTable() line 176
- new StorageTable line 176
public function resolveTruncate(string $sql): ShadowMutationResolve truncate.
Parameters
$sql | string |
Returns
Throws
Test cases 1
Called from 1
Calls 5
- method-call PgSqlParser::extractTruncateTables() line 188
- new UnsupportedSqlException line 190
- function-call
countline 192 - new MultiTruncateMutation line 193
- new TruncateMutation line 196
public function resolveUpsert(
string $sql,
string $tableName,
string $storageTable,
list<string> $primaryKeys,
array{columns: list<string>, values: array<string, string>} $conflictInfo,
?CandidateKeySet $candidateKeys,
?string $conflictPredicate,
): ShadowMutationResolves update expressions using database evaluation whenever a candidate key permits it.
Parameters
$sql | string | |
$tableName | string | |
$storageTable | string | |
$primaryKeys | list<string> | |
$conflictInfo | array{columns: list<string>, values: array<string, string>} | |
$candidateKeys | ?CandidateKeySet | |
$conflictPredicate | ?string |
Returns
Throws
Test cases 1
Called from 1
Calls 5
Private surface 3§
Implementation details, listed for orientation only.
private PgSqlParser $parserprivate TableDefinitionRegistry $registryprivate ShadowStore $shadowStoreTest cases 12§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 8
RowMutationResolverTest::testResolveDeleteMatchesThePrimaryKeycallsRowMutationResolverTest::testResolveInsertAppliesOnlyReturnedRowscallsRowMutationResolverTest::testResolveMergeSynchronizesTheProjectedTargetcallsRowMutationResolverTest::testResolvePlainInsertRejectsDuplicateKeysAtomicallycallsRowMutationResolverTest::testResolvePlainInsertRejectsNullViolationsAtomicallycallsRowMutationResolverTest::testResolveTruncateIncludesEveryExplicitTargetcallsRowMutationResolverTest::testResolveUpdatePreservesTheTargetIdentitycallsRowMutationResolverTest::testResolveUpsertEvaluatesAssignmentsWithoutNativeCandidateKeyscalls
Other tests reaching this symbol 4
PgSqlPlatformTestcallsPgSqlRewriterTestcallsStatementRewriterTestcallsPgSqlMutationResolverTestcalls
Relations§
Instantiated in 5
- new ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:53
- new ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:54
- new ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:55
- new ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:56
- new ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:57
Method calls 5
- method-call ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:53
- method-call ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:54
- method-call ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:55
- method-call ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:56
- method-call ZtdQuery\Platform\Postgres\Shadow\PgSqlMutationResolver::resolve() packages/ztd-query-postgres/src/Shadow/PgSqlMutationResolver.php:57