Another nasty pg_dump bug in 7.3 (and 7.4?)
| От | Christopher Kings-Lynne |
|---|---|
| Тема | Another nasty pg_dump bug in 7.3 (and 7.4?) |
| Дата | |
| Msg-id | 057601c344fd$15f5a2a0$2800a8c0@mars обсуждение исходный текст |
| Ответы |
Re: Another nasty pg_dump bug in 7.3 (and 7.4?)
|
| Список | 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 nullsuspended |
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,
recurringboolean DEFAULT 'f' NOT NULL, referrer integer, CHECK ((NOT (recurring AND suspended))), CONSTRAINT
users_users_sexCHECK (((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
В списке pgsql-hackers по дате отправления: