Skip to content

[PostgreSQL] Parse GROUP BY DISTINCT with GROUPING SETS - #2830

Open
2748109647 wants to merge 1 commit into
JSQLParser:masterfrom
2748109647:2785-postgresql-distinct-grouping-sets
Open

2748109647 wants to merge 1 commit into
JSQLParser:masterfrom
2748109647:2785-postgresql-distinct-grouping-sets

Conversation

@2748109647

Copy link
Copy Markdown

Fixes #2785

PostgreSQL accepts GROUP BY DISTINCT GROUPING SETS and uses DISTINCT to remove duplicate grouping sets. The issue includes a valid PostgreSQL query that JSqlParser currently rejects, which is a concrete compatibility use case for parsing PostgreSQL SQL.

This change parses the optional modifier and stores it in GroupByElement, so both toString() and the deparser preserve it during round trips. The AST defaults to the existing non-distinct behavior.

No performance benchmark was run. The change adds an optional token check in the GROUP BY grammar and a boolean check when deparsing; I am not claiming a measured performance impact.

Validation

  • mvn -B -ntp '-Dlicense.skipUpdateLicense=true' '-Dtest=SelectTest#testGroupingSetsDistinctIssue2785' test — passed, 1 test.
  • mvn -B -ntp '-Dlicense.skipUpdateLicense=true' '-Dtest=SelectTest' test — passed, 741 tests, 0 failures, 0 errors, 8 skipped.
  • git diff --check — passed.

The regression test covers parsing and deparsing; no live PostgreSQL integration test or performance benchmark was run.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] JSQLParser : PostgreSQL : GROUP BY DISTINCT with GROUPING SETS fails to parse

1 participant