In a clustered project of ours we are sometimes seeing Postgres throw a deadlock exception, most likely because two concurrent updates are trying to update related rows in different orders. According to the Postgres docs, the "easy" thing to do in this case is to retry the transaction that threw the deadlock. Question is, if I catch the deadlock exception and then recommit, are all of the modification states still intact? Or is there an intrinsic rollback that occurs before I have a chance to retry the commit?
Thanks in advance for your help-- Dave Lamy