v1-0008-libpq-Trace-NegotiateProtocolVersion-correctly.patch

application/x-patch

Filename: v1-0008-libpq-Trace-NegotiateProtocolVersion-correctly.patch
Type: application/x-patch
Part: 7
Message: libpq: Fix lots of discrepancies in PQtrace

Patch

Format: format-patch
Series: patch v1-0008
Subject: libpq: Trace NegotiateProtocolVersion correctly
File+
src/interfaces/libpq/fe-trace.c 7 1
From 1c3c61fffebb53a8d41e1c1bb49a4b58645377eb Mon Sep 17 00:00:00 2001
From: Jelte Fennema-Nio <jelte.fennema@microsoft.com>
Date: Wed, 5 Jun 2024 11:40:04 +0200
Subject: [PATCH v1 8/8] libpq: Trace NegotiateProtocolVersion correctly

This changes the libpq tracing code to correctly trace the
NegotiateProtocolVersion message. Previously it wasn't important that
tracing of the NegotiateProtocolVersion message worked correctly,
because in practice libpq never received it. Now that we are planning to
introduce protocol changes in future commits it starts to become more
useful for testing/debugging.
---
 src/interfaces/libpq/fe-trace.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c
index f130a1765bd..03a3e35898d 100644
--- a/src/interfaces/libpq/fe-trace.c
+++ b/src/interfaces/libpq/fe-trace.c
@@ -562,9 +562,15 @@ pqTraceOutput_RowDescription(FILE *f, const char *message, int *cursor, bool reg
 static void
 pqTraceOutput_NegotiateProtocolVersion(FILE *f, const char *message, int *cursor)
 {
+	int			nparams;
+
 	fprintf(f, "NegotiateProtocolVersion\t");
 	pqTraceOutputInt32(f, message, cursor, false);
-	pqTraceOutputInt32(f, message, cursor, false);
+	nparams = pqTraceOutputInt32(f, message, cursor, false);
+	for (int i = 0; i < nparams; i++)
+	{
+		pqTraceOutputString(f, message, cursor, false);
+	}
 }
 
 static void
-- 
2.34.1