Track procedure calls in pg_stat_user_functions
authorPeter Eisentraut
Fri, 5 Oct 2018 12:14:03 +0000 (14:14 +0200)
committerPeter Eisentraut
Mon, 8 Oct 2018 09:23:07 +0000 (11:23 +0200)
This was forgotten when procedures were implemented.

Reported-by: Lukas Fittl
src/backend/commands/functioncmds.c

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