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

Wenrui Meng commented on CALCITE-5194:
--------------------------------------

[~julianhyde] The nested sql with statements will fail on your fix.  I think 
your fix doesn't cover the nested with scenario. 

 
{code:java}
with a as (with b as (select 1)(select 1)) select * from a  {code}
Here is stack trace 
{code:java}
    at 
org.apache.calcite.sql.parser.SqlParserTest$TesterImpl.parseStmtAndHandleEx(SqlParserTest.java:10184)
    at 
org.apache.calcite.sql.parser.SqlParserTest$TesterImpl.check(SqlParserTest.java:10169)
    at 
org.apache.calcite.sql.parser.SqlParserFixture.ok(SqlParserFixture.java:83)
    at 
org.apache.calcite.sql.parser.SqlParserTest.testNestedWith(SqlParserTest.java:7941)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
    at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at 
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
    at 
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
 ..........
Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered "(" at 
line 1, column 32. {code}
 

> Cannot parse parenthesized UNION in subquery
> --------------------------------------------
>
>                 Key: CALCITE-5194
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5194
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.31.0
>            Reporter: Vova Vysotskyi
>            Assignee: Julian Hyde
>            Priority: Blocker
>             Fix For: 1.31.0
>
>
> The following test:
> {code:java}
>   @Test void testUnionAllInSubquery() {
>     final String sql = "select * from \n" +
>         "((select columns[0] as col0 from emps t1) \n" +
>         "union all \n" +
>         "(select columns[0] c2 from emps t2))";
>     final String expected = "SELECT *\n"
>         + "FROM (SELECT `COLUMNS`[0] AS `COL0`\n"
>         + "FROM `EMPS` AS `T1`\n"
>         + "UNION ALL\n"
>         + "SELECT `COLUMNS`[0] AS `C2`\n"
>         + "FROM `EMPS` AS `T2`)";
>     sql(sql).ok(expected);
>   }
> {code}
> Fails with the following exception:
> {noformat}
> Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered 
> "union" at line 3, column 1.
> Was expecting one of:
>     "AS" ...
>     "CROSS" ...
>     "FULL" ...
>     "INNER" ...
>     "JOIN" ...
>     "LEFT" ...
>     "MATCH_RECOGNIZE" ...
>     "NATURAL" ...
>     "OUTER" ...
>     "RIGHT" ...
>     "TABLESAMPLE" ...
>     ")" ...
>     <BRACKET_QUOTED_IDENTIFIER> ...
>     <QUOTED_IDENTIFIER> ...
>     <BACK_QUOTED_IDENTIFIER> ...
>     <BIG_QUERY_BACK_QUOTED_IDENTIFIER> ...
>     <HYPHENATED_IDENTIFIER> ...
>     <IDENTIFIER> ...
>     <UNICODE_QUOTED_IDENTIFIER> ...
>     
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserImpl.java:398)
>       at 
> org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParserImpl.java:154)
>       at 
> org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:145)
>       at 
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:160)
>       at org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:185)
>       at 
> org.apache.calcite.sql.parser.SqlParserTest$TesterImpl.parseStmtAndHandleEx(SqlParserTest.java:9863)
>       ... 72 more
> {noformat}
> This is a regression caused by changes from CALCITE-35



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to