@Override public Map<PlanNodeId, SplitSource> visitOutput(OutputNode node, Void context) { return node.getSource().accept(this, context); }
@Override public PhysicalOperation visitOutput(OutputNode node, LocalExecutionPlanContext context) { return node.getSource().accept(this, context); }
@Override public Optional<PlanNodeStatsEstimate> calculate(OutputNode node, StatsProvider sourceStats, Lookup lookup, Session session, TypeProvider types) { return Optional.of(sourceStats.getStats(node.getSource())); } }
@Override public Optional<PlanNodeStatsEstimate> calculate(OutputNode node, StatsProvider sourceStats, Lookup lookup, Session session, TypeProvider types) { return Optional.of(sourceStats.getStats(node.getSource())); } }
@Override public PhysicalOperation visitOutput(OutputNode node, LocalExecutionPlanContext context) { return node.getSource().accept(this, context); }
@Override public Map<PlanNodeId, SplitSource> visitOutput(OutputNode node, Void context) { return node.getSource().accept(this, context); }
@Override public Void visitOutput(OutputNode node, Void context) { String columns = getColumns(node); printNode(node, format("Output[%s]", columns), NODE_COLORS.get(NodeType.OUTPUT)); return node.getSource().accept(this, context); }
@Override public Void visitOutput(OutputNode node, Void context) { String columns = getColumns(node); printNode(node, format("Output[%s]", columns), NODE_COLORS.get(NodeType.OUTPUT)); return node.getSource().accept(this, context); }
@Override public PlanNode visitOutput(OutputNode node, RewriteContext<Void> context) { PlanNode source = context.rewrite(node.getSource()); List<Symbol> canonical = Lists.transform(node.getOutputSymbols(), this::canonicalize); return new OutputNode(node.getId(), source, node.getColumnNames(), canonical); }
@Override public PlanNode visitOutput(OutputNode node, RewriteContext<Void> context) { PlanNode source = context.rewrite(node.getSource()); List<Symbol> canonical = Lists.transform(node.getOutputSymbols(), this::canonicalize); return new OutputNode(node.getId(), source, node.getColumnNames(), canonical); }
@Override public PlanNode visitOutput(OutputNode node, RewriteContext<Set<Symbol>> context) { Set<Symbol> expectedInputs = ImmutableSet.copyOf(node.getOutputSymbols()); PlanNode source = context.rewrite(node.getSource(), expectedInputs); return new OutputNode(node.getId(), source, node.getColumnNames(), node.getOutputSymbols()); }
@Override public PlanNode visitOutput(OutputNode node, RewriteContext<Set<Symbol>> context) { Set<Symbol> expectedInputs = ImmutableSet.copyOf(node.getOutputSymbols()); PlanNode source = context.rewrite(node.getSource(), expectedInputs); return new OutputNode(node.getId(), source, node.getColumnNames(), node.getOutputSymbols()); }
@Override public Void visitOutput(OutputNode node, Set<Symbol> boundSymbols) { PlanNode source = node.getSource(); source.accept(this, boundSymbols); // visit child checkDependencies(source.getOutputSymbols(), node.getOutputSymbols(), "Invalid node. Output column dependencies (%s) not in source plan output (%s)", node.getOutputSymbols(), source.getOutputSymbols()); return null; }
@Override public Void visitOutput(OutputNode node, Set<Symbol> boundSymbols) { PlanNode source = node.getSource(); source.accept(this, boundSymbols); // visit child checkDependencies(source.getOutputSymbols(), node.getOutputSymbols(), "Invalid node. Output column dependencies (%s) not in source plan output (%s)", node.getOutputSymbols(), source.getOutputSymbols()); return null; }