You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Vova Vysotskyi (Jira)" <ji...@apache.org> on 2022/06/19 09:14:00 UTC

[jira] [Created] (CALCITE-5194) Cannot parse UNION ALL in subquery

Vova Vysotskyi created CALCITE-5194:
---------------------------------------

             Summary: Cannot parse UNION ALL 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
             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)