38 lines
760 B
PL/PgSQL
38 lines
760 B
PL/PgSQL
CREATE EXTENSION pg_stat_monitor;
|
|
SET pg_stat_monitor.pgsm_track='all';
|
|
SELECT pg_stat_monitor_reset();
|
|
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 INTEGER AS
|
|
$$
|
|
BEGIN
|
|
return add($1,$2);
|
|
END;
|
|
$$ language plpgsql;
|
|
|
|
SELECT add2(1,2);
|
|
SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C";
|
|
|
|
-- make sure that we handle nested queries correctly
|
|
|
|
BEGIN;
|
|
DO $$
|
|
DECLARE
|
|
i int;
|
|
BEGIN
|
|
-- default stack limit is 2000kB, 50000 is much larger than that
|
|
FOR i IN 1..50000 LOOP
|
|
EXECUTE format('SELECT %s', i);
|
|
END LOOP;
|
|
END;
|
|
$$;
|
|
|
|
COMMIT;
|
|
|
|
SELECT pg_stat_monitor_reset();
|
|
DROP EXTENSION pg_stat_monitor;
|