Thread: BUG #18217: ALTER TABLE IF EXISTS not being honored with DROP CONSTRAINT IF EXISTS
BUG #18217: ALTER TABLE IF EXISTS not being honored with DROP CONSTRAINT IF EXISTS
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 18217 Logged by: David Moss Email address: david@buildingfootprintusa.com PostgreSQL version: 15.2 Operating system: PostgreSQL 15.2 on x86_64-pc-linux-gnu Description: I found this issue from running pg_restore with flags to clean and "if exists". pg_restore returns an error code which is generated from a query of the following form: ALTER TABLE IF EXISTS ONLY public.foo DROP CONSTRAINT IF EXISTS foo_pkey In pg_admin this reports: ERROR: relation "public.foo" does not exist SQL state: 42P01 Running this same query in a 15.1 instance returns the expected behavior: NOTICE: relation "foo" does not exist, skipping ALTER TABLE Query returned successfully in 48 msec. More detailed version info: PostgreSQL 15.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-12), 64-bit vs. PostgreSQL 15.1, compiled by Visual C++ build 1914, 64-bit
Re: BUG #18217: ALTER TABLE IF EXISTS not being honored with DROP CONSTRAINT IF EXISTS
From
Tom Lane
Date:
PG Bug reporting form <noreply@postgresql.org> writes: > I found this issue from running pg_restore with flags to clean and "if > exists". pg_restore returns an error code which is generated from a query > of the following form: > ALTER TABLE IF EXISTS ONLY public.foo DROP CONSTRAINT IF EXISTS foo_pkey This works for me in the current minor release (15.5): $ psql psql (15.5) Type "help" for help. postgres=# ALTER TABLE IF EXISTS ONLY public.foo DROP CONSTRAINT IF EXISTS foo_pkey; NOTICE: relation "foo" does not exist, skipping ALTER TABLE Please update. If you can still reproduce the problem in the current release, there must be some additional contributing factor -- please try to provide a self-contained test case. regards, tom lane