Re: Deferrable triggers

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: Grant McLean <grant(at)catalyst(dot)net(dot)nz>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Deferrable triggers
Date: 2003-11-06 23:41:57
Message-ID: 20031106153531.B54920@megazone.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 7 Nov 2003, Grant McLean wrote:

> On Fri, 2003-11-07 at 11:31, Stephan Szabo wrote:
> >
> > On Thu, 7 Nov 2003, Grant McLean wrote:
> >
> > > So it would seem that if I include the clauses:
> > >
> > > on delete restrict on update restrict
> > >
> > > Then the 'deferrable' which follows is only applied to creates and
> > > not to updates or deletes.
> > >
> > > Since 'restrict' is the default, the clauses aren't adding any value
> > > and can be omitted. In my case, the SQL is generated for me by
> > > PowerDesigner. My workaround is to tweak the PowerDesigner output
> > > definition to not include this line.
> > >
> > > I have seen this behaviour in both 7.2 and 7.3. Is it a bug? Or
> > > am I misunderstanding something?
> >
> > Restrict is not the default, there is a difference between restrict and no
> > action. In fact I believe the main point of restrict (which IIRC was added
> > for sql99) is to allow you to have a deferred constraint that can do
> > immediate checking of validity on pk changes.
>
> I was basing my reasoning on the CREATE TABLE documentation which says:
>
> NO ACTION
>
> Produce an error indicating that the deletion or update would create
> a foreign key constraint violation. This is the default action.
>
> RESTRICT
>
> Same as NO ACTION.
>
> So as you pointed out, RESTRICT is not the default, but according to the
> docs NO ACTION is the default and RESTRICT is the same as NO ACTION.
> Is the difference between the two documented anywhere?

Hmm, I don't think so actually. I'm surprised that we hadn't had that
mistake pointed out before. The restrict entry should mention the
fact that it's non-deferring.

To -hackers: Is it still safe to send small documentation patches for 7.4
at this point?

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Philip Warner 2003-11-06 23:54:34 Re: Information Schema and constraint names not
Previous Message Tom Lane 2003-11-06 23:41:55 stats collector causes shared-memory-block leakage