On 23 November 2011 02:49, Robert Haas <robertmh...@gmail.com> wrote:
> There is no sort of systematic labeling of error messages in the log
> to enable the DBA to figure out that the first error message is likely
> nothing more serious than an integrity constraint doing its bit to
> preserve data integrity, while the second is likely a sign of
> impending disaster.

+1

I suggested that there be an INTERNAL_ERROR severity level before on
this list, in response to an opaque internal error that was raised in
the planner due to a bug in master (it was a simple elog() call that
raised the error), and the idea was not well received. Tom said that
"Well, the SQLSTATE for this sort of thing is already
ERRCODE_INTERNAL_ERROR". A quick search of that shows that it only
appears in the following places:

src/pl/plpgsql/src/plerrcodes.h
876:    "internal_error", ERRCODE_INTERNAL_ERROR

src/backend/access/gist/gistsplit.c
374:                            (errcode(ERRCODE_INTERNAL_ERROR),

src/backend/access/nbtree/nbtinsert.c
455:                            (errcode(ERRCODE_INTERNAL_ERROR),

src/backend/utils/misc/guc.c
6369:                           (errcode(ERRCODE_INTERNAL_ERROR),

src/backend/utils/adt/xml.c
259:    xml_ereport_by_code(WARNING, ERRCODE_INTERNAL_ERROR,
3787:                   xml_ereport(xmlerrcxt, ERROR, ERRCODE_INTERNAL_ERROR,
3816:                   xml_ereport(xmlerrcxt, ERROR, ERRCODE_INTERNAL_ERROR,
3828:                   xml_ereport(xmlerrcxt, ERROR, ERRCODE_INTERNAL_ERROR,

src/backend/utils/adt/ri_triggers.c
3501:                           (errcode(ERRCODE_INTERNAL_ERROR),

src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
125:                    (errcode(ERRCODE_INTERNAL_ERROR),
152:                    (errcode(ERRCODE_INTERNAL_ERROR),

src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
135:                    (errcode(ERRCODE_INTERNAL_ERROR),
162:                    (errcode(ERRCODE_INTERNAL_ERROR),

src/backend/utils/error/elog.c
353:            edata->sqlerrcode = ERRCODE_INTERNAL_ERROR;
612:                    edata->sqlerrcode = ERRCODE_INTERNAL_ERROR;
648:                    edata->sqlerrcode = ERRCODE_INTERNAL_ERROR;

src/backend/utils/errcodes.h
322:#define ERRCODE_INTERNAL_ERROR MAKE_SQLSTATE('X','X','0','0','0')

src/backend/postmaster/pgstat.c
493:                                    (errcode(ERRCODE_INTERNAL_ERROR),

src/include/utils/elog.h
93: * ERRCODE_INTERNAL_ERROR if elevel is ERROR or more, ERRCODE_WARNING

contrib/sepgsql/uavc.c
184:                    (errcode(ERRCODE_INTERNAL_ERROR),
521:                            (errcode(ERRCODE_INTERNAL_ERROR),

contrib/sepgsql/hooks.c
94:                             (errcode(ERRCODE_INTERNAL_ERROR),
426:                            (errcode(ERRCODE_INTERNAL_ERROR),

contrib/sepgsql/selinux.c
768:                            (errcode(ERRCODE_INTERNAL_ERROR),
854:                            (errcode(ERRCODE_INTERNAL_ERROR),

contrib/sepgsql/label.c
84:                                     (errcode(ERRCODE_INTERNAL_ERROR),
194:                            (errcode(ERRCODE_INTERNAL_ERROR),
234:                            (errcode(ERRCODE_INTERNAL_ERROR),
464:                                    (errcode(ERRCODE_INTERNAL_ERROR),
526:                            (errcode(ERRCODE_INTERNAL_ERROR),

A new severity level is called for. In addition, if we had a new
severity level, the footprint wouldn't be too bad on all those legacy
elog() calls as compared to using errcode(ERRCODE_INTERNAL_ERROR).

-- 
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to