Couple notes:
(1) Upsert is not just a desire of MySQL users. I just spec'd a major
proprietary-database replacement project at a fortune 500 where they want an
Upsert and are unhappy that PostgreSQL doesn't have it. Unfortunately, they
don't want to spring for development funds :-(
(2) Doing upsert by checking for a unique key violaton error leads to horrible
performance in addition to the previously mentioned race conditions.
--
Josh Berkus
PostgreSQL @ Sun
San Francisco