mirror of
https://github.com/percona/pg_stat_monitor.git
synced 2026-02-04 14:06:20 +00:00
PG-267 Add testcase to test histogram.
This commit adds following three sql based testcases: 1) Test unique application name set by user. 2) Histogram function is working properly as desired. 3) Error on insert is shown with proper message.
This commit is contained in:
committed by
Hamid Akhtar
parent
0573be4090
commit
5aa6764041
9
regression/sql/application_name_unique.sql
Normal file
9
regression/sql/application_name_unique.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
Create EXTENSION pg_stat_monitor;
|
||||
SELECT pg_stat_monitor_reset();
|
||||
Set application_name = 'naeem' ;
|
||||
SELECT 1 AS num;
|
||||
Set application_name = 'psql' ;
|
||||
SELECT 1 AS num;
|
||||
SELECT query,application_name FROM pg_stat_monitor ORDER BY query, application_name COLLATE "C";
|
||||
SELECT pg_stat_monitor_reset();
|
||||
DROP EXTENSION pg_stat_monitor;
|
||||
17
regression/sql/error_insert.sql
Normal file
17
regression/sql/error_insert.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
Drop Table if exists Company;
|
||||
|
||||
CREATE TABLE Company(
|
||||
ID INT PRIMARY KEY NOT NULL,
|
||||
NAME TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE EXTENSION pg_stat_monitor;
|
||||
SELECT pg_stat_monitor_reset();
|
||||
INSERT INTO Company(ID, Name) VALUES (1, 'Percona');
|
||||
INSERT INTO Company(ID, Name) VALUES (1, 'Percona');
|
||||
|
||||
Drop Table if exists Company;
|
||||
SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel;
|
||||
SELECT pg_stat_monitor_reset();
|
||||
DROP EXTENSION pg_stat_monitor;
|
||||
@@ -1,28 +1,39 @@
|
||||
CREATE OR REPLACE FUNCTION generate_histogram()
|
||||
RETURNS TABLE (
|
||||
range TEXT, freq INT, bar TEXT
|
||||
) AS $$
|
||||
Declare
|
||||
bucket_id integer;
|
||||
query_id text;
|
||||
BEGIN
|
||||
select bucket into bucket_id from pg_stat_monitor order by calls desc limit 1;
|
||||
select queryid into query_id from pg_stat_monitor order by calls desc limit 1;
|
||||
--RAISE INFO 'bucket_id %', bucket_id;
|
||||
--RAISE INFO 'query_id %', query_id;
|
||||
return query
|
||||
SELECT * FROM histogram(bucket_id, query_id) AS a(range TEXT, freq INT, bar TEXT);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE OR REPLACE FUNCTION run_pg_sleep(INTEGER) RETURNS VOID AS $$
|
||||
DECLARE
|
||||
loops ALIAS FOR $1;
|
||||
BEGIN
|
||||
FOR i IN 1..loops LOOP
|
||||
--RAISE INFO 'Current timestamp: %', timeofday()::TIMESTAMP;
|
||||
RAISE INFO 'Sleep % seconds', i;
|
||||
PERFORM pg_sleep(i);
|
||||
END LOOP;
|
||||
END;
|
||||
$$ LANGUAGE 'plpgsql' STRICT;
|
||||
|
||||
CREATE EXTENSION pg_stat_monitor;
|
||||
|
||||
CREATE TABLE t1(a int);
|
||||
|
||||
SELECT pg_stat_monitor_reset();
|
||||
Set pg_stat_monitor.track='all';
|
||||
select run_pg_sleep(5);
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,10));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;
|
||||
SELECT substr(query, 0,50) as query, calls, resp_calls FROM pg_stat_monitor ORDER BY query COLLATE "C";
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,10000));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;;
|
||||
select * from generate_histogram();
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,1000000));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,10000000));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;
|
||||
|
||||
SELECT query, calls, min_time, max_time, resp_calls FROM pg_stat_monitor ORDER BY query COLLATE "C";
|
||||
SELECT * FROM histogram(0, 'F44CD1B4B33A47AF') AS a(range TEXT, freq INT, bar TEXT);
|
||||
|
||||
DROP TABLE t1;
|
||||
SELECT pg_stat_monitor_reset();
|
||||
DROP EXTENSION pg_stat_monitor;
|
||||
|
||||
Reference in New Issue
Block a user