At the top of backend/parser/gram.y there's a big comment that says "don't do any database access during the parse
phase,just in case we're in the middle of an aborted transaction".<br /><br /> I don't get it. Why would database
accessfail during an aborted transaction? Any changes have to be thrown away at the end of the transaction anyway,
right? Or is it that changes are invalidated as soon as an error occurs? Is the parser just trying to avoid
per-statementtriggers after an error occurs?<br /><br /> Can anyone explain? I've done some simple testing (just out
ofcuriosity) but I can't seem to get anything to break if I always force IsAbortedTransactionBlockState() to return
false.<br/><br /> TIA.<br /><br /> -- Murphy