From 6d916730e26384e7f3a559515bd16d0d9831064b Mon Sep 17 00:00:00 2001 From: Rintaro Ikeda Date: Wed, 9 Jul 2025 23:46:19 +0900 Subject: [PATCH v6 3/3] Suppress error messages unless client abort Suppress error messages for individual failed SQL commands and report them only hen the client aborts --- src/bin/pgbench/pgbench.c | 10 +++++++--- src/bin/pgbench/t/001_pgbench_with_server.pl | 14 +++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index 95a7083ede0..26995b93313 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -3385,9 +3385,10 @@ readCommandResponse(CState *st, MetaCommand meta, char *varprefix) default: /* anything else is unexpected */ - pg_log_error("client %d script %d aborted in command %d query %d: %s", - st->id, st->use_file, st->command, qrynum, - PQerrorMessage(st->con)); + if (verbose_errors) + pg_log_error("client %d script %d aborted in command %d query %d: %s", + st->id, st->use_file, st->command, qrynum, + PQerrorMessage(st->con)); goto error; } @@ -4030,7 +4031,10 @@ advanceConnectionState(TState *thread, CState *st, StatsData *agg) canRetryError(st->estatus)) st->state = CSTATE_ERROR; else + { + pg_log_error("client %d aborted while executing SQL commands", st->id); st->state = CSTATE_ABORTED; + } break; /* diff --git a/src/bin/pgbench/t/001_pgbench_with_server.pl b/src/bin/pgbench/t/001_pgbench_with_server.pl index 8bb35dda5f7..a38a1cf4ab7 100644 --- a/src/bin/pgbench/t/001_pgbench_with_server.pl +++ b/src/bin/pgbench/t/001_pgbench_with_server.pl @@ -301,7 +301,7 @@ $node->append_conf('postgresql.conf', . "log_parameter_max_length_on_error = 0"); $node->reload; $node->pgbench( - '-n -t1 -c1 -M prepared', + '-n -t1 -c1 -M prepared --verbose', 2, [], [ @@ -328,7 +328,7 @@ $node->append_conf('postgresql.conf', . "log_parameter_max_length_on_error = 64"); $node->reload; $node->pgbench( - '-n -t1 -c1 -M prepared', + '-n -t1 -c1 -M prepared --verbose', 2, [], [ @@ -342,7 +342,7 @@ SELECT 1 / (random() / 2)::int, :one::int, :two::int; } }); $node->pgbench( - '-n -t1 -c1 -M prepared', + '-n -t1 -c1 -M prepared --verbose', 2, [], [ @@ -370,7 +370,7 @@ $node->append_conf('postgresql.conf', . "log_parameter_max_length_on_error = -1"); $node->reload; $node->pgbench( - '-n -t1 -c1 -M prepared', + '-n -t1 -c1 -M prepared --verbose', 2, [], [ @@ -387,7 +387,7 @@ SELECT 1 / (random() / 2)::int, :one::int, :two::int; $node->append_conf('postgresql.conf', "log_min_duration_statement = 0"); $node->reload; $node->pgbench( - '-n -t1 -c1 -M prepared', + '-n -t1 -c1 -M prepared --verbose', 2, [], [ @@ -410,7 +410,7 @@ $log = undef; # Check that bad parameters are reported during typinput phase of BIND $node->pgbench( - '-n -t1 -c1 -M prepared', + '-n -t1 -c1 -M prepared --verbose', 2, [], [ @@ -1464,7 +1464,7 @@ for my $e (@errors) my $n = '001_pgbench_error_' . $name; $n =~ s/ /_/g; $node->pgbench( - '-n -t 1 -Dfoo=bla -Dnull=null -Dtrue=true -Done=1 -Dzero=0.0 -Dbadtrue=trueXXX' + '-n -t 1 -Dfoo=bla -Dnull=null -Dtrue=true -Done=1 -Dzero=0.0 -Dbadtrue=trueXXX --verbose' . ' -Dmaxint=9223372036854775807 -Dminint=-9223372036854775808' . ($no_prepare ? '' : ' -M prepared'), $status, -- 2.39.5 (Apple Git-154)