You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Daschinsky (Jira)" <ji...@apache.org> on 2021/12/08 09:45:00 UTC

[jira] [Comment Edited] (IGNITE-16046) Calcite engine. Double JOIN hangs on optimization phase

    [ https://issues.apache.org/jira/browse/IGNITE-16046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17454062#comment-17454062 ] 

Ivan Daschinsky edited comment on IGNITE-16046 at 12/8/21, 9:44 AM:
--------------------------------------------------------------------

There is infinite loop in this case in {{org.apache.calcite.plan.volcano.TopDownRuleDriver#drive}}

{code:java}
  try {
      // Iterates until the root is fully optimized.
      while (!tasks.isEmpty()) {
        Task task = tasks.pop();
        description.log(task);
        task.perform();
      }
    } catch (VolcanoTimeoutException ex) {
      LOGGER.warn("Volcano planning times out, cancels the subsequent optimization.");
    }
{code}


was (Author: ivandasch):
There is infinite loop in this case in {{org.apache.calcite.plan.volcano.TopDownRuleDriver#drive}}

> Calcite engine. Double JOIN hangs on optimization phase
> -------------------------------------------------------
>
>                 Key: IGNITE-16046
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16046
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksey Plekhanov
>            Assignee: Ivan Daschinsky
>            Priority: Major
>              Labels: calcite2-required, calcite3-required, ignite-3
>
> Reproducer:
> {noformat}
> CREATE TABLE T1(A INT, B INT);
> CREATE TABLE T2(A INT, C INT);
> CREATE TABLE T3(B INT, C INT);
> SELECT * FROM T1 JOIN T2 ON (T1.A = T2.A) JOIN T3 ON (T1.B = T3.B AND T2.C = T3.C);
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)