* Output functions by protocol message type
*/
-/* NotificationResponse */
static void
-pqTraceOutputA(FILE *f, const char *message, int *cursor, bool regress)
+pqTraceOutput_NotificationResponse(FILE *f, const char *message, int *cursor, bool regress)
{
fprintf(f, "NotificationResponse\t");
pqTraceOutputInt32(f, message, cursor, regress);
pqTraceOutputString(f, message, cursor, false);
}
-/* Bind */
static void
-pqTraceOutputB(FILE *f, const char *message, int *cursor)
+pqTraceOutput_Bind(FILE *f, const char *message, int *cursor)
{
int nparams;
pqTraceOutputInt16(f, message, cursor);
}
-/* Close(F) or CommandComplete(B) */
static void
-pqTraceOutputC(FILE *f, bool toServer, const char *message, int *cursor)
+pqTraceOutput_Close(FILE *f, const char *message, int *cursor)
{
- if (toServer)
- {
- fprintf(f, "Close\t");
- pqTraceOutputByte1(f, message, cursor);
- pqTraceOutputString(f, message, cursor, false);
- }
- else
- {
- fprintf(f, "CommandComplete\t");
- pqTraceOutputString(f, message, cursor, false);
- }
+ fprintf(f, "Close\t");
+ pqTraceOutputByte1(f, message, cursor);
+ pqTraceOutputString(f, message, cursor, false);
+}
+
+static void
+pqTraceOutput_CommandComplete(FILE *f, const char *message, int *cursor)
+{
+ fprintf(f, "CommandComplete\t");
+ pqTraceOutputString(f, message, cursor, false);
}
-/* Describe(F) or DataRow(B) */
static void
-pqTraceOutputD(FILE *f, bool toServer, const char *message, int *cursor)
+pqTraceOutput_DataRow(FILE *f, const char *message, int *cursor)
{
- if (toServer)
+ int nfields;
+ int len;
+ int i;
+
+ fprintf(f, "DataRow\t");
+ nfields = pqTraceOutputInt16(f, message, cursor);
+ for (i = 0; i < nfields; i++)
{
- fprintf(f, "Describe\t");
- pqTraceOutputByte1(f, message, cursor);
- pqTraceOutputString(f, message, cursor, false);
+ len = pqTraceOutputInt32(f, message, cursor, false);
+ if (len == -1)
+ continue;
+ pqTraceOutputNchar(f, len, message, cursor);
}
- else
- {
- int nfields;
- int len;
- int i;
+}
- fprintf(f, "DataRow\t");
- nfields = pqTraceOutputInt16(f, message, cursor);
- for (i = 0; i < nfields; i++)
- {
- len = pqTraceOutputInt32(f, message, cursor, false);
- if (len == -1)
- continue;
- pqTraceOutputNchar(f, len, message, cursor);
- }
- }
+static void
+pqTraceOutput_Describe(FILE *f, const char *message, int *cursor)
+{
+ fprintf(f, "Describe\t");
+ pqTraceOutputByte1(f, message, cursor);
+ pqTraceOutputString(f, message, cursor, false);
}
-/* NoticeResponse / ErrorResponse */
+/* shared code NoticeResponse / ErrorResponse */
static void
pqTraceOutputNR(FILE *f, const char *type, const char *message, int *cursor,
bool regress)
}
}
-/* Execute(F) or ErrorResponse(B) */
static void
-pqTraceOutputE(FILE *f, bool toServer, const char *message, int *cursor, bool regress)
+pqTraceOutput_ErrorResponse(FILE *f, const char *message, int *cursor, bool regress)
{
- if (toServer)
- {
- fprintf(f, "Execute\t");
- pqTraceOutputString(f, message, cursor, false);
- pqTraceOutputInt32(f, message, cursor, false);
- }
- else
- pqTraceOutputNR(f, "ErrorResponse", message, cursor, regress);
+ pqTraceOutputNR(f, "ErrorResponse", message, cursor, regress);
+}
+
+static void
+pqTraceOutput_NoticeResponse(FILE *f, const char *message, int *cursor, bool regress)
+{
+ pqTraceOutputNR(f, "NoticeResponse", message, cursor, regress);
}
-/* CopyFail */
static void
-pqTraceOutputf(FILE *f, const char *message, int *cursor)
+pqTraceOutput_Execute(FILE *f, const char *message, int *cursor, bool regress)
+{
+ fprintf(f, "Execute\t");
+ pqTraceOutputString(f, message, cursor, false);
+ pqTraceOutputInt32(f, message, cursor, false);
+}
+
+static void
+pqTraceOutput_CopyFail(FILE *f, const char *message, int *cursor)
{
fprintf(f, "CopyFail\t");
pqTraceOutputString(f, message, cursor, false);
}
-/* FunctionCall */
static void
-pqTraceOutputF(FILE *f, const char *message, int *cursor, bool regress)
+pqTraceOutput_FunctionCall(FILE *f, const char *message, int *cursor, bool regress)
{
int nfields;
int nbytes;
pqTraceOutputInt16(f, message, cursor);
}
-/* CopyInResponse */
static void
-pqTraceOutputG(FILE *f, const char *message, int *cursor)
+pqTraceOutput_CopyInResponse(FILE *f, const char *message, int *cursor)
{
int nfields;
pqTraceOutputInt16(f, message, cursor);
}
-/* CopyOutResponse */
static void
-pqTraceOutputH(FILE *f, const char *message, int *cursor)
+pqTraceOutput_CopyOutResponse(FILE *f, const char *message, int *cursor)
{
int nfields;
pqTraceOutputInt16(f, message, cursor);
}
-/* BackendKeyData */
static void
-pqTraceOutputK(FILE *f, const char *message, int *cursor, bool regress)
+pqTraceOutput_BackendKeyData(FILE *f, const char *message, int *cursor, bool regress)
{
fprintf(f, "BackendKeyData\t");
pqTraceOutputInt32(f, message, cursor, regress);
pqTraceOutputInt32(f, message, cursor, regress);
}
-/* Parse */
static void
-pqTraceOutputP(FILE *f, const char *message, int *cursor, bool regress)
+pqTraceOutput_Parse(FILE *f, const char *message, int *cursor, bool regress)
{
int nparams;
pqTraceOutputInt32(f, message, cursor, regress);
}
-/* Query */
static void
-pqTraceOutputQ(FILE *f, const char *message, int *cursor)
+pqTraceOutput_Query(FILE *f, const char *message, int *cursor)
{
fprintf(f, "Query\t");
pqTraceOutputString(f, message, cursor, false);
}
-/* Authentication */
static void
-pqTraceOutputR(FILE *f, const char *message, int *cursor)
+pqTraceOutput_Authentication(FILE *f, const char *message, int *cursor)
{
fprintf(f, "Authentication\t");
pqTraceOutputInt32(f, message, cursor, false);
}
-/* ParameterStatus */
static void
-pqTraceOutputS(FILE *f, const char *message, int *cursor)
+pqTraceOutput_ParameterStatus(FILE *f, const char *message, int *cursor)
{
fprintf(f, "ParameterStatus\t");
pqTraceOutputString(f, message, cursor, false);
pqTraceOutputString(f, message, cursor, false);
}
-/* ParameterDescription */
static void
-pqTraceOutputt(FILE *f, const char *message, int *cursor, bool regress)
+pqTraceOutput_ParameterDescription(FILE *f, const char *message, int *cursor, bool regress)
{
int nfields;
pqTraceOutputInt32(f, message, cursor, regress);
}
-/* RowDescription */
static void
-pqTraceOutputT(FILE *f, const char *message, int *cursor, bool regress)
+pqTraceOutput_RowDescription(FILE *f, const char *message, int *cursor, bool regress)
{
int nfields;
}
}
-/* NegotiateProtocolVersion */
static void
-pqTraceOutputv(FILE *f, const char *message, int *cursor)
+pqTraceOutput_NegotiateProtocolVersion(FILE *f, const char *message, int *cursor)
{
fprintf(f, "NegotiateProtocolVersion\t");
pqTraceOutputInt32(f, message, cursor, false);
pqTraceOutputInt32(f, message, cursor, false);
}
-/* FunctionCallResponse */
static void
-pqTraceOutputV(FILE *f, const char *message, int *cursor)
+pqTraceOutput_FunctionCallResponse(FILE *f, const char *message, int *cursor)
{
int len;
pqTraceOutputNchar(f, len, message, cursor);
}
-/* CopyBothResponse */
static void
-pqTraceOutputW(FILE *f, const char *message, int *cursor, int length)
+pqTraceOutput_CopyBothResponse(FILE *f, const char *message, int *cursor, int length)
{
fprintf(f, "CopyBothResponse\t");
pqTraceOutputByte1(f, message, cursor);
pqTraceOutputInt16(f, message, cursor);
}
-/* ReadyForQuery */
static void
-pqTraceOutputZ(FILE *f, const char *message, int *cursor)
+pqTraceOutput_ReadyForQuery(FILE *f, const char *message, int *cursor)
{
fprintf(f, "ReadyForQuery\t");
pqTraceOutputByte1(f, message, cursor);
* name) fields can change as server code is modified, and if their
* lengths differ from the originals, that would break tests.
*/
- if (regress && !toServer && (id == 'E' || id == 'N'))
+ if (regress && !toServer && (id == PqMsg_ErrorResponse || id == PqMsg_NoticeResponse))
fprintf(conn->Pfdebug, "%s\tNN\t", prefix);
else
fprintf(conn->Pfdebug, "%s\t%d\t", prefix, length);
/* No message content */
break;
case PqMsg_NotificationResponse:
- pqTraceOutputA(conn->Pfdebug, message, &logCursor, regress);
+ pqTraceOutput_NotificationResponse(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_Bind:
- pqTraceOutputB(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_Bind(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_CopyDone:
fprintf(conn->Pfdebug, "CopyDone");
case PqMsg_CommandComplete:
/* Close(F) and CommandComplete(B) use the same identifier. */
Assert(PqMsg_Close == PqMsg_CommandComplete);
- pqTraceOutputC(conn->Pfdebug, toServer, message, &logCursor);
+ if (toServer)
+ pqTraceOutput_Close(conn->Pfdebug, message, &logCursor);
+ else
+ pqTraceOutput_CommandComplete(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_CopyData:
/* Drop COPY data to reduce the overhead of logging. */
case PqMsg_Describe:
/* Describe(F) and DataRow(B) use the same identifier. */
Assert(PqMsg_Describe == PqMsg_DataRow);
- pqTraceOutputD(conn->Pfdebug, toServer, message, &logCursor);
+ if (toServer)
+ pqTraceOutput_Describe(conn->Pfdebug, message, &logCursor);
+ else
+ pqTraceOutput_DataRow(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_Execute:
/* Execute(F) and ErrorResponse(B) use the same identifier. */
Assert(PqMsg_Execute == PqMsg_ErrorResponse);
- pqTraceOutputE(conn->Pfdebug, toServer, message, &logCursor,
- regress);
+ if (toServer)
+ pqTraceOutput_Execute(conn->Pfdebug, message, &logCursor, regress);
+ else
+ pqTraceOutput_ErrorResponse(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_CopyFail:
- pqTraceOutputf(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_CopyFail(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_FunctionCall:
- pqTraceOutputF(conn->Pfdebug, message, &logCursor, regress);
+ pqTraceOutput_FunctionCall(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_CopyInResponse:
- pqTraceOutputG(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_CopyInResponse(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_Flush:
/* Flush(F) and CopyOutResponse(B) use the same identifier */
Assert(PqMsg_CopyOutResponse == PqMsg_Flush);
- if (!toServer)
- pqTraceOutputH(conn->Pfdebug, message, &logCursor);
- else
+ if (toServer)
fprintf(conn->Pfdebug, "Flush"); /* no message content */
+ else
+ pqTraceOutput_CopyOutResponse(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_EmptyQueryResponse:
fprintf(conn->Pfdebug, "EmptyQueryResponse");
/* No message content */
break;
case PqMsg_BackendKeyData:
- pqTraceOutputK(conn->Pfdebug, message, &logCursor, regress);
+ pqTraceOutput_BackendKeyData(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_NoData:
fprintf(conn->Pfdebug, "NoData");
/* No message content */
break;
case PqMsg_NoticeResponse:
- pqTraceOutputNR(conn->Pfdebug, "NoticeResponse", message,
- &logCursor, regress);
+ pqTraceOutput_NoticeResponse(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_Parse:
- pqTraceOutputP(conn->Pfdebug, message, &logCursor, regress);
+ pqTraceOutput_Parse(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_Query:
- pqTraceOutputQ(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_Query(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_AuthenticationRequest:
- pqTraceOutputR(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_Authentication(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_PortalSuspended:
fprintf(conn->Pfdebug, "PortalSuspended");
/* No message content */
break;
case PqMsg_Sync:
- /* Parameter Status(B) and Sync(F) use the same identifier */
+ /* ParameterStatus(B) and Sync(F) use the same identifier */
Assert(PqMsg_ParameterStatus == PqMsg_Sync);
- if (!toServer)
- pqTraceOutputS(conn->Pfdebug, message, &logCursor);
- else
+ if (toServer)
fprintf(conn->Pfdebug, "Sync"); /* no message content */
+ else
+ pqTraceOutput_ParameterStatus(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_ParameterDescription:
- pqTraceOutputt(conn->Pfdebug, message, &logCursor, regress);
+ pqTraceOutput_ParameterDescription(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_RowDescription:
- pqTraceOutputT(conn->Pfdebug, message, &logCursor, regress);
+ pqTraceOutput_RowDescription(conn->Pfdebug, message, &logCursor, regress);
break;
case PqMsg_NegotiateProtocolVersion:
- pqTraceOutputv(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_NegotiateProtocolVersion(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_FunctionCallResponse:
- pqTraceOutputV(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_FunctionCallResponse(conn->Pfdebug, message, &logCursor);
break;
case PqMsg_CopyBothResponse:
- pqTraceOutputW(conn->Pfdebug, message, &logCursor, length);
+ pqTraceOutput_CopyBothResponse(conn->Pfdebug, message, &logCursor, length);
break;
case PqMsg_Terminate:
fprintf(conn->Pfdebug, "Terminate");
/* No message content */
break;
case PqMsg_ReadyForQuery:
- pqTraceOutputZ(conn->Pfdebug, message, &logCursor);
+ pqTraceOutput_ReadyForQuery(conn->Pfdebug, message, &logCursor);
break;
default:
fprintf(conn->Pfdebug, "Unknown message: %02x", id);