mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Refactor one conversion of SQLSTATE to string in elog.c
unpack_sql_state() has been introduced in d46bc44 to refactor the
unpacking of a SQLSTATE into a string, but it forgot one code path when
sending error reports to clients that could make use of it.  This
changes the code to also use unpack_sql_state() there, simplifying a bit
the code.
Author: Peter Smith
Discussion: https://postgr.es/m/CAHut+PuYituuD1-VVZUNcmCQuc3ZzZMPoO57POgm8tnXOkwJAA@mail.gmail.com
			
			
This commit is contained in:
		@@ -3312,8 +3312,6 @@ send_message_to_frontend(ErrorData *edata)
 | 
			
		||||
		/* New style with separate fields */
 | 
			
		||||
		const char *sev;
 | 
			
		||||
		char		tbuf[12];
 | 
			
		||||
		int			ssval;
 | 
			
		||||
		int			i;
 | 
			
		||||
 | 
			
		||||
		/* 'N' (Notice) is for nonfatal conditions, 'E' is for errors */
 | 
			
		||||
		pq_beginmessage(&msgbuf, (edata->elevel < ERROR) ? 'N' : 'E');
 | 
			
		||||
@@ -3324,17 +3322,8 @@ send_message_to_frontend(ErrorData *edata)
 | 
			
		||||
		pq_sendbyte(&msgbuf, PG_DIAG_SEVERITY_NONLOCALIZED);
 | 
			
		||||
		err_sendstring(&msgbuf, sev);
 | 
			
		||||
 | 
			
		||||
		/* unpack MAKE_SQLSTATE code */
 | 
			
		||||
		ssval = edata->sqlerrcode;
 | 
			
		||||
		for (i = 0; i < 5; i++)
 | 
			
		||||
		{
 | 
			
		||||
			tbuf[i] = PGUNSIXBIT(ssval);
 | 
			
		||||
			ssval >>= 6;
 | 
			
		||||
		}
 | 
			
		||||
		tbuf[i] = '\0';
 | 
			
		||||
 | 
			
		||||
		pq_sendbyte(&msgbuf, PG_DIAG_SQLSTATE);
 | 
			
		||||
		err_sendstring(&msgbuf, tbuf);
 | 
			
		||||
		err_sendstring(&msgbuf, unpack_sql_state(edata->sqlerrcode));
 | 
			
		||||
 | 
			
		||||
		/* M field is required per protocol, so always send something */
 | 
			
		||||
		pq_sendbyte(&msgbuf, PG_DIAG_MESSAGE_PRIMARY);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user