[
https://issues.apache.org/jira/browse/CALCITE-2981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16814648#comment-16814648
]
Vamshi commented on CALCITE-2981:
---------------------------------
[~my7ym] I know that work around but this still needs fix in Calcite grammar.
If SQL is generated from BI tool workflows, modifying SQL is not an option.
A simple query like select * from ((select * from t1)dt) reports syntax error.
Everything runs fine if the sub queries are under from clause, Grammar in
TableRef2 handles this well. if the subqueries are joined within nested
parenthesis then this path is not handled for joins but is handled for Set
operators(union/intersect/minus) in QueryOrExpr grammar. Basically most of the
logic in TableRef2 needs to be pulled up to QueryorExpr routine.
> Syntax error with simple nested select query
> --------------------------------------------
>
> Key: CALCITE-2981
> URL: https://issues.apache.org/jira/browse/CALCITE-2981
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.18.0
> Reporter: Vamshi
> Assignee: Danny Chan
> Priority: Critical
>
> Below standard sql-92 query reports syntax error in calcite:
> create table test1(id integer, name integer);
> create table test2(id integer, name integer);
> select * from (
> ( select id,name from test1 ) test3
> inner join
> ( select id,name from test2) test4 on test4.id = test3.id
> );
> Caused by: org.apache.calcite.parser.ParseException: Encountered "test3" at
> line 4, column 31.
> Was expecting one of:
> ")" ...
> "ORDER" ...
> "LIMIT" ...
> "OFFSET" ...
> "FETCH" ...
> "UNION" ...
> "INTERSECT" ...
> "EXCEPT" ...
> "MINUS" ...
> "." ...
> "NOT" ...
> "IN" ...
> "<" ...
> "<=" ...
> ">" ...
> ">=" ...
> "=" ...
> "<>" ...
> "!=" ...
> "BETWEEN" ...
> "LIKE" ...
> "SIMILAR" ...
> "+" ...
> "-" ...
> "*" ...
> "/" ...
> "%" ...
> "||" ...
> "AND" ...
> "OR" ...
> "IS" ...
> "MEMBER" ...
> "SUBMULTISET" ...
> "CONTAINS" ...
> "OVERLAPS" ...
> "EQUALS" ...
> "PRECEDES" ...
> "SUCCEEDS" ...
> "IMMEDIATELY" ...
> "MULTISET" ...
> "[" ...
> "YEAR" ...
> "MONTH" ...
> "DAY" ...
> "HOUR" ...
> "MINUTE" ...
> "SECOND" ...
>
> The above query works in standard databases like postgres/oracle/sql server.
> This is a commonly generated query pattern by popular BI tools.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)