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

Julian Hyde commented on CALCITE-1503:
--------------------------------------

The attachment is the planner trace log; here is jstack:

{noformat}
"main" #1 prio=5 os_prio=31 tid=0x00007fe6bd005000 nid=0x1403 runnable 
[0x0000700001c1a000]
   java.lang.Thread.State: RUNNABLE
        at 
org.apache.calcite.plan.volcano.RuleQueue.popMatch(RuleQueue.java:479)
        at 
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:797)
        at org.apache.calcite.tools.Programs$5.run(Programs.java:300)
        at 
org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:351)
        at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:155)
        at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:286)
        at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:195)
        at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:740)
        at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:603)
        at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:573)
        at 
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:215)
        at 
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:594)
        - locked <0x0000000772145ea0> (a 
org.apache.calcite.jdbc.CalciteJdbc41Factory$CalciteJdbc41Statement)
        at 
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:615)
        at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149)
        at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218)
{noformat}

The volcano planner is firing rules, and the rule match queue is getting longer 
and longer. I think this is typical of what happens when you use volcano and 
exhaustive join rewrite for join order optimization.

> Infinite loop occurs during query planning
> ------------------------------------------
>
>                 Key: CALCITE-1503
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1503
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.10.0
>            Reporter: Miguel Oliveira
>            Assignee: Julian Hyde
>         Attachments: output
>
>
> The following query:
> {code}
> SELECT count(*) FROM (
>                 SELECT count(v1.`region_id`) `Count Region`, v6.`fullname` 
> `Customer (Name)`
>                 FROM `foodmart`.`region` v1
>                 JOIN `foodmart`.`store` v3 ON v1.`region_id` = v3.`region_id`
>                 JOIN `foodmart`.`customer` v6 ON v1.`region_id` = 
> v6.`customer_region_id`
>                 JOIN `foodmart`.`sales_fact_1998` v15 ON v3.`store_id` = 
> v15.`store_id` AND v6.`customer_id` = v15.`customer_id`
>                 WHERE v3.`store_name` LIKE '%Grocery%'
>                 GROUP BY v6.`customer_region_id`,v6.`fullname`)  a 
> {code}
> causes an infinite loop during query plan.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to