diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 395b5e6..eeeec9d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -12392,6 +12392,13 @@ private RelNode genUnionLogicalPlan(String unionalias, String leftalias, RelNode 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,