opt: add support for NULLS LAST with DISTINCT ON #93567
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.
This commit adds an exception for the requirement that the
ORDER BY
clause of aDISTINCT ON
query must contain only columns in theON
clause. Specifically, it allows expressions of the formcol IS NULL
, wherecol
is one of theON
columns. This is needed to supportNULLS LAST
, since we implementNULLS LAST
by synthesizing acol IS NULL
ordering column.The approach feels a bit hacky, but it seems like the smallest, lowest risk option available.
Fixes #90763
Release note (bug fix): Fixed an issue where
DISTINCT ON
queries would fail with the error "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" when the query included anORDER BY
clause containingASC NULLS LAST
orDESC NULLS FIRST
.