* Tom Lane <t...@sss.pgh.pa.us> [Thu, 12 Feb 2009 19:10:34 -0500]:
[ shrug... ] The "implementation artifact" is that you didn't get a
deadlock *earlier*.

I agree that such behavior is more plain rather than current.

You can't expect to update referenced rows and
referencing rows in the same transaction and not risk deadlock against
other transactions doing the same thing.

No. One transaction works with referenced rows only. Another with referencing rows only.

I expect predictability, then flexibility (locks optimization).
So what is your recommendation?
To avoid deadlock do I need lock all referencing rows if I need to update referenced row(s)?

Something like ` select * from bill1 where pid = 1 or aid = 1 for update; ` in the first session of example?

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to