Tuple concurrency issue in large objects
От | Shalini |
---|---|
Тема | Tuple concurrency issue in large objects |
Дата | |
Msg-id | 610855df-f400-4cc3-6d81-85030ff05fa1@saralweb.com обсуждение исходный текст |
Ответы |
Re: Tuple concurrency issue in large objects
|
Список | pgsql-general |
Hi all, I am working on a project which allows multiple users to work on single large text document. I am using lo_put to apply only the diff into the large object without replacing it with a new lob. While working on it, I encountered an error "Tuple concurrently updated". The error can be reproduced with two psql clients. Setup: mydb=# create table text_docs(id serial primary key, data oid); CREATE TABLE mydb=# insert into text_docs(data) select lo_import('./upload.txt'); INSERT 0 1 mydb=# select * from text_docs; id | data ----+--------- 1 | 5810130 (1 rows) Now, if we open two psql clients and execute the following commands: Client 1: mydb=# begin; BEGIN mydb=# select lo_put(5810130, 10, '\xaa'); UPDATE 1 Client 2: mydb=# select lo_put(5810130, 10, '\xaa'); Client 1: mydb=# commit; COMMIT Client 2: mydb=# select lo_put(5810130, 10, '\xaa'); ERROR: tuple concurrently updated Is there a workaround to this concurrency issue without creating a new large object? Regards Shalini
В списке pgsql-general по дате отправления: