mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Introduce macros for protocol characters.
This commit introduces descriptively-named macros for the identifiers used in wire protocol messages. These new macros are placed in a new header file so that they can be easily used by third-party code. Author: Dave Cramer Reviewed-by: Alvaro Herrera, Tatsuo Ishii, Peter Smith, Robert Haas, Tom Lane, Peter Eisentraut, Michael Paquier Discussion: https://postgr.es/m/CADK3HHKbBmK-PKf1bPNFoMC%2BoBt%2BpD9PH8h5nvmBQskEHm-Ehw%40mail.gmail.com
This commit is contained in:
@@ -174,7 +174,7 @@ ReceiveCopyBegin(CopyFromState cstate)
|
||||
int16 format = (cstate->opts.binary ? 1 : 0);
|
||||
int i;
|
||||
|
||||
pq_beginmessage(&buf, 'G');
|
||||
pq_beginmessage(&buf, PqMsg_CopyInResponse);
|
||||
pq_sendbyte(&buf, format); /* overall format */
|
||||
pq_sendint16(&buf, natts);
|
||||
for (i = 0; i < natts; i++)
|
||||
@@ -279,13 +279,13 @@ CopyGetData(CopyFromState cstate, void *databuf, int minread, int maxread)
|
||||
/* Validate message type and set packet size limit */
|
||||
switch (mtype)
|
||||
{
|
||||
case 'd': /* CopyData */
|
||||
case PqMsg_CopyData:
|
||||
maxmsglen = PQ_LARGE_MESSAGE_LIMIT;
|
||||
break;
|
||||
case 'c': /* CopyDone */
|
||||
case 'f': /* CopyFail */
|
||||
case 'H': /* Flush */
|
||||
case 'S': /* Sync */
|
||||
case PqMsg_CopyDone:
|
||||
case PqMsg_CopyFail:
|
||||
case PqMsg_Flush:
|
||||
case PqMsg_Sync:
|
||||
maxmsglen = PQ_SMALL_MESSAGE_LIMIT;
|
||||
break;
|
||||
default:
|
||||
@@ -305,20 +305,20 @@ CopyGetData(CopyFromState cstate, void *databuf, int minread, int maxread)
|
||||
/* ... and process it */
|
||||
switch (mtype)
|
||||
{
|
||||
case 'd': /* CopyData */
|
||||
case PqMsg_CopyData:
|
||||
break;
|
||||
case 'c': /* CopyDone */
|
||||
case PqMsg_CopyDone:
|
||||
/* COPY IN correctly terminated by frontend */
|
||||
cstate->raw_reached_eof = true;
|
||||
return bytesread;
|
||||
case 'f': /* CopyFail */
|
||||
case PqMsg_CopyFail:
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_QUERY_CANCELED),
|
||||
errmsg("COPY from stdin failed: %s",
|
||||
pq_getmsgstring(cstate->fe_msgbuf))));
|
||||
break;
|
||||
case 'H': /* Flush */
|
||||
case 'S': /* Sync */
|
||||
case PqMsg_Flush:
|
||||
case PqMsg_Sync:
|
||||
|
||||
/*
|
||||
* Ignore Flush/Sync for the convenience of client
|
||||
|
||||
Reference in New Issue
Block a user