classTableValueConstructorRule
final class TableValueConstructorRule
implements RewriteRule
sql_resolver.cc disallows empty rows and DEFAULT outside an INSERT table value constructor.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceCompletes empty query rows with NULL and replaces bare DEFAULT while preserving INSERT sources.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 4
TableValueConstructorRuleTest::testRewriteCompletesBothRowsOfAnInsertSetOperationcallsTableValueConstructorRuleTest::testRewriteCompletesQueryRowsAndPreservesInsertRowscallsTableValueConstructorRuleTest::testRewritePreservesAbsentRowsAndMissingValueProductionscallsTableValueConstructorRuleTest::testRewriteRecordsEmptyProductionAndReplacementProvenancecalls
Calls 5
- method-call TerminalSequence::occurrences() line 24
- method-call TerminalSequence::range() line 25
- method-call TableValueConstructorRule::isInsertSource() line 30
- method-call TerminalSequence::child() line 33
- function-call
countline 45
public function isInsertSource(TerminalSequence $sequence, TerminalOccurrence $origin): boolMirrors PT_insert's direct-constructor conversion through parentheses, excluding set operations and subqueries.
Parameters
$sequence | TerminalSequence | |
$origin | TerminalOccurrence |
Returns
boolTest cases 1
Called from 1
Test cases 11§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 5
TableValueConstructorRuleTest::testIsInsertSourceExcludesSetOperationscallsTableValueConstructorRuleTest::testRewriteCompletesBothRowsOfAnInsertSetOperationcallsTableValueConstructorRuleTest::testRewriteCompletesQueryRowsAndPreservesInsertRowscallsTableValueConstructorRuleTest::testRewritePreservesAbsentRowsAndMissingValueProductionscallsTableValueConstructorRuleTest::testRewriteRecordsEmptyProductionAndReplacementProvenancecalls
Other tests reaching this symbol 6
GenerationContextTestcallsRewriteDefinitionsTestcallsSqlGeneratorFactoryTestcallsMySqlProviderTestcallsPostgreSqlProviderTestcallsSqliteProviderTestcalls