[HACKERS] pg_dump and inherits issue

2006-07-12 Thread Jim Buttafuoco
I have an issue with pg_dump and inherits with pg 8.1.3 and 8.1.4

if I run the following SQL
create table t (a text check (a = '*'));
create table s () inherits (t);
alter table s drop constraint t_a_check;
alter table s add constraint a_check check (a='s');

I get the following
 Table public.t
 Column | Type | Modifiers 
+--+---
 a  | text | 
Check constraints:
t_a_check CHECK (a = '*'::text)

 Table public.s
 Column | Type | Modifiers 
+--+---
 a  | text | 
Check constraints:
a_check CHECK (a = 's'::text)
Inherits: t

and then create a new database and run
pg_dump old_db |psql new_db

I get the following
 Table public.t
 Column | Type | Modifiers 
+--+---
 a  | text | 
Check constraints:
t_a_check CHECK (a = '*'::text)

 Table public.s
 Column | Type | Modifiers 
+--+---
 a  | text | 
Check constraints:
a_check CHECK (a = 's'::text)
t_a_check CHECK (a = '*'::text)
Inherits: t

The check constraints on table s are not like the original, I have an extra 
t_a_check constraint.  Is this correct?

Jim

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [HACKERS] pg_dump and inherits issue

2006-07-12 Thread Greg Stark
Jim Buttafuoco [EMAIL PROTECTED] writes:

 The check constraints on table s are not like the original, I have an extra
 t_a_check constraint. Is this correct?

I wouldn't say it's correct but it is known.

I think the plan is to have such constraints be marked so you *can't* drop
them as long as you're a child of another table that has them. But Postgres
doesn't yet track where constraints came from or check that you don't drop
ones that are inherited.

-- 
greg


---(end of broadcast)---
TIP 6: explain analyze is your friend