RexCall convertedOriginalValuesExpr = (RexCall) new RexNodeConverter(this.cluster, inputRel.getRowType(), inputPosMap, 0, false).convert(valuesExpr); RelDataType valuesRowType = ((ArraySqlType) convertedOriginalValuesExpr.getType()).getComponentType(); List<RexNode> newStructExprs = new ArrayList<>(); for (RexNode structExpr : convertedOriginalValuesExpr.getOperands()) {
private RelDataType copyArrayType(RelDataType type, boolean nullable) { ArraySqlType at = (ArraySqlType) type; RelDataType elementType = copyType(at.getComponentType()); return new ArraySqlType(elementType, nullable); }
public RelDataType createArrayType( RelDataType elementType, long maxCardinality) { assert maxCardinality == -1; ArraySqlType newType = new ArraySqlType(elementType, false); return canonize(newType); }
public boolean containsType(RelDataType type) { return type.getSqlTypeName() == getSqlTypeName() && type.getComponentType() != null && getComponentType().getPrecedenceList().containsType( type.getComponentType()); }
/** * Creates an ArraySqlType. This constructor should only be called * from a factory method. */ public ArraySqlType(RelDataType elementType, boolean isNullable) { super(SqlTypeName.ARRAY, isNullable, null); this.elementType = Objects.requireNonNull(elementType); computeDigest(); }
private RelDataType copyArrayType(RelDataType type, boolean nullable) { ArraySqlType at = (ArraySqlType) type; RelDataType elementType = copyType(at.getComponentType()); return new ArraySqlType(elementType, nullable); }
public RelDataType createArrayType( RelDataType elementType, long maxCardinality) { assert maxCardinality == -1; ArraySqlType newType = new ArraySqlType(elementType, false); return canonize(newType); }
public boolean containsType(RelDataType type) { return type.getSqlTypeName() == getSqlTypeName() && type.getComponentType() != null && getComponentType().getPrecedenceList().containsType( type.getComponentType()); }
/** * Creates an ArraySqlType. This constructor should only be called * from a factory method. */ public ArraySqlType(RelDataType elementType, boolean isNullable) { super(SqlTypeName.ARRAY, isNullable, null); this.elementType = Objects.requireNonNull(elementType); computeDigest(); }
typeFactory.createTypeWithNullability(bigintNullableArray, true); final RelDataType bigintNotNullArray = new ArraySqlType(bigintNotNull, false); assertThat(SqlTypeUtil.canAssignFrom(bigintArrayNullable, bigintNotNullArray), is(true)); final RelDataType dateNotNullArray = new ArraySqlType(dateNotNull, false); assertThat(SqlTypeUtil.canAssignFrom(bigintArrayNullable, dateNotNullArray), is(false));
public int compareTypePrecedence(RelDataType type1, RelDataType type2) { if (!containsType(type1)) { throw new IllegalArgumentException("must contain type: " + type1); } if (!containsType(type2)) { throw new IllegalArgumentException("must contain type: " + type2); } return getComponentType().getPrecedenceList() .compareTypePrecedence(type1.getComponentType(), type2.getComponentType()); } };
typeFactory.createTypeWithNullability(bigintNullableArray, true); final RelDataType bigintNotNullArray = new ArraySqlType(bigintNotNull, false); assertThat(SqlTypeUtil.canAssignFrom(bigintArrayNullable, bigintNotNullArray), is(true)); final RelDataType dateNotNullArray = new ArraySqlType(dateNotNull, false); assertThat(SqlTypeUtil.canAssignFrom(bigintArrayNullable, dateNotNullArray), is(false));
public int compareTypePrecedence(RelDataType type1, RelDataType type2) { if (!containsType(type1)) { throw new IllegalArgumentException("must contain type: " + type1); } if (!containsType(type2)) { throw new IllegalArgumentException("must contain type: " + type2); } return getComponentType().getPrecedenceList() .compareTypePrecedence(type1.getComponentType(), type2.getComponentType()); } };
case ARRAY: RelDataType elementType = getRelDataType(fieldSchema.getElementSchema()); return new ArraySqlType(elementType, true); case BOOLEAN: return createTypeWithNullability(createSqlType(SqlTypeName.BOOLEAN), true);
for (Object entry : listValue) { operands.add( makeLiteral(entry, arrayType.getComponentType(), allowCast));
for (Object entry : listValue) { operands.add( makeLiteral(entry, arrayType.getComponentType(), allowCast));