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 2013/03/14 00:35:18 UTC

svn commit: r1456276 - in /hive/branches/ptf-windowing/ql/src: java/org/apache/hadoop/hive/ql/parse/ test/queries/clientnegative/ test/queries/clientpositive/ test/results/clientpositive/

Author: hashutosh
Date: Wed Mar 13 23:35:17 2013
New Revision: 1456276

URL: http://svn.apache.org/r1456276
Log:
HIVE-4112

Summary: This doesn't address the full problem. Since there are lots of rules in standard for specifying the window. This patch changes to use PRECEDING and FOLLOWING instead of LESS and MORE so that we are compliant with standard in choice of keywords.

Test Plan: Updated existing testcases.

Reviewers: hbutani

Differential Revision: https://reviews.facebook.net/D9363

Modified:
    hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SelectClauseParser.g
    hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
    hive/branches/ptf-windowing/ql/src/test/queries/clientnegative/ptf_negative_InvalidValueBoundary.q
    hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/ptf.q
    hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/windowing.q
    hive/branches/ptf-windowing/ql/src/test/results/clientpositive/ptf.q.out
    hive/branches/ptf-windowing/ql/src/test/results/clientpositive/windowing.q.out

Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SelectClauseParser.g
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SelectClauseParser.g?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SelectClauseParser.g (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SelectClauseParser.g Wed Mar 13 23:35:17 2013
@@ -215,8 +215,6 @@ valuesboundary 
 :
   KW_UNBOUNDED (r=KW_PRECEDING|r=KW_FOLLOWING)  -> ^($r KW_UNBOUNDED) | 
   KW_CURRENT KW_ROW  -> ^(KW_CURRENT) |
-  rowExp=expression rngExp=Number (d=KW_LESS | d=KW_MORE ) -> ^($d $rowExp $rngExp)
+  rowExp=expression rngExp=Number (d=KW_PRECEDING | d=KW_FOLLOWING ) -> ^($d $rowExp $rngExp)
 ;   
 
-
-

Modified: hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/branches/ptf-windowing/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Wed Mar 13 23:35:17 2013
@@ -10284,24 +10284,27 @@ public class SemanticAnalyzer extends Ba
     switch(type)
     {
     case HiveParser.KW_PRECEDING:
-      bs = new RangeBoundarySpec(Direction.PRECEDING, BoundarySpec.UNBOUNDED_AMOUNT);
+      if (node.getChildCount() == 2) {
+        bs = new ValueBoundarySpec(Direction.PRECEDING,
+            (ASTNode) node.getChild(0),
+            Integer.parseInt(node.getChild(1).getText()));
+      }
+      else{
+        bs = new RangeBoundarySpec(Direction.PRECEDING, BoundarySpec.UNBOUNDED_AMOUNT);
+      }
       break;
     case HiveParser.KW_FOLLOWING:
-      bs = new RangeBoundarySpec(Direction.FOLLOWING, BoundarySpec.UNBOUNDED_AMOUNT);
+      if (node.getChildCount() == 2) {
+        bs = new ValueBoundarySpec(Direction.FOLLOWING,
+            (ASTNode) node.getChild(0),
+            Integer.parseInt(node.getChild(1).getText()));
+      } else {
+        bs = new RangeBoundarySpec(Direction.FOLLOWING, BoundarySpec.UNBOUNDED_AMOUNT);
+      }
       break;
     case HiveParser.KW_CURRENT:
       bs = new CurrentRowSpec();
       break;
-    case HiveParser.KW_LESS:
-      bs = new ValueBoundarySpec(Direction.PRECEDING,
-          (ASTNode) node.getChild(0),
-          Integer.parseInt(node.getChild(1).getText()));
-      break;
-    case HiveParser.KW_MORE:
-      bs = new ValueBoundarySpec(Direction.FOLLOWING,
-          (ASTNode) node.getChild(0),
-          Integer.parseInt(node.getChild(1).getText()));
-      break;
     }
     return bs;
   }

Modified: hive/branches/ptf-windowing/ql/src/test/queries/clientnegative/ptf_negative_InvalidValueBoundary.q
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/test/queries/clientnegative/ptf_negative_InvalidValueBoundary.q?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/test/queries/clientnegative/ptf_negative_InvalidValueBoundary.q (original)
+++ hive/branches/ptf-windowing/ql/src/test/queries/clientnegative/ptf_negative_InvalidValueBoundary.q Wed Mar 13 23:35:17 2013
@@ -21,4 +21,4 @@ dense_rank() as dr  
 from part  
 distribute by p_mfgr  
 sort by p_name  
-window w1 as (range between p_name 2 less and current row);
+window w1 as (range between p_name 2 preceding and current row);

Modified: hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/ptf.q
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/ptf.q?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/ptf.q (original)
+++ hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/ptf.q Wed Mar 13 23:35:17 2013
@@ -199,7 +199,7 @@ dense_rank() over (distribute by p_mfgr 
 sum(p_retailprice) over (distribute by p_mfgr sort by p_name rows between unbounded preceding and current row)  as s  
 INSERT OVERWRITE TABLE part_5 select  p_mfgr,p_name, p_size,  
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 rank() over (distribute by p_mfgr sort by p_mfgr, p_name) as r, 
 dense_rank() over (distribute by p_mfgr sort by p_mfgr, p_name) as dr, 
 cume_dist() over (distribute by p_mfgr sort by p_mfgr, p_name) as cud, 

Modified: hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/windowing.q
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/windowing.q?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/windowing.q (original)
+++ hive/branches/ptf-windowing/ql/src/test/queries/clientpositive/windowing.q Wed Mar 13 23:35:17 2013
@@ -159,7 +159,7 @@ select  p_mfgr,p_name, p_size,  
   dense_rank() over(distribute by p_mfgr sort by p_mfgr, p_name ) as dr, 
 cume_dist() over(distribute by p_mfgr sort by p_mfgr, p_name ) as cud, 
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 first_value(p_size, true) over w1  as fv1
 from part 
 having p_size > 5 
@@ -280,7 +280,7 @@ rank() over(distribute by p_mfgr sort by
 dense_rank() over(distribute by p_mfgr sort by p_mfgr, p_name ) as dr, 
 cume_dist() over(distribute by p_mfgr sort by p_mfgr, p_name ) as cud, 
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 first_value(p_size, true) over w1  as fv1
 having p_size > 5 
 window w1 as (distribute by p_mfgr sort by p_mfgr, p_name rows between 2 preceding and 2 following) 
@@ -310,8 +310,8 @@ having p_size > 0
 	 
 -- 27. testMultipleRangeWindows
 select  p_mfgr,p_name, p_size, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between p_size 10 less and current row) as s2, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between current row and p_size 10 more )  as s1
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between p_size 10 preceding and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between current row and p_size 10 following )  as s1
 from part  
 window w1 as (rows between 2 preceding and 2 following);
 

Modified: hive/branches/ptf-windowing/ql/src/test/results/clientpositive/ptf.q.out
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/test/results/clientpositive/ptf.q.out?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/test/results/clientpositive/ptf.q.out (original)
+++ hive/branches/ptf-windowing/ql/src/test/results/clientpositive/ptf.q.out Wed Mar 13 23:35:17 2013
@@ -865,7 +865,7 @@ dense_rank() over (distribute by p_mfgr 
 sum(p_retailprice) over (distribute by p_mfgr sort by p_name rows between unbounded preceding and current row)  as s  
 INSERT OVERWRITE TABLE part_5 select  p_mfgr,p_name, p_size,  
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 rank() over (distribute by p_mfgr sort by p_mfgr, p_name) as r, 
 dense_rank() over (distribute by p_mfgr sort by p_mfgr, p_name) as dr, 
 cume_dist() over (distribute by p_mfgr sort by p_mfgr, p_name) as cud, 
@@ -885,7 +885,7 @@ dense_rank() over (distribute by p_mfgr 
 sum(p_retailprice) over (distribute by p_mfgr sort by p_name rows between unbounded preceding and current row)  as s  
 INSERT OVERWRITE TABLE part_5 select  p_mfgr,p_name, p_size,  
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 rank() over (distribute by p_mfgr sort by p_mfgr, p_name) as r, 
 dense_rank() over (distribute by p_mfgr sort by p_mfgr, p_name) as dr, 
 cume_dist() over (distribute by p_mfgr sort by p_mfgr, p_name) as cud, 

Modified: hive/branches/ptf-windowing/ql/src/test/results/clientpositive/windowing.q.out
URL: http://svn.apache.org/viewvc/hive/branches/ptf-windowing/ql/src/test/results/clientpositive/windowing.q.out?rev=1456276&r1=1456275&r2=1456276&view=diff
==============================================================================
--- hive/branches/ptf-windowing/ql/src/test/results/clientpositive/windowing.q.out (original)
+++ hive/branches/ptf-windowing/ql/src/test/results/clientpositive/windowing.q.out Wed Mar 13 23:35:17 2013
@@ -718,7 +718,7 @@ select  p_mfgr,p_name, p_size,  
   dense_rank() over(distribute by p_mfgr sort by p_mfgr, p_name ) as dr, 
 cume_dist() over(distribute by p_mfgr sort by p_mfgr, p_name ) as cud, 
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 first_value(p_size, true) over w1  as fv1
 from part 
 having p_size > 5 
@@ -732,7 +732,7 @@ select  p_mfgr,p_name, p_size,  
   dense_rank() over(distribute by p_mfgr sort by p_mfgr, p_name ) as dr, 
 cume_dist() over(distribute by p_mfgr sort by p_mfgr, p_name ) as cud, 
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 first_value(p_size, true) over w1  as fv1
 from part 
 having p_size > 5 
@@ -1268,7 +1268,7 @@ rank() over(distribute by p_mfgr sort by
 dense_rank() over(distribute by p_mfgr sort by p_mfgr, p_name ) as dr, 
 cume_dist() over(distribute by p_mfgr sort by p_mfgr, p_name ) as cud, 
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 first_value(p_size, true) over w1  as fv1
 having p_size > 5 
 window w1 as (distribute by p_mfgr sort by p_mfgr, p_name rows between 2 preceding and 2 following) 
@@ -1296,7 +1296,7 @@ rank() over(distribute by p_mfgr sort by
 dense_rank() over(distribute by p_mfgr sort by p_mfgr, p_name ) as dr, 
 cume_dist() over(distribute by p_mfgr sort by p_mfgr, p_name ) as cud, 
 sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name rows between unbounded preceding and current row) as s1, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 less and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_name range between p_size 5 preceding and current row) as s2, 
 first_value(p_size, true) over w1  as fv1
 having p_size > 5 
 window w1 as (distribute by p_mfgr sort by p_mfgr, p_name rows between 2 preceding and 2 following) 
@@ -1558,8 +1558,8 @@ Manufacturer#5	almond aquamarine dodger 
 Manufacturer#5	almond azure blanched chiffon midnight	23	1464.48	5	5	23	-23
 PREHOOK: query: -- 27. testMultipleRangeWindows
 select  p_mfgr,p_name, p_size, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between p_size 10 less and current row) as s2, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between current row and p_size 10 more )  as s1
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between p_size 10 preceding and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between current row and p_size 10 following )  as s1
 from part  
 window w1 as (rows between 2 preceding and 2 following)
 PREHOOK: type: QUERY
@@ -1567,8 +1567,8 @@ PREHOOK: Input: default@part
 #### A masked pattern was here ####
 POSTHOOK: query: -- 27. testMultipleRangeWindows
 select  p_mfgr,p_name, p_size, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between p_size 10 less and current row) as s2, 
-sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between current row and p_size 10 more )  as s1
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between p_size 10 preceding and current row) as s2, 
+sum(p_size) over (distribute by p_mfgr sort by p_mfgr, p_size range between current row and p_size 10 following )  as s1
 from part  
 window w1 as (rows between 2 preceding and 2 following)
 POSTHOOK: type: QUERY