[
https://issues.apache.org/jira/browse/DRILL-8400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Turton updated DRILL-8400:
--------------------------------
Affects Version/s: 1.20.3
> 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
>
> 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)