@Override public EnumerableRel implementEnumerable(List<EnumerableRel> inputs) { return EnumerableValues.create(getCluster(), getRowType(), getTuples()); } }
@Override public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { assert inputs.isEmpty(); return create(getCluster(), rowType, tuples); }
(JavaTypeFactory) getCluster().getTypeFactory(); final BlockBuilder builder = new BlockBuilder(); final PhysType physType = PhysTypeImpl.of( implementor.getTypeFactory(), getRowType(), pref.preferCustom()); final Type rowClass = physType.getJavaRowType();
private PlannerOp planValues(EnumerableValues op) { List<List<CompiledSQLExpression>> tuples = new ArrayList<>(op.getTuples().size()); RelDataType rowType = op.getRowType(); List<RelDataTypeField> fieldList = rowType.getFieldList(); Column[] columns = new Column[fieldList.size()]; for (ImmutableList<RexLiteral> tuple : op.getTuples()) { List<CompiledSQLExpression> row = new ArrayList<>(tuple.size()); for (RexLiteral node : tuple) { CompiledSQLExpression exp = SQLExpressionCompiler.compileExpression(node); row.add(exp); } tuples.add(row); } int i = 0; String[] fieldNames = new String[fieldList.size()]; for (RelDataTypeField field : fieldList) { Column col = Column.column(field.getName(), convertToHerdType(field.getType())); fieldNames[i] = field.getName(); columns[i++] = col; } return new ValuesOp(manager.getNodeId(), fieldNames, columns, tuples); }
/** Creates an EnumerableValues. */ public static EnumerableValues create(RelOptCluster cluster, final RelDataType rowType, final ImmutableList<ImmutableList<RexLiteral>> tuples) { final RelMetadataQuery mq = cluster.getMetadataQuery(); final RelTraitSet traitSet = cluster.traitSetOf(EnumerableConvention.INSTANCE) .replaceIfs(RelCollationTraitDef.INSTANCE, () -> RelMdCollation.values(mq, rowType, tuples)) .replaceIf(RelDistributionTraitDef.INSTANCE, () -> RelMdDistribution.values(rowType, tuples)); return new EnumerableValues(cluster, rowType, tuples, traitSet); }
if (project.getInput() instanceof EnumerableValues) { EnumerableValues values = (EnumerableValues) project.getInput(); if (values.getTuples().size() == 1) { final TableImpl tableImpl = (TableImpl) dml.getTable().unwrap(org.apache.calcite.schema.Table.class
@Override public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { assert inputs.isEmpty(); return create(getCluster(), rowType, tuples); }
(JavaTypeFactory) getCluster().getTypeFactory(); final BlockBuilder builder = new BlockBuilder(); final PhysType physType = PhysTypeImpl.of( implementor.getTypeFactory(), getRowType(), pref.preferCustom()); final Type rowClass = physType.getJavaRowType();
/** Creates an EnumerableValues. */ public static EnumerableValues create(RelOptCluster cluster, final RelDataType rowType, final ImmutableList<ImmutableList<RexLiteral>> tuples) { final RelMetadataQuery mq = cluster.getMetadataQuery(); final RelTraitSet traitSet = cluster.traitSetOf(EnumerableConvention.INSTANCE) .replaceIfs(RelCollationTraitDef.INSTANCE, () -> RelMdCollation.values(mq, rowType, tuples)) .replaceIf(RelDistributionTraitDef.INSTANCE, () -> RelMdDistribution.values(rowType, tuples)); return new EnumerableValues(cluster, rowType, tuples, traitSet); }
@Override public EnumerableRel implementEnumerable(List<EnumerableRel> inputs) { return EnumerableValues.create(getCluster(), getRowType(), getTuples()); } }
@Override public RelNode convert(RelNode rel) { LogicalValues values = (LogicalValues) rel; return EnumerableValues.create(values.getCluster(), values.getRowType(), values.getTuples()); } }
@Override public RelNode convert(RelNode rel) { LogicalValues values = (LogicalValues) rel; return EnumerableValues.create(values.getCluster(), values.getRowType(), values.getTuples()); } }