diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-03-16 23:18:07 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-03-16 23:18:07 -0400 |
commit | 8ee2e5f78cd7f99d41ddf2c396d83adb6f9df2db (patch) | |
tree | 90f97ddc3cfa429ff020dd05f2abe5de030dbc13 /src | |
parent | 3f14d8d59457f98b8ddbbc29cffae9260037aad5 (diff) | |
download | postgresql-8ee2e5f78cd7f99d41ddf2c396d83adb6f9df2db.tar.gz postgresql-8ee2e5f78cd7f99d41ddf2c396d83adb6f9df2db.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.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pgbench/pgbench.c | 9 |
1 files changed, 8 insertions, 1 deletions
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)); } /* |