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/17 17:33:39 UTC

svn commit: r1625633 - /hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java

Author: hashutosh
Date: Wed Sep 17 15:33:38 2014
New Revision: 1625633

URL: http://svn.apache.org/r1625633
Log:
HIVE-8150 : [CBO] Type coercion in union queries (Ashutosh Chauhan via John Pullokkaran)

Modified:
    hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java

Modified: hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1625633&r1=1625632&r2=1625633&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Wed Sep 17 15:33:38 2014
@@ -12393,6 +12393,13 @@ public class SemanticAnalyzer extends Ba
           tmpDTLst.add(rightFieldDT);
           unionFieldDT = cluster.getTypeFactory().leastRestrictive(tmpDTLst);
 
+          if (null == unionFieldDT) {
+            //TODO : union32.q results in this, but it seems Optiq is too
+            // restrictive here. Follow-up with Optiq.
+            throw new OptiqSemanticException("Can't find common type for: "
+              + tmpDTLst);
+          }
+
           if (!unionFieldDT.equals(leftFieldDT))
             leftNeedsTypeCast = true;
           leftProjs.add(cluster.getRexBuilder().ensureType(unionFieldDT,