On 2011-01-04 6:27 PM, David Fetter wrote:
On Tue, Jan 04, 2011 at 04:44:32AM -0500, Greg Smith wrote:
Heikki Linnakangas wrote:
You can of course LOCK TABLE as a work-around, if that's what you want.

Presuming the code quality issues and other little quirks I've
documented (and new ones yet to be discovered) can get resolved
here, and that's a sizeable open question, I could see shipping this
with the automatic heavy LOCK TABLE in there.  Then simple UPSERT
could work out of the box via a straightforward MERGE.

How about implementing an UPSERT command as "take the lock, do the
merge?"  That way, we'd have both the simplicity for the simpler cases
and a way to relax consistency guarantees for those who would like to
do so.

That, unfortunately, won't work so well in REPEATABLE READ :-( But I, too, am starting to think that we should have a separate, optimized command to do UPSERT/INSERT .. IGNORE efficiently and correctly while making MERGE's correctness the user's responsibility. Preferably with huge warning signs on the documentation page.


Regards,
Marko Tiikkaja

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