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]))
222 fprintf(f,
"NotificationResponse\t");
239 for (
int i = 0;
i < nparams;
i++)
244 for (
int i = 0;
i < nparams;
i++)
255 for (
int i = 0;
i < nparams;
i++)
271 fprintf(f,
"CommandComplete\t");
294 for (
i = 0;
i < nfields;
i++)
316 field = message[*
cursor - 1];
320 suppress = regress && (field ==
'L' || field ==
'F' || field ==
'R');
358 for (
int i = 0;
i < nfields;
i++)
363 for (
int i = 0;
i < nfields;
i++)
380 fprintf(f,
"CopyInResponse\t");
384 for (
int i = 0;
i < nfields;
i++)
394 fprintf(f,
"CopyOutResponse\t");
398 for (
int i = 0;
i < nfields;
i++)
406 fprintf(f,
"BackendKeyData\t");
422 for (
int i = 0;
i < nparams;
i++)
438 fprintf(f,
"Authentication\t");
446 fprintf(f,
"ParameterStatus\t");
457 fprintf(f,
"ParameterDescription\t");
460 for (
int i = 0;
i < nfields;
i++)
470 fprintf(f,
"RowDescription\t");
473 for (
int i = 0;
i < nfields;
i++)
489 fprintf(f,
"NegotiateProtocolVersion\t");
500 fprintf(f,
"FunctionCallResponse\t");
510 fprintf(f,
"CopyBothResponse\t");
533 char *prefix = toServer ?
"F" :
"B";
546 id = message[logCursor++];
548 memcpy(&length, message + logCursor, 4);
558 if (regress && !toServer && (
id ==
'E' ||
id ==
'N'))
628 &logCursor, regress);
683 if (logCursor - 1 != length)
685 "mismatched message length: consumed %d, expected %d\n",
686 logCursor - 1, length);
707 memcpy(&length, message + logCursor, 4);
Datum now(PG_FUNCTION_ARGS)
static void pqTraceOutputString(FILE *pfdebug, const char *data, int *cursor, bool suppress)
static void pqTraceOutputQ(FILE *f, const char *message, int *cursor)
static void pqTraceOutputS(FILE *f, const char *message, int *cursor)
static void pqTraceOutputH(FILE *f, const char *message, int *cursor)
static void pqTraceOutputZ(FILE *f, const char *message, int *cursor)
static void pqTraceOutputW(FILE *f, const char *message, int *cursor, int length)
static void pqTraceOutputE(FILE *f, bool toServer, const char *message, int *cursor, bool regress)
static void pqTraceOutputV(FILE *f, const char *message, int *cursor)
static void pqTraceOutputNchar(FILE *pfdebug, int len, const char *data, int *cursor)
static void pqTraceOutputK(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputF(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputP(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputT(FILE *f, const char *message, int *cursor, bool regress)
static void pqTraceOutputA(FILE *f, const char *message, int *cursor, bool regress)
void PQtrace(PGconn *conn, FILE *debug_port)
static void pqTraceOutputD(FILE *f, bool toServer, const char *message, int *cursor)
static void pqTraceOutputG(FILE *f, const char *message, int *cursor)
static int pqTraceOutputInt16(FILE *pfdebug, const char *data, int *cursor)
static void pqTraceOutputf(FILE *f, const char *message, int *cursor)
static void pqTraceOutputNR(FILE *f, const char *type, const char *message, int *cursor, bool regress)
static void pqTraceOutputR(FILE *f, const char *message, int *cursor)
static void pqTraceOutputByte1(FILE *pfdebug, const char *data, int *cursor)
static void pqTraceOutputt(FILE *f, const char *message, int *cursor, bool regress)
void pqTraceOutputMessage(PGconn *conn, const char *message, bool toServer)
void PQsetTraceFlags(PGconn *conn, int flags)
static void pqTraceOutputB(FILE *f, const char *message, int *cursor)
void PQuntrace(PGconn *conn)
static void pqTraceOutputv(FILE *f, const char *message, int *cursor)
static void pqTraceOutputC(FILE *f, bool toServer, 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)
#define PQTRACE_SUPPRESS_TIMESTAMPS
#define PQTRACE_REGRESS_MODE
static void const char fflush(stdout)
int gettimeofday(struct timeval *tp, void *tzp)