[ 
https://issues.apache.org/jira/browse/DRILL-8400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Turton updated DRILL-8400:
--------------------------------
    Fix Version/s: 1.21.0

> Fix pruning partitions with pushed transitive predicates
> --------------------------------------------------------
>
>                 Key: DRILL-8400
>                 URL: https://issues.apache.org/jira/browse/DRILL-8400
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.20.3
>            Reporter: Vova Vysotskyi
>            Assignee: Vova Vysotskyi
>            Priority: Major
>             Fix For: 1.21.0
>
>
> See {{TestHivePartitionPruning.prunePartitionsBasedOnTransitivePredicates()}} 
> test for details.
> The issue occurs for queries like these:
> {code:sql}
> SELECT * FROM hive.partition_pruning_test t1 
> JOIN hive.partition_with_few_schemas t2 ON t1.`d` = t2.`d` AND t1.`e` = 
> t2.`e` 
> WHERE t2.`e` IS NOT NULL AND t1.`d` = 1
> {code}
> The expected behavior is to create additional filters based on the existing 
> filters and join conditions. We have a {{TRANSITIVE_CLOSURE}} planning phase, 
> which is responsible for such query transformations, but Drill pushes down 
> filters from the WHERE condition before that phase, so the optimization is 
> not performed.
> Ideally, we should move rules from the {{TRANSITIVE_CLOSURE}} phase to the 
> {{LOGICAL}} phase so that the planner will choose the most optimal plan, but 
> it wouldn't help until CALCITE-1048 is fixed (it is required to pull 
> predicates when three has {{RelSubset}} nodes).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to