Thanks Julian. Changed "List<Integer> filterNulls" to "List<Boolean> filterNulls".
I created a JIRA (https://issues.apache.org/jira/browse/CALCITE-1200) and submitted a PR. On Thu, Apr 14, 2016 at 4:17 AM, Julian Hyde <[email protected]> wrote: > splitJoinCondition seems to be the right place. > > I’m not sure I’d have "List<Integer> filterNulls”; I’d have “List<Boolean> > filterNulls” instead, I think, to handle > > select * > from t1 join t2 > on t1.c0 = t2.c0 > and t1.c0 is not distinct from t2.c1 > > Note that t1.c0 is compared using = in one case, > and using is-not-distinct-from in the other case. > So I’d set filterNulls = [true, false]. > > > On Apr 14, 2016, at 9:50 AM, Venki Korukanti <[email protected]> > wrote: > > > > Hi, > > > > In Drill, we have an improvement request to handle null equality joins ( > > DRILL-4539 <https://issues.apache.org/jira/browse/DRILL-4539>). > Currently > > Drill relies on RelOptUtil.splitJoinCondition [1] and [2] to split the > join > > condition into equi-join condition and remained. We tested by modifying > > RelOptUtil.splitJoinCondition to identify null equality condition and > > convert it into IS NOT DISTINCT FROM and it works fine. Changes are [3]. > > > > I am wondering whether modifying the RelOptUtil.splitJoinCondition to > > handle null equality condition is the right way to add the functionality > in > > Calcite. Is there any other place where we can convert the null equality > > condition into IS NOT DISTINCT FROM? > > > > > > [1] > > > https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java#L789 > > > > [2] > > > https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java#L856 > > > > [3] > > > https://github.com/vkorukanti/calcite/commit/ee2292455447bed082438f4eb9bef16025179a44 > > > > Thanks > > Venki > >
