On 08/05/2010 02:09 PM, Tom Lane wrote:
> Merlin Moncure<mmoncure@gmail.com> writes:
>> Attached is a patch to remove the upsert example from the pl/pgsql
>> documentation. It has a serious bug (see:
>> http://www.spinics.net/lists/pgsql/msg112560.html) which is nontrivial
>> to fix. IMNSHO, our code examples should encourage good practices and
>> style.
> I was not persuaded that there's a real bug in practice. IMO, his
> problem was a broken trigger not broken upsert logic. Even if we
> conclude this is unsafe, simply removing the example is of no help to
> anyone. A more useful response would be to supply a correct example.
>
>
Yeah, that's how it struck me just now. Maybe we should document that
the inserts had better not fire a trigger that could cause an uncaught
uniqueness violation exception. You could also possibly usefully prevent
infinite looping in such cases by using a limited loop rather an
unlimited loop.
cheers
andrew