Hi Michael,

Do you see a filter pushdown with the following query?

select * from T1 inner join T2 on T1.C = T2.C1 where T2.C2 > 0;


Gautam

________________________________
From: Michael Alexeev <[email protected]>
Sent: Wednesday, August 30, 2017 5:58:04 PM
To: [email protected]
Subject: JoinPushTransitivePredicatesRule

Hi All,

Consider a query

select * from T1 inner join T2 on T1.C = T2.C1 and T2.C2 > 0;

I would expect that the JoinPushTransitivePredicatesRule would push the T2.C2
> 0 expression as a filter down to the inner scan over the T2 table, right?

But, for whatever reason, the inferred RelOptPredicateList
<https://calcite.apache.org/apidocs/org/apache/calcite/plan/RelOptPredicateList.html>
has
both left and right predicate lists empty inside
JoinPushTransitivePredicatesRule.onMatch call thus the whole original ON
expression stays at the join node.

Is my expectation wrong? If so, is there a way to push inner/outer filters
to corresponding join nodes?

Thanks,
Mike

Reply via email to