Add support for UNION DISTINCT BY NAME
syntax
#997
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I was just enhancing Polars' SQL support for
UNION
ops and noticed the parser doesn't recogniseUNION DISTINCT BY NAME
; the presence of this (optional) additional keyword is supported by DuckDB (and some other dialects, such as U-SQL1).This PR adds a new
DistinctByName
entry toSetQuantifier
to account for this, and streamlines the related test to avoid some copy/paste (while adding suitable coverage for the new quantifier) 👍Example
Setup some test data tables/frames:
Trying to execute this syntax using Polars (before this PR), which uses
sqlparser-rs
:Execute same statement using DuckDB (to demonstrate that the syntax is valid):
Thanks for all the fantastic work on this library :)
Footnotes
U-SQL "unions" reference: https://learn.microsoft.com/en-us/u-sql/statements-and-expressions/set-rowset/union-and-outer-union-expression ↩