This is an automated email from the ASF dual-hosted git repository. dlych pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 8bcc6d26254bc84eab8f1f08304ccd95582e316a Author: Dmitry Lychagin <[email protected]> AuthorDate: Mon Jan 25 16:39:18 2021 -0800 [NO ISSUE][DOC] Document grouping sets syntax - user model changes: no - storage format changes: no - interface changes: no Details: - Document grouping sets in group by clause Change-Id: I28724daf0683c94419d41134c7c967e9958b9e5a Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/9726 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Dmitry Lychagin <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> --- asterixdb/asterix-doc/src/main/grammar/sqlpp.ebnf | 14 ++++++++++++-- asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md | 8 ++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/asterixdb/asterix-doc/src/main/grammar/sqlpp.ebnf b/asterixdb/asterix-doc/src/main/grammar/sqlpp.ebnf index 62d333a..45d7d6e 100644 --- a/asterixdb/asterix-doc/src/main/grammar/sqlpp.ebnf +++ b/asterixdb/asterix-doc/src/main/grammar/sqlpp.ebnf @@ -76,12 +76,22 @@ LetClause ::= "LET" Variable "=" Expr ("," Variable "=" Expr)* WhereClause ::= "WHERE" Expr -GroupByClause ::= "GROUP BY" Expr ("AS"? Identifier)? ( "," Expr ("AS"? Identifier)?)* GroupAsClause? +GroupByClause ::= "GROUP BY" GroupingElement ("," GroupingElement)* GroupAsClause? -HavingClause ::= "HAVING" Expr +GroupingElement ::= GroupByExprPair + | ( "(" GroupByExprPair ( "," GroupByExprPair )* ")") + | ( "GROUPING" "SETS" "(" GroupingElement ("," GroupingElement)* ")" ) + | ( ( "ROLLUP" | "CUBE" ) "(" OrdinaryGroupingSet ( "," OrdinaryGroupingSet )* ")" ) + | ( "(" ")" ) + +OrdinaryGroupingSet ::= GroupByExprPair | ( "(" GroupByExprPair ( "," GroupByExprPair )* ")") + +GroupByExprPair ::= Expr ("AS"? Identifier)? GroupAsClause ::= "GROUP AS" Identifier +HavingClause ::= "HAVING" Expr + Selection ::= WithClause? QueryBlock UnionOption* OrderByClause? ( LimitClause | OffsetClause )? UnionOption ::= "UNION ALL" (QueryBlock | Subquery) diff --git a/asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md b/asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md index 17e6339..8076140 100644 --- a/asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md +++ b/asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md @@ -652,6 +652,14 @@ Grouping is especially important when manipulating hierarchies like the ones tha ### GroupByClause **** +### GroupingElement +**** + +### OrdinaryGroupingSet +**** + +### GroupByExprPair +**** ---
