@Override public PlanNode visitAssignUniqueId(AssignUniqueId node, RewriteContext<Void> context) { PlanNode source = context.rewrite(node.getSource()); return new AssignUniqueId(node.getId(), source, node.getIdColumn()); }
@Override public Void visitAssignUniqueId(AssignUniqueId node, Integer indent) { print(indent, "- AssignUniqueId => [%s]", formatOutputs(node.getOutputSymbols())); printPlanNodesStatsAndCost(indent + 2, node); printStats(indent + 2, node.getId()); return processChildren(node, indent + 1); }
@Override public PlanNode replaceChildren(List<PlanNode> newChildren) { checkArgument(newChildren.size() == 1, "expected newChildren to contain 1 node"); return new AssignUniqueId(getId(), Iterables.getOnlyElement(newChildren), idColumn); } }
@Override public PlanNode visitAssignUniqueId(AssignUniqueId node, RewriteContext<Set<Symbol>> context) { if (!context.get().contains(node.getIdColumn())) { return context.rewrite(node.getSource(), context.get()); } return context.defaultRewrite(node, context.get()); }
Symbol nonNull) AssignUniqueId inputWithUniqueColumns = new AssignUniqueId( idAllocator.getNextId(), lateralJoinNode.getInput(), ImmutableList.of(), ImmutableList.<Symbol>builder() .addAll(inputWithUniqueColumns.getOutputSymbols()) .addAll(scalarAggregationSource.getOutputSymbols()) .build(),
@Override public StreamProperties visitAssignUniqueId(AssignUniqueId node, List<StreamProperties> inputProperties) { StreamProperties properties = Iterables.getOnlyElement(inputProperties); if (properties.getPartitioningColumns().isPresent()) { // preserve input (possibly preferred) partitioning return properties; } return new StreamProperties(properties.getDistribution(), Optional.of(ImmutableList.of(node.getIdColumn())), properties.isOrdered()); }
public AssignUniqueId assignUniqueId(Symbol unique, PlanNode source) { return new AssignUniqueId(idAllocator.getNextId(), source, unique); }
@Override public Map<PlanNodeId, SplitSource> visitAssignUniqueId(AssignUniqueId node, Void context) { return node.getSource().accept(this, context); }
@Override public PhysicalOperation visitAssignUniqueId(AssignUniqueId node, LocalExecutionPlanContext context) { PhysicalOperation source = node.getSource().accept(this, context); OperatorFactory operatorFactory = new AssignUniqueIdOperator.AssignUniqueIdOperatorFactory( context.getNextOperatorId(), node.getId()); return new PhysicalOperation(operatorFactory, makeLayout(node), context, source); }
private static JoinNode leftOuterJoin(PlanNodeIdAllocator idAllocator, AssignUniqueId probeSide, ProjectNode buildSide, Expression joinExpression) { return new JoinNode( idAllocator.getNextId(), JoinNode.Type.LEFT, probeSide, buildSide, ImmutableList.of(), ImmutableList.<Symbol>builder() .addAll(probeSide.getOutputSymbols()) .addAll(buildSide.getOutputSymbols()) .build(), Optional.of(joinExpression), Optional.empty(), Optional.empty(), Optional.empty()); }
@Override public PlanNode visitAssignUniqueId(AssignUniqueId node, RewriteContext<Set<Symbol>> context) { if (!context.get().contains(node.getIdColumn())) { return context.rewrite(node.getSource(), context.get()); } return context.defaultRewrite(node, context.get()); }
Symbol nonNull) AssignUniqueId inputWithUniqueColumns = new AssignUniqueId( idAllocator.getNextId(), lateralJoinNode.getInput(), ImmutableList.of(), ImmutableList.<Symbol>builder() .addAll(inputWithUniqueColumns.getOutputSymbols()) .addAll(scalarAggregationSource.getOutputSymbols()) .build(),
@Override public Optional<Symbol> getAssignedSymbol(PlanNode node, Session session, Metadata metadata, SymbolAliases symbolAliases) { if (!(node instanceof AssignUniqueId)) { return Optional.empty(); } AssignUniqueId assignUniqueIdNode = (AssignUniqueId) node; return Optional.of(assignUniqueIdNode.getIdColumn()); }
@Override public PlanNode replaceChildren(List<PlanNode> newChildren) { checkArgument(newChildren.size() == 1, "expected newChildren to contain 1 node"); return new AssignUniqueId(getId(), Iterables.getOnlyElement(newChildren), idColumn); } }
public AssignUniqueId assignUniqueId(Symbol unique, PlanNode source) { return new AssignUniqueId(idAllocator.getNextId(), source, unique); }
@Override public Void visitAssignUniqueId(AssignUniqueId node, Set<Symbol> boundSymbols) { node.getSource().accept(this, boundSymbols); // visit child return null; }
@Override public PhysicalOperation visitAssignUniqueId(AssignUniqueId node, LocalExecutionPlanContext context) { PhysicalOperation source = node.getSource().accept(this, context); OperatorFactory operatorFactory = new AssignUniqueIdOperator.AssignUniqueIdOperatorFactory( context.getNextOperatorId(), node.getId()); return new PhysicalOperation(operatorFactory, makeLayout(node), context, source); }
private static JoinNode leftOuterJoin(PlanNodeIdAllocator idAllocator, AssignUniqueId probeSide, ProjectNode buildSide, Expression joinExpression) { return new JoinNode( idAllocator.getNextId(), JoinNode.Type.LEFT, probeSide, buildSide, ImmutableList.of(), ImmutableList.<Symbol>builder() .addAll(probeSide.getOutputSymbols()) .addAll(buildSide.getOutputSymbols()) .build(), Optional.of(joinExpression), Optional.empty(), Optional.empty(), Optional.empty()); }
@Override public PlanNode visitAssignUniqueId(AssignUniqueId node, RewriteContext<Void> context) { PlanNode source = context.rewrite(node.getSource()); return new AssignUniqueId(node.getId(), source, node.getIdColumn()); }
@Override public ActualProperties visitAssignUniqueId(AssignUniqueId node, List<ActualProperties> inputProperties) { ActualProperties properties = Iterables.getOnlyElement(inputProperties); ImmutableList.Builder<LocalProperty<Symbol>> newLocalProperties = ImmutableList.builder(); newLocalProperties.addAll(properties.getLocalProperties()); newLocalProperties.add(new GroupingProperty<>(ImmutableList.of(node.getIdColumn()))); node.getSource().getOutputSymbols().stream() .forEach(column -> newLocalProperties.add(new ConstantProperty<>(column))); if (properties.getNodePartitioning().isPresent()) { // preserve input (possibly preferred) partitioning return ActualProperties.builderFrom(properties) .local(newLocalProperties.build()) .build(); } return ActualProperties.builderFrom(properties) .global(partitionedOn(ARBITRARY_DISTRIBUTION, ImmutableList.of(node.getIdColumn()), Optional.empty())) .local(newLocalProperties.build()) .build(); }