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