@Override public RelNode visit(RelNode other) { if (other instanceof RelSubset) { return ((RelSubset) other).getBest().accept(this); } else { return super.visit(other); } }
@Override protected RelNode visitChild(RelNode parent, int i, RelNode input) { return super.visitChild(parent, i, stripHep(input)); }
public RelNode visit(RelNode other) { return visitChildren(other); } }
final RelShuttleImpl shuttle = new RelShuttleImpl() { final RexVisitor<Void> visitor = new RexVisitorImpl<Void>(true) { @Override
@Override protected RelNode visitChild(RelNode parent, int i, RelNode input) { return super.visitChild(parent, i, stripHep(input)); }
public RelNode visit(RelNode other) { return visitChildren(other); } }
final RelShuttle unsupportedOperationsVisitor = new RelShuttleImpl() { @Override public RelNode visit(RelNode other) { final RelShuttle addLimitOnScanVisitor = new RelShuttleImpl() {
@Override public RelNode visit(RelNode other) { if (!(other instanceof Join)) { return super.visit(other); } Join join = (Join) other; return getNewJoinCondition(builder, join); } });
@Override protected RelNode visitChild(RelNode parent, int i, RelNode input) { return super.visitChild(parent, i, stripHep(input)); }
public RelNode visit(LogicalJoin join) { return visitChildren(join); }
@Override public RelNode visit(RelNode other) { if(other instanceof StripLeaf) { return belowStrippedNode; } return super.visit(other); }
@Override protected RelNode visitChild(RelNode parent, int i, RelNode input) { return super.visitChild(parent, i, stripHep(input)); }
public RelNode visit(LogicalSort sort) { return visitChildren(sort); }
@Override public RelNode visit(LogicalAggregate aggregate) { hasAggregateNode = true; return super.visit(aggregate); }
@Override protected RelNode visitChild(RelNode parent, int i, RelNode child) { if(!predicate.test(parent)){ return child.accept(this); } return super.visitChild(parent, i, child); } }
public RelNode visit(TableFunctionScan scan) { return visitChildren(scan); }
public RelNode visit(LogicalFilter filter) { return visitChild(filter, 0, filter.getInput()); }
public RelNode visit(LogicalIntersect intersect) { return visitChildren(intersect); }
@Override public RelNode visit(TableScan scan) { RelNode node = super.visit(scan); String logicalOpId = String.format(TranslatorConstants.LOGOPID_TEMPLATE, queryId, "scan", opId++); scanTranslator.translate(scan, queryLogicalId, logicalOpId, translatorContext, systemDescriptors, inputMsgStreams); return node; }