mirror of
https://github.com/postgres/postgres.git
synced 2026-06-11 09:40:25 -04:00
pg_stat_statements: Set PlannedStmt to NULL after nested utility execution
As mentioned in 8268e41aca, pgss_ProcessUtility() may free the
PlannedStmt after an internal ROLLBACK. This commit sets the
PlannedStmt "pstmt" to NULL once it is no longer safe to rely on it,
making bugs similar to the one fixed by the previous commit easier to
detect.
Suggested-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/0A9A8DAC-BC3C-4C7A-9504-2C6050405544@anarazel.de
This commit is contained in:
parent
900c07b854
commit
6636621782
1 changed files with 1 additions and 0 deletions
|
|
@ -1175,6 +1175,7 @@ pgss_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
|
|||
* For the same reason, we can't risk restoring pstmt->queryId to its
|
||||
* former value, which'd otherwise be a good idea.
|
||||
*/
|
||||
pstmt = NULL;
|
||||
|
||||
INSTR_TIME_SET_CURRENT(duration);
|
||||
INSTR_TIME_SUBTRACT(duration, start);
|
||||
|
|
|
|||
Loading…
Reference in a new issue