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.
This commit is contained in:
Tom Lane 2016-03-16 23:18:08 -04:00
parent 0c94970c93
commit 1965a8ce1d
1 changed files with 6 additions and 1 deletions

View File

@ -170,7 +170,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 */
int64 until; /* napping until (usec) */
@ -910,6 +910,11 @@ top:
}
INSTR_TIME_SET_CURRENT(end);
INSTR_TIME_ACCUM_DIFF(*conn_time, end, start);
/* Reset session-local state */
st->listen = 0;
st->sleeping = 0;
memset(st->prepared, 0, sizeof(st->prepared));
}
/* Record transaction start time if logging is enabled */