Re: Troubleshooting SPI_execp() failed in RI_FKey_cascade_del()

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: "Joshua b(dot) Jore" <josh(at)greentechnologist(dot)org>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: Troubleshooting SPI_execp() failed in RI_FKey_cascade_del()
Date: 2002-06-13 00:17:31
Message-ID: 20020612171131.Y96675-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On Wed, 12 Jun 2002, Joshua b. Jore wrote:

> The following sql demonstrates the problem. What I'm getting at here is
> cases where the rows in "b" are being altered instead of being deleted
> consequently the delete to "a" shouldn't happen.
>
> create table a (id int4 primary key);
> create table b (id int4 references a on delete cascade);
> create rule b0 as on delete to b do instead nothing;
>
> insert into a values (1);
> insert into b values (1);
> delete from a;

When you do the delete from a, the constraint will no longer
be satisifed. It throws the error to prevent the delete
from working. Maybe throwing a standard constraint violation
would be enough, but I'd worry that there'd be some other
return case that we should know about.

In general on <x> rules with on <x> action foreign key constraints
are a bad idea. I'd almost want to disallow the above entirely.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ken Williams 2002-06-13 00:17:35 Re: automatic time zone conversion
Previous Message Joshua b. Jore 2002-06-12 23:57:01 Re: Troubleshooting SPI_execp() failed in RI_FKey_cascade_del()