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?
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 |