On 2020-12-08 17:48, Tom Lane wrote:
> PG Bug reporting form <noreply@postgresql.org> writes:
>> I've just noticed that equivalent unique constraints that are specified in
>> the same statement only generate one constraint;
> 
> Yeah, that's intentional.  Per the source code comments:
> 
>       * Scan the index list and remove any redundant index specifications. This
>       * can happen if, for instance, the user writes UNIQUE PRIMARY KEY. A
>       * strict reading of SQL would suggest raising an error instead, but that
>       * strikes me as too anal-retentive. - tgl 2001-02-14
It's nonetheless inconsistent that you can create redundant unique 
constraints via ALTER TABLE, but doing it in CREATE TABLE results in 
different behavior.
This all seems a bit dubious to me.  We should either allow it or 
prohibit it, not silently do something else in some cases.