classOrderByRule
final class OrderByRule
implements RewriteRule
sql_yacc.yy alter_order_list shifts comma plus identifier before reducing alter_list. Keeping ORDER BY last prevents a following nonreserved action from becoming an order item.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceOrders each independent ALTER action list without crossing nested or separate statement scopes.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 4
OrderByRuleTest::testReorderPreservesAnOrderByThatAlreadyEndsItsOwnStatementcovers and callsOrderByRuleTest::testRewriteCombinesRepeatedOrderByActionsIntoOneColumnListcovers and callsOrderByRuleTest::testRewriteMovesTheCompleteOrderListAfterFollowingActionscovers and callsOrderByRuleTest::testRewritePreservesUnrelatedOrderByTokenscovers and calls
Calls 2
- function-call
array_uniqueline 31 - method-call OrderByRule::reorder() line 32
public function reorder(TerminalSequence $sequence, int $id): TerminalSequenceStably moves complete ORDER BY actions after other actions, retaining original terminal identities.
Parameters
$sequence | TerminalSequence | |
$id | int |
Returns
Test cases 3
Called from 1
Calls 6
- method-call TerminalSequence::range() line 42
- function-call
array_sliceline 48 - function-call
countline 49 - new TerminalOccurrence line 74
- function-call
array_pushline 77 - method-call TerminalSequence::replace() line 79
Test cases 10§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 4
OrderByRuleTest::testReorderPreservesAnOrderByThatAlreadyEndsItsOwnStatementcovers and callsOrderByRuleTest::testRewriteCombinesRepeatedOrderByActionsIntoOneColumnListcovers and callsOrderByRuleTest::testRewriteMovesTheCompleteOrderListAfterFollowingActionscovers and callsOrderByRuleTest::testRewritePreservesUnrelatedOrderByTokenscovers and calls
Other tests reaching this symbol 6
GenerationContextTestcallsRewriteDefinitionsTestcallsMySqlProviderTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls