public RelNode createProject(RelNode input, List<? extends RexNode> childExprs, List<String> fieldNames) { return LogicalProject.create(input, childExprs, fieldNames); } }
public RelNode createProject(RelNode input, List<? extends RexNode> childExprs, List<String> fieldNames) { return LogicalProject.create(input, childExprs, fieldNames); } }
private RelNode expandRaw(final ReflectionGoal goal) { Preconditions.checkArgument(goal.getType() == ReflectionType.RAW, "required raw reflection"); final List<ReflectionField> fields = AccelerationUtils.selfOrEmpty(goal.getDetails().getDisplayFieldList()); final List<String> names = fields.stream().map(field -> field.getName()).collect(Collectors.toList()); final List<RexInputRef> projections = names.stream() .map(fieldName -> { final RelDataTypeField field = getField(fieldName); return new RexInputRef(field.getIndex(), field.getType()); }) .collect(Collectors.toList()); return LogicalProject.create(view, projections, names); }
public <TResult> Queryable<TResult> select( Queryable<T> source, FunctionExpression<Function1<T, TResult>> selector) { RelNode child = toRel(source); List<RexNode> nodes = translator.toRexList(selector, child); setRel( LogicalProject.create(child, nodes, (List<String>) null)); return null; }
/** Creates a LogicalProject. */ public static LogicalProject create(final RelNode input, final List<? extends RexNode> projects, List<String> fieldNames) { final RelOptCluster cluster = input.getCluster(); final RelDataType rowType = RexUtil.createStructType(cluster.getTypeFactory(), projects, fieldNames, SqlValidatorUtil.F_SUGGESTER); return create(input, projects, rowType); }
public <TResult> Queryable<TResult> select( Queryable<T> source, FunctionExpression<Function1<T, TResult>> selector) { RelNode child = toRel(source); List<RexNode> nodes = translator.toRexList(selector, child); setRel( LogicalProject.create(child, nodes, (List<String>) null)); return null; }
/** Creates a LogicalProject. */ public static LogicalProject create(final RelNode input, final List<? extends RexNode> projects, List<String> fieldNames) { final RelOptCluster cluster = input.getCluster(); final RelDataType rowType = RexUtil.createStructType(cluster.getTypeFactory(), projects, fieldNames, SqlValidatorUtil.F_SUGGESTER); return create(input, projects, rowType); }
/** Returns the root relational expression as a {@link LogicalProject}. * * @param force Create a Project even if all fields are used */ public RelNode project(boolean force) { if (isRefTrivial() && (SqlKind.DML.contains(kind) || !force || rel instanceof LogicalProject)) { return rel; } final List<RexNode> projects = new ArrayList<>(); final RexBuilder rexBuilder = rel.getCluster().getRexBuilder(); for (Pair<Integer, String> field : fields) { projects.add(rexBuilder.makeInputRef(rel, field.left)); } return LogicalProject.create(rel, projects, Pair.right(fields)); }
/** Returns the root relational expression as a {@link LogicalProject}. * * @param force Create a Project even if all fields are used */ public RelNode project(boolean force) { if (isRefTrivial() && (SqlKind.DML.contains(kind) || !force || rel instanceof LogicalProject)) { return rel; } final List<RexNode> projects = new ArrayList<>(); final RexBuilder rexBuilder = rel.getCluster().getRexBuilder(); for (Pair<Integer, String> field : fields) { projects.add(rexBuilder.makeInputRef(rel, field.left)); } return LogicalProject.create(rel, projects, Pair.right(fields)); }
private void executePruningSubtree(RelNode secondLevelNode, RelOptTable table, String tempTableName) { LogicalProject newProject = LogicalProject.create( secondLevelNode, secondLevelNode .getCluster() .getRexBuilder() .identityProjects(secondLevelNode.getRowType()), secondLevelNode .getRowType() .getFieldNames()); rootNodeSchemas.put(newProject, new AbstractMap.SimpleEntry<>(tempTableName, table)); }
public void onMatch(RelOptRuleCall call) { final Aggregate aggregate = call.rel(0); final Calc calc = call.rel(1); final RexProgram program = calc.getProgram(); final List<RexNode> projects = new ArrayList<>(); for (RexLocalRef localRef : program.getProjectList()) { projects.add(program.expandLocalRef(localRef)); } final Project project = LogicalProject.create(calc.getInput(), projects, calc.getRowType()); RelNode x = AggregateProjectMergeRule.apply(call, aggregate, project); if (x != null) { call.transformTo(x); } } }
case SELECT: input = translate(call.targetExpression); return LogicalProject.create(input, toRex(input, (FunctionExpression) call.expressions.get(0)), (List<String>) null);
case SELECT: input = translate(call.targetExpression); return LogicalProject.create(input, toRex(input, (FunctionExpression) call.expressions.get(0)), (List<String>) null);
LogicalProject.create(bb.root, exprs, rowType.getFieldNames().subList(0, fieldCount)), false);
@Override public void onMatch(RelOptRuleCall call) { final Delta delta = call.rel(0); Util.discard(delta); final Project project = call.rel(1); final LogicalDelta newDelta = LogicalDelta.create(project.getInput()); final LogicalProject newProject = LogicalProject.create(newDelta, project.getProjects(), project.getRowType().getFieldNames()); call.transformTo(newProject); } }
@Override public void onMatch(RelOptRuleCall call) { final Delta delta = call.rel(0); Util.discard(delta); final Project project = call.rel(1); final LogicalDelta newDelta = LogicalDelta.create(project.getInput()); final LogicalProject newProject = LogicalProject.create(newDelta, project.getProjects(), project.getRowType().getFieldNames()); call.transformTo(newProject); } }
final LogicalProject logicalProject = LogicalProject.create(updatedJdbcRoot, updatedJdbcRoot.getCluster().getRexBuilder().identityProjects(updatedJdbcRoot.getRowType()), other.getRowType());
@Override public RelNode toRel(ToRelContext context) { RelNode rel = LogicalTableScan.create(context.getCluster(), fromTable); final RexBuilder rexBuilder = context.getCluster().getRexBuilder(); rel = LogicalFilter.create( rel, getConstraint(rexBuilder, rel.getRowType())); final List<RelDataTypeField> fieldList = rel.getRowType().getFieldList(); final List<Pair<RexNode, String>> projects = new AbstractList<Pair<RexNode, String>>() { @Override public Pair<RexNode, String> get(int index) { return RexInputRef.of2(mapping.get(index), fieldList); } @Override public int size() { return mapping.size(); } }; return LogicalProject.create(rel, Pair.left(projects), Pair.right(projects)); }
@Override public RelNode toRel(ToRelContext context) { RelNode rel = LogicalTableScan.create(context.getCluster(), fromTable); final RexBuilder rexBuilder = context.getCluster().getRexBuilder(); rel = LogicalFilter.create( rel, getConstraint(rexBuilder, rel.getRowType())); final List<RelDataTypeField> fieldList = rel.getRowType().getFieldList(); final List<Pair<RexNode, String>> projects = new AbstractList<Pair<RexNode, String>>() { @Override public Pair<RexNode, String> get(int index) { return RexInputRef.of2(mapping.get(index), fieldList); } @Override public int size() { return mapping.size(); } }; return LogicalProject.create(rel, Pair.left(projects), Pair.right(projects)); }
RelNode project = LogicalProject.create(rt1, ImmutableList.of( (RexNode) rexBuilder.makeInputRef(stringType, 0),