[
https://issues.apache.org/jira/browse/CALCITE-3479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17066260#comment-17066260
]
Xiening Dai commented on CALCITE-3479:
--------------------------------------
[~neoremind] CALCITE-2166 is not fixed completely. In order to fix it, we would
need to make sure for a given RelSet, the implementation and enforcement rules
are *always* fired after transformation rules - that how we can guarantee that
the row count and other logical properties won't change, thus we won't have
inconsistency issues down the road. But that would require quite some bit of
design changes to current volcano planner.
> 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
> Labels: pull-request-available
> Fix For: 1.22.0
>
> Attachments: IMG_5089.jpg, TestCalcite.java
>
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> 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)