[
https://issues.apache.org/jira/browse/CALCITE-5194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17558827#comment-17558827
]
Wenrui Meng commented on CALCITE-5194:
--------------------------------------
[~julianhyde] The following query also failed on parsing
{code:java}
with a as (with b as (select 1)(select 1)) select * from a {code}
in Query(), it has
{code:java}
[
withList = WithList()
]
e = LeafQuery(exprContext)
{code}
while it previously use QueryOrExpr
{code:java}
[
withList = WithList()
]
e = LeafQueryOrExpr(exprContext)
{code}
I'm not sure whether this is intended. Most query engines support the above
query. In addition, the dialect also output the query with () enclosed. Is it
OK to change Query() to use
{code:java}
e = LeafQueryOrExpr(exprContext){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.7#820007)