protected RelDataType getComponentType( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { return typeFactory.leastRestrictive(argTypes); }
private RelDataType getComponentType( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { return typeFactory.leastRestrictive(argTypes); }
protected RelDataType getComponentType( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { return typeFactory.leastRestrictive(argTypes); }
private RelDataType getComponentType( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { return typeFactory.leastRestrictive(argTypes); }
private RelDataType inferTypeFromOperands( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { assert (argTypes.size() % 2) == 1 : "odd number of arguments expected: " + argTypes.size(); assert argTypes.size() > 1 : argTypes.size(); List<RelDataType> thenTypes = new ArrayList<RelDataType>(); for (int j = 1; j < (argTypes.size() - 1); j += 2) { thenTypes.add(argTypes.get(j)); } thenTypes.add(Iterables.getLast(argTypes)); return typeFactory.leastRestrictive(thenTypes); }
private RelDataType inferTypeFromOperands( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { assert (argTypes.size() % 2) == 1 : "odd number of arguments expected: " + argTypes.size(); assert argTypes.size() > 1 : argTypes.size(); List<RelDataType> thenTypes = new ArrayList<RelDataType>(); for (int j = 1; j < (argTypes.size() - 1); j += 2) { thenTypes.add(argTypes.get(j)); } thenTypes.add(Iterables.getLast(argTypes)); return typeFactory.leastRestrictive(thenTypes); }
private Pair<RelDataType, RelDataType> getComponentTypes( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { return Pair.of( typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 0)), typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 1))); } }
private Pair<RelDataType, RelDataType> getComponentTypes( RelDataTypeFactory typeFactory, List<RelDataType> argTypes) { return Pair.of( typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 0)), typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 1))); } }
protected RelDataType deriveRowType() { return getCluster().getTypeFactory().leastRestrictive( new AbstractList<RelDataType>() { public RelDataType get(int index) { return inputs.get(index).getRowType(); } public int size() { return inputs.size(); } }); }
public RelDataType inferReturnType(SqlOperatorBinding opBinding) { return opBinding.getTypeFactory().leastRestrictive( opBinding.collectOperandTypes()); } };
public RelDataType inferReturnType(SqlOperatorBinding opBinding) { return opBinding.getTypeFactory().leastRestrictive( opBinding.collectOperandTypes()); } };
protected RelDataType deriveRowType() { return getCluster().getTypeFactory().leastRestrictive( new AbstractList<RelDataType>() { public RelDataType get(int index) { return inputs.get(index).getRowType(); } public int size() { return inputs.size(); } }); }
private void ensureSameType(SqlRexContext cx, final List<RexNode> exprs) { RelDataType type = cx.getTypeFactory().leastRestrictive( new AbstractList<RelDataType>() { public RelDataType get(int index) { return exprs.get(index).getType(); } public int size() { return exprs.size(); } }); for (int i = 0; i < exprs.size(); i++) { // REVIEW: assigning to a list that may be immutable? exprs.set( i, cx.getRexBuilder().ensureType(type, exprs.get(i), true)); } }
private void ensureSameType(SqlRexContext cx, final List<RexNode> exprs) { RelDataType type = cx.getTypeFactory().leastRestrictive( new AbstractList<RelDataType>() { public RelDataType get(int index) { return exprs.get(index).getType(); } public int size() { return exprs.size(); } }); for (int i = 0; i < exprs.size(); i++) { // REVIEW: assigning to a list that may be immutable? exprs.set( i, cx.getRexBuilder().ensureType(type, exprs.get(i), true)); } }
return typeFactory.leastRestrictive(rowTypes);
return typeFactory.leastRestrictive(rowTypes);
/** Ensures that operands have identical type. */ private static List<RexNode> harmonize( final RexToLixTranslator translator, final List<RexNode> operands) { int nullCount = 0; final List<RelDataType> types = new ArrayList<RelDataType>(); final RelDataTypeFactory typeFactory = translator.builder.getTypeFactory(); for (RexNode operand : operands) { RelDataType type = operand.getType(); if (translator.isNullable(operand)) { ++nullCount; } else { type = typeFactory.createTypeWithNullability(type, false); } types.add(type); } if (allSame(types)) { // Operands have the same nullability and type. Return them // unchanged. return operands; } final RelDataType type = typeFactory.leastRestrictive(types); assert (nullCount > 0) == type.isNullable(); final List<RexNode> list = new ArrayList<RexNode>(); for (RexNode operand : operands) { list.add( translator.builder.ensureType(type, operand, false)); } return list; }
final RelDataType type = typeFactory.leastRestrictive(types); if (type == null) {
callBinding.getTypeFactory().leastRestrictive( argTypes); if (null == ret) {
callBinding.getTypeFactory().leastRestrictive( argTypes); if (null == ret) {