[
https://issues.apache.org/jira/browse/CALCITE-2464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16749709#comment-16749709
]
Stamatis Zampetakis commented on CALCITE-2464:
----------------------------------------------
[~rubenql] A column definition (in the example above address) without NOT NULL
constraint on it should lead to a type that is nullable, otherwise it is a bug.
I don't mind if a struct by default is considered nullable or not but I think
it is important that when we create a TABLE we set nullability of the columns
correctly. To sum up, at least the code who performs the CREATE TABLE statement
should be fixed to set up nullability for structs correctly. Do we agree on
this [~julianhyde]?
> Allow to set nullability for columns of structured types
> --------------------------------------------------------
>
> Key: CALCITE-2464
> URL: https://issues.apache.org/jira/browse/CALCITE-2464
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.17.0
> Reporter: Stamatis Zampetakis
> Assignee: Julian Hyde
> Priority: Major
>
> Struct types are always not nullable. This can lead to bugs in many parts of
> Calcite (e.g., expression simplification, optimization, code generation) that
> are considering the nullability of a RelDataType.
> The method
> [isNullable|https://github.com/apache/calcite/blob/3c6b5ec759caadabb67f09d7a4963cc7d9386d0c/core/src/main/java/org/apache/calcite/rel/type/RelRecordType.java#L55]
> in the RelRecordType, which is used to represent a structured type, always
> returns false. The nullability of the RelRecordType should be a parameter in
> the constructor as it is the case for various other RelDataTypes.
> Additionally, the data type cache should also take into account the
> nullability of the type in order to return a correct equivalent.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)