You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by gu...@apache.org on 2014/09/20 03:20:27 UTC
svn commit: r1626377 -
/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/DerivedTableInjector.java
Author: gunther
Date: Sat Sep 20 01:20:26 2014
New Revision: 1626377
URL: http://svn.apache.org/r1626377
Log:
HIVE-8198: [CBO] Handle case where top level schema contains repeated alias (Ashutosh Chauhan via Gunther Hagleitner)
Modified:
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/DerivedTableInjector.java
Modified: hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/DerivedTableInjector.java
URL: http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/DerivedTableInjector.java?rev=1626377&r1=1626376&r2=1626377&view=diff
==============================================================================
--- hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/DerivedTableInjector.java (original)
+++ hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/translator/DerivedTableInjector.java Sat Sep 20 01:20:26 2014
@@ -138,7 +138,12 @@ public class DerivedTableInjector {
// (limit)?(OB)?(ProjectRelBase)....
List<RexNode> rootChildExps = originalProjRel.getChildExps();
if (resultSchema.size() != rootChildExps.size()) {
- throw new RuntimeException("Result Schema didn't match Optiq Optimized Op Tree Schema");
+ // this is a bug in Hive where for queries like select key,value,value
+ // convertRowSchemaToResultSetSchema() only returns schema containing key,value
+ // Underlying issue is much deeper because it seems like RowResolver itself doesnt have
+ // those mappings. see limit_pushdown.q & limit_pushdown_negative.q
+ // Till Hive issue is fixed, disable CBO for such queries.
+ throw new OptiqSemanticException("Result Schema didn't match Optiq Optimized Op Tree Schema");
}
List<String> newSelAliases = new ArrayList<String>();