classWindowFrameRule
final class WindowFrameRule
implements RewriteRule
Implements the relative boundary order required by window.c/sqlite3WindowAlloc.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceCompletes short FOLLOWING frames and moves an earlier end to UNBOUNDED FOLLOWING.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 4
WindowFrameRuleTest::testRewriteCompletesAShortFollowingFrameAndKeepsTheChosenOffsetcallsWindowFrameRuleTest::testRewriteLeavesAnEmptyFrameUnchangedcallsWindowFrameRuleTest::testRewritePreservesValidBoundariesAndRepairsInvalidOrderingcallsWindowFrameRuleTest::testRewriteReplacesAnEarlierEndAndRetainsAValidFramecalls
Calls 5
- method-call TerminalSequence::occurrences() line 23
- method-call TerminalSequence::child() line 24
- method-call WindowFrameRule::rank() line 29
- method-call TerminalSequence::range() line 33
- method-call TerminalSequence::nameAt() line 34
public function rank(TerminalSequence $sequence, int $production): intOrders boundary categories exactly as sqlite3WindowAlloc's source comment specifies.
Parameters
$sequence | TerminalSequence | |
$production | int |
Returns
intTest cases 2
Called from 1
Calls 2
- method-call TerminalSequence::range() line 61
- method-call TerminalSequence::nameAt() line 65
Test cases 12§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
WindowFrameRuleTest::testRankClassifiesEndpointsWithoutTreatingOffsetExpressionsAsSeparateBoundscallsWindowFrameRuleTest::testRankRetainsTheFiveSourceBoundaryCategoriescallsWindowFrameRuleTest::testRewriteCompletesAShortFollowingFrameAndKeepsTheChosenOffsetcallsWindowFrameRuleTest::testRewriteLeavesAnEmptyFrameUnchangedcallsWindowFrameRuleTest::testRewritePreservesValidBoundariesAndRepairsInvalidOrderingcallsWindowFrameRuleTest::testRewriteReplacesAnEarlierEndAndRetainsAValidFramecalls
Other tests reaching this symbol 6
MySqlProviderTestcallsPostgreSqlProviderTestcallsGenerationContextTestcallsRewriteDefinitionsTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls