40 if (debug_port == NULL)
94 strftime(timestr, ts_len,
98 snprintf(timestr + strlen(timestr), ts_len - strlen(timestr),
99 ".%06u", (
unsigned int) (tval.tv_usec));
114 if (!isprint((
unsigned char) *v))
115 fprintf(pfdebug,
" \\x%02x", *v);
133 fprintf(pfdebug,
" %d", result);
154 fprintf(pfdebug,
" %d", result);
198 if (isprint((
unsigned char) v[
i]))
221 fprintf(f,
"NotificationResponse\t");
237 for (
int i = 0;
i < nparams;
i++)
242 for (
int i = 0;
i < nparams;
i++)
253 for (
int i = 0;
i < nparams;
i++)
268 fprintf(f,
"CommandComplete\t");
281 for (
i = 0;
i < nfields;
i++)
310 field = message[*
cursor - 1];
314 suppress = regress && (field ==
'L' || field ==
'F' || field ==
'R');
356 for (
int i = 0;
i < nfields;
i++)
361 for (
int i = 0;
i < nfields;
i++)
377 fprintf(f,
"CopyInResponse\t");
381 for (
int i = 0;
i < nfields;
i++)
390 fprintf(f,
"CopyOutResponse\t");
394 for (
int i = 0;
i < nfields;
i++)
401 fprintf(f,
"BackendKeyData\t");
416 for (
int i = 0;
i < nparams;
i++)
430 fprintf(f,
"Authentication\t");
437 fprintf(f,
"ParameterStatus\t");
447 fprintf(f,
"ParameterDescription\t");
450 for (
int i = 0;
i < nfields;
i++)
459 fprintf(f,
"RowDescription\t");
462 for (
int i = 0;
i < nfields;
i++)
477 fprintf(f,
"NegotiateProtocolVersion\t");
487 fprintf(f,
"FunctionCallResponse\t");
496 fprintf(f,
"CopyBothResponse\t");
518 char *prefix = toServer ?
"F" :
"B";
531 id = message[logCursor++];
533 memcpy(&length, message + logCursor, 4);
685 if (logCursor - 1 != length)
687 "mismatched message length: consumed %d, expected %d\n",
688 logCursor - 1, length);
709 memcpy(&length, message + logCursor, 4);
Datum now(PG_FUNCTION_ARGS)
#define Assert(condition)
static void pqTraceOutput_RowDescription(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputString(FILE *pfdebug, const char *data, int *cursor, bool suppress)
static void pqTraceOutput_FunctionCall(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutput_CopyInResponse(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_BackendKeyData(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutput_Parse(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutput_NoticeResponse(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputNchar(FILE *pfdebug, int len, const char *data, int *cursor)
void PQtrace(PGconn *conn, FILE *debug_port)
static void pqTraceOutput_ParameterDescription(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutput_DataRow(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_Query(FILE *f, const char *message, int *cursor)
static int pqTraceOutputInt16(FILE *pfdebug, const char *data, int *cursor)
static void pqTraceOutput_NegotiateProtocolVersion(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_CopyBothResponse(FILE *f, const char *message, int *cursor, int length)
static void pqTraceOutput_Bind(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_ErrorResponse(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputNR(FILE *f, const char *type, const char *message, int *cursor, bool regress)
static void pqTraceOutput_Close(FILE *f, const char *message, int *cursor)
static void pqTraceOutputByte1(FILE *pfdebug, const char *data, int *cursor)
static void pqTraceOutput_Authentication(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_Describe(FILE *f, const char *message, int *cursor)
void pqTraceOutputMessage(PGconn *conn, const char *message, bool toServer)
static void pqTraceOutput_NotificationResponse(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutput_CommandComplete(FILE *f, const char *message, int *cursor)
void PQsetTraceFlags(PGconn *conn, int flags)
static void pqTraceOutput_ParameterStatus(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_Execute(FILE *f, const char *message, int *cursor, bool regress)
void PQuntrace(PGconn *conn)
static void pqTraceOutput_CopyOutResponse(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_ReadyForQuery(FILE *f, const char *message, int *cursor)
static int pqTraceOutputInt32(FILE *pfdebug, const char *data, int *cursor, bool suppress)
void pqTraceOutputNoTypeByteMessage(PGconn *conn, const char *message)
static void pqTraceFormatTimestamp(char *timestr, size_t ts_len)
static void pqTraceOutput_CopyFail(FILE *f, const char *message, int *cursor)
static void pqTraceOutput_FunctionCallResponse(FILE *f, const char *message, int *cursor)
#define PQTRACE_SUPPRESS_TIMESTAMPS
#define PQTRACE_REGRESS_MODE
static void const char fflush(stdout)
#define PqMsg_CloseComplete
#define PqMsg_NotificationResponse
#define PqMsg_BindComplete
#define PqMsg_ParameterDescription
#define PqMsg_FunctionCall
#define PqMsg_FunctionCallResponse
#define PqMsg_ReadyForQuery
#define PqMsg_AuthenticationRequest
#define PqMsg_CopyInResponse
#define PqMsg_EmptyQueryResponse
#define PqMsg_RowDescription
#define PqMsg_CopyBothResponse
#define PqMsg_ParameterStatus
#define PqMsg_NegotiateProtocolVersion
#define PqMsg_PortalSuspended
#define PqMsg_BackendKeyData
#define PqMsg_CommandComplete
#define PqMsg_ErrorResponse
#define PqMsg_NoticeResponse
#define PqMsg_CopyOutResponse
#define PqMsg_ParseComplete
int gettimeofday(struct timeval *tp, void *tzp)