On 21 May 2015 at 04:07, Peter Geoghegan <peter.geoghegan86@gmail.com> wrote:
> On Wed, May 20, 2015 at 7:52 PM, Peter Geoghegan
> <peter.geoghegan86@gmail.com> wrote:
>> Due to some MediaWiki weirdness, I cannot login to edit it.
>
> BTW, I wanted to edit the description of UPSERT. It's not true that
> the use of a CTE can be considered a workaround. That pattern can
> result in a spurious duplicate violation error with concurrent
> upserters, and so I'd definitely discourage it. The only workarounds
> that are robust involve subtransactions, like the plpgsql example in
> the docs, and there is no declarative way to do that. You need to
> catch a duplicate violation and retry to get a robust insert-or-update
> outcome.
I'd still regard it as a workaround, just with concurrency risks. But
perhaps it's best to remove any mention of a workaround altogether.
--
Thom