calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bozo Dragojevic <bo...@digiverse.si>
Subject Re: SqlNode.toSqlString() not parseable by calcite?
Date Sat, 30 May 2020 16:57:45 GMT
What I learned today about calcite is that it supports an
impressive number of dialects so the calcite may in fact be OK
(as drill parses the 'LATERAL (select * from UNNEST)" perfectly
when I enter it as a *query*. when I enter it as a view definition
with CREATE VIEW then the query text that drill saves to the view
definition file is transformed in a way similar to the difference
between actual and expected result in [1] which is the extra parenthesis
around the UNNEST expression. Selecting from such view raises a parse
error for UNNEST having extra parentheses.

So from outside it looks that drill uses parse -> unparse -> parse
sequence when querying the view.

Maybe the fix is to change drill to just store the original query.
But it seems that calcite tries to go to great lengths to have roundtrip
capability just for users like drill.

So I think the error lies either in calcite if there is some bug with unparse, or
more likely, in drill as it configures the unparser with a dialect that is not
comptible with the dialect it's parsing with.


Cheers,
Bozzo

[1] https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java#L7154

On 29/05/2020 19:54, Rui Wang wrote:
> You might try to add a test case at [1]. Based on your Drill JIRA, you
> might test the syntax containing "Literal (select * from UNNEST)".
>
>
>


Mime
View raw message