classValueArityRule
final class ValueArityRule
implements RewriteRule
parse_tree_partitions.cc requires a common value width, and two or more fields for LIST rows. Runs after kind selection, expression grouping and scalar-list disambiguation.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceUses declared columns or the first ALTER value shape independently for each definition list.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 9
ValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionListcallsValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#0coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#1coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#2coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#3coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#4coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#5coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#6coversValueArityRuleTest::testRewriteLeavesEmptyAndUnscopedFragmentsAlonecovers and calls
Calls 15
- new ValueShape line 26
- function-call
array_reverseline 27 - method-call TerminalSequence::occurrences() line 27
- method-call TerminalSequence::range() line 28
- function-call
array_searchline 33 - method-call TerminalSequence::nameAt() line 37
- function-call
array_sliceline 39 - function-call
countline 42 - method-call ValueShape::rows() line 42
- function-call
maxline 44 - method-call ValueArityRule::declaredWidth() line 46
- function-call
minline 46 - method-call ValueShape::resize() line 48
- function-call
array_columnline 49 - method-call TerminalSequence::insertedFor() line 54
public function declaredWidth(TerminalSequence $sequence, ?int $clause): ?intExpression partitioning has one value per bound; COLUMNS declares its own tuple width.
Parameters
$sequence | TerminalSequence | |
$clause | ?int |
Returns
?intTest cases 9
ValueArityRuleTest::testDeclaredWidthReadsTheColumnsOfTheOwningClausecovers and callsValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#0coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#1coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#2coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#3coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#4coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#5coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#6coversValueArityRuleTest::testRewriteLeavesEmptyAndUnscopedFragmentsAlonecovers and calls
Called from 1
Calls 7
- method-call TerminalSequence::child() line 67
- method-call TerminalSequence::range() line 68
- method-call TerminalSequence::nameAt() line 72
- function-call
countline 75 - method-call ValueShape::split() line 75
- new ValueShape line 75
- function-call
array_sliceline 75
Test cases 16§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 10
ValueArityRuleTest::testDeclaredWidthReadsTheColumnsOfTheOwningClausecovers and callsValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionListcallsValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#0coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#1coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#2coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#3coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#4coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#5coversValueArityRuleTest::testRewriteCoordinatesAllValuesInTheSamePartitionList#6coversValueArityRuleTest::testRewriteLeavesEmptyAndUnscopedFragmentsAlonecovers and calls
Other tests reaching this symbol 6
GenerationContextTestcallsRewriteDefinitionsTestcallsMySqlProviderTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls