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