[
https://issues.apache.org/jira/browse/CALCITE-3535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16988619#comment-16988619
]
Ruben Q L edited comment on CALCITE-3535 at 12/5/19 9:59 AM:
-------------------------------------------------------------
CALCITE-3546 has been merged, I have rebased the
[PR|https://github.com/apache/calcite/pull/1616] and, as expected, the deadlock
issues are solved.
BTW, while working on this, I have just noticed a bug in
{{Linq4j.CompositeEnumerable#enumerator}} method: the {{enumerableEnumerator}}
was not re-initiliazed on each {{enumerator()}} called, and it must be. The
problem came to the surface in some testes thanks to the latest NestedLoopJoin
optimized algorithm (CALCITE-3546), which re-takes an inner enumerator every
time that we move forward in the outer loop:
https://github.com/apache/calcite/blob/3559b3bc0491608d8c5ca9d55b57736df29ae369/linq4j/src/main/java/org/apache/calcite/linq4j/EnumerableDefaults.java#L1904
was (Author: rubenql):
CALCITE-3546 has been merged, I have rebased the
[PR|https://github.com/apache/calcite/pull/1616] and, as expected, the deadlock
issues are solved.
BTW, while working on this, I have just noticed a bug in
{{Linq4j.CompositeEnumerable#enumerator}} method: the {{enumerableEnumerator}}
was not re-initiliazed on each {{enumerator()}} called, and it must be. The
problem came to the surface in some testes thanks to the latest NestedLoopJoin
optimized algorithm (CALCITE-3546), which re-takes an inner enumerator every
time that we move forward in the outer loop:
https://github.com/apache/calcite/blob/3559b3bc0491608d8c5ca9d55b57736df29ae369/linq4j/src/main/java/org/apache/calcite/linq4j/EnumerableDefaults.java#L1904
> EnumerableJoinRule: remove unnecessary Filter on top of INNER Join
> ------------------------------------------------------------------
>
> Key: CALCITE-3535
> URL: https://issues.apache.org/jira/browse/CALCITE-3535
> Project: Calcite
> Issue Type: Task
> Components: core
> Affects Versions: 1.21.0
> Reporter: Ruben Q L
> Assignee: Ruben Q L
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.22.0
>
> Attachments: threadDump.txt
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> With the implementation of CALCITE-2973, now EnumerableHashJoin supports all
> type of conditions (not just equi joins). However, there is still one
> [TODO|https://github.com/apache/calcite/blob/07c1efbb2b42a0e27f9d01968d357d9c1e17cd51/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoinRule.java#L89]
> in EnumerableHashJoinRule that, in case of an INNER Join, creates a Filter
> with the non-equi conditions on top of the EnumerableHashJoin (created only
> with the equi-conditions), this filter is not really needed, since now
> EnumerableHashJoinRule can support the full condition: equi and non-equi
> items.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)