You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2019/07/29 18:40:00 UTC

[jira] [Commented] (CALCITE-3081) Literal NULL should be generated in SqlDialect

    [ https://issues.apache.org/jira/browse/CALCITE-3081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16895519#comment-16895519 ] 

Julian Hyde commented on CALCITE-3081:
--------------------------------------

[~donnyzone], You've pointed out that what Calcite's SQL parser accepts is inconsistent with the SQL generated by Calcite's JDBC adapter. But you have not said what you propose to change to make them consistent.

> Literal NULL should be generated in SqlDialect
> ----------------------------------------------
>
>                 Key: CALCITE-3081
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3081
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.19.0
>            Reporter: Feng Zhu
>            Priority: Minor
>
> In Calcite, this simple query will throw exception during validation, even it is ok in many databases.
> {code:java}
> Query:
> final String query = "select NULL as col "
>     + "from \"foodmart\".\"product\"";
> Exception
> org.apache.calcite.tools.ValidationException: org.apache.calcite.runtime.CalciteContextException: From line 1, column 8 to line 1, column 11: Illegal use of 'NULL'
> {code}
> The right way to use 'NULL' in Calcite is:
> {code:java}
> final String query = "select cast(NULL as integer) as col "
>     + "from \"foodmart\".\"product\"";
> {code}
> However,  the converted query by *RelToSqlConverter* is illegal in Calcite.
> {code:java}
> SELECT NULL AS \"COL\"
> FROM \"foodmart\".\"product\"
> {code}
> The issue is trivial, but it is against to general sense. Maybe we can generate NULL literal in SqlDialect?



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)