pg_dump and check-constraints

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: pg_dump and check-constraints
Date: 2009-10-01 13:59:00
Message-ID: 20091001135900.GE25444@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

For instance, i have such a database:
(it is just a silly example)

test=# create function check_b() returns bool as $$ declare s int; begin select into s sum(i) from b; if s > 3 then return true; else return false; end if; end;$$ language plpgsql;
CREATE FUNCTION
test=*# create table b (i int);
CREATE TABLE
test=*# insert into b values (5);
INSERT 0 1
test=*# create table a (i int check(check_b()));
CREATE TABLE
test=*# insert into a values(10);
INSERT 0 1
test=*# commit;
COMMIT

Okay. Now i make a Dump (it is a own schema called foo, not a whole database).
The dump is called 'foo.sql'.
(pg_dump -n foo test > foo.sql)

Now i tried to restore the schema:

test=# set search_path=public;
SET
test=*# drop schema foo cascade;
NOTICE: drop cascades to 3 other objects
DETAIL: drop cascades to function foo.check_b()
drop cascades to table foo.b
drop cascades to table foo.a
DROP SCHEMA
test=*# commit;
COMMIT
test=# \i foo.sql
SET
SET
SET
SET
SET
SET
CREATE SCHEMA
ALTER SCHEMA
SET
CREATE FUNCTION
ALTER FUNCTION
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
psql:foo.sql:67: ERROR: new row for relation "a" violates check constraint "a_check"
CONTEXT: COPY a, line 1: "10"

I know, i can use pg_dump with -F c, and later i can create a listefile,
reorder the objects in this listfile and pg_restore -L to solve that
problem.

But maybe pg_dump should first create the table without the
check-constraint, fill all tables and create this check-constraint at
the end. (in the same manner as foreign-key constraints)

And yes, version ist 8.4.1

Regards, Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2009-10-01 14:07:11 Re: pg_dump and check-constraints
Previous Message Ounce Snow 2009-10-01 13:30:24 error message on install [ REPOST from pgsql-novice ]