calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gautam Parai <gpa...@mapr.com>
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;


Gautam

________________________________
From: Michael Alexeev <michael.alexeev@gmail.com>
Sent: Wednesday, August 30, 2017 5:58:04 PM
To: dev@calcite.apache.org
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

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