diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2021-03-30 20:12:34 -0300 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2021-03-30 20:12:34 -0300 |
commit | 198b3716dba68544b55cb97bd120738a86d5df2d (patch) | |
tree | c37a8ff6f15263c6fcbb2c3ff5f26b1a836d4613 /doc/src | |
parent | 5da9868ed983f95cc1cff80dcd81252a513774f8 (diff) | |
download | postgresql-198b3716dba68544b55cb97bd120738a86d5df2d.tar.gz postgresql-198b3716dba68544b55cb97bd120738a86d5df2d.zip |
Improve PQtrace() output format
Transform the PQtrace output format from its ancient (and mostly
useless) byte-level output format to a logical-message-level output,
making it much more usable. This implementation allows the printing
code to be written (as it indeed was) by looking at the protocol
documentation, which gives more confidence that the three (docs, trace
code and actual code) actually match.
Author: 岩田 彩 (Aya Iwata) <iwata.aya@fujitsu.com>
Reviewed-by: 綱川 貴之 (Takayuki Tsunakawa) <tsunakawa.takay@fujitsu.com>
Reviewed-by: Kirk Jamison <k.jamison@fujitsu.com>
Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: 黒田 隼人 (Hayato Kuroda) <kuroda.hayato@fujitsu.com>
Reviewed-by: "Nagaura, Ryohei" <nagaura.ryohei@jp.fujitsu.com>
Reviewed-by: Ryo Matsumura <matsumura.ryo@fujitsu.com>
Reviewed-by: Greg Nancarrow <gregn4422@gmail.com>
Reviewed-by: Jim Doty <jdoty@pivotal.io>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/71E660EB361DF14299875B198D4CE5423DE3FBA4@g01jpexmbkw25
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/libpq.sgml | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index be674fbaa92..3ec458ce09d 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -6459,12 +6459,27 @@ PGContextVisibility PQsetErrorContextVisibility(PGconn *conn, PGContextVisibilit <listitem> <para> - Enables tracing of the client/server communication to a debugging file stream. + Enables tracing of the client/server communication to a debugging file + stream. <synopsis> void PQtrace(PGconn *conn, FILE *stream); </synopsis> </para> + <para> + Each line consists of: an optional timestamp, a direction indicator + (<literal>F</literal> for messages from client to server + or <literal>B</literal> for messages from server to client), + message length, message type, and message contents. + Non-message contents fields (timestamp, direction, length and message type) + are separated by a tab. Message contents are separated by a space. + Protocol strings are enclosed in double quotes, while strings used as data + values are enclosed in single quotes. Non-printable chars are printed as + hexadecimal escapes. + Further message-type-specific detail can be found in + <xref linkend="protocol-message-formats"/>. + </para> + <note> <para> On Windows, if the <application>libpq</application> library and an application are @@ -6479,6 +6494,31 @@ void PQtrace(PGconn *conn, FILE *stream); </listitem> </varlistentry> + <varlistentry id="libpq-PQtraceSetFlags"> + <term><function>PQtraceSetFlags</function><indexterm><primary>PQtraceSetFlags</primary></indexterm></term> + + <listitem> + <para> + Controls the tracing behavior of client/server communication. +<synopsis> +void PQtraceSetFlags(PGconn *conn, int flags); +</synopsis> + </para> + + <para> + <literal>flags</literal> contains flag bits describing the operating mode + of tracing. + If <literal>flags</literal> contains <literal>PQTRACE_SUPPRESS_TIMESTAMPS</literal>, + then the timestamp is not included when printing each message. + If <literal>flags</literal> contains <literal>PQTRACE_REGRESS_MODE</literal>, + then some fields are redacted when printing each message, such as object + OIDs, to make the output more convenient to use in testing frameworks. + This function must be called after calling <function>PQtrace</function>. + </para> + + </listitem> + </varlistentry> + <varlistentry id="libpq-PQuntrace"> <term><function>PQuntrace</function><indexterm><primary>PQuntrace</primary></indexterm></term> |