Author: hashutosh
Date: Thu Oct  2 14:19:45 2014
New Revision: 1628982

URL: http://svn.apache.org/r1628982
Log:
HIVE-8318 : Null Scan optimizer throws exception when no partitions are 
selected (Ashutosh Chauhan via Gunther Hagleitner)

Modified:
    
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/NullScanTaskDispatcher.java
    hive/trunk/ql/src/test/queries/clientpositive/optimize_nullscan.q
    hive/trunk/ql/src/test/results/clientpositive/optimize_nullscan.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/NullScanTaskDispatcher.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/NullScanTaskDispatcher.java?rev=1628982&r1=1628981&r2=1628982&view=diff
==============================================================================
--- 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/NullScanTaskDispatcher.java
 (original)
+++ 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/NullScanTaskDispatcher.java
 Thu Oct  2 14:19:45 2014
@@ -102,13 +102,19 @@ public class NullScanTaskDispatcher impl
   }
 
   private void processAlias(MapWork work, String alias) {
+    List<String> paths = getPathsForAlias(work, alias);
+    if (paths.isEmpty()) {
+      // partitioned table which don't select any partitions
+      // there are no paths to replace with fakePath
+      return;
+    }
     work.setUseOneNullRowInputFormat(true);
 
     // Change the alias partition desc
     PartitionDesc aliasPartn = work.getAliasToPartnInfo().get(alias);
     changePartitionToMetadataOnly(aliasPartn);
 
-    List<String> paths = getPathsForAlias(work, alias);
+
     for (String path : paths) {
       PartitionDesc partDesc = work.getPathToPartitionInfo().get(path);
       PartitionDesc newPartition = changePartitionToMetadataOnly(partDesc);

Modified: hive/trunk/ql/src/test/queries/clientpositive/optimize_nullscan.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/optimize_nullscan.q?rev=1628982&r1=1628981&r2=1628982&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/optimize_nullscan.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/optimize_nullscan.q Thu Oct  
2 14:19:45 2014
@@ -5,6 +5,10 @@ select key from src where false;
 select key from src where false;
 
 explain extended
+select count(key) from srcpart where 1=2 group by key;
+select count(key) from srcpart where 1=2 group by key;
+
+explain extended
 select * from (select key from src where false) a left outer join (select key 
from srcpart limit 0) b on a.key=b.key;
 select * from (select key from src where false) a left outer join (select key 
from srcpart limit 0) b on a.key=b.key;
 

Modified: hive/trunk/ql/src/test/results/clientpositive/optimize_nullscan.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/optimize_nullscan.q.out?rev=1628982&r1=1628981&r2=1628982&view=diff
==============================================================================
Files hive/trunk/ql/src/test/results/clientpositive/optimize_nullscan.q.out 
(original) and 
hive/trunk/ql/src/test/results/clientpositive/optimize_nullscan.q.out Thu Oct  
2 14:19:45 2014 differ

Modified: 
hive/trunk/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out?rev=1628982&r1=1628981&r2=1628982&view=diff
==============================================================================
Files hive/trunk/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out 
(original) and 
hive/trunk/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out Thu 
Oct  2 14:19:45 2014 differ


Reply via email to