----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/20289/#review40516 -----------------------------------------------------------
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java <https://reviews.apache.org/r/20289/#comment73558> Thank you for your comment. rank functions are specified in the parse rule in SQLParser.g4 as follows: rank_function_type : RANK | DENSE_RANK | PERCENT_RANK | CUME_DIST Only four cases are available here :) - Hyunsik Choi On April 14, 2014, 4:08 a.m., Hyunsik Choi wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/20289/ > ----------------------------------------------------------- > > (Updated April 14, 2014, 4:08 a.m.) > > > 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 > >
