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)
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org