Hi. I noticed some code that seems the same as the nearby function unpack_sql_state, and I wondered why it is not just calling it?
For example, diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index a3e1c59..d91ed98 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -3313,7 +3313,7 @@ send_message_to_frontend(ErrorData *edata) const char *sev; char tbuf[12]; int ssval; - int i; + char *ssbuf; /* 'N' (Notice) is for nonfatal conditions, 'E' is for errors */ pq_beginmessage(&msgbuf, (edata->elevel < ERROR) ? 'N' : 'E'); @@ -3326,15 +3326,10 @@ send_message_to_frontend(ErrorData *edata) /* unpack MAKE_SQLSTATE code */ ssval = edata->sqlerrcode; - for (i = 0; i < 5; i++) - { - tbuf[i] = PGUNSIXBIT(ssval); - ssval >>= 6; - } - tbuf[i] = '\0'; + ssbuf = unpack_sql_state(ssval); pq_sendbyte(&msgbuf, PG_DIAG_SQLSTATE); - err_sendstring(&msgbuf, tbuf); + err_sendstring(&msgbuf, ssbuf); /* M field is required per protocol, so always send something */ pq_sendbyte(&msgbuf, PG_DIAG_MESSAGE_PRIMARY); ------ Kind Regards, Peter Smith. Fujitsu Australia