classRoleGrantRule
final class RoleGrantRule
implements RewriteRule
sql_yacc.yy/grant and revoke share privilege syntax, but PT_grant_roles requires role identifiers without ON.
Methods§
public function rewrite(TerminalSequence $sequence): TerminalSequenceTurns static privileges into role names only in a role grant or revoke, retaining host-qualified roles.
Parameters
$sequence | TerminalSequence |
Returns
Test cases 5
RoleGrantRuleTest::testRewriteChangesPrivilegesToRolesOnlyWithoutAnOnTargetcovers and callsRoleGrantRuleTest::testRewriteKeepsAPrivilegeGrantWithAnExplicitTargetcovers and callsRoleGrantRuleTest::testRewritePreservesARoleNameButRemovesItsInvalidColumnListcovers and callsRoleGrantRuleTest::testRewriteRemovesAHostOnlyWhenTheRoleIsUsedAsAPrivilegecovers and callsRoleGrantRuleTest::testRewriteRemovesColumnListsFromRoutinePrivilegescovers and calls
Calls 4
- method-call TerminalSequence::occurrences() line 24
- method-call TerminalSequence::range() line 25
- method-call TerminalSequence::child() line 34
- method-call RoleGrantRule::privilege() line 35
public function privilege(TerminalSequence $sequence, int $id, int $statement): TerminalSequencePT_role_at_host has no privilege form; sql_yacc.yy:grant/revoke restrict column lists to table privileges.
Parameters
$sequence | TerminalSequence | |
$id | int | |
$statement | int |
Returns
Test cases 4
RoleGrantRuleTest::testPrivilegePreservesMissingOccurrencescovers and callsRoleGrantRuleTest::testRewriteKeepsAPrivilegeGrantWithAnExplicitTargetcoversRoleGrantRuleTest::testRewriteRemovesAHostOnlyWhenTheRoleIsUsedAsAPrivilegecoversRoleGrantRuleTest::testRewriteRemovesColumnListsFromRoutinePrivilegescovers
Called from 1
Calls 4
- method-call TerminalSequence::child() line 58
- method-call TerminalSequence::range() line 59
- method-call TerminalSequence::nameAt() line 61
- function-call
in_arrayline 68
Test cases 12§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
RoleGrantRuleTest::testPrivilegePreservesMissingOccurrencescovers and callsRoleGrantRuleTest::testRewriteChangesPrivilegesToRolesOnlyWithoutAnOnTargetcovers and callsRoleGrantRuleTest::testRewriteKeepsAPrivilegeGrantWithAnExplicitTargetcovers and callsRoleGrantRuleTest::testRewritePreservesARoleNameButRemovesItsInvalidColumnListcovers and callsRoleGrantRuleTest::testRewriteRemovesAHostOnlyWhenTheRoleIsUsedAsAPrivilegecovers and callsRoleGrantRuleTest::testRewriteRemovesColumnListsFromRoutinePrivilegescovers and calls
Other tests reaching this symbol 6
GenerationContextTestcallsRewriteDefinitionsTestcallsMySqlProviderTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsSqliteProviderTestcalls