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

[jira] [Commented] (CALCITE-3627) Incorrect null semantic for ROW function

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

Stamatis Zampetakis commented on CALCITE-3627:
----------------------------------------------

I agree that NullPolicy.ANY is not appropriate for the row value constructor. However, I am bit confused with wording in the summary and description of this case. Can you clearly state what happens with the current code without your changes? What do the following queries return?

{code:sql}
SELECT ROW(cast(null as int), 1);
SELECT ROW(1, cast(null as int));
SELECT ROW(cast(null as int), cast(null as int));
{code}


> Incorrect null semantic for ROW function
> ----------------------------------------
>
>                 Key: CALCITE-3627
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3627
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Feng Zhu
>            Assignee: Feng Zhu
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> In CALCITE-2464, an in-depth discussion on nullability of structured type has been conducted.
> According to SQL standards, a record's value (with structure type) is considered null if and only if all of its fields are null.
> Based on that, the *ROW* function's return type can be nullable.
> Moreover, current implementor for ROW function's _*NullPolicy*_ (_NullPolicy.ANY_) contradicts its runtime behavior.
> {code:java}
> Query: 
> select ROW(1, cast(null as int))
> Result:
> {1, null}{code}
> However, according to the NullPolicy, the result should be null.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)