Обсуждение: Clarify note about DISTINCT and ORDER BY in aggregates

Поиск
Список
Период
Сортировка

Clarify note about DISTINCT and ORDER BY in aggregates

От
Vik Fearing
Дата:
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
Вложения

Re: Clarify note about DISTINCT and ORDER BY in aggregates

От
"David G. Johnston"
Дата:
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.