Clarify note about DISTINCT and ORDER BY in aggregates
The current docs can be read as using DISTINCT in an aggregate
(count(distinct col)) and ORDER BY (array_agg(col ORDER BY col)) are
both extensions to the standard.
The actual truth is that our extension to the standard is to allow both
at the same time.
Attached is a trivial patch to make that more clear. I don't know if
pgindent works on the docs so I made this so as to show what is
changing. I can submit a properly formatted patch, or let the eventual
committer make that change if necessary.
--
Vik Fearing
Attachments:
clarify-aggregate-distinct-orderby.difftext/x-patch; charset=UTF-8; name=clarify-aggregate-distinct-orderby.diffDownload+1-0
On Thu, Dec 8, 2022 at 5:31 AM Vik Fearing <vik@postgresfriends.org> wrote:
The current docs can be read as using DISTINCT in an aggregate
(count(distinct col)) and ORDER BY (array_agg(col ORDER BY col)) are
both extensions to the standard.The actual truth is that our extension to the standard is to allow both
at the same time.Attached is a trivial patch to make that more clear. I don't know if
pgindent works on the docs so I made this so as to show what is
changing. I can submit a properly formatted patch, or let the eventual
committer make that change if necessary.
From the other thread this still is off compared to reality, which you
described as:
"The SQL Standard defines whether DISTINCT or ORDER BY are accepted on a
per-aggregate basis. It is a PostgreSQL extension that any aggregate can
specify these clauses."
The fact that no SQL Standard aggregate happens to specify both DISTINCT
and ORDER BY at the same time is a detail we don't need to cover. We
aren't documenting the per-aggregate variances.
David J.