postgres.git / summary / log / commit / refs
commit 8ee2e5f78cd7f99d41ddf2c396d83adb6f9df2db
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu Mar 17 03:18:07 2016 +0000
Fix "pg_bench -C -M prepared".
This didn't work because when we dropped and re-established a database
connection, we did not bother to reset session-specific state such as
the statements-are-prepared flags.
The st->prepared[] array certainly needs to be flushed, and I cleared a
couple of other fields as well that couldn't possibly retain meaningful
state for a new connection.
In passing, fix some bogus comments and strange field order choices.
Per report from Robins Tharakan.
src/bin/pgbench/pgbench.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 25141edd843..182a9ee1612 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -212,7 +212,7 @@ typedef struct
int state; /* state No. */
int cnt; /* xacts count */
int ecnt; /* error count */
- int listen; /* 0 indicates that an async query has been
+ int listen; /* 1 indicates that an async query has been
* sent */
int sleeping; /* 1 indicates that the client is napping */
bool throttling; /* whether nap is for throttling */
@@ -1405,6 +1405,13 @@ top:
}
INSTR_TIME_SET_CURRENT(end);
INSTR_TIME_ACCUM_DIFF(*conn_time, end, start);
+
+ /* Reset session-local state */
+ st->listen = 0;
+ st->sleeping = 0;
+ st->throttling = false;
+ st->is_throttled = false;
+ memset(st->prepared, 0, sizeof(st->prepared));
}
/*
[parent: 3f14d8d59457]