[ https://issues.apache.org/jira/browse/CALCITE-5731?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17738290#comment-17738290 ]
Ruben Q L commented on CALCITE-5731: ------------------------------------ [~jackylau] I'm removing the "fixVersion=1.35" from this one. It seems we need further clarifications about this issue, and we are approaching the 1.35 RC. > cast to row type should throw exception when contains null/not null constraint > ------------------------------------------------------------------------------ > > Key: CALCITE-5731 > URL: https://issues.apache.org/jira/browse/CALCITE-5731 > Project: Calcite > Issue Type: Improvement > Components: core > Affects Versions: 1.35.0 > Reporter: Jacky Lau > Assignee: Jacky Lau > Priority: Major > Labels: pull-request-available > Fix For: 1.35.0 > > > the cast standard grammar it here from iso 2016 > {code:java} > // code placeholder > <cast specification> ::= > CAST <left paren> <cast operand> AS <cast target> <right paren> > <cast operand> ::= > <value expression> > | <implicitly typed value specification> > <cast target> ::= > <domain name> > | <data type> > <data type> ::= > <predefined type> > | <row type> > | <path-resolved user-defined type name> > | <reference type> > | <collection type> > <collection type> ::= > <array type> > | <multiset type> > <array type> ::= > <data type> ARRAY > [ <left bracket or trigraph> <maximum cardinality> <right bracket or > trigraph> ] {code} > > not null/ null are constraint, can not be in cast, only can be in ddl > {code:java} > // this simple type and collection type will throw exception in calcite now > expr("cast(x as integer ^not^ null)") > .fails("(?s).*Encountered \"not\" at .*"); > expr("cast(x as integer ^not^ null array)") > .fails("(?s).*Encountered \"not\" at .*"); > expr("cast(x as integer array ^not^ null)") > .fails("(?s).*Encountered \"not\" at .*"); > // but the followings are not > expr("cast(x as row(f0 int ^not^ null))") > .fails("(?s).*Encountered \"not\" at .*"); > expr("cast(x as row(f0 varchar ^null^))") > .fails("(?s).*Encountered \"null\" at .*"); > expr("cast(x as row(f0 int ^not^ null, f1 varchar ^null^))") > .fails("(?s).*Encountered \"not\" at .*");{code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)