[
https://issues.apache.org/jira/browse/CALCITE-2722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16770003#comment-16770003
]
Hongze Zhang commented on CALCITE-2722:
---------------------------------------
+1 for the changes.
> SqlImplementor createLeftCall method throws StackOverflowError
> --------------------------------------------------------------
>
> Key: CALCITE-2722
> URL: https://issues.apache.org/jira/browse/CALCITE-2722
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Mykola Zerniuk
> Assignee: Julian Hyde
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> SqlImplementor _createLeftCall_ method is implemented using recursion. In
> this case if sql has a lot of AND or OR operators it throws
> StackOverflowError.
> {code:java}
> Caused by: java.lang.StackOverflowError
> at org.apache.calcite.util.Util.skipLast(Util.java:1940)
> at org.apache.calcite.util.Util.skipLast(Util.java:1935)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.createLeftCall(SqlImplementor.java:763)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.createLeftCall(SqlImplementor.java:765)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.createLeftCall(SqlImplementor.java:765){code}
> Since calcite converts IN list to OR this bug is also reproduces on huge IN
> list.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)