Repository: asterixdb
Updated Branches:
  refs/heads/master 38644bb38 -> dabad4725


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/dabad472/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
 
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
index 159bcf5..0b3a57e 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java
@@ -93,6 +93,8 @@ import 
org.apache.hyracks.dataflow.common.data.partition.range.IRangeMap;
 
 public class EnforceStructuralPropertiesRule implements IAlgebraicRewriteRule {
 
+    private static final String HASH_MERGE = "hash_merge";
+    private static final String TRUE_CONSTANT = "true";
     private PhysicalOptimizationConfig physicalOptimizationConfig;
 
     @Override
@@ -552,6 +554,11 @@ public class EnforceStructuralPropertiesRule implements 
IAlgebraicRewriteRule {
                 }
                 case UNORDERED_PARTITIONED: {
                     List<LogicalVariable> varList = new 
ArrayList<>(((UnorderedPartitionedProperty) pp).getColumnSet());
+                    String hashMergeHint = 
context.getMetadataProvider().getConfig().get(HASH_MERGE);
+                    if (hashMergeHint == null || 
!hashMergeHint.equalsIgnoreCase(TRUE_CONSTANT)) {
+                        pop = new HashPartitionExchangePOperator(varList, 
domain);
+                        break;
+                    }
                     List<ILocalStructuralProperty> cldLocals = 
deliveredByChild.getLocalProperties();
                     List<ILocalStructuralProperty> reqdLocals = 
required.getLocalProperties();
                     boolean propWasSet = false;

Reply via email to