Thread: 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
Attachment
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.