classStatementRewriter
final class StatementRewriter
Restricted visibility: declared "@visibility ZtdQuery\Platform\MySql". Code outside that scope must not name this declaration.
Statement Rewriter.
Methods§
public function __construct(
private MySqlCteShadowComposer $cteComposer,
private MySqlQueryGuard $guard,
private MySqlMutationResolver $mutationResolver,
private MySqlParser $parser,
private TableDefinitionRegistry $registry,
private ShadowStore $shadowStore,
private MySqlTransformer $transformer,
private ViewDefinitionSet $views,
)Configure the dependencies used by this operation.
Parameters
$cteComposer | MySqlCteShadowComposer | |
$guard | MySqlQueryGuard | |
$mutationResolver | MySqlMutationResolver | |
$parser | MySqlParser | |
$registry | TableDefinitionRegistry | |
$shadowStore | ShadowStore | |
$transformer | MySqlTransformer | |
$views | ViewDefinitionSet |
public function rewriteStatement(Statement $statement, string $sql): RewritePlanRewrite Statement for the supplied MySQL input.
Parameters
$statement | Statement | |
$sql | string |
Returns
Test cases 1
Called from 1
Calls 17
- method-call MySqlQueryGuard::classify() line 46
- method-call MySqlQueryGuard::classifyStatement() line 47
- new UnsupportedSqlException line 49
- method-call TableContext::buildTableContext() line 52
- new TableContext line 52
- class-const QueryKind::READ() line 54
- method-call TableContext::requireKnownTables() line 55
- method-call MySqlTransformer::transform() line 57
- new RewritePlan line 58
- class-const QueryKind::DDL_SIMULATED() line 61
- method-call AlterTableGuard::hasUnsupportedAlterOperation() line 62
- new AlterTableGuard line 62
- method-call MySqlMutationResolver::resolve() line 66
- method-call StatementRewriter::mutationStatement() line 77
- class-const QueryKind::WRITE_SIMULATED() line 82
- method-call ReplaceColumns::ensureReplaceColumns() line 86
- new ReplaceColumns line 86
public function mutationStatement(Statement $statement, string $sql): StatementResolve the main mutation statement behind an optional CTE prefix.
Parameters
$statement | Statement | |
$sql | string |
Returns
StatementTest cases 1
Called from 1
Calls 2
- method-call MySqlParser::parse() line 99
- method-call MySqlCteShadowComposer::statementSql() line 99
Private surface 8§
Implementation details, listed for orientation only.
private MySqlCteShadowComposer $cteComposerprivate MySqlQueryGuard $guardprivate MySqlMutationResolver $mutationResolverprivate MySqlParser $parserprivate TableDefinitionRegistry $registryprivate ShadowStore $shadowStoreprivate MySqlTransformer $transformerprivate ViewDefinitionSet $viewsTest cases 4§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 2
Other tests reaching this symbol 2
MySqlSessionFactoryTestcallsMySqlRewriterTestcalls