Is there some way to determine the specific relation involved when a deadlock occurs? For example in the following error message (with log level set to verbose): 2004-07-03 20:30:44 [21347] ERROR: 40P01: deadlock detected DETAIL: Process 21347 waits for ShareLock on transaction 104411804; blocked by process 21315. Process 21315 waits for ShareLock on transaction 104411808; blocked by process 21347. LOCATION: DeadLockReport, deadlock.c:888 STATEMENT: INSERT INTO <snip>
It tells me the transaction id's and process id's involved, but I see no way to determine which specific relations were involved (the table being inserted into has several different rules/triggers that touch other tables) Since the error happens infrequently and randomly, the above information is outdated by the time I can investigate. I am also skeptical about the message that it was trying to get ShareLock since afaik share lock level is only used when creating indexes. I have thought about turning on some of the GUC's like trace_locks or debug_deadlocks, but the docs are very ambiguous as to what these items do specifically . Is there some other option I have missed out on? Robert Treat -- Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])