pgsql: Show parameters of CALL as constants in pg_stat_statements

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема pgsql: Show parameters of CALL as constants in pg_stat_statements
Дата
Msg-id E1qlkLy-006PUl-9S@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Show parameters of CALL as constants in pg_stat_statements

This commit changes the query jumbling of CallStmt so as its IN/OUT
parameters are able to show up as constants with a parameter symbol in
pg_stat_statements, like:
CALL proc1($1, $2);
CALL proc2($1, $2, $3);

The transformed FuncExpr is used in the query ID computation instead of
the FuncCall generated by the parser, so as it is sensitive to the OID
of the procedure and its list of input arguments.  The output arguments
are handled in a separate list in CallStmt, which is also included in
the computation.

Tests are added to pg_stat_statements to show how this affects CALL with
IN/OUT parameters as well as overloaded functions.

Like 638d42a3c520 or 31de7e60da34, this improves the monitoring of
workloads with a lot of CALL statements, preventing unnecessary bloat
when these use different input (or event output) values.

Author: Sami Imseih
Discussion: https://postgr.es/m/B44FA29D-EBD0-4DD9-ABC2-16F1CB087074@amazon.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/11c34b342bd77a292b625c32b70b44c02db8f3ed

Modified Files
--------------
contrib/pg_stat_statements/expected/utility.out | 46 ++++++++++++++++++++++---
contrib/pg_stat_statements/sql/utility.sql      | 25 ++++++++++++++
src/include/nodes/parsenodes.h                  |  7 ++--
3 files changed, 70 insertions(+), 8 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: pgsql: Remove obsolete executor cleanup code
Следующее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: pg_resetwal: Update an obsolete comment