From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Frank Heikens <f(dot)heikens(at)anva(dot)nl> |
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:03:36 |
Message-ID: | 19863.1281107016@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Frank Heikens | 2010-08-06 15:13:49 | Re: BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same |
Previous Message | Frank Heikens | 2010-08-06 14:50:01 | Re: BUG #5606: DEFERRABLE and DEFERRABLE INITIALLY DEFERRED are the same |