Re: SQL design pattern for a delta trigger?

Colin Wetherbee <cww@denterprises.org>

From: Colin Wetherbee <cww@denterprises.org>
To: pgsql-general@postgresql.org
Date: 2007-12-11T05:04:36Z
Lists: pgsql-general
Vivek Khera wrote:
> On Dec 10, 2007, at 5:04 PM, Colin Wetherbee wrote:
> 
>> For what it's worth, the real algorithm would be as follows.  I 
>> hadn't had enough coffee yet, and I forgot the UPDATE bit.
>> 
>> IF (a query matching your old data returns rows) THEN UPDATE with 
>> your new data ELSE INSERT your new data
> 
> Still exists race condition.  Your race comes from testing existence,
>  then creating/modifying data afterwards.  You need to make the 
> test/set atomic else you have race.

I guess when I wrote that the algorithm would have to be implemented in
an atomic manner, it fell on deaf ears.

That said, perhaps implementing a good MERGE would be not such a bad
idea for PostgreSQL 8.4.

Colin