description of Aggregate Expressions - Mailing list pgsql-docs

From John Lumby
Subject description of Aggregate Expressions
Date
Msg-id DM6PR06MB55622DFEE2755236B8A810A0A35C0@DM6PR06MB5562.namprd06.prod.outlook.com
Whole thread Raw
Responses Re: description of Aggregate Expressions  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-docs
In PostgreSQL 12.1 Documentation chapter 4.2.7. Aggregate Expressions  it says


The syntax of an aggregate expression is one of the following:
  ...
aggregate_name (DISTINCT expression [ , ... ] [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ]
...

I believe this is incorrect in the case where the DISTINCT is on a comma-separated list of expressions.
It would imply that this is legal

select count(DISTINCT parent_id , name) from  mytable

but that is rejected with
ERROR:  function count(bigint, text) does not exist

whereas

select count(DISTINCT ( parent_id , name) ) from mytable

is accepted.

So I think to handle all cases the line in the doc should read

aggregate_name (DISTINCT ( expression [ , ... ] ) [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ]

I don't know how to indicate that those extra parentheses can be omitted if the list has only one expression.

Cheers,  John Lumby


pgsql-docs by date:

Previous
From: PG Doc comments form
Date:
Subject: Description of Authentication Methods Supported for Map is Misleading
Next
From: "David G. Johnston"
Date:
Subject: Re: description of Aggregate Expressions