Re: Procedure calls are not tracked in pg_stat_user_functions /track_functions - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Procedure calls are not tracked in pg_stat_user_functions /track_functions
Date
Msg-id 20181004200715.7cgrxyaxnep3mveu@alap3.anarazel.de
Whole thread Raw
In response to Procedure calls are not tracked in pg_stat_user_functions / track_functions  (Lukas Fittl <lukas@fittl.com>)
Responses Re: Procedure calls are not tracked in pg_stat_user_functions /track_functions  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
Hi,

On 2018-10-04 12:15:28 -0700, Lukas Fittl wrote:
> Hi all,
> 
> It seems that currently procedures do not get tracked when track_functions
> is enabled, which means one needs to resort to other workarounds in order
> to monitor procedure calls/runtime.
> 
> To illustrate:
> 
> =# SHOW track_functions;
> ┌─────────────────┐
> │ track_functions │
> ├─────────────────┤
> │ all             │
> └─────────────────┘
> (1 row)
> 
> =# CALL abc();
> CALL
> 
> =# SELECT def();
> ┌─────┐
> │ def │
> ├─────┤
> │     │
> └─────┘
> (1 row)
> 
> =# SELECT * FROM pg_stat_user_functions;
> ┌─[ RECORD 1 ]────────────────────┐
> │ funcid     │ 75223              │
> │ schemaname │ public             │
> │ funcname   │ def                │
> │ calls      │ 1                  │
> │ total_time │ 3.222              │
> │ self_time  │ 3.222              │
> └────────────┴────────────────────┘
> 
> Was this intentional, or an oversight?
> 
> If welcome, I would be happy to work on a patch. Whilst slightly confusing
> in terms of naming, we could just track this together with functions, since
> one can always join with pg_proc to determine whether something is a
> function or a procedure.

Yea, that sounds wrong / not ideal to me.  I think we should just fix
this, should be easy enough.

- Andres


pgsql-hackers by date:

Previous
From: Pierre Ducroquet
Date:
Subject: Re: Poor plan when using EXISTS in the expression list
Next
From: Tom Lane
Date:
Subject: Re: executor relation handling