Hello,

It seems that the array item operator (a[x]) always returns a nullable result, 
irrespective of the nullability of the elements of the array, or of the index. 
Is this a bug, or is this by design?

It looks like the standard array item operator throws for out of bound 
accesses, so why not respect the nullability of the array element type?

class SqlItemOperator {

@Override public RelDataType inferReturnType(SqlOperatorBinding opBinding) {
    final RelDataTypeFactory typeFactory = opBinding.getTypeFactory();
    final RelDataType operandType = opBinding.getOperandType(0);
    switch (operandType.getSqlTypeName()) {
    case ARRAY:
      return typeFactory.createTypeWithNullability(
          getComponentTypeOrThrow(operandType), true); // << always TRUE

Thank you,
Mihai

Reply via email to