classConcatenationRule
final class ConcatenationRule
implements RewriteRule
Default SQL mode scans || as OR2_SYM; the OR_OR_SYM production constructs Item_func_concat. Preserve its operands and precedence by expressing that production as a native function call.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceRewrites innermost concatenations first, retaining the identities of both operand subtrees.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 5
ConcatenationRuleTest::testRewritePreservesNestedOperandsAndPrecedencecovers and callsConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductionscallsConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductions#0coversConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductions#1coversConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductions#2covers
Calls 4
- method-call TerminalSequence::occurrences() line 25
- method-call TerminalSequence::range() line 26
- function-call
countline 32 - function-call
array_sliceline 39
Test cases 9§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 5
ConcatenationRuleTest::testRewritePreservesNestedOperandsAndPrecedencecovers and callsConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductionscallsConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductions#0coversConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductions#1coversConcatenationRuleTest::testRewritePreservesUnrelatedAndEmptyProductions#2covers
Other tests reaching this symbol 4
GenerationContextTestcallsRewriteDefinitionsTestcallsMySqlProviderTestcallsSqlGeneratorFactoryTestcalls