Robins wrote:
Hi,

The documentation says that function blocks with exceptions are far costlier than without one.


I recommend against using exceptions. There is a memory leak in the exception handler that will cause headaches if it is called many times in the transaction.

In plpgsql, I would use:

SELECT ... FOR UPDATE;
IF FOUND THEN
        UPDATE ...;
ELSE
        INSERT ...;
END IF;


If you have multiple transactions doing this process at the same time, you'll need explicit locking of the table to avoid a race condition.

--
Benjamin Minshall <[EMAIL PROTECTED]>
Senior Developer -- Intellicon, Inc.
http://www.intellicon.biz

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to