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.