Excerpts from Florian Pflug's message of vie nov 26 10:48:39 -0300 2010:
> On Nov25, 2010, at 23:01 , Alvaro Herrera wrote:
> > So I've been working on improving locks for foreign key checks, as
> > discussed in a thread started by Joel Jacobson a while ago.  I've posted
> > about this:
> > http://www.commandprompt.com/blogs/alvaro_herrera/2010/11/fixing_foreign_key_deadlocks/
> > http://www.commandprompt.com/blogs/alvaro_herrera/2010/11/fixing_foreign_key_deadlocks_part_2/
> 
> To me, the whole thing seems to be special case of allowing to not only lock 
> whole tuples FOR UPDATE or FOR SHARE, but also individual fields or sets of 
> fields. Except that for simplicity, only two sets are supported, which are
>   A) All fields
>   B) All fields which are included in some unique constraint, including 
> primary keys.
> 
> I'd therefore suggest to extend the FOR SHARE / FOR UPDATE syntax to be 
>   SELECT FOR { SHARE | UPDATE } [ OF <table1>[.<field1>], ... ]
> and obtain what you call a "KEY LOCK" if (for a particular table) the set of 
> fields is a subset of (B). Otherwise, we'd obtain a full SHARE lock. Thus 
> we'd always lock at least the fields the user told us to, but sometimes more 
> than those, for the sake of a more efficient implementation.

The problem with this idea is that it's not possible to implement it.

-- 
Álvaro Herrera <alvhe...@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to