From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Show names of DEALLOCATE as constants in pg_stat_statements |
Date: | 2023-08-27 08:29:27 |
Message-ID: | E1qaB9D-0019AH-Ih@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Show names of DEALLOCATE as constants in pg_stat_statements
This commit switches query jumbling so as prepared statement names are
treated as constants in DeallocateStmt. A boolean field is added to
DeallocateStmt to make a distinction between ALL and named prepared
statements, as "name" was used to make this difference before, NULL
meaning DEALLOCATE ALL.
Prior to this commit, DEALLOCATE was not tracked in pg_stat_statements,
for the reason that it was not possible to treat its name parameter as a
constant. Now that query jumbling applies to all the utility nodes,
this reason does not apply anymore.
Like 638d42a3c520, this can be a huge advantage for monitoring where
prepared statement names are randomly generated, preventing bloat in
pg_stat_statements. A couple of tests are added to track the new
behavior.
Author: Dagfinn Ilmari Mannsåker, Michael Paquier
Reviewed-by: Julien Rouhaud
Discussion: https://postgr.es/m/ZMhT9kNtJJsHw6jK@paquier.xyz
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/bb45156f342c2cdb88cdd7f9efdc4541e910ec86
Modified Files
--------------
contrib/pg_stat_statements/expected/utility.out | 41 +++++++++++++++++++++++++
contrib/pg_stat_statements/pg_stat_statements.c | 8 ++---
contrib/pg_stat_statements/sql/utility.sql | 13 ++++++++
src/backend/parser/gram.y | 8 +++++
src/include/nodes/parsenodes.h | 8 +++--
5 files changed, 70 insertions(+), 8 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2023-08-27 11:24:04 | pgsql: Silence compiler warning in release 11 and 12 branches |
Previous Message | Tom Lane | 2023-08-26 21:41:27 | Re: pgsql: Cache by-reference missing values in a long lived context |