dbTalk Databases Forums  

[BUGS] BUG #2299: pg_dump error w/ renamed primary keys

mailing.database.pgsql-bugs mailing.database.pgsql-bugs


Discuss [BUGS] BUG #2299: pg_dump error w/ renamed primary keys in the mailing.database.pgsql-bugs forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Gavin Scott
 
Posts: n/a

Default [BUGS] BUG #2299: pg_dump error w/ renamed primary keys - 03-04-2006 , 03:29 PM







The following bug has been logged online:

Bug reference: 2299
Logged by: Gavin Scott
Email address: gavin (AT) planetacetech (DOT) com
PostgreSQL version: 8.1.3
Operating system: fedora core 4
Description: pg_dump error w/ renamed primary keys
Details:

If you rename a primary key, pg_dump tries to recreate it with the original
name. Here is how to recreate:

[postgres81@boll ~]$ createdb bug
CREATE DATABASE
[postgres81@boll ~]$ psql bug << EOF
Quote:
CREATE TABLE foo ( id integer );
ALTER TABLE foo ADD CONSTRAINT foo_pkey PRIMARY KEY (id);
ALTER TABLE foo_pkey RENAME TO bar_pkey;
EOF
CREATE TABLE
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "foo_pkey"
for table "foo"
ALTER TABLE
ALTER TABLE
[postgres81@boll ~]$ echo '\d foo' | psql bug
Table "public.foo"
Column | Type | Modifiers
--------+---------+-----------
id | integer | not null
Indexes:
"bar_pkey" PRIMARY KEY, btree (id)

[postgres81@boll ~]$ pg_dump bug | grep -B 1 -i key
--
-- Name: foo_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres81;
Tablespace:
--
ALTER TABLE ONLY foo
ADD CONSTRAINT foo_pkey PRIMARY KEY (id);

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster


Reply With Quote
  #2  
Old   
Tom Lane
 
Posts: n/a

Default Re: [BUGS] BUG #2299: pg_dump error w/ renamed primary keys - 03-04-2006 , 04:37 PM






"Gavin Scott" <gavin (AT) planetacetech (DOT) com> writes:
Quote:
If you rename a primary key, pg_dump tries to recreate it with the original
name. Here is how to recreate:

CREATE TABLE foo ( id integer );
ALTER TABLE foo ADD CONSTRAINT foo_pkey PRIMARY KEY (id);
ALTER TABLE foo_pkey RENAME TO bar_pkey;
This is correct, as the controlling name is that of the constraint not
the index. We really should forbid the above entirely, but it's not
a very high-priority issue.

(Somewhat higher priority is to add a RENAME CONSTRAINT capability;
that's on the TODO list. There was a patch for this submitted recently
but it needs work...)

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.