Deadlocks like this are the only kind of serialization error possible under "traditional" (non-MVCC) databases. These are much more rare in MVCC than update conflicts, but that doesn't mean they aren't serialization failures there, too. I think it is a violation of the standard for PostgreSQL not to report them with SQLSTATE '40001'.
I'm not sure that inductive reasoning applies to the SQL standard. And we'd break 100,000 existing Java applications if we changed the error. In my opinion, this falls under the heading of "it would be a nice thing to do if we were starting over, but not now."
--Josh -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers