classFetchWithTiesRule
final class FetchWithTiesRule
implements RewriteRule
Completes FETCH WITH TIES ordering in gram.y/insertSelectOptions and PLpgSQL_Expr.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceSupplies an absent ORDER BY and removes the incompatible SKIP LOCKED wait policy.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 8
FetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetchcallsFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetch#0coversFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetch#1coversFetchWithTiesRuleTest::testPlpgsqlFetchDoesNotBorrowOrderingFromANestedSelectcovers and callsFetchWithTiesRuleTest::testPlpgsqlOrderingDoesNotSatisfyANestedSelectcovers and callsFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuerycallsFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuery#0coversFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuery#1covers
Calls 4
- method-call TerminalSequence::occurrences() line 24
- method-call TerminalSequence::range() line 25
- method-call TerminalSequence::nameAt() line 26
- method-call FetchWithTiesRule::ordered() line 34
public function ordered(TerminalSequence $sequence, int $query, int $offset): TerminalSequenceAdds a positional ordering only when the same query has no sort clause.
Parameters
$sequence | TerminalSequence | |
$query | int | |
$offset | int |
Returns
Test cases 11
FetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetchcallsFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetch#0coversFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetch#1coversFetchWithTiesRuleTest::testOrderedPlacesTheNewSortClauseBeforeAnExistingLockingClausecovers and callsFetchWithTiesRuleTest::testOrderedPreservesAnExistingSortClausecallsFetchWithTiesRuleTest::testOrderedPreservesAnExistingSortClause#0coversFetchWithTiesRuleTest::testOrderedPreservesAnExistingSortClause#1coversFetchWithTiesRuleTest::testPlpgsqlFetchDoesNotBorrowOrderingFromANestedSelectcoversFetchWithTiesRuleTest::testPlpgsqlOrderingDoesNotSatisfyANestedSelectcoversFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuery#0coversFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuery#1covers
Called from 1
Calls 5
- method-call TerminalSequence::child() line 58
- method-call TerminalSequence::range() line 59
- function-call
minline 61 - method-call TerminalSequence::replace() line 67
- method-call TerminalSequence::insertedFor() line 68
Test cases 18§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 12
FetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetchcallsFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetch#0coversFetchWithTiesRuleTest::testOrderedPlacesOrderingBeforeOffsetAndFetch#1coversFetchWithTiesRuleTest::testOrderedPlacesTheNewSortClauseBeforeAnExistingLockingClausecovers and callsFetchWithTiesRuleTest::testOrderedPreservesAnExistingSortClausecallsFetchWithTiesRuleTest::testOrderedPreservesAnExistingSortClause#0coversFetchWithTiesRuleTest::testOrderedPreservesAnExistingSortClause#1coversFetchWithTiesRuleTest::testPlpgsqlFetchDoesNotBorrowOrderingFromANestedSelectcovers and callsFetchWithTiesRuleTest::testPlpgsqlOrderingDoesNotSatisfyANestedSelectcovers and callsFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuerycallsFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuery#0coversFetchWithTiesRuleTest::testRewriteAddsOrderingForTheSameQuery#1covers
Other tests reaching this symbol 6
MySqlProviderTestcallsGenerationContextTestcallsRewriteDefinitionsTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls