The following bug has been logged online:
Bug reference: 2166
Logged by: Euler Taveira de Oliveira
Email address: eulerto@yahoo.com.br
PostgreSQL version: 8.1+
Operating system: Slackware 10.1
Description: attempted to update invisible tuple
Details:
I just execute the same transaction in 2 different backends and I got the
message: 'attempted to update invisible tuple'. In the first transaction I
execute: BEGIN - UPDATE and then open the other transaction and execute:
BEGIN - UPDATE so I commit the first one. In 8.0 it executes fine.
========== first transaction =========================
tst=# begin;
BEGIN
tst=# update produtos set estoque = estoque - itensmov.qtde from itensmov
where trim(itensmov.codigo) = 'C0001' and itensmov.fk_produto =
produtos.id_produto and produtos.controlarestoque = 'S';
UPDATE 21
tst=# commit;
COMMIT
tst=#
========== first transaction =========================
========== second transaction ========================
tst=# begin;
BEGIN
tst=# update produtos set estoque = estoque - itensmov.qtde from itensmov
where trim(itensmov.codigo) = 'C0003' and itensmov.fk_produto =
produtos.id_produto and produtos.controlarestoque = 'S';
ERRO: attempted to update invisible tuple
tst=#
========== second transaction ========================