private PlannerOp planFilter(EnumerableFilter op, RelDataType rowType, boolean returnValues) { PlannerOp input = convertRelNode(op.getInput(), rowType, returnValues); CompiledSQLExpression condition = SQLExpressionCompiler.compileExpression(op.getCondition()); return new FilterOp(input, condition); }
public EnumerableFilter copy(RelTraitSet traitSet, RelNode input, RexNode condition) { return new EnumerableFilter(getCluster(), traitSet, input, condition); }
/** Creates an EnumerableFilter. * * <p>Use {@link #create} unless you know what you're doing. */ public EnumerableFilter( RelOptCluster cluster, RelTraitSet traitSet, RelNode child, RexNode condition) { super(cluster, traitSet, child, condition); assert getConvention() instanceof EnumerableConvention; }
public void onMatch(RelOptRuleCall call) { final EnumerableFilter filter = call.rel(0); final RelNode input = filter.getInput(); // Create a program containing a filter. final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final RelDataType inputRowType = input.getRowType(); final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(filter.getCondition()); final RexProgram program = programBuilder.getProgram(); final EnumerableCalc calc = EnumerableCalc.create(input, program); call.transformTo(calc); } }
/** Creates an EnumerableFilter. */ public static EnumerableFilter create(final RelNode input, RexNode condition) { final RelOptCluster cluster = input.getCluster(); final RelMetadataQuery mq = cluster.getMetadataQuery(); final RelTraitSet traitSet = cluster.traitSetOf(EnumerableConvention.INSTANCE) .replaceIfs( RelCollationTraitDef.INSTANCE, () -> RelMdCollation.filter(mq, input)) .replaceIf(RelDistributionTraitDef.INSTANCE, () -> RelMdDistribution.filter(mq, input)); return new EnumerableFilter(cluster, traitSet, input, condition); }
public void onMatch(RelOptRuleCall call) { final EnumerableFilter filter = call.rel(0); final RelNode input = filter.getInput(); // Create a program containing a filter. final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final RelDataType inputRowType = input.getRowType(); final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(filter.getCondition()); final RexProgram program = programBuilder.getProgram(); final EnumerableCalc calc = EnumerableCalc.create(input, program); call.transformTo(calc); } }
/** Creates an EnumerableFilter. */ public static EnumerableFilter create(final RelNode input, RexNode condition) { final RelOptCluster cluster = input.getCluster(); final RelMetadataQuery mq = cluster.getMetadataQuery(); final RelTraitSet traitSet = cluster.traitSetOf(EnumerableConvention.INSTANCE) .replaceIfs( RelCollationTraitDef.INSTANCE, () -> RelMdCollation.filter(mq, input)) .replaceIf(RelDistributionTraitDef.INSTANCE, () -> RelMdDistribution.filter(mq, input)); return new EnumerableFilter(cluster, traitSet, input, condition); }
public EnumerableFilter copy(RelTraitSet traitSet, RelNode input, RexNode condition) { return new EnumerableFilter(getCluster(), traitSet, input, condition); }
public RelNode convert(RelNode rel) { final LogicalFilter filter = (LogicalFilter) rel; return new EnumerableFilter(rel.getCluster(), rel.getTraitSet().replace(EnumerableConvention.INSTANCE), convert(filter.getInput(), filter.getInput().getTraitSet() .replace(EnumerableConvention.INSTANCE)), filter.getCondition()); } }
/** Creates an EnumerableFilter. * * <p>Use {@link #create} unless you know what you're doing. */ public EnumerableFilter( RelOptCluster cluster, RelTraitSet traitSet, RelNode child, RexNode condition) { super(cluster, traitSet, child, condition); assert getConvention() instanceof EnumerableConvention; }
public RelNode convert(RelNode rel) { final LogicalFilter filter = (LogicalFilter) rel; return new EnumerableFilter(rel.getCluster(), rel.getTraitSet().replace(EnumerableConvention.INSTANCE), convert(filter.getInput(), filter.getInput().getTraitSet() .replace(EnumerableConvention.INSTANCE)), filter.getCondition()); } }
newRel = new EnumerableFilter(cluster, newRel.getTraitSet(), newRel, info.getRemaining(cluster.getRexBuilder()));
newRel = new EnumerableFilter(cluster, newRel.getTraitSet(), newRel, info.getRemaining(cluster.getRexBuilder()));
newRel = new EnumerableFilter(cluster, newRel.getTraitSet(), newRel, info.getRemaining(cluster.getRexBuilder()));
newRel = new EnumerableFilter(cluster, newRel.getTraitSet(), newRel, info.getRemaining(cluster.getRexBuilder()));