[
https://issues.apache.org/jira/browse/CALCITE-3479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16968592#comment-16968592
]
Julian Hyde commented on CALCITE-3479:
--------------------------------------
Based on the call stack, it looks as if the cheapest plan includes a
{{RelSubset}} that is an input to itself. This is not supposed to happen,
because even if a {{RelSubset}} is input to itself (which is allowed, for some
complicated reasons) there ought to be a cheaper input. If there is no cheaper
input then the cost of the {{RelSubset}}, and indeed of the whole plan will be
infinite, and we don't have a feasible plan.
> Stack overflow error thrown when running join query
> ---------------------------------------------------
>
> Key: CALCITE-3479
> URL: https://issues.apache.org/jira/browse/CALCITE-3479
> Project: Calcite
> Issue Type: Bug
> Reporter: Amit Chavan
> Priority: Major
> Attachments: TestCalcite.java
>
>
> A unit test in our project is failing which is as below.
> The query in question is
> {code}SELECT * FROM tblspace1.t1 t10, tblspace1.t2 t20 WHERE t20.n1 = 3 AND
> t10.n1 = 3 AND t20.n1 = t10.n1{code}
> I get a stack overflow error-
> {noformat}
> -- Mid Plan-- Mid Plan
> LogicalProject(subset=[rel#19:Subset#4.ENUMERABLE.[]], k1=[$0], n1=[$1],
> s1=[$2], k2=[$3], n10=[$4], s2=[$5])
> LogicalFilter(subset=[rel#16:Subset#3.NONE.[]], condition=[AND(=($4, 3),
> =($1, 3), =($4, $1))])
> LogicalJoin(subset=[rel#14:Subset#2.NONE.[]], condition=[true],
> joinType=[inner])
> EnumerableTableScan(subset=[rel#11:Subset#0.ENUMERABLE.[]],
> table=[[tblspace1, t1]])
> EnumerableTableScan(subset=[rel#12:Subset#1.ENUMERABLE.[]],
> table=[[tblspace1, t2]])
> {noformat}
> {code}
> java.lang.StackOverflowError at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:639)
> at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:643)
> at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:643)
> at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:643)
> at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:643)
> at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:643)
> {code}
> Also attaching the UT code in the ticket
--
This message was sent by Atlassian Jira
(v8.3.4#803005)