/** * Returns a list of the fields in a list of types. */ private static List<RelDataTypeField> getFieldList(List<RelDataType> types) { final List<RelDataTypeField> fieldList = new ArrayList<>(); for (RelDataType type : types) { addFields(type, fieldList); } return fieldList; }
public RelDataType createJoinType(RelDataType... types) { assert types != null; assert types.length >= 1; final List<RelDataType> flattenedTypes = new ArrayList<>(); getTypeList(ImmutableList.copyOf(types), flattenedTypes); return canonize( new RelCrossType(flattenedTypes, getFieldList(flattenedTypes))); }
public RelDataType createTypeWithNullability( final RelDataType type, final boolean nullable) { Objects.requireNonNull(type); RelDataType newType; if (type.isNullable() == nullable) { newType = type; } else if (type instanceof RelRecordType) { // REVIEW: angel 18-Aug-2005 dtbug 336 workaround // Changed to ignore nullable parameter if nullable is false since // copyRecordType implementation is doubtful if (nullable) { // Do a deep copy, setting all fields of the record type // to be nullable regardless of initial nullability newType = copyRecordType((RelRecordType) type, false, true); } else { // Keep same type as before, ignore nullable parameter // RelRecordType currently always returns a nullability of false newType = copyRecordType((RelRecordType) type, true, false); } } else { newType = copySimpleType(type, nullable); } return canonize(newType); }
public RelDataType copyType(RelDataType type) { if (type instanceof RelRecordType) { return copyRecordType((RelRecordType) type, true, false); } else { return createTypeWithNullability( type, type.isNullable()); } }
secondPrec = SqlIntervalQualifier.combineStartPrecisionPreservingDefault( typeFactory.getTypeSystem(), this.intervalQualifier, that.intervalQualifier); typeFactory.createSqlIntervalType( new SqlIntervalQualifier( thisStart, SqlParserPos.ZERO)); intervalType = typeFactory.createTypeWithNullability( intervalType, nullable);
public RelDataType createJavaType(Class clazz) { final JavaType javaType = clazz == String.class ? new JavaType(clazz, true, getDefaultCharset(), SqlCollation.IMPLICIT) : new JavaType(clazz); return canonize(javaType); }
@Override public RelDataType get(int index) { RelDataType fieldType = type.getFieldList().get(index).getType(); if (ignoreNullable) { return copyType(fieldType); } else { return createTypeWithNullability(fieldType, nullable); } }
public final RelDataType createStructType( final List<? extends Map.Entry<String, RelDataType>> fieldList) { return canonize(StructKind.FULLY_QUALIFIED, new AbstractList<String>() { @Override public String get(int index) { return fieldList.get(index).getKey(); } @Override public int size() { return fieldList.size(); } }, new AbstractList<RelDataType>() { @Override public RelDataType get(int index) { return fieldList.get(index).getValue(); } @Override public int size() { return fieldList.size(); } }); }
final Builder builder = builder(); for (int j = 0; j < fieldCount; ++j) { builder.add( type0.getFieldList().get(j).getName(), leastRestrictive( new AbstractList<RelDataType>() { public RelDataType get(int index) {
scale, maxNumericPrecision - dout); scale = Math.min(scale, getTypeSystem().getMaxNumericScale()); createSqlType( SqlTypeName.DECIMAL, precision,
public RelDataType getComponentType() { final Class componentType = clazz.getComponentType(); if (componentType == null) { return null; } else { return createJavaType(componentType); } }
public boolean useDoubleMultiplication( RelDataType type1, RelDataType type2) { assert createDecimalProduct(type1, type2) != null; return false; }
createSqlType( SqlTypeName.DECIMAL, precision,
secondPrec = SqlIntervalQualifier.combineStartPrecisionPreservingDefault( typeFactory.getTypeSystem(), this.intervalQualifier, that.intervalQualifier); typeFactory.createSqlIntervalType( new SqlIntervalQualifier( thisStart, SqlParserPos.ZERO)); intervalType = typeFactory.createTypeWithNullability( intervalType, nullable);
public RelDataType createJavaType(Class clazz) { final JavaType javaType = clazz == String.class ? new JavaType(clazz, true, getDefaultCharset(), SqlCollation.IMPLICIT) : new JavaType(clazz); return canonize(javaType); }
@Override public RelDataType get(int index) { RelDataType fieldType = type.getFieldList().get(index).getType(); if (ignoreNullable) { return copyType(fieldType); } else { return createTypeWithNullability(fieldType, nullable); } }
public final RelDataType createStructType( final List<? extends Map.Entry<String, RelDataType>> fieldList) { return canonize(StructKind.FULLY_QUALIFIED, new AbstractList<String>() { @Override public String get(int index) { return fieldList.get(index).getKey(); } @Override public int size() { return fieldList.size(); } }, new AbstractList<RelDataType>() { @Override public RelDataType get(int index) { return fieldList.get(index).getValue(); } @Override public int size() { return fieldList.size(); } }); }
public RelDataType copyType(RelDataType type) { if (type instanceof RelRecordType) { return copyRecordType((RelRecordType) type, true, false); } else { return createTypeWithNullability( type, type.isNullable()); } }
final Builder builder = builder(); for (int j = 0; j < fieldCount; ++j) { builder.add( type0.getFieldList().get(j).getName(), leastRestrictive( new AbstractList<RelDataType>() { public RelDataType get(int index) {
scale, maxNumericPrecision - dout); scale = Math.min(scale, getTypeSystem().getMaxNumericScale()); createSqlType( SqlTypeName.DECIMAL, precision,