-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20289/
-----------------------------------------------------------

Review request for Tajo.


Bugs: TAJO-757
    https://issues.apache.org/jira/browse/TAJO-757


Repository: tajo


Description
-------

See the title. The object of this issue is to add ANTLR parser rule and 
algebraic expression for window function.

According to SQL 2003 standards, BNF for window function is as follows:

{noformat}
<window function>    ::=   <window function type> OVER <window name or 
specification>

<window function type>    ::= 
         <rank function type> <left paren> <right paren>
     |     ROW_NUMBER <left paren> <right paren>
     |     <aggregate function>

<rank function type>    ::=   RANK | DENSE_RANK | PERCENT_RANK | CUME_DIST

<window name or specification>    ::=   <window name> | <in-line window 
specification>

<in-line window specification>    ::=   <window specification>

<window specification>    ::=   <left paren> <window specification details> 
<right paren>

<window specification details>    ::= 
         [ <existing window name> ] [ <window partition clause> ] [ <window 
order clause> ] [ <window frame clause> ]

<existing window name>    ::=   <window name>

<window partition clause>    ::=   PARTITION BY <window partition column 
reference list>

<window partition column reference list>    ::=   <window partition column 
reference> [ { <comma> <window partition column reference> }... ]

<window partition column reference>    ::=   <column reference> [ <collate 
clause> ]

<window order clause>    ::=   ORDER BY <sort specification list>

<window frame clause>    ::=   <window frame units> <window frame extent> [ 
<window frame exclusion> ]

<window frame units>    ::=   ROWS | RANGE

<window frame extent>    ::=   <window frame start> | <window frame between>

<window frame start>    ::=   UNBOUNDED PRECEDING | <window frame preceding> | 
CURRENT ROW

<window frame preceding>    ::=   <unsigned value specification> PRECEDING

<window frame between>    ::=   BETWEEN <window frame bound 1> AND <window 
frame bound 2>

<window frame bound 1>    ::=   <window frame bound>

<window frame bound 2>    ::=   <window frame bound>

<window frame bound>    ::= 
         <window frame start>
     |     UNBOUNDED FOLLOWING 
     |     <window frame following>

<window frame following>    ::=   <unsigned value specification> FOLLOWING

<window frame exclusion>    ::= 
         EXCLUDE CURRENT ROW 
     |     EXCLUDE GROUP 
     |     EXCLUDE TIES 
     |     EXCLUDE NO OTHERS
{noformat}


Diffs
-----

  tajo-algebra/src/main/java/org/apache/tajo/algebra/Expr.java 
1ca42d7825c6278c859ffe3ec566e81421d88a44 
  
tajo-algebra/src/main/java/org/apache/tajo/algebra/GeneralSetFunctionExpr.java 
d7eb4edf7704a33974052859845d5cd7b2fcba9a 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/OpType.java 
0cb0527ab6af65b3e706ea26b52965d00dedc73d 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/Window.java PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/WindowFunctionExpr.java 
PRE-CREATION 
  tajo-algebra/src/main/java/org/apache/tajo/algebra/WindowSpecExpr.java 
PRE-CREATION 
  
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
 755532575621ce6ffcffcf8c37b2b16297d31e1b 
  
tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLLexer.g4
 7fa7973a96afc181c369301c8e4b248f844f0d05 
  
tajo-core/tajo-core-backend/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
 1249d57e36eba9d65262d210f57113f5fc56f4bf 
  
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/HiveQLAnalyzer.java
 c7345835605ee9c7d691d74237f12519b531ac8e 
  
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
 e95d5af080f9b3c48ee69130e1e4d569ccf4cc75 
  
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/parser/TestSQLAnalyzer.java
 9462c7512c576c791fa113ca5dcbba20bf68ffcb 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window1.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window2.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window3.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window4.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window5.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window6.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window7.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window8.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/queries/TestSQLAnalyzer/window9.sql
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window1.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window2.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window3.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window4.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window5.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window6.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window7.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window8.result
 PRE-CREATION 
  
tajo-core/tajo-core-backend/src/test/resources/results/TestSQLAnalyzer/window9.result
 PRE-CREATION 

Diff: https://reviews.apache.org/r/20289/diff/


Testing
-------


Thanks,

Hyunsik Choi

Reply via email to