Skip to content

Commit f0870fd

Browse files
authored
Enable grouping sets parsing for GenericDialect (#771)
1 parent 79d0baa commit f0870fd

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/parser.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -943,7 +943,7 @@ impl<'a> Parser<'a> {
943943
/// parse a group by expr. a group by expr can be one of group sets, roll up, cube, or simple
944944
/// expr.
945945
fn parse_group_by_expr(&mut self) -> Result<Expr, ParserError> {
946-
if dialect_of!(self is PostgreSqlDialect) {
946+
if dialect_of!(self is PostgreSqlDialect | GenericDialect) {
947947
if self.parse_keywords(&[Keyword::GROUPING, Keyword::SETS]) {
948948
self.expect_token(&Token::LParen)?;
949949
let result = self.parse_comma_separated(|p| p.parse_tuple(false, true))?;

tests/sqlparser_common.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1513,7 +1513,7 @@ fn parse_select_group_by() {
15131513
#[test]
15141514
fn parse_select_group_by_grouping_sets() {
15151515
let dialects = TestedDialects {
1516-
dialects: vec![Box::new(PostgreSqlDialect {})],
1516+
dialects: vec![Box::new(GenericDialect {}), Box::new(PostgreSqlDialect {})],
15171517
};
15181518
let sql =
15191519
"SELECT brand, size, sum(sales) FROM items_sold GROUP BY size, GROUPING SETS ((brand), (size), ())";
@@ -1534,7 +1534,7 @@ fn parse_select_group_by_grouping_sets() {
15341534
#[test]
15351535
fn parse_select_group_by_rollup() {
15361536
let dialects = TestedDialects {
1537-
dialects: vec![Box::new(PostgreSqlDialect {})],
1537+
dialects: vec![Box::new(GenericDialect {}), Box::new(PostgreSqlDialect {})],
15381538
};
15391539
let sql = "SELECT brand, size, sum(sales) FROM items_sold GROUP BY size, ROLLUP (brand, size)";
15401540
let select = dialects.verified_only_select(sql);
@@ -1553,7 +1553,7 @@ fn parse_select_group_by_rollup() {
15531553
#[test]
15541554
fn parse_select_group_by_cube() {
15551555
let dialects = TestedDialects {
1556-
dialects: vec![Box::new(PostgreSqlDialect {})],
1556+
dialects: vec![Box::new(GenericDialect {}), Box::new(PostgreSqlDialect {})],
15571557
};
15581558
let sql = "SELECT brand, size, sum(sales) FROM items_sold GROUP BY size, CUBE (brand, size)";
15591559
let select = dialects.verified_only_select(sql);

0 commit comments

Comments
 (0)