aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-03-16 23:18:07 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-03-16 23:18:07 -0400
commit23cb32660c841d21a376642e40d8cfbea6c5f010 (patch)
tree78f58825007e124290e5e7159da652ee6789d8b3
parentb0bdc3f182995658f42470a6f5314ea58f48c6d8 (diff)
downloadpostgresql-23cb32660c841d21a376642e40d8cfbea6c5f010.tar.gz
postgresql-23cb32660c841d21a376642e40d8cfbea6c5f010.zip
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.
-rw-r--r--contrib/pgbench/pgbench.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index 6c36ad2528a..e5510fb830b 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -204,7 +204,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 */
@@ -1274,6 +1274,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));
}
/*