Am Freitag, 17. März 2006 16:07 schrieb Tom Lane: > It would also move us further away from the SQL standard. The spec says > that COMMIT ends the transaction, full stop, not "ends it only if you're > not in an error state". Of course the spec hasn't got a notion of a > transaction error state at all, but my point is that making COMMIT leave > you in the broken transaction is not an improvement compliance-wise.
The standard does address the issue of transactions that cannot be committed because of an error. In 16.6. <commit statement> GR 6 it basically says that if the transaction cannot be completed (here: because of a constraint violation), then an exception condition should be raised. That is, the transaction is over but you get an error. I think that behavior would be better. For example, Java programs will get an exception and know something is wrong. Right now, I don't even know whether it is possible in all programming interfaces to get at the command tag and infer failure to commit from there. -- Peter Eisentraut http://developer.postgresql.org/~petere/ ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org