classInsertMutationResolver
final class InsertMutationResolver
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Resolves INSERT conflict behavior against candidate keys.
Methods§
public function __construct(
private SqliteParser $parser,
private TableDefinitionRegistry $registry,
)Binds the collaborators used by this operation.
Parameters
$parser | SqliteParser | |
$registry | TableDefinitionRegistry |
public function resolveInsert(string $sql): ShadowMutationResolves INSERT conflict behavior against candidate keys.
Parameters
$sql | string |
Returns
Throws
Test cases 18
InsertMutationResolverTest::testResolveInsertInsertcallsInsertMutationResolverTest::testResolveInsertInsertIgnorecallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithDefinitionReturnsPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithoutDefinitionReturnsEmptyPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithPrimaryKeysReturnsInsertMutationcallsInsertMutationResolverTest::testResolveInsertInsertIsReplaceReturnsPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertOnConflictDoNothingIsIgnorecallsInsertMutationResolverTest::testResolveInsertInsertOrReplacecallsInsertMutationResolverTest::testResolveInsertInsertTableNamecallsInsertMutationResolverTest::testResolveInsertInsertWithoutTargetThrowscallsInsertMutationResolverTest::testResolveInsertReplacecallsInsertMutationResolverTest::testResolveInsertReplaceTableNamecallsInsertMutationResolverTest::testResolveInsertUpsertcallsInsertMutationResolverTest::testResolveInsertUpsertTableNameAndUpdateColumnscallsInsertMutationResolverTest::testResolveInsertUpsertWithDefinitionPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertUpsertWithDefinitionReturnsPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertUpsertWithoutDefinitionReturnsEmptyPrimaryKeyscalls
Called from 1
Calls 11
- method-call SqliteParser::extractTargetTable() line 38
- new UnsupportedSqlException line 40
- method-call MutationTableLookup::assertTableWasNotRemoved() line 42
- new MutationTableLookup line 42
- method-call SqliteParser::isReplace() line 44
- method-call TableDefinitionRegistry::get() line 45
- new ReplaceMutation line 48
- method-call SqliteParser::hasOnConflict() line 51
- method-call InsertMutationResolver::resolveOnConflict() line 52
- method-call SqliteParser::isInsertIgnore() line 55
- new InsertMutation line 60
public function resolveOnConflict(string $sql, string $tableName): ShadowMutationBuilds an upsert or do-nothing mutation using candidate-key semantics.
Parameters
$sql | string | |
$tableName | string |
Returns
Test cases 2
Called from 1
Calls 8
- method-call TableDefinitionRegistry::get() line 74
- new SqliteUpsertExpressionParser line 80
- method-call SqliteParser::extractOnConflictUpdates() line 81
- method-call SqliteUpsertExpressionParser::parseIfSupported() line 85
- method-call SqliteUpsertExpressionParser::parse() line 86
- method-call SqliteParser::extractOnConflictUpdateWhere() line 91
- new UpsertMutation line 93
- new InsertMutation line 113
Private surface 2§
Implementation details, listed for orientation only.
private SqliteParser $parserprivate TableDefinitionRegistry $registryTest cases 24§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 20
InsertMutationResolverTest::testResolveInsertInsertcallsInsertMutationResolverTest::testResolveInsertInsertIgnorecallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithDefinitionReturnsPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithoutDefinitionReturnsEmptyPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertIgnoreWithPrimaryKeysReturnsInsertMutationcallsInsertMutationResolverTest::testResolveInsertInsertIsReplaceReturnsPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertInsertOnConflictDoNothingIsIgnorecallsInsertMutationResolverTest::testResolveInsertInsertOrReplacecallsInsertMutationResolverTest::testResolveInsertInsertTableNamecallsInsertMutationResolverTest::testResolveInsertInsertWithoutTargetThrowscallsInsertMutationResolverTest::testResolveInsertReplacecallsInsertMutationResolverTest::testResolveInsertReplaceTableNamecallsInsertMutationResolverTest::testResolveInsertUpsertcallsInsertMutationResolverTest::testResolveInsertUpsertTableNameAndUpdateColumnscallsInsertMutationResolverTest::testResolveInsertUpsertWithDefinitionPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertUpsertWithDefinitionReturnsPrimaryKeyscallsInsertMutationResolverTest::testResolveInsertUpsertWithoutDefinitionReturnsEmptyPrimaryKeyscallsInsertMutationResolverTest::testResolveOnConflictConsumesNativeEvaluationMetadatacallsInsertMutationResolverTest::testResolveOnConflictDoNothingPreservesExistingRowcalls
Other tests reaching this symbol 4
SqliteRewriterTestcallsStatementRewriterTestcallsSqliteMutationResolverTestcallsSqliteSessionFactoryTestcalls