public static RelDataType deriveOneRowType(RelDataTypeFactory typeFactory) { return typeFactory.builder().add("ZERO", SqlTypeName.INTEGER).build(); } }
RelProtoDataType getRelDataType(DatabaseMetaData metaData, String catalogName, String schemaName, String tableName) throws SQLException { final ResultSet resultSet = metaData.getColumns(catalogName, schemaName, tableName, null); // Temporary type factory, just for the duration of this method. Allowable // because we're creating a proto-type, not a type; before being used, the // proto-type will be copied into a real type factory. final RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(); final RelDataTypeFactory.FieldInfoBuilder fieldInfo = typeFactory.builder(); while (resultSet.next()) { final String columnName = resultSet.getString(4); final int dataType = resultSet.getInt(5); final String typeString = resultSet.getString(6); final int size = resultSet.getInt(7); final int scale = resultSet.getInt(9); RelDataType sqlType = sqlType(typeFactory, dataType, size, scale, typeString); boolean nullable = resultSet.getBoolean(11); fieldInfo.add(columnName, sqlType).nullable(nullable); } resultSet.close(); return RelDataTypeImpl.proto(fieldInfo.build()); }
private static RelDataType makeStruct( RelDataTypeFactory typeFactory, RelDataType type) { if (type.isStruct()) { return type; } return typeFactory.builder().add("$0", type).build(); }
private String compile(RexBuilder rexBuilder, List<RexNode> constExps, RexToLixTranslator.InputGetter getter) { final RelDataTypeFactory typeFactory = rexBuilder.getTypeFactory(); final RelDataType emptyRowType = typeFactory.builder().build(); return compile(rexBuilder, constExps, getter, emptyRowType); } private String compile(RexBuilder rexBuilder, List<RexNode> constExps,
/** * Promotes a type to a row type (does nothing if it already is one). * * @param type type to be promoted * @param fieldName name to give field in row type; null for default of * "ROW_VALUE" * @return row type */ public static RelDataType promoteToRowType( RelDataTypeFactory typeFactory, RelDataType type, String fieldName) { if (!type.isStruct()) { if (fieldName == null) { fieldName = "ROW_VALUE"; } type = typeFactory.builder().add(fieldName, type).build(); } return type; }
public RelDataType getRowType(RelDataTypeFactory typeFactory) { return typeFactory.builder() .add(columnName, SqlTypeName.INTEGER) .build(); }
public RelDataType getRowType(RelDataTypeFactory typeFactory) { return typeFactory.builder() .add("result", SqlTypeName.INTEGER) .build(); }
public RelDataType getRowType(RelDataTypeFactory typeFactory) { return typeFactory.builder() .add("result", SqlTypeName.INTEGER) .build(); }
public RelDataType apply(RelDataTypeFactory typeFactory) { return typeFactory.builder().add("c", SqlTypeName.INTEGER) .build(); } }, "values (1), (3), " + s, ImmutableList.<String>of());
public RelDataType getRowType(RelDataTypeFactory typeFactory) { return typeFactory.builder().add("c", SqlTypeName.INTEGER).build(); } };
public RelDataType inferReturnType(SqlOperatorBinding opBinding) { final RelDataTypeFactory typeFactory = opBinding.getTypeFactory(); return typeFactory.builder() .add("I", SqlTypeName.INTEGER) .build(); } }
public RelDataType inferReturnType(SqlOperatorBinding opBinding) { final RelDataTypeFactory typeFactory = opBinding.getTypeFactory(); return typeFactory.builder() .add("NAME", SqlTypeName.VARCHAR, 1024) .build(); } }
protected RelDataType validateImpl() { // Validate the call and its arguments, and infer the return type. validator.validateCall(unnest, scope); RelDataType type = unnest.getOperator().validateOperands(validator, scope, unnest); if (type.isStruct()) { return type; } return validator.getTypeFactory().builder() .add(validator.deriveAlias(unnest, 0), type) .build(); }
public RelDataType inferReturnType( SqlOperatorBinding opBinding) { assert opBinding.getOperandCount() == 1; final RelDataType multisetType = opBinding.getOperandType(0); RelDataType componentType = multisetType.getComponentType(); assert componentType != null : "expected a multiset type: " + multisetType; final RelDataTypeFactory typeFactory = opBinding.getTypeFactory(); final RelDataType type = typeFactory.builder() .add(SqlUtil.deriveAliasFromOrdinal(0), componentType).build(); return typeFactory.createMultisetType(type, -1); } };
@Override protected RelDataType validateImpl() { final SqlValidatorNamespace childNs = validator.getNamespace(withItem.query); final RelDataType rowType = childNs.getRowTypeSansSystemColumns(); if (withItem.columnList == null) { return rowType; } final RelDataTypeFactory.FieldInfoBuilder builder = validator.getTypeFactory().builder(); for (Pair<SqlNode, RelDataTypeField> pair : Pair.zip(withItem.columnList, rowType.getFieldList())) { builder.add(((SqlIdentifier) pair.left).getSimple(), pair.right.getType()); } return builder.build(); }
public RelDataType getRowType(RelDataTypeFactory typeFactory) { final RelDataTypeFactory.FieldInfoBuilder builder = typeFactory.builder(); builder.add("row_name", typeFactory.createJavaType(String.class)); final RelDataType int_ = typeFactory.createJavaType(int.class); for (int i = 1; i <= ncol; i++) { builder.add("c" + i, int_); } return builder.build(); }
protected RelDataType deriveRowType() { final RelDataTypeFactory typeFactory = getCluster().getTypeFactory(); return typeFactory.builder() .add("this", typeFactory.createJavaType(Void.TYPE)) .build(); }
protected RelDataType deriveRowType() { final RelDataTypeFactory typeFactory = getCluster().getTypeFactory(); return typeFactory.builder() .add("this", typeFactory.createJavaType(Void.TYPE)) .build(); }
public void onMatch(RelOptRuleCall call) { final FilterRel filter = call.rel(0); final ProjectRel project = call.rel(1); final List<RexNode> newProjects = new ArrayList<RexNode>(project.getProjects()); newProjects.add(filter.getCondition()); final RelOptCluster cluster = filter.getCluster(); RelDataType newRowType = cluster.getTypeFactory().builder() .addAll(project.getRowType().getFieldList()) .add("condition", Util.last(newProjects).getType()) .build(); final RelNode newProject = project.copy(project.getTraitSet(), project.getChild(), newProjects, newRowType); final RexInputRef newCondition = cluster.getRexBuilder().makeInputRef(newProject, newProjects.size() - 1); call.transformTo(new FilterRel(cluster, newProject, newCondition)); } }
/** * Derives the output type of a collect relational expression. * * @param rel relational expression * @param fieldName name of sole output field * @return output type of a collect relational expression */ public static RelDataType deriveCollectRowType( SingleRel rel, String fieldName) { RelDataType childType = rel.getChild().getRowType(); assert childType.isStruct(); final RelDataTypeFactory typeFactory = rel.getCluster().getTypeFactory(); RelDataType ret = SqlTypeUtil.createMultisetType( typeFactory, childType, false); ret = typeFactory.builder().add(fieldName, ret).build(); return typeFactory.createTypeWithNullability(ret, false); } }