From: | "Christopher Kings-Lynne" <chriskl(at)familyhealth(dot)com(dot)au> |
---|---|
To: | "Hackers" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Another nasty pg_dump bug in 7.3 (and 7.4?) |
Date: | 2003-07-08 03:00:27 |
Message-ID: | 057601c344fd$15f5a2a0$2800a8c0@mars |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
This table:
australia=# \d users_users
Table "public.users_users"
Column | Type |
Modifiers
----------------+--------------------------+--------------------------------
---------------------------------
userid | integer | not null default
nextval('public.users_users_userid_seq'::text)
sex | character(1) | not null
suspended | boolean | not null default 'f'
recurring | boolean | not null default 'f'
referrer | integer |
<snip fields>
Check constraints: "$2" (NOT (recurring AND suspended))
"users_users_sex" ((sex = 'M'::bpchar) OR (sex =
'F'::bpchar))
Foreign Key constraints: $1 FOREIGN KEY (referrer) REFERENCES
users_users(userid) ON UPDATE NO ACTION ON DELETE SET NULL
Is dumped like this:
CREATE TABLE users_users (
userid SERIAL,
sex character(1) NOT NULL,
suspended boolean DEFAULT 'f' NOT NULL,
recurring boolean DEFAULT 'f' NOT NULL,
referrer integer,
CHECK ((NOT (recurring AND suspended))),
CONSTRAINT users_users_sex CHECK (((sex = 'M'::bpchar) OR (sex =
'F'::bpchar)))
);
ALTER TABLE ONLY users_users
ADD CONSTRAINT "$1" FOREIGN KEY (referrer) REFERENCES
users_users(userid) ON UPDATE NO ACTION ON DELETE SET NULL;
Restoring this fails with:
ERROR: constraint "$1" already exists for relation "users_users"
Solution:
We need to dump constraint name always for CHECK, or suppress default names
in ADD FOREIGN KEY.
Chris
From | Date | Subject | |
---|---|---|---|
Next Message | Kenji Sugita | 2003-07-08 03:34:19 | Re: PostgreSQL 7.4devel - LOG: PGSTAT: socket() failed: |
Previous Message | Kenji Sugita | 2003-07-08 02:49:30 | Re: PostgreSQL 7.4devel - LOG: PGSTAT: socket() failed: |