[ 
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)

Reply via email to