diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md index 1bdad8d..7b971da 100644 --- a/docs/USER_GUIDE.md +++ b/docs/USER_GUIDE.md @@ -352,41 +352,34 @@ postgres=# SELECT bucket, substr(query,0, 50) AS query, cmd_type FROM pg_stat_mo #### Function Execution Tracking -**`parentid`**: Outer layer caller's query id. +**`top_queryid`**: Outer layer caller's query id. ```sql -postgres=# select prosrc from pg_proc where proname = 'getnum'; - prosrc --------------------------------- - select * from t1 where a >= $1 +CREATE OR REPLACE FUNCTION add(int, int) RETURNS INTEGER AS +$$ +BEGIN + return (select $1 + $2); +END; $$ language plpgsql; + + +CREATE OR REPLACE function add2(int, int) RETURNS int as +$$ +BEGIN + return add($1,$2); +END; +$$ language plpgsql; + +SELECT add2(1,2); + sub +----- + 3 (1 row) -postgresr=# select pg_stat_monitor_reset(); - pg_stat_monitor_reset ------------------------ - -(1 row) - -postgres=# select prosrc from pg_proc where proname = 'getnum'; - prosrc --------------------------------- - select * from t1 where a >= $1 -(1 row) - -postgres=# select * from getnum(2); - a ---- - 2 - 3 - 4 +postgres=# SELECT queryid, top_queryid, query, top_query FROM pg_stat_monitor; + queryid | top_queryid | query | top_query +------------------+------------------+--------------------------------------------------------------------------------------------------------------------+------------------- + 3408CA84B2353094 | | select add2($1,$2) | + 2BAB410CC448CE8D | 3408CA84B2353094 | SELECT add($1,$2) | select add2($1,$2) + 762B99349F6C7F31 | 3408CA84B2353094 | SELECT (select $1 + $2) | select add2($1,$2) (3 rows) - -postgres=# select queryid,parentid,query,calls from pg_stat_monitor; - queryid | parentid | query | calls -------------------+------------------+-----------------------------------------------+------- - 3FEC80684AFE7FC7 | DD2A4843140299C2 | select * from t1 where a >= $1 | 1 - 6ED05FFB78DD52FA | | select pg_stat_monitor_reset() | 1 - DD2A4843140299C2 | | select * from getnum($1) | 1 - 42517D48FB98ACF7 | | select prosrc from pg_proc where proname = $1 | 1 -(4 rows) ``` diff --git a/pg_stat_monitor--1.0.sql b/pg_stat_monitor--1.0.sql index 57e60d8..4ea6fc0 100644 --- a/pg_stat_monitor--1.0.sql +++ b/pg_stat_monitor--1.0.sql @@ -31,7 +31,7 @@ CREATE FUNCTION pg_stat_monitor(IN showtext boolean, OUT client_ip int8, OUT queryid text, - OUT parentid text, + OUT top_queryid text, OUT query text, OUT application_name text, OUT relations text, @@ -126,9 +126,9 @@ CREATE VIEW pg_stat_monitor AS SELECT datname, '0.0.0.0'::inet + client_ip AS client_ip, queryid, - parentid, + top_queryid, query, - (SELECT query from pg_stat_monitor(true) s where s.queryid = p.parentid) AS parent_query, + (SELECT query from pg_stat_monitor(true) s where s.queryid = p.top_queryid) AS top_query, application_name, string_to_array(relations, ',') AS relations, cmd_type,