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)