Peter Geoghegan <peter@2ndquadrant.com> writes:
> Maybe no one is convinced by any of this, but the fact is that the
> SQLSTATE argument falls down when one considers that we aren't using
> it in many cases of errors that clearly are severe.
The reason that argument isn't convincing is that we *are* using a
SQLSTATE for every such message; it's just defaulted to XX000. AFAICT,
it would be reasonable to treat all XX000 as alarm conditions until
proven different. If a given message is, in fact, not supposed to be
"can't happen", then it shouldn't be going through elog(). We'd
probably be needing to fix some places that were lazily coded as elogs,
but under your proposal we would also have to touch every such place
... and thousands more besides.
regards, tom lane