Re: BUG #16589: Regression when using ADD UNIQUE+ADD FOREIGN KEY in same query in 13 beta - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #16589: Regression when using ADD UNIQUE+ADD FOREIGN KEY in same query in 13 beta
Date
Msg-id 2206633.1598114247@sss.pgh.pa.us
Whole thread Raw
In response to BUG #16589: Regression when using ADD UNIQUE+ADD FOREIGN KEY in same query in 13 beta  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> The following SQL worked as expected in previous PostgreSQL versions (at
> least 8.4-12):
>   CREATE TABLE "items" ("id" integer NOT NULL, "item_id" integer NOT
> NULL);
>   ALTER TABLE "items" ADD UNIQUE ("item_id", "id"), ADD FOREIGN KEY ("id",
> "item_id") REFERENCES "items"("item_id", "id");
> In PostgreSQL 13 beta 3, it results in an error: there is no unique
> constraint matching given keys for referenced table "items"

Yup, that's my fault; fix pushed.

> I'm not sure whether this is considered a bug.  It broke a couple tests for
> a database access library I maintain, but I could easily modify them if this
> isn't considered a bug.

Yeah, I think it's a bug, especially since the case used to work.
ALTER TABLE generally believes that it's smarter than you are about
the order in which the subcommands need to be executed; so it has
to hold up its end of the bargain.

            regards, tom lane



pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: Re: BUG #16272: Index expression can refer to wrong attributes if index is created via CREATE TABLE LIKE
Next
From: Bruce Momjian
Date:
Subject: Re: BUG #16547: ECPG can't CALL the procedure which has INOUT parameter