BUG #16767: Silent dropping of CONSTRAINT... UNIQUE

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: boekewurm+postgres(at)gmail(dot)com
Subject: BUG #16767: Silent dropping of CONSTRAINT... UNIQUE
Date: 2020-12-08 14:17:36
Message-ID: 16767-1714a2056ca516d0@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 16767
Logged by: Matthias vd Meent
Email address: boekewurm+postgres(at)gmail(dot)com
PostgreSQL version: 12.5
Operating system: Debian Stretch (9.13)
Description:

Hi,

I've just noticed that equivalent unique constraints that are specified in
the same statement only generate one constraint; but if they are specified
in different statements they generate the correct constraints. E.g.:

CREATE TABLE test (
  id bigint,
  val test,
  CONSTRAINT u_id UNIQUE (id),
CONSTRAINT u_id2 UNIQUE (id),
  CONSTRAINT pk_id PRIMARY KEY (id),
  CONSTRAINT u_val UNIQUE (val)
);

vs

CREATE TABLE test (
id bigint,
val test
);

ALTER TABLE test ADD CONSTRAINT u_id UNIQUE (id);
ALTER TABLE test ADD CONSTRAINT u_id2 UNIQUE (id);
ALTER TABLE test ADD CONSTRAINT pk_id PRIMARY KEY (id);
ALTER TABLE test ADD CONSTRAINT u_val UNIQUE (val);

The first only results in a primary key on (id), and unique(val), the second
(correctly?) generates 4 constraints on the test table.

This unexpected and undocumented behaviour also exists at least in pg10.15
and pg11.10

-Matthias

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2020-12-08 16:48:01 Re: BUG #16767: Silent dropping of CONSTRAINT... UNIQUE
Previous Message Dave Page 2020-12-08 11:09:40 Re: [External] Re: pgadmin--pgagent---the process hang by unknow reasons