public PreferredProperties mergeWithParent(PreferredProperties parent) { List<LocalProperty<Symbol>> newLocal = ImmutableList.<LocalProperty<Symbol>>builder() .addAll(localProperties) .addAll(parent.getLocalProperties()) .build(); Builder builder = builder() .local(newLocal); if (globalProperties.isPresent()) { Global currentGlobal = globalProperties.get(); Global newGlobal = parent.getGlobalProperties() .map(currentGlobal::mergeWithParent) .orElse(currentGlobal); builder.global(newGlobal); } else { builder.global(parent.getGlobalProperties()); } return builder.build(); }
public static PreferredProperties undistributedWithLocal(List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.undistributed()) .local(localProperties) .build(); }
public static PreferredProperties local(List<? extends LocalProperty<Symbol>> localProperties) { return builder() .local(localProperties) .build(); }
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 hashPartitionedWithLocal(List<Symbol> columns, List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.distributed(Partitioning.hashPartitioned(columns))) .local(localProperties) .build(); }
public static PreferredProperties local(List<? extends LocalProperty<Symbol>> localProperties) { return builder() .local(localProperties) .build(); }
public static PreferredProperties undistributedWithLocal(List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.undistributed()) .local(localProperties) .build(); }
public static PreferredProperties partitionedWithLocal(Set<Symbol> columns, List<? extends LocalProperty<Symbol>> localProperties) { return builder() .global(Global.distributed(PartitioningProperties.partitioned(columns))) .local(localProperties) .build(); }