diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java index b5ffcd9409..4313a6b440 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/JoinDesc.java @@ -690,6 +690,7 @@ public void setQBJoinTreeProps(JoinDesc joinDesc) { aliasToOpInfo = joinDesc.aliasToOpInfo; leftInputJoin = joinDesc.leftInputJoin; streamAliases = joinDesc.streamAliases; + joinKeys = joinDesc.joinKeys; } public void setQBJoinTreeProps(QBJoinTree joinTree) { @@ -716,6 +717,12 @@ public void cloneQBJoinTreeProps(JoinDesc joinDesc) { aliasToOpInfo = new HashMap>(joinDesc.aliasToOpInfo); leftInputJoin = joinDesc.leftInputJoin; streamAliases = joinDesc.streamAliases == null ? null : new ArrayList(joinDesc.streamAliases); + if (joinDesc.joinKeys != null) { + joinKeys = new ExprNodeDesc[joinDesc.joinKeys.length][]; + for(int i = 0; i < joinDesc.joinKeys.length; i++) { + joinKeys[i] = joinDesc.joinKeys[i].clone(); + } + } } public MemoryMonitorInfo getMemoryMonitorInfo() {