Re: BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same

From: Frank Heikens <f(dot)heikens(at)anva(dot)nl>
To: 'Tom Lane' <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same
Date: 2010-08-06 15:13:49
Message-ID: 168F24367E861A4698E58C183F317D0B04802BE671@anva-mail07.anva.amt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The manual looks fine, I found the information as well. I started using the wiki, that's why I got confused.

Thanks!

Frank

-----Oorspronkelijk bericht-----
Van: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
Verzonden: vrijdag 6 augustus 2010 17:04
Aan: Frank Heikens
CC: pgsql-bugs(at)postgresql(dot)org
Onderwerp: Re: [BUGS] BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same

Frank Heikens <f(dot)heikens(at)anva(dot)nl> writes:
> The wikipage says
>> a deferrable constraint CAN be checked at the end of a
>> transaction. You still have to ask PostgreSQL to defer it.
> http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0#DEFERRABLE_UNIQUE_CONSTRAINTS

> I don't have to ask PostgreSQL to defer, it works in the second test
as well in the third test without any changes. I guess the example in
the wiki isn't correct, right?

No, not even a little bit :-(. I hadn't seen that text; it needs to be
corrected. Will hack on it in a moment.

> A single UPDATE touching all records will check the uniqueness after the complete update, not right after each update of a row as it does on non-deferrable constraints.

Right.
non-deferrable -> uniqueness is enforced after each row change
DEFERRABLE IMMEDIATE -> uniqueness is enforced at end of statement
DEFERRABLE DEFERRED -> uniqueness is enforced at end of transaction

> Maybe someone could make this clear in the manual and wiki?

AFAIK the manual is OK; do you see a place where it gets this wrong?

regards, tom lane

***************************DISCLAIMER***********************************
Deze e-mail is uitsluitend bestemd voor de geadresseerde(n). Verstrekking aan en gebruik door anderen is niet toegestaan. ANVA bv sluit iedere aansprakelijkheid uit die voortvloeit uit electronische verzending.

This e-mail is intended exclusively for the addressee(s), and may not be passed on to, or made available for use by any person other than the addressee(s). ANVA bv rules out any and every liability resulting from any electronic transmission.
******************************************************************************

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2010-08-06 15:25:15 Re: BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same
Previous Message Tom Lane 2010-08-06 15:03:36 Re: BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same