classJsonOptionsRule
final class JsonOptionsRule
implements RewriteRule
Applies syntax-level SQL/JSON option restrictions from parse_expr.c/transformJsonFuncExpr.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceKeeps options scoped to their function or JSON_TABLE column, preserving nested expressions.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 20
JsonOptionsRuleTest::testReturningFormatRemovesOnlyJsonValueOutputFormatAndRetainsNestedJsonInputFormatcovers and callsJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternativescallsJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#column defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists falsecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists nullcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists truecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists unknowncoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query truecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#unrelated functioncoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value nullcoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrappercallsJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#keep wrapped stringscoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#omit unwrapped stringscoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#omit wrapped stringscovers
Calls 6
- method-call TerminalSequence::occurrences() line 24
- method-call TerminalSequence::range() line 25
- method-call TerminalSequence::nameAt() line 29
- method-call TerminalSequence::child() line 30
- method-call JsonOptionsRule::returningFormat() line 42
- method-call JsonOptionsRule::behaviors() line 51
public function returningFormat(TerminalSequence $sequence, int $owner): TerminalSequenceRemoves only the explicit output format forbidden by JSON_VALUE.
Parameters
$sequence | TerminalSequence | |
$owner | int |
Returns
Test cases 4
JsonOptionsRuleTest::testReturningFormatRemovesOnlyJsonValueOutputFormatAndRetainsNestedJsonInputFormatcovers and callsJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value nullcovers
Called from 1
Calls 3
- method-call TerminalSequence::child() line 63
- method-call TerminalSequence::range() line 65
- method-call TerminalSequence::replace() line 66
public function behaviors(
TerminalSequence $sequence,
int $owner,
list<string> $allowed,
): TerminalSequenceRetains valid behavior alternatives and replaces only those forbidden for this function.
Parameters
$sequence | TerminalSequence | |
$owner | int | |
$allowed | list<string> |
Returns
Test cases 18
JsonOptionsRuleTest::testBehaviorsPreservesEmptyAndUnrelatedChildProductionscovers and callsJsonOptionsRuleTest::testReturningFormatRemovesOnlyJsonValueOutputFormatAndRetainsNestedJsonInputFormatcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#column defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists falsecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists nullcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists truecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists unknowncoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query truecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value nullcoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#keep wrapped stringscoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#omit unwrapped stringscoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#omit wrapped stringscovers
Called from 1
Calls 4
- method-call TerminalSequence::child() line 76
- method-call TerminalSequence::range() line 84
- function-call
in_arrayline 85 - method-call TerminalSequence::nameAt() line 85
Test cases 27§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 21
JsonOptionsRuleTest::testBehaviorsPreservesEmptyAndUnrelatedChildProductionscovers and callsJsonOptionsRuleTest::testReturningFormatRemovesOnlyJsonValueOutputFormatAndRetainsNestedJsonInputFormatcovers and callsJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternativescallsJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#column defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists falsecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists nullcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists truecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#exists unknowncoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#query truecoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#unrelated functioncoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value defaultcoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value emptycoversJsonOptionsRuleTest::testRewritePreservesAllowedBehaviorsAndRepairsForbiddenAlternatives#value nullcoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrappercallsJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#keep wrapped stringscoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#omit unwrapped stringscoversJsonOptionsRuleTest::testRewriteScopesQuotesToTheDirectWrapper#omit wrapped stringscovers
Other tests reaching this symbol 6
MySqlProviderTestcallsGenerationContextTestcallsRewriteDefinitionsTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls