@Override public PlanWithProperties visitValues(ValuesNode node, PreferredProperties preferredProperties) { return new PlanWithProperties( node, ActualProperties.builder() .global(singleStreamPartition()) .build()); }
public static PreferredProperties partitioned(Set<Symbol> columns) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(columns))) .build(); }
public static PreferredProperties undistributed() { return builder() .global(Global.undistributed()) .build(); }
@Override public ActualProperties visitExplainAnalyze(ExplainAnalyzeNode node, List<ActualProperties> inputProperties) { return ActualProperties.builder() .global(coordinatorSingleStreamPartition()) .build(); }
public ActualProperties withReplicatedNulls(boolean replicatedNulls) { return builderFrom(this) .global(global.withReplicatedNulls(replicatedNulls)) .build(); }
@Override public PlanWithProperties visitGroupId(GroupIdNode node, PreferredProperties preferredProperties) { PreferredProperties childPreference = preferredProperties.translate(translateGroupIdSymbols(node)); PlanWithProperties child = planChild(node, childPreference); return rebaseAndDeriveProperties(node, child); }
@Override protected PlanWithProperties visitPlan(PlanNode node, StreamPreferredProperties parentPreferences) { return planAndEnforceChildren( node, parentPreferences.withoutPreference().withDefaultParallelism(session), parentPreferences.withDefaultParallelism(session)); }
@Override public PlanWithProperties visitTableFinish(TableFinishNode node, StreamPreferredProperties parentPreferences) { // table commit requires that all data be in one stream // this node changes the input organization completely, so we do not pass through parent preferences return planAndEnforceChildren(node, singleStream(), defaultParallelism(session)); }
@Override public PlanWithProperties visitExplainAnalyze(ExplainAnalyzeNode node, StreamPreferredProperties parentPreferences) { // Although explain analyze discards all output, we want to maintain the behavior // of a normal output node, so declare the node to be order sensitive return planAndEnforceChildren( node, singleStream().withOrderSensitivity(), singleStream().withOrderSensitivity()); }
@Override public PlanWithProperties visitEnforceSingleRow(EnforceSingleRowNode node, HashComputationSet parentPreference) { // this plan node can only have a single input symbol, so do not add extra hash symbols return planSimpleNodeWithProperties(node, new HashComputationSet(), true); }
@Override public PlanWithProperties visitIndexSource(IndexSourceNode node, PreferredProperties preferredProperties) { return new PlanWithProperties( node, ActualProperties.builder() .global(singleStreamPartition()) .build()); }
public static PreferredProperties partitioned(Partitioning partitioning) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(partitioning))) .build(); }
@Override public ActualProperties visitTableFinish(TableFinishNode node, List<ActualProperties> inputProperties) { return ActualProperties.builder() .global(coordinatorSingleStreamPartition()) .build(); }
public static PreferredProperties undistributedWithLocal(List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.undistributed()) .local(localProperties) .build(); }
@Override public ActualProperties visitIndexSource(IndexSourceNode node, List<ActualProperties> context) { return ActualProperties.builder() .global(singleStreamPartition()) .build(); }
public static PreferredProperties partitionedWithNullsAndAnyReplicated(Set<Symbol> columns) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(columns).withNullsAndAnyReplicated(true))) .build(); }
@Override public ActualProperties visitValues(ValuesNode node, List<ActualProperties> context) { return ActualProperties.builder() .global(singleStreamPartition()) .build(); }
public static PreferredProperties partitionedWithLocal(Set<Symbol> columns, List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(columns))) .local(localProperties) .build(); }
public static PreferredProperties distributed() { return builder() .global(Global.distributed()) .build(); }
public static PreferredProperties partitionedWithNullsAndAnyReplicated(Partitioning partitioning) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(partitioning).withNullsAndAnyReplicated(true))) .build(); }