[
https://issues.apache.org/jira/browse/DRILL-6173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vitalii Diravka updated DRILL-6173:
-----------------------------------
Description:
There is Calcite rule JoinPushTransitivePredicatesRule but it does not work in
Drill.
Applying it in Drill will allow for equi-join queries to push filter condition
from one table to another:
{code:sql}
select *
from A, B
where
A.id = B.id and
B.id = 100
{code}
In that case it is possible that Scan operator for A table will not scan all
data.
For table A it can lead for applying:
1. [Partition pruning for Hive tables and partiotion/directory pruning for
file system
tables|https://drill.apache.org/docs/partition-pruning-introduction/]
2. [Parquet filter
pushdown|https://drill.apache.org/docs/parquet-filter-pushdown/]
Note: transitive closure doesn't work for some cases, these Calcite issues can
resolve them:
CALCITE-1048, CALCITE-2274, CALCITE-2275, CALCITE-2241.
was:
There is Calcite rule JoinPushTransitivePredicatesRule but it does not work in
Drill.
Applying it in Drill will allow for equi-join queries to push filter condition
from one table to another:
{code:sql}
select *
from A, B
where
A.id = B.id and
B.id = 100
{code}
In that case it is possible that Scan operator for A table will not scan all
data.
For table A it can lead for applying:
1. [Partition pruning for Hive or file system Parquet
tables|https://drill.apache.org/docs/partition-pruning-introduction/]
2. [Parquet filter
pushdown|https://drill.apache.org/docs/parquet-filter-pushdown/]
Note: transitive closure doesn't work for some cases, these Calcite issues can
resolve them:
CALCITE-1048, CALCITE-2274, CALCITE-2275, CALCITE-2241.
> Support transitive closure during filter push down and partition pruning
> ------------------------------------------------------------------------
>
> Key: DRILL-6173
> URL: https://issues.apache.org/jira/browse/DRILL-6173
> Project: Apache Drill
> Issue Type: Improvement
> Components: Query Planning & Optimization
> Affects Versions: 1.12.0
> Reporter: Vitalii Diravka
> Assignee: Vitalii Diravka
> Priority: Major
> Labels: doc-impacting, ready-to-commit
> Fix For: 1.14.0
>
>
> There is Calcite rule JoinPushTransitivePredicatesRule but it does not work
> in Drill.
> Applying it in Drill will allow for equi-join queries to push filter
> condition from one table to another:
> {code:sql}
> select *
> from A, B
> where
> A.id = B.id and
> B.id = 100
> {code}
> In that case it is possible that Scan operator for A table will not scan all
> data.
> For table A it can lead for applying:
> 1. [Partition pruning for Hive tables and partiotion/directory pruning for
> file system
> tables|https://drill.apache.org/docs/partition-pruning-introduction/]
> 2. [Parquet filter
> pushdown|https://drill.apache.org/docs/parquet-filter-pushdown/]
>
> Note: transitive closure doesn't work for some cases, these Calcite issues
> can resolve them:
> CALCITE-1048, CALCITE-2274, CALCITE-2275, CALCITE-2241.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)