public static Global distributed(PartitioningProperties partitioning) { return distributed(Optional.of(partitioning)); }
public static Global distributed() { return distributed(Optional.empty()); }
public Global translate(Function<Symbol, Optional<Symbol>> translator) { if (!isDistributed()) { return this; } return distributed(partitioningProperties.flatMap(properties -> properties.translate(translator))); }
public static Global distributed(Partitioning partitioning) { return distributed(Optional.of(partitioning)); }
public static Global distributed() { return distributed(Optional.<Partitioning>empty()); }
public static PreferredProperties hashPartitionedWithLocal(List<Symbol> columns, List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.distributed(Partitioning.hashPartitioned(columns))) .local(localProperties) .build(); }
public Global translate(Function<Symbol, Optional<Symbol>> translator) { if (!isDistributed()) { return this; } return distributed(partitioningProperties.flatMap(properties -> properties.translate(translator))); }
public static PreferredProperties partitionedWithLocal(Set<Symbol> columns, List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.distributed(Partitioning.partitioned(columns))) .local(localProperties) .build(); }
public static PreferredProperties distributed() { return builder() .global(Global.distributed()) .build(); }
public static PreferredProperties hashPartitioned(List<Symbol> columns) { return builder() .global(Global.distributed(Partitioning.hashPartitioned(columns))) .build(); }
public static PreferredProperties partitioned(Set<Symbol> columns) { return builder() .global(Global.distributed(Partitioning.partitioned(columns))) .build(); }
.global(PreferredProperties.Global.distributed(PreferredProperties.PartitioningProperties.partitioned(childPartitioning) .withNullsAndAnyReplicated(nullsAndAnyReplicated))) .build();
private Partitioning selectUnionPartitioning(UnionNode node, PreferredProperties preferredProperties, PreferredProperties.PartitioningProperties parentPreference) { // Use the parent's requested partitioning if available if (parentPreference.getPartitioning().isPresent()) { return parentPreference.getPartitioning().get(); } // Try planning the children to see if any of them naturally produce a partitioning (for now, just select the first) boolean nullsAndAnyReplicated = parentPreference.isNullsAndAnyReplicated(); for (int sourceIndex = 0; sourceIndex < node.getSources().size(); sourceIndex++) { PreferredProperties.PartitioningProperties childPartitioning = parentPreference.translate(outputToInputTranslator(node, sourceIndex)).get(); PreferredProperties childPreferred = PreferredProperties.builder() .global(PreferredProperties.Global.distributed(childPartitioning.withNullsAndAnyReplicated(nullsAndAnyReplicated))) .build(); PlanWithProperties child = node.getSources().get(sourceIndex).accept(this, childPreferred); if (child.getProperties().isNodePartitionedOn(childPartitioning.getPartitioningColumns(), nullsAndAnyReplicated)) { Function<Symbol, Optional<Symbol>> childToParent = createTranslator(createMapping(node.sourceOutputLayout(sourceIndex), node.getOutputSymbols())); return child.getProperties().translate(childToParent).getNodePartitioning().get(); } } // Otherwise, choose an arbitrary partitioning over the columns return Partitioning.create(FIXED_HASH_DISTRIBUTION, ImmutableList.copyOf(parentPreference.getPartitioningColumns())); }
public static PreferredProperties partitioned(Partitioning partitioning) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(partitioning))) .build(); }
public static PreferredProperties partitioned(Set<Symbol> columns) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(columns))) .build(); }
public static PreferredProperties distributed() { return builder() .global(Global.distributed()) .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 partitionedWithNullsAndAnyReplicated(Set<Symbol> columns) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(columns).withNullsAndAnyReplicated(true))) .build(); }
public static PreferredProperties partitionedWithNullsAndAnyReplicated(Partitioning partitioning) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(partitioning).withNullsAndAnyReplicated(true))) .build(); }