[
https://issues.apache.org/jira/browse/IGNITE-21281?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov updated IGNITE-21281:
--------------------------------------
Labels: ignite-3 (was: )
> Sql. Partition pruning. Integrate static partition pruning into MODIFY
> statements execution pipeline.
> -----------------------------------------------------------------------------------------------------
>
> Key: IGNITE-21281
> URL: https://issues.apache.org/jira/browse/IGNITE-21281
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Affects Versions: 3.0.0-beta2
> Reporter: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
>
> Given partition pruning information for each scan operator of a QueryPlan, we
> can evaluate a partition pruning predicate against statement's execution
> context to prune partitions that modify operations won't touch.
> 1. Traverse fragment tree to analyze inputs of DML operations:
> - If Modify operation accepts Scan operation as an input (UPDATE), we do
> not need to do anything when both operations are collocated and this case is
> covered by https://issues.apache.org/jira/browse/IGNITE-21279).
> - For operations that accept INSERT/ MERGE, we need to consider values of
> colocation key columns of both Value and Projection operators, since SQL's
> VALUES accepts DEFAULT expression.
> 2. Use affinity function and statement's execution context to evaluate
> partition pruning predicates for each scan operator, so enlist is only called
> for partitions that should be scanned/modified.
> After this issue is resolved, partition pruning should work for INSERT,
> UPDATE, MERGE, and DELETE statements.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)