Mihai Budiu created CALCITE-6275: ------------------------------------ Summary: Parser for data types ignores element nullability in collections Key: CALCITE-6275 URL: https://issues.apache.org/jira/browse/CALCITE-6275 Project: Calcite Issue Type: Bug Components: core, server Affects Versions: 1.36.0 Reporter: Mihai Budiu
The parser (Parser.jj) has this production rule for DataType: {code} // Type name with optional scale and precision. SqlDataTypeSpec DataType() : { SqlTypeNameSpec typeName; final Span s; } { typeName = TypeName() { s = Span.of(typeName.getParserPos()); } ( typeName = CollectionsTypeName(typeName) )* { return new SqlDataTypeSpec(typeName, s.add(typeName.getParserPos()).pos()); } } {code} Note that there is no way to specify the nullability for the elements of a collection, they are always assumed to be non-null. This is most pertinent for the server component, where in DDL one cannot specify a table column of type INTEGER ARRAY; one always gets an INTEGER NOT NULL ARRAY instead. But note that SqlCollectionTypeNameSpec cannot even represent the nullability of the elements' type, it takes a SqlTypeNameSpec instead of a SqlDataTypeSpec. -- This message was sent by Atlassian Jira (v8.20.10#820010)