calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gautam Parai <>
Subject Re: JoinPushTransitivePredicatesRule
Date Thu, 31 Aug 2017 01:39:04 GMT
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;


From: Michael Alexeev <>
Sent: Wednesday, August 30, 2017 5:58:04 PM
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
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?


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message