classFunctionNameRule
final class FunctionNameRule
implements RewriteRule
gram.y/check_func_name accepts String name components, excluding A_Star and A_Indices. catalog/namespace.c DeconstructQualifiedName limits function lookup to three components.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceReplaces non-name components with named qualification, preserving ColId disambiguation and column subscripts.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 5
FunctionNameRuleTest::testRewriteKeepsFunctionQualificationAndColumnIndirectioncovers and callsFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunctioncallsFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunction#callcoversFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunction#signaturecoversFunctionNameRuleTest::testRewriteReplacesAStarBetweenUnaffectedExpressionsAndKeepsTrailingOutputcovers and calls
Calls 4
- function-call
array_reverseline 26 - method-call TerminalSequence::occurrences() line 26
- method-call TerminalSequence::range() line 27
- method-call FunctionNameRule::isFunctionName() line 32
public function isFunctionName(list<string> $rules): boolChecks the parent of the indirection chain so expressions inside argument types retain subscripts.
Parameters
$rules | list<string> |
Returns
boolTest cases 5
FunctionNameRuleTest::testIsFunctionNameRejectsArgumentExpressionsAndRecognizesRecursiveIndirectioncovers and callsFunctionNameRuleTest::testRewriteKeepsFunctionQualificationAndColumnIndirectioncoversFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunction#callcoversFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunction#signaturecoversFunctionNameRuleTest::testRewriteReplacesAStarBetweenUnaffectedExpressionsAndKeepsTrailingOutputcovers
Called from 1
Test cases 12§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
FunctionNameRuleTest::testIsFunctionNameRejectsArgumentExpressionsAndRecognizesRecursiveIndirectioncovers and callsFunctionNameRuleTest::testRewriteKeepsFunctionQualificationAndColumnIndirectioncovers and callsFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunctioncallsFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunction#callcoversFunctionNameRuleTest::testRewriteLimitsFunctionNamesToCatalogSchemaAndFunction#signaturecoversFunctionNameRuleTest::testRewriteReplacesAStarBetweenUnaffectedExpressionsAndKeepsTrailingOutputcovers and calls
Other tests reaching this symbol 6
MySqlProviderTestcallsGenerationContextTestcallsRewriteDefinitionsTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls