mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
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:
parent
cfc5357c08
commit
c02aae4185
@ -201,7 +201,7 @@ typedef struct
|
|||||||
int state; /* state No. */
|
int state; /* state No. */
|
||||||
int cnt; /* xacts count */
|
int cnt; /* xacts count */
|
||||||
int ecnt; /* error 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 */
|
* sent */
|
||||||
int sleeping; /* 1 indicates that the client is napping */
|
int sleeping; /* 1 indicates that the client is napping */
|
||||||
int64 until; /* napping until (usec) */
|
int64 until; /* napping until (usec) */
|
||||||
@ -1115,6 +1115,11 @@ top:
|
|||||||
}
|
}
|
||||||
INSTR_TIME_SET_CURRENT(end);
|
INSTR_TIME_SET_CURRENT(end);
|
||||||
INSTR_TIME_ACCUM_DIFF(*conn_time, end, start);
|
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 */
|
/* Record transaction start time if logging is enabled */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user