"Marc G. Fournier" <scrappy@postgresql.org> writes:
> Just want to make sure that this is, in fact, what is expected:
> client1: begin;
> client1: update articles set some_col = <foo> where id = <bar>;
> client2: update articles set some_col2 = <foo2> where id = <bar>;
> client1: update articles set some_col3 = <foo> where id = <bar>;
> client1: ** deadlock **
> client2 can't finish its 'transaction', and is therefore preventing
> client1 from continuing ... ?
Hmm, I can see why client2 might be blocked by client1, but if client1
holds the lock it should be able to continue to update the table.
I take it from your title that this only happens if there's a tsearch2
index on the table? Can you put together a test case?
regards, tom lane