Track procedure calls in pg_stat_user_functions

This was forgotten when procedures were implemented.

Reported-by: Lukas Fittl <lukas@fittl.com>
This commit is contained in:
Peter Eisentraut 2018-10-05 14:14:03 +02:00
parent c8ed820c68
commit c2055a4a17

View File

@ -60,6 +60,7 @@
#include "parser/parse_expr.h" #include "parser/parse_expr.h"
#include "parser/parse_func.h" #include "parser/parse_func.h"
#include "parser/parse_type.h" #include "parser/parse_type.h"
#include "pgstat.h"
#include "utils/acl.h" #include "utils/acl.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/fmgroids.h" #include "utils/fmgroids.h"
@ -2219,6 +2220,7 @@ ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver
EState *estate; EState *estate;
ExprContext *econtext; ExprContext *econtext;
HeapTuple tp; HeapTuple tp;
PgStat_FunctionCallUsage fcusage;
Datum retval; Datum retval;
fexpr = stmt->funcexpr; fexpr = stmt->funcexpr;
@ -2302,7 +2304,9 @@ ExecuteCallStmt(CallStmt *stmt, ParamListInfo params, bool atomic, DestReceiver
i++; i++;
} }
pgstat_init_function_usage(&fcinfo, &fcusage);
retval = FunctionCallInvoke(&fcinfo); retval = FunctionCallInvoke(&fcinfo);
pgstat_end_function_usage(&fcusage, true);
if (fexpr->funcresulttype == VOIDOID) if (fexpr->funcresulttype == VOIDOID)
{ {