classSqliteNativeUpsertProjector
final class SqliteNativeUpsertProjector
Builds SQL projections that evaluate upsert expressions using SQLite.
Methods§
public function __construct()Binds the dependencies used by this operation.
Calls 1
public function project(
string $incomingSql,
string $tableName,
list<string> $tableColumns,
array<string, array<int, string>> $candidateKeys,
array<string, string> $assignments,
?string $predicate = null,
?string $conflictPredicate = null,
): stringParameters
$incomingSql | string | |
$tableName | string | |
$tableColumns | list<string> | |
$candidateKeys | array<string, array<int, string>> | |
$assignments | array<string, string> | |
$predicate | ?string | |
$conflictPredicate | ?string |
Returns
stringTest cases 6
SqliteNativeUpsertProjectorTest::testBindsConflictPredicateToExistingAndIncomingRowscallsSqliteNativeUpsertProjectorTest::testBindsQualifiedAndQuotedIdentifiersWithoutChangingForeignNamespacescallsSqliteNativeUpsertProjectorTest::testBindsUnqualifiedQuotedIdentifiercallsSqliteNativeUpsertProjectorTest::testMatchesColumnsAndIncomingNamespaceCaseInsensitivelycallsSqliteNativeUpsertProjectorTest::testProjectKeepsIdentifiersInsideScalarSubqueryInTheirNativeScopecallsSqliteNativeUpsertProjectorTest::testReturnsIncomingProjectionWhenConflictMetadataIsUnavailablecalls
Called from 1
Calls 12
- new UpsertExpressionBinder line 53
- method-call IdentifierQuoter::quote() line 54
- class-const SqliteNativeUpsertProjector::INCOMING_ALIAS() line 54
- class-const SqliteNativeUpsertProjector::EXISTING_ALIAS() line 55
- method-call UpsertConflictPredicate::conflictPredicate() line 57
- new UpsertConflictPredicate line 57
- method-call UpsertExpressionBinder::bindExpression() line 59
- new UpsertMutationRow line 69
- function-call
array_valuesline 70 - method-call UpsertMutationRow::valueColumn() line 72
- method-call UpsertMutationRow::predicateColumn() line 77
- function-call
implodeline 81
Private surface 4§
Implementation details, listed for orientation only.
private const INCOMING_ALIAS = '__ztd_incoming'private const EXISTING_ALIAS = '__ztd_existing'private IdentifierQuoter $quoterprivate non-empty-list<string> $incomingNamespacesTest cases 11§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
SqliteNativeUpsertProjectorTest::testBindsConflictPredicateToExistingAndIncomingRowscallsSqliteNativeUpsertProjectorTest::testBindsQualifiedAndQuotedIdentifiersWithoutChangingForeignNamespacescallsSqliteNativeUpsertProjectorTest::testBindsUnqualifiedQuotedIdentifiercallsSqliteNativeUpsertProjectorTest::testMatchesColumnsAndIncomingNamespaceCaseInsensitivelycallsSqliteNativeUpsertProjectorTest::testProjectKeepsIdentifiersInsideScalarSubqueryInTheirNativeScopecallsSqliteNativeUpsertProjectorTest::testReturnsIncomingProjectionWhenConflictMetadataIsUnavailablecalls
Other tests reaching this symbol 5
SqliteRewriterTestcallsStatementRewriterTestcallsInsertTransformerTestcallsSqliteTransformerTestcallsSqliteSessionFactoryTestcalls