lost on referentail integrity

Lists: pgsql-bugs
From: Patrice Beliveau <pbeliveau(at)avior(dot)ca>
To: pgsql-bugs(at)postgresql(dot)org
Subject: lost on referentail integrity
Date: 2006-12-15 19:26:07
Message-ID: 4582F6CF.3060004@avior.ca
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Hi,

I'm using PostgreSQL 8.1.4

The problem is very simple to reproduce:

create table test1 (
pk1 text not null,
df1 text,
primary key(pk1)
);

create table test2 (
pk1 text not null,
pk2 text not null,
df2 text,
primary key(pk1,pk2)
);

alter table test2 add constraint c1 foreign key (pk1) references test1(pk1)
on update cascade
on delete cascade;

create or replace function f1() returns "trigger" as '
begin
return null;
end;
' language "plpgsql";

create trigger trig1 before delete on test2 for each row execute
procedure f1();

insert into test1 values('foo','foo');

insert into test2 values('foo','oof','foooof');

delete from test1;

select * from test2;
pk1 | pk2 | df2
-----+-----+--------
foo | oof | foooof
(1 row)

select * from test1;
pk1 | df1
-----+-----
(0 rows)


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Patrice Beliveau <pbeliveau(at)avior(dot)ca>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: lost on referentail integrity
Date: 2006-12-16 22:39:13
Message-ID: 8556.1166308753@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Patrice Beliveau <pbeliveau(at)avior(dot)ca> writes:
> The problem is very simple to reproduce:

[ shrug... ] Your trigger suppressed the cascaded deletes. What were
you expecting to happen?

regards, tom lane