/** * Creates a cartesian product type. This should only be called from a * factory method. */ public RelCrossType( List<RelDataType> types, List<RelDataTypeField> fields) { super(fields); this.types = ImmutableList.copyOf(types); assert types.size() >= 1; for (RelDataType type : types) { assert !(type instanceof RelCrossType); } computeDigest(); }
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 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))); }
/** * Creates a cartesian product type. This should only be called from a * factory method. */ public RelCrossType( List<RelDataType> types, List<RelDataTypeField> fields) { super(fields); this.types = ImmutableList.copyOf(types); assert types.size() >= 1; for (RelDataType type : types) { assert !(type instanceof RelCrossType); } computeDigest(); }