You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2014/09/16 01:20:43 UTC
svn commit: r1625183 -
/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
Author: hashutosh
Date: Mon Sep 15 23:20:43 2014
New Revision: 1625183
URL: http://svn.apache.org/r1625183
Log:
HIVE-8039 : [CBO] Handle repeated alias (Ashutosh Chauhan via John Pullokkaran)
Modified:
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
Modified: hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java?rev=1625183&r1=1625182&r2=1625183&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java (original)
+++ hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java Mon Sep 15 23:20:43 2014
@@ -49,7 +49,7 @@ public class RowResolver implements Seri
* The primary(first) mapping is still only held in
* invRslvMap.
*/
- private Map<String, String[]> altInvRslvMap;
+ private final Map<String, String[]> altInvRslvMap;
private Map<String, ASTNode> expressionMap;
// TODO: Refactor this and do in a more object oriented manner
@@ -377,10 +377,11 @@ public class RowResolver implements Seri
outputColPos++;
- if (rrToAddTo.get(tabAlias, colAlias) != null)
- throw new RuntimeException("Ambigous Column Names");
-
- rrToAddTo.put(tabAlias, colAlias, newCI);
+ if (rrToAddTo.get(tabAlias, colAlias) != null) {
+ LOG.debug("Found duplicate column alias in RR: " + rrToAddTo.get(tabAlias, colAlias));
+ } else {
+ rrToAddTo.put(tabAlias, colAlias, newCI);
+ }
qualifiedColName = rrToAddFrom.getAlternateMappings(cInfoFrmInput
.getInternalName());
@@ -403,7 +404,7 @@ public class RowResolver implements Seri
/**
* Return a new row resolver that is combination of left RR and right RR.
* The schema will be schema of left, schema of right
- *
+ *
* @param leftRR
* @param rightRR
* @return