newWhereFilter = LogicalFilter.create( leftPartialQuery.getScan(),
public RelNode createFilter(RelNode input, RexNode condition) { return LogicalFilter.create(input, condition); } }
public RelNode createFilter(RelNode input, RexNode condition) { return LogicalFilter.create(input, condition); } }
/** Creates a LogicalFilter. */ public static LogicalFilter create(final RelNode input, RexNode condition) { return create(input, condition, ImmutableSet.of()); }
/** Creates a LogicalFilter. */ public static LogicalFilter create(final RelNode input, RexNode condition) { return create(input, condition, ImmutableSet.of()); }
public Queryable<T> where( Queryable<T> source, FunctionExpression<? extends Predicate1<T>> predicate) { RelNode child = toRel(source); RexNode node = translator.toRex(predicate, child); setRel(LogicalFilter.create(child, node)); return source; }
public Queryable<T> where( Queryable<T> source, FunctionExpression<? extends Predicate1<T>> predicate) { RelNode child = toRel(source); RexNode node = translator.toRex(predicate, child); setRel(LogicalFilter.create(child, node)); return source; }
public RelNode toRel( RelOptTable.ToRelContext context, RelOptTable relOptTable) { // Request all fields. RelNode rel = new QuarkTileScan(context.getCluster(), this.relOptTable, this.quarkTile, this.backingTable); //Create a filter RexBuilder rexBuilder = rel.getCluster().getRexBuilder(); List<RexNode> filterArgs = Lists.newArrayList(); filterArgs.add(rexBuilder.makeInputRef(rel, this.quarkTile.groupingColumn)); filterArgs.add(rexBuilder.makeLiteral(bitSetToString(this.quarkTile.groupingValue))); rel = LogicalFilter.create(rel, rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, filterArgs)); //Create a project list List<Integer> posList = Lists.newArrayList(); for (QuarkTile.Column quarkColumn : this.quarkTile.cubeColumns) { posList.add(quarkColumn.cubeOrdinal); } for (Lattice.Measure measure : this.quarkTile.measures) { posList.add(((QuarkTile.Measure) measure).ordinal); } return RelOptUtil.createProject(rel, posList); }
return LogicalFilter.create(input, toRex((FunctionExpression) call.expressions.get(0), input));
@Override public void onMatch(RelOptRuleCall call) { final Delta delta = call.rel(0); Util.discard(delta); final Filter filter = call.rel(1); final LogicalDelta newDelta = LogicalDelta.create(filter.getInput()); final LogicalFilter newFilter = LogicalFilter.create(newDelta, filter.getCondition()); call.transformTo(newFilter); } }
@Override public void onMatch(RelOptRuleCall call) { final Delta delta = call.rel(0); Util.discard(delta); final Filter filter = call.rel(1); final LogicalDelta newDelta = LogicalDelta.create(filter.getInput()); final LogicalFilter newFilter = LogicalFilter.create(newDelta, filter.getCondition()); call.transformTo(newFilter); } }
@Override public RelNode visit(TableScan tableScan) { if (!(tableScan instanceof IncrementallyUpdateable)) { return tableScan; } final RelNode newScan = updateScan((IncrementallyUpdateable) tableScan); // build new filter to apply refresh condition. final RexBuilder rexBuilder = tableScan.getCluster().getRexBuilder(); final RexNode inputRef = rexBuilder.makeInputRef(newScan, newScan.getRowType().getField(UPDATE_COLUMN, false, false).getIndex()); final RexNode literal = generateLiteral(rexBuilder, tableScan.getCluster().getTypeFactory()); final RexNode condition = tableScan.getCluster().getRexBuilder().makeCall(SqlStdOperatorTable.GREATER_THAN, ImmutableList.of(inputRef, literal)); return LogicalFilter.create(newScan, condition); }
assert p.r instanceof Filter; Filter f = (Filter) p.r; r = LogicalFilter.create(f.getInput(), f.getCondition(), ImmutableSet.of(p.id)); } else {
assert p.r instanceof Filter; Filter f = (Filter) p.r; r = LogicalFilter.create(f.getInput(), f.getCondition(), ImmutableSet.of(p.id)); } else {
assert p.r instanceof Filter; Filter f = (Filter) p.r; r = LogicalFilter.create(f.getInput(), f.getCondition(), ImmutableSet.of(p.id)); } else {
public void onMatch(RelOptRuleCall call) { final LogicalFilter filter = call.rel(0); final LogicalProject project = call.rel(1); final List<RexNode> newProjects = new ArrayList<>(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.getInput(), newProjects, newRowType); final RexInputRef newCondition = cluster.getRexBuilder().makeInputRef(newProject, newProjects.size() - 1); call.transformTo(LogicalFilter.create(newProject, newCondition)); } }
public void onMatch(RelOptRuleCall call) { final LogicalFilter filter = call.rel(0); final LogicalProject project = call.rel(1); final List<RexNode> newProjects = new ArrayList<>(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.getInput(), newProjects, newRowType); final RexInputRef newCondition = cluster.getRexBuilder().makeInputRef(newProject, newProjects.size() - 1); call.transformTo(LogicalFilter.create(newProject, newCondition)); } }
assert p.r instanceof Filter; Filter f = (Filter) p.r; r = LogicalFilter.create(f.getInput(), f.getCondition(), ImmutableSet.of(p.id)); } else {
@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)); }