Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lSKE5-000764-KK for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Apr 2021 13:52:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lSKE4-0008P5-HQ for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Apr 2021 13:52:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lSKE3-0008OO-H8 for pgsql-hackers@lists.postgresql.org; Fri, 02 Apr 2021 13:52:40 +0000 Received: from [64.147.123.19] (helo=wout3-smtp.messagingengine.com) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lSKE0-0001WJ-8d for pgsql-hackers@lists.postgresql.org; Fri, 02 Apr 2021 13:52:39 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id 5F1781343; Fri, 2 Apr 2021 09:52:23 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Fri, 02 Apr 2021 09:52:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=7sRqIMHgLaxQsR2WN1erhjVhlU7skD5Y/Oo3fEYRVf8=; b=HgUeHX1A +9VNB9nHydwa64geWRI0ORJnCCYAHjwI8/hbGNiDTJ6VecoDU3Xt0iGGehIh/YBH dtFEx14+IFeu6iOPYc1EyUPybRxhtgdSvgwETJoObpHXaTYZ+OSHgA5jlMF9aDjd 2iwX+GfL4q9vfKlks+OeyRGrxEaRddIr0pDprz9GUdHI+uJ1D7pzpTzGx816fNIm F/lq1D2w2K9BrelN78POUWw/9hp5XK1vrKDOjgokz1kQWTTaGjNNJLmGpcJGuL6Q RIwZ8/I+V0q5KK+FwIa8/8qDbUJd4qJStwBWoA779yXcyq0rWHjrn/L9qZzCC5pG Q9QUiyzWxVLPJg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudeiiedgieelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkgggtugfgjggfsehmke erredtredunecuhfhrohhmpeetlhhvrghrohcujfgvrhhrvghrrgcuoegrlhhvhhgvrhhr vgesrghlvhhhrdhnohdqihhprdhorhhgqeenucggtffrrghtthgvrhhnpefhfeegleekgf ejueehgfefveelfeetvdehffdtueetgffhkefhudehffekudetkeenucfkphepudeltddr leehrdduledrleehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh hfrhhomheprghlvhhhvghrrhgvsegrlhhvhhdrnhhoqdhiphdrohhrgh X-ME-Proxy: Received: from perhan.alvh.no-ip.org (unknown [190.95.19.95]) by mail.messagingengine.com (Postfix) with ESMTPA id A1132240057; Fri, 2 Apr 2021 09:52:21 -0400 (EDT) Received: by perhan.alvh.no-ip.org (Postfix, from userid 1000) id 566B12A0850; Fri, 2 Apr 2021 10:52:18 -0300 (-03) Date: Fri, 2 Apr 2021 10:52:18 -0300 From: Alvaro Herrera To: Kyotaro Horiguchi Cc: iwata.aya@fujitsu.com, tgl@sss.pgh.pa.us, tsunakawa.takay@fujitsu.com, k.jamison@fujitsu.com, pgsql-hackers@lists.postgresql.org Subject: Re: libpq debug log Message-ID: <20210402135218.GA13909@alvherre.pgsql> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="6c2NcOVqGQ03X4Wi" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210402123650.GA23627@alvherre.pgsql> User-Agent: Mutt/1.10.1 (2018-07-13) X-Host-Lookup-Failed: Reverse DNS lookup failed for 64.147.123.19 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit On 2021-Apr-02, Alvaro Herrera wrote: > On 2021-Apr-02, Kyotaro Horiguchi wrote: > > > At Fri, 02 Apr 2021 14:40:09 +0900 (JST), Kyotaro Horiguchi wrote in > > > > So, the cheapest measure for regression test would be just making the > > > > So, the cheapest measure for regression test would be just *masking* the > > > > > length field, while regress is true... > > Yeah. As in the attached patch. -- Álvaro Herrera Valdivia, Chile "Investigación es lo que hago cuando no sé lo que estoy haciendo" (Wernher von Braun) --6c2NcOVqGQ03X4Wi Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-Suppress-length-of-Notice-Error-in-PQtrace-regress-m.patch" From 387a15ec80cfcdd2279b109215b9f658bc972748 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Fri, 2 Apr 2021 10:51:42 -0300 Subject: [PATCH] Suppress length of Notice/Error in PQtrace regress mode --- src/interfaces/libpq/fe-trace.c | 9 ++++++++- .../modules/libpq_pipeline/traces/pipeline_abort.trace | 8 ++++---- src/test/modules/libpq_pipeline/traces/transaction.trace | 6 +++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c index 9a4595f5c8..298713c602 100644 --- a/src/interfaces/libpq/fe-trace.c +++ b/src/interfaces/libpq/fe-trace.c @@ -540,7 +540,14 @@ 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 -- they vary depending on compiler. + */ + 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) { diff --git a/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace b/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace index b061435785..254e485997 100644 --- a/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace +++ b/src/test/modules/libpq_pipeline/traces/pipeline_abort.trace @@ -1,5 +1,5 @@ F 42 Query "DROP TABLE IF EXISTS pq_pipeline_demo" -B 123 NoticeResponse S "NOTICE" V "NOTICE" C "00000" M "table "pq_pipeline_demo" does not exist, skipping" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN NoticeResponse S "NOTICE" V "NOTICE" C "00000" M "table "pq_pipeline_demo" does not exist, skipping" F "SSSS" L "SSSS" R "SSSS" \x00 B 15 CommandComplete "DROP TABLE" B 5 ReadyForQuery I F 99 Query "CREATE UNLOGGED TABLE pq_pipeline_demo(id serial primary key, itemno integer,int8filler int8);" @@ -27,7 +27,7 @@ B 4 ParseComplete B 4 BindComplete B 4 NoData B 15 CommandComplete "INSERT 0 1" -B 217 ErrorResponse S "ERROR" V "ERROR" C "42883" M "function no_such_function(integer) does not exist" H "No function matches the given name and argument types. You might need to add explicit type casts." P "8" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN ErrorResponse S "ERROR" V "ERROR" C "42883" M "function no_such_function(integer) does not exist" H "No function matches the given name and argument types. You might need to add explicit type casts." P "8" F "SSSS" L "SSSS" R "SSSS" \x00 B 5 ReadyForQuery I B 4 ParseComplete B 4 BindComplete @@ -39,7 +39,7 @@ F 12 Bind "" "" 0 0 0 F 6 Describe P "" F 9 Execute "" 0 F 4 Sync -B 123 ErrorResponse S "ERROR" V "ERROR" C "42601" M "cannot insert multiple commands into a prepared statement" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN ErrorResponse S "ERROR" V "ERROR" C "42601" M "cannot insert multiple commands into a prepared statement" F "SSSS" L "SSSS" R "SSSS" \x00 B 5 ReadyForQuery I F 54 Parse "" "SELECT 1.0/g FROM generate_series(3, -1, -1) g" 0 F 12 Bind "" "" 0 0 0 @@ -52,7 +52,7 @@ B 33 RowDescription 1 "?column?" NNNN 0 NNNN 65535 -1 0 B 32 DataRow 1 22 '0.33333333333333333333' B 32 DataRow 1 22 '0.50000000000000000000' B 32 DataRow 1 22 '1.00000000000000000000' -B 70 ErrorResponse S "ERROR" V "ERROR" C "22012" M "division by zero" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN ErrorResponse S "ERROR" V "ERROR" C "22012" M "division by zero" F "SSSS" L "SSSS" R "SSSS" \x00 B 5 ReadyForQuery I F 40 Query "SELECT itemno FROM pq_pipeline_demo" B 31 RowDescription 1 "itemno" NNNN 2 NNNN 4 -1 0 diff --git a/src/test/modules/libpq_pipeline/traces/transaction.trace b/src/test/modules/libpq_pipeline/traces/transaction.trace index 0267a534fa..1dcc2373c0 100644 --- a/src/test/modules/libpq_pipeline/traces/transaction.trace +++ b/src/test/modules/libpq_pipeline/traces/transaction.trace @@ -1,5 +1,5 @@ F 79 Query "DROP TABLE IF EXISTS pq_pipeline_tst;CREATE TABLE pq_pipeline_tst (id int)" -B 122 NoticeResponse S "NOTICE" V "NOTICE" C "00000" M "table "pq_pipeline_tst" does not exist, skipping" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN NoticeResponse S "NOTICE" V "NOTICE" C "00000" M "table "pq_pipeline_tst" does not exist, skipping" F "SSSS" L "SSSS" R "SSSS" \x00 B 15 CommandComplete "DROP TABLE" B 17 CommandComplete "CREATE TABLE" B 5 ReadyForQuery I @@ -40,9 +40,9 @@ B 4 BindComplete B 4 NoData B 10 CommandComplete "BEGIN" B 4 ParseComplete -B 65 ErrorResponse S "ERROR" V "ERROR" C "22012" M "division by zero" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN ErrorResponse S "ERROR" V "ERROR" C "22012" M "division by zero" F "SSSS" L "SSSS" R "SSSS" \x00 B 5 ReadyForQuery E -B 145 ErrorResponse S "ERROR" V "ERROR" C "25P02" M "current transaction is aborted, commands ignored until end of transaction block" F "SSSS" L "SSSS" R "SSSS" \x00 +B NN ErrorResponse S "ERROR" V "ERROR" C "25P02" M "current transaction is aborted, commands ignored until end of transaction block" F "SSSS" L "SSSS" R "SSSS" \x00 B 5 ReadyForQuery E B 4 BindComplete B 4 NoData -- 2.20.1 --6c2NcOVqGQ03X4Wi--