diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2021-04-09 17:13:18 -0400 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2021-04-09 17:13:18 -0400 |
commit | e7e341409a3d85aba4cf754ba9cf722a4d8e6676 (patch) | |
tree | eb0867ace84b236130cbd75c8d7f11ca22b821bd /src/interfaces/libpq/fe-trace.c | |
parent | 846d35b2dc1bd4d09f5e3e5e5a2cc8efafeb600e (diff) |
Suppress length of Notice/Error msgs in PQtrace regress mode
A (relatively minor) annoyance of ErrorResponse/NoticeResponse messages
as printed by PQtrace() is that their length might vary when we move
error messages from one source file to another, one function to another,
or even when their location line numbers change number of digits.
To avoid having to adjust expected files for some tests, make the
regress mode of PQtrace() suppress the length word of NoticeResponse and
ErrorResponse messages.
Discussion: https://postgr.es/m/20210402023010.GA13563@alvherre.pgsql
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Diffstat (limited to 'src/interfaces/libpq/fe-trace.c')
-rw-r--r-- | src/interfaces/libpq/fe-trace.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c index 51b01fd40e5..61a7e489671 100644 --- a/src/interfaces/libpq/fe-trace.c +++ b/src/interfaces/libpq/fe-trace.c @@ -549,7 +549,16 @@ pqTraceOutputMessage(PGconn *conn, const char *message, bool toServer) length = (int) pg_ntoh32(length); logCursor += 4; - fprintf(conn->Pfdebug, "%s\t%d\t", prefix, length); + /* + * In regress mode, suppress the length of ErrorResponse and + * NoticeResponse. The F (file name), L (line number) and R (routine + * 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')) + fprintf(conn->Pfdebug, "%s\tNN\t", prefix); + else + fprintf(conn->Pfdebug, "%s\t%d\t", prefix, length); switch (id) { |