diff --git a/Makefile b/Makefile index 9d45108..0063c2d 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ PGFILEDESC = "pg_stat_monitor - execution statistics of SQL statements" LDFLAGS_SL += $(filter -lm, $(LIBS)) REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_monitor/pg_stat_monitor.conf --inputdir=regression -REGRESS = basic version guc counters relations database top_query application_name cmd_type error state rows tags +REGRESS = basic version guc counters relations database top_query application_name cmd_type error rows tags # Disabled because these tests require "shared_preload_libraries=pg_stat_statements", # which typical installcheck users do not have (e.g. buildfarm clients). diff --git a/hash_query.c b/hash_query.c index 888c111..9030179 100644 --- a/hash_query.c +++ b/hash_query.c @@ -199,7 +199,7 @@ hash_entry_dealloc(int new_bucket_id, int old_bucket_id, unsigned char *query_bu */ if (new_bucket_id < 0 || (entry->key.bucket_id == new_bucket_id && - (entry->counters.state == PGSS_FINISHED || entry->counters.state == PGSS_ERROR))) + entry->counters.state == PGSS_FINISHED)) { if (new_bucket_id == -1) { /* pg_stat_monitor_reset(), remove entry from query hash table too. */ @@ -219,8 +219,7 @@ hash_entry_dealloc(int new_bucket_id, int old_bucket_id, unsigned char *query_bu if (old_bucket_id != -1 && entry->key.bucket_id == old_bucket_id) { if (entry->counters.state == PGSS_PARSE || - entry->counters.state == PGSS_PLAN || - entry->counters.state == PGSS_EXEC) + entry->counters.state == PGSS_PLAN) { pgssEntry *bkp_entry = malloc(sizeof(pgssEntry)); if (!bkp_entry) diff --git a/pg_stat_monitor--1.0.13.sql.in b/pg_stat_monitor--1.0.13.sql.in index 9097691..11a0327 100644 --- a/pg_stat_monitor--1.0.13.sql.in +++ b/pg_stat_monitor--1.0.13.sql.in @@ -34,7 +34,6 @@ CREATE FUNCTION pg_stat_monitor_internal(IN showtext boolean, OUT planid text, OUT query text, OUT query_plan text, - OUT state_code int8, OUT top_queryid text, OUT top_query text, OUT application_name text, @@ -89,19 +88,6 @@ RETURNS SETOF record AS 'MODULE_PATHNAME', 'pg_stat_monitor' LANGUAGE C STRICT VOLATILE PARALLEL SAFE; -CREATE OR REPLACE FUNCTION get_state(state_code int8) RETURNS TEXT AS -$$ -SELECT - CASE - WHEN state_code = 0 THEN 'PARSING' - WHEN state_code = 1 THEN 'PLANNING' - WHEN state_code = 2 THEN 'ACTIVE' - WHEN state_code = 3 THEN 'FINISHED' - WHEN state_code = 4 THEN 'FINISHED WITH ERROR' - END -$$ -LANGUAGE SQL PARALLEL SAFE; - CREATE or REPLACE FUNCTION get_cmd_type (cmd_type INTEGER) RETURNS TEXT AS $$ SELECT @@ -197,9 +183,7 @@ CREATE VIEW pg_stat_monitor AS SELECT cpu_sys_time, wal_records, wal_fpi, - wal_bytes, - state_code, - get_state(state_code) as state + wal_bytes FROM pg_stat_monitor_internal(TRUE) p, pg_database d WHERE dbid = oid ORDER BY bucket_start_time; diff --git a/pg_stat_monitor--1.0.14.sql.in b/pg_stat_monitor--1.0.14.sql.in index 37cc06b..3c7c30e 100644 --- a/pg_stat_monitor--1.0.14.sql.in +++ b/pg_stat_monitor--1.0.14.sql.in @@ -34,7 +34,6 @@ CREATE FUNCTION pg_stat_monitor_internal(IN showtext boolean, OUT planid text, OUT query text, OUT query_plan text, - OUT state_code int8, OUT top_queryid text, OUT top_query text, OUT application_name text, @@ -89,19 +88,6 @@ RETURNS SETOF record AS 'MODULE_PATHNAME', 'pg_stat_monitor' LANGUAGE C STRICT VOLATILE PARALLEL SAFE; -CREATE OR REPLACE FUNCTION get_state(state_code int8) RETURNS TEXT AS -$$ -SELECT - CASE - WHEN state_code = 0 THEN 'PARSING' - WHEN state_code = 1 THEN 'PLANNING' - WHEN state_code = 2 THEN 'ACTIVE' - WHEN state_code = 3 THEN 'FINISHED' - WHEN state_code = 4 THEN 'FINISHED WITH ERROR' - END -$$ -LANGUAGE SQL PARALLEL SAFE; - CREATE or REPLACE FUNCTION get_cmd_type (cmd_type INTEGER) RETURNS TEXT AS $$ SELECT @@ -198,9 +184,7 @@ CREATE VIEW pg_stat_monitor AS SELECT cpu_sys_time, wal_records, wal_fpi, - wal_bytes, - state_code, - get_state(state_code) as state + wal_bytes FROM pg_stat_monitor_internal(TRUE) p, pg_database d WHERE dbid = oid ORDER BY bucket_start_time; diff --git a/pg_stat_monitor--1.0.sql.in b/pg_stat_monitor--1.0.sql.in index dac31bf..f2ad8f9 100644 --- a/pg_stat_monitor--1.0.sql.in +++ b/pg_stat_monitor--1.0.sql.in @@ -34,7 +34,6 @@ CREATE FUNCTION pg_stat_monitor_internal(IN showtext boolean, OUT planid text, OUT query text, OUT query_plan text, - OUT state_code int8, OUT top_queryid text, OUT top_query text, OUT application_name text, @@ -86,19 +85,6 @@ RETURNS SETOF record AS 'MODULE_PATHNAME', 'pg_stat_monitor' LANGUAGE C STRICT VOLATILE PARALLEL SAFE; -CREATE OR REPLACE FUNCTION get_state(state_code int8) RETURNS TEXT AS -$$ -SELECT - CASE - WHEN state_code = 0 THEN 'PARSING' - WHEN state_code = 1 THEN 'PLANNING' - WHEN state_code = 2 THEN 'ACTIVE' - WHEN state_code = 3 THEN 'FINISHED' - WHEN state_code = 4 THEN 'FINISHED WITH ERROR' - END -$$ -LANGUAGE SQL PARALLEL SAFE; - CREATE or REPLACE FUNCTION get_cmd_type (cmd_type INTEGER) RETURNS TEXT AS $$ SELECT @@ -184,9 +170,7 @@ CREATE VIEW pg_stat_monitor AS SELECT cpu_sys_time, wal_records, wal_fpi, - wal_bytes, - state_code, - get_state(state_code) as state + wal_bytes FROM pg_stat_monitor_internal(TRUE) p, pg_database d WHERE dbid = oid ORDER BY bucket_start_time; diff --git a/pg_stat_monitor.c b/pg_stat_monitor.c index 67462f3..41cba90 100644 --- a/pg_stat_monitor.c +++ b/pg_stat_monitor.c @@ -523,20 +523,6 @@ pgss_ExecutorStart(QueryDesc *queryDesc, int eflags) #endif MemoryContextSwitchTo(oldcxt); } - pgss_store(queryDesc->plannedstmt->queryId, /* query id */ - queryDesc->sourceText, /* query text */ - queryDesc->plannedstmt->stmt_location, /* query location */ - queryDesc->plannedstmt->stmt_len, /* query length */ - NULL, /* PlanInfo */ - queryDesc->operation, /* CmdType */ - NULL, /* SysInfo */ - NULL, /* ErrorInfo */ - 0, /* totaltime */ - 0, /* rows */ - NULL, /* bufusage */ - NULL, /* walusage */ - NULL, /* JumbleState */ - PGSS_EXEC); /* pgssStoreKind */ } } @@ -1410,7 +1396,7 @@ pgss_store_error(uint64 queryid, NULL, /* bufusage */ NULL, /* walusage */ NULL, /* JumbleState */ - PGSS_ERROR); /* pgssStoreKind */ + PGSS_FINISHED); /* pgssStoreKind */ } /* @@ -1490,7 +1476,7 @@ pgss_store(uint64 queryid, #endif Assert(query != NULL); - if (kind == PGSS_ERROR) + if (error_info != NULL) { int sec_ctx; GetUserIdAndSecContext((Oid *)&userid, &sec_ctx); @@ -1746,8 +1732,11 @@ pg_stat_monitor_internal(FunctionCallInfo fcinfo, return; } - if (tupdesc->natts != 51) - elog(ERROR, "pg_stat_monitor: incorrect number of output arguments, required %d", tupdesc->natts); + if (tupdesc->natts != 50) + { + pgsm_log_error("pg_stat_monitor_internal: incorrect number of output arguments, required: 50, found %d", tupdesc->natts); + return; + } tupstore = tuplestore_begin_heap(true, false, work_mem); rsinfo->returnMode = SFRM_Materialize; @@ -1818,7 +1807,7 @@ pg_stat_monitor_internal(FunctionCallInfo fcinfo, } /* Skip queries such as, $1, $2 := $3, etc. */ - if (tmp.state == PGSS_PARSE || tmp.state == PGSS_PLAN) + if (tmp.state != PGSS_PLAN && tmp.state != PGSS_FINISHED) continue; if (tmp.info.parentid != UINT64CONST(0)) @@ -1904,10 +1893,6 @@ pg_stat_monitor_internal(FunctionCallInfo fcinfo, values[i++] = CStringGetTextDatum(""); } - - /* state at column number 8 */ - values[i++] = Int64GetDatumFast(tmp.state); - /* parentid at column number 9 */ if (tmp.info.parentid != UINT64CONST(0)) { diff --git a/pg_stat_monitor.h b/pg_stat_monitor.h index 8cb78f9..831cc80 100644 --- a/pg_stat_monitor.h +++ b/pg_stat_monitor.h @@ -137,16 +137,9 @@ typedef enum pgssStoreKind { PGSS_INVALID = -1, - /* - * PGSS_PLAN and PGSS_EXEC must be respectively 0 and 1 as they're used to - * reference the underlying values in the arrays in the Counters struct, - * and this order is required in pg_stat_statements_internal(). - */ PGSS_PARSE = 0, PGSS_PLAN, - PGSS_EXEC, PGSS_FINISHED, - PGSS_ERROR, PGSS_NUMKIND /* Must be last value of this enum */ } pgssStoreKind; diff --git a/regression/expected/application_name.out b/regression/expected/application_name.out index e200c18..a478d97 100644 --- a/regression/expected/application_name.out +++ b/regression/expected/application_name.out @@ -12,12 +12,11 @@ SELECT 1 AS num; (1 row) SELECT query,application_name FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | application_name --------------------------------------------------------------------------------+----------------------------- - SELECT $1 AS num | pg_regress/application_name - SELECT pg_stat_monitor_reset() | pg_regress/application_name - SELECT query,application_name FROM pg_stat_monitor ORDER BY query COLLATE "C" | pg_regress/application_name -(3 rows) + query | application_name +--------------------------------+----------------------------- + SELECT $1 AS num | pg_regress/application_name + SELECT pg_stat_monitor_reset() | pg_regress/application_name +(2 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/basic.out b/regression/expected/basic.out index adea370..fc8c576 100644 --- a/regression/expected/basic.out +++ b/regression/expected/basic.out @@ -12,12 +12,11 @@ SELECT 1 AS num; (1 row) SELECT query FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query --------------------------------------------------------------- + query +-------------------------------- SELECT $1 AS num SELECT pg_stat_monitor_reset() - SELECT query FROM pg_stat_monitor ORDER BY query COLLATE "C" -(3 rows) +(2 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/cmd_type.out b/regression/expected/cmd_type.out index d5dceeb..d23d666 100644 --- a/regression/expected/cmd_type.out +++ b/regression/expected/cmd_type.out @@ -25,21 +25,20 @@ TRUNCATE t1; DROP TABLE t1; DROP TABLE t2; SELECT query, cmd_type, cmd_type_text FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | cmd_type | cmd_type_text -----------------------------------------------------------------------------------------+----------+--------------- - CREATE TABLE t1 (a INTEGER) | 0 | - CREATE TABLE t2 (b INTEGER) | 0 | - DELETE FROM t1 | 4 | DELETE - DROP TABLE t1 | 0 | - DROP TABLE t2 | 0 | - INSERT INTO t1 VALUES($1) | 3 | INSERT - SELECT a FROM t1 | 1 | SELECT - SELECT b FROM t2 FOR UPDATE | 1 | SELECT - SELECT pg_stat_monitor_reset() | 1 | SELECT - SELECT query, cmd_type, cmd_type_text FROM pg_stat_monitor ORDER BY query COLLATE "C" | 1 | SELECT - TRUNCATE t1 | 0 | - UPDATE t1 SET a = $1 | 2 | UPDATE -(12 rows) + query | cmd_type | cmd_type_text +--------------------------------+----------+--------------- + CREATE TABLE t1 (a INTEGER) | 0 | + CREATE TABLE t2 (b INTEGER) | 0 | + DELETE FROM t1 | 4 | DELETE + DROP TABLE t1 | 0 | + DROP TABLE t2 | 0 | + INSERT INTO t1 VALUES($1) | 3 | INSERT + SELECT a FROM t1 | 1 | SELECT + SELECT b FROM t2 FOR UPDATE | 1 | SELECT + SELECT pg_stat_monitor_reset() | 1 | SELECT + TRUNCATE t1 | 0 | + UPDATE t1 SET a = $1 | 2 | UPDATE +(11 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/counters.out b/regression/expected/counters.out index 40fed48..744db3f 100644 --- a/regression/expected/counters.out +++ b/regression/expected/counters.out @@ -40,8 +40,7 @@ SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; ---------------------------------------------------------------------------------+------- SELECT a,b,c,d FROM t1, t2, t3, t4 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a | 4 SELECT pg_stat_monitor_reset() | 1 - SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C" | 1 -(3 rows) +(2 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset @@ -70,7 +69,6 @@ SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; ---------------------------------------------------------------------------------------------------+------- SELECT a,b,c,d FROM t1, t2, t3, t4 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a | 1000 SELECT pg_stat_monitor_reset() | 1 - SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C" | 1 do $$ +| 1 declare +| n integer:= 1; +| @@ -81,7 +79,7 @@ SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; n := n + 1; +| end loop; +| end $$ | -(4 rows) +(3 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/database.out b/regression/expected/database.out index 12c5055..7062272 100644 --- a/regression/expected/database.out +++ b/regression/expected/database.out @@ -28,13 +28,12 @@ SELECT * FROM t3,t4 WHERE t3.c = t4.d; \c contrib_regression SELECT datname, query FROM pg_stat_monitor ORDER BY query COLLATE "C"; - datname | query ---------------------+----------------------------------------------------------------------- + datname | query +--------------------+--------------------------------------- db1 | SELECT * FROM t1,t2 WHERE t1.a = t2.b db2 | SELECT * FROM t3,t4 WHERE t3.c = t4.d - contrib_regression | SELECT datname, query FROM pg_stat_monitor ORDER BY query COLLATE "C" contrib_regression | SELECT pg_stat_monitor_reset() -(4 rows) +(3 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/error.out b/regression/expected/error.out index 2e3d8fa..74fb6cc 100644 --- a/regression/expected/error.out +++ b/regression/expected/error.out @@ -21,22 +21,21 @@ RAISE WARNING 'warning message'; END $$; WARNING: warning message SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel; - query | elevel | sqlcode | message ------------------------------------------------------------------------------------------------+--------+---------+----------------------------------- - ELECET * FROM unknown; | 20 | 42601 | syntax error at or near "ELECET" - SELECT * FROM unknown; | 20 | 42P01 | relation "unknown" does not exist - SELECT 1/0; | 20 | 22012 | division by zero - SELECT pg_stat_monitor_reset() | 0 | | - SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel | 0 | | - do $$ +| 0 | | - BEGIN +| | | - RAISE WARNING 'warning message'; +| | | - END $$ | | | - do $$ +| 19 | 01000 | warning message - BEGIN +| | | - RAISE WARNING 'warning message'; +| | | - END $$; | | | -(7 rows) + query | elevel | sqlcode | message +----------------------------------+--------+---------+----------------------------------- + ELECET * FROM unknown; | 20 | 42601 | syntax error at or near "ELECET" + SELECT * FROM unknown; | 20 | 42P01 | relation "unknown" does not exist + SELECT 1/0; | 20 | 22012 | division by zero + SELECT pg_stat_monitor_reset() | 0 | | + do $$ +| 0 | | + BEGIN +| | | + RAISE WARNING 'warning message';+| | | + END $$ | | | + do $$ +| 19 | 01000 | warning message + BEGIN +| | | + RAISE WARNING 'warning message';+| | | + END $$; | | | +(6 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/error_1.out b/regression/expected/error_1.out index 7a61786..3d74fd0 100644 --- a/regression/expected/error_1.out +++ b/regression/expected/error_1.out @@ -21,22 +21,21 @@ RAISE WARNING 'warning message'; END $$; WARNING: warning message SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel; - query | elevel | sqlcode | message ------------------------------------------------------------------------------------------------+--------+---------+----------------------------------- - ELECET * FROM unknown; | 21 | 42601 | syntax error at or near "ELECET" - SELECT * FROM unknown; | 21 | 42P01 | relation "unknown" does not exist - SELECT 1/0; | 21 | 22012 | division by zero - SELECT pg_stat_monitor_reset() | 0 | | - SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel | 0 | | - do $$ +| 0 | | - BEGIN +| | | - RAISE WARNING 'warning message'; +| | | - END $$ | | | - do $$ +| 19 | 01000 | warning message - BEGIN +| | | - RAISE WARNING 'warning message'; +| | | - END $$; | | | -(7 rows) + query | elevel | sqlcode | message +----------------------------------+--------+---------+----------------------------------- + ELECET * FROM unknown; | 21 | 42601 | syntax error at or near "ELECET" + SELECT * FROM unknown; | 21 | 42P01 | relation "unknown" does not exist + SELECT 1/0; | 21 | 22012 | division by zero + SELECT pg_stat_monitor_reset() | 0 | | + do $$ +| 0 | | + BEGIN +| | | + RAISE WARNING 'warning message';+| | | + END $$ | | | + do $$ +| 19 | 01000 | warning message + BEGIN +| | | + RAISE WARNING 'warning message';+| | | + END $$; | | | +(6 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/relations.out b/regression/expected/relations.out index 6c17a47..442f3ea 100644 --- a/regression/expected/relations.out +++ b/regression/expected/relations.out @@ -37,15 +37,14 @@ SELECT * FROM foo1, foo2, foo3, foo4; (0 rows) SELECT query, relations from pg_stat_monitor ORDER BY query collate "C"; - query | relations --------------------------------------------------------------------------+--------------------------------------------------- - SELECT * FROM foo1 | {public.foo1} - SELECT * FROM foo1, foo2 | {public.foo1,public.foo2} - SELECT * FROM foo1, foo2, foo3 | {public.foo1,public.foo2,public.foo3} - SELECT * FROM foo1, foo2, foo3, foo4 | {public.foo1,public.foo2,public.foo3,public.foo4} - SELECT pg_stat_monitor_reset() | - SELECT query, relations from pg_stat_monitor ORDER BY query collate "C" | {public.pg_stat_monitor*,pg_catalog.pg_database} -(6 rows) + query | relations +--------------------------------------+--------------------------------------------------- + SELECT * FROM foo1 | {public.foo1} + SELECT * FROM foo1, foo2 | {public.foo1,public.foo2} + SELECT * FROM foo1, foo2, foo3 | {public.foo1,public.foo2,public.foo3} + SELECT * FROM foo1, foo2, foo3, foo4 | {public.foo1,public.foo2,public.foo3,public.foo4} + SELECT pg_stat_monitor_reset() | +(5 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset @@ -89,15 +88,14 @@ SELECT * FROM sch1.foo1, sch2.foo2, sch3.foo3, sch4.foo4; (0 rows) SELECT query, relations from pg_stat_monitor ORDER BY query collate "C"; - query | relations --------------------------------------------------------------------------+-------------------------------------------------- - SELECT * FROM sch1.foo1 | {sch1.foo1} - SELECT * FROM sch1.foo1, sch2.foo2 | {sch1.foo1,sch2.foo2} - SELECT * FROM sch1.foo1, sch2.foo2, sch3.foo3 | {sch1.foo1,sch2.foo2,sch3.foo3} - SELECT * FROM sch1.foo1, sch2.foo2, sch3.foo3, sch4.foo4 | {sch1.foo1,sch2.foo2,sch3.foo3,sch4.foo4} - SELECT pg_stat_monitor_reset() | - SELECT query, relations from pg_stat_monitor ORDER BY query collate "C" | {public.pg_stat_monitor*,pg_catalog.pg_database} -(6 rows) + query | relations +----------------------------------------------------------+------------------------------------------- + SELECT * FROM sch1.foo1 | {sch1.foo1} + SELECT * FROM sch1.foo1, sch2.foo2 | {sch1.foo1,sch2.foo2} + SELECT * FROM sch1.foo1, sch2.foo2, sch3.foo3 | {sch1.foo1,sch2.foo2,sch3.foo3} + SELECT * FROM sch1.foo1, sch2.foo2, sch3.foo3, sch4.foo4 | {sch1.foo1,sch2.foo2,sch3.foo3,sch4.foo4} + SELECT pg_stat_monitor_reset() | +(5 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset @@ -122,13 +120,12 @@ SELECT * FROM sch1.foo1, sch2.foo2, foo1, foo2; (0 rows) SELECT query, relations from pg_stat_monitor ORDER BY query; - query | relations --------------------------------------------------------------+-------------------------------------------------- - SELECT * FROM sch1.foo1, foo1 | {sch1.foo1,public.foo1} - SELECT * FROM sch1.foo1, sch2.foo2, foo1, foo2 | {sch1.foo1,sch2.foo2,public.foo1,public.foo2} - SELECT pg_stat_monitor_reset() | - SELECT query, relations from pg_stat_monitor ORDER BY query | {public.pg_stat_monitor*,pg_catalog.pg_database} -(4 rows) + query | relations +------------------------------------------------+----------------------------------------------- + SELECT * FROM sch1.foo1, foo1 | {sch1.foo1,public.foo1} + SELECT * FROM sch1.foo1, sch2.foo2, foo1, foo2 | {sch1.foo1,sch2.foo2,public.foo1,public.foo2} + SELECT pg_stat_monitor_reset() | +(3 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset @@ -168,15 +165,14 @@ SELECT * FROM v1,v2,v3,v4; (0 rows) SELECT query, relations from pg_stat_monitor ORDER BY query collate "C"; - query | relations --------------------------------------------------------------------------+----------------------------------------------------------------------------------------------- - SELECT * FROM v1 | {public.v1*,public.foo1} - SELECT * FROM v1,v2 | {public.v1*,public.foo1,public.v2*,public.foo2} - SELECT * FROM v1,v2,v3 | {public.v1*,public.foo1,public.v2*,public.foo2,public.v3*,public.foo3} - SELECT * FROM v1,v2,v3,v4 | {public.v1*,public.foo1,public.v2*,public.foo2,public.v3*,public.foo3,public.v4*,public.foo4} - SELECT pg_stat_monitor_reset() | - SELECT query, relations from pg_stat_monitor ORDER BY query collate "C" | {public.pg_stat_monitor*,pg_catalog.pg_database} -(6 rows) + query | relations +--------------------------------+----------------------------------------------------------------------------------------------- + SELECT * FROM v1 | {public.v1*,public.foo1} + SELECT * FROM v1,v2 | {public.v1*,public.foo1,public.v2*,public.foo2} + SELECT * FROM v1,v2,v3 | {public.v1*,public.foo1,public.v2*,public.foo2,public.v3*,public.foo3} + SELECT * FROM v1,v2,v3,v4 | {public.v1*,public.foo1,public.v2*,public.foo2,public.v3*,public.foo3,public.v4*,public.foo4} + SELECT pg_stat_monitor_reset() | +(5 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/rows.out b/regression/expected/rows.out index fe4cb94..177d522 100644 --- a/regression/expected/rows.out +++ b/regression/expected/rows.out @@ -8540,15 +8540,14 @@ SELECt * FROM t2 WHERE b % 2 = 0; (2500 rows) SELECT query, rows_retrieved FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | rows_retrieved -------------------------------------------------------------------------------+---------------- - SELECT * FROM t1 | 1000 - SELECT * FROM t1 LIMIT $1 | 10 - SELECT * FROM t2 | 5000 - SELECT pg_stat_monitor_reset() | 1 - SELECT query, rows_retrieved FROM pg_stat_monitor ORDER BY query COLLATE "C" | 0 - SELECt * FROM t2 WHERE b % $1 = $2 | 2500 -(6 rows) + query | rows_retrieved +-------------------------------------+---------------- + SELECT * FROM t1 | 1000 + SELECT * FROM t1 LIMIT $1 | 10 + SELECT * FROM t2 | 5000 + SELECT pg_stat_monitor_reset() | 1 + SELECt * FROM t2 WHERE b % $1 = $2 | 2500 +(5 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/expected/state.out b/regression/expected/state.out deleted file mode 100644 index bac22d1..0000000 --- a/regression/expected/state.out +++ /dev/null @@ -1,31 +0,0 @@ -CREATE EXTENSION pg_stat_monitor; -SELECT pg_stat_monitor_reset(); - pg_stat_monitor_reset ------------------------ - -(1 row) - -SELECT 1; - ?column? ----------- - 1 -(1 row) - -SELECT 1/0; -- divide by zero -ERROR: division by zero -SELECT query, state_code, state FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | state_code | state ----------------------------------------------------------------------------------+------------+--------------------- - SELECT $1 | 3 | FINISHED - SELECT 1/0; | 4 | FINISHED WITH ERROR - SELECT pg_stat_monitor_reset() | 3 | FINISHED - SELECT query, state_code, state FROM pg_stat_monitor ORDER BY query COLLATE "C" | 2 | ACTIVE -(4 rows) - -SELECT pg_stat_monitor_reset(); - pg_stat_monitor_reset ------------------------ - -(1 row) - -DROP EXTENSION pg_stat_monitor; diff --git a/regression/expected/tags.out b/regression/expected/tags.out index 8ca4ccf..d143500 100644 --- a/regression/expected/tags.out +++ b/regression/expected/tags.out @@ -16,8 +16,7 @@ SELECT query, comments FROM pg_stat_monitor ORDER BY query COLLATE "C"; ---------------------------------------------------------------------------+---------- SELECT $1 AS num /* { "application", psql_app, "real_ip", 192.168.1.3) */ | SELECT pg_stat_monitor_reset() | - SELECT query, comments FROM pg_stat_monitor ORDER BY query COLLATE "C" | -(3 rows) +(2 rows) ALTER SYSTEM SET pg_stat_monitor.extract_comments TO 'yes'; SELECT pg_reload_conf(); @@ -49,8 +48,7 @@ SELECT query, comments FROM pg_stat_monitor ORDER BY query COLLATE "C"; ---------------------------------------------------------------------------+---------------------------------------------------------- SELECT $1 AS num /* { "application", psql_app, "real_ip", 192.168.1.3) */ | /* { "application", psql_app, "real_ip", 192.168.1.3) */ SELECT pg_stat_monitor_reset() | - SELECT query, comments FROM pg_stat_monitor ORDER BY query COLLATE "C" | -(3 rows) +(2 rows) ALTER SYSTEM SET pg_stat_monitor.extract_comments TO 'no'; SELECT pg_reload_conf(); diff --git a/regression/expected/top_query.out b/regression/expected/top_query.out index 6b118ff..e888c62 100644 --- a/regression/expected/top_query.out +++ b/regression/expected/top_query.out @@ -23,23 +23,22 @@ SELECT add2(1,2); (1 row) SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | top_query --------------------------------------------------------------------------+----------- - 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) | - SELECT pg_stat_monitor_reset() | - SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C" | -(5 rows) + query | top_query +-------------------------------------------------------------+----------- + 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) | + SELECT pg_stat_monitor_reset() | +(4 rows) ALTER SYSTEM SET pg_stat_monitor.track TO 'all'; SELECT pg_reload_conf(); @@ -78,24 +77,23 @@ SELECT add2(1,2); (1 row) SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | top_query --------------------------------------------------------------------------+-------------------- - 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 (select $1 + $2) | SELECT add2($1,$2) - SELECT add2($1,$2) | - SELECT pg_stat_monitor_reset() | - SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C" | -(6 rows) + query | top_query +-------------------------------------------------------------+-------------------- + 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 (select $1 + $2) | SELECT add2($1,$2) + SELECT add2($1,$2) | + SELECT pg_stat_monitor_reset() | +(5 rows) ALTER SYSTEM SET pg_stat_monitor.track TO 'top'; SELECT pg_reload_conf(); diff --git a/regression/expected/top_query_1.out b/regression/expected/top_query_1.out index a98455b..ed89916 100644 --- a/regression/expected/top_query_1.out +++ b/regression/expected/top_query_1.out @@ -23,23 +23,22 @@ SELECT add2(1,2); (1 row) SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | top_query --------------------------------------------------------------------------+----------- - 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) | - SELECT pg_stat_monitor_reset() | - SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C" | -(5 rows) + query | top_query +-------------------------------------------------------------+----------- + 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) | + SELECT pg_stat_monitor_reset() | +(4 rows) ALTER SYSTEM SET pg_stat_monitor.track TO 'all'; SELECT pg_reload_conf(); @@ -78,24 +77,23 @@ SELECT add2(1,2); (1 row) SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | top_query --------------------------------------------------------------------------+-------------------- - (select $1 + $2) | SELECT add2($1,$2) - 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) | - SELECT pg_stat_monitor_reset() | - SELECT query, top_query FROM pg_stat_monitor ORDER BY query COLLATE "C" | -(6 rows) + query | top_query +-------------------------------------------------------------+-------------------- + (select $1 + $2) | SELECT add2($1,$2) + 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) | + SELECT pg_stat_monitor_reset() | +(5 rows) ALTER SYSTEM SET pg_stat_monitor.track TO 'top'; SELECT pg_reload_conf(); diff --git a/regression/sql/state.sql b/regression/sql/state.sql deleted file mode 100644 index 0956194..0000000 --- a/regression/sql/state.sql +++ /dev/null @@ -1,8 +0,0 @@ -CREATE EXTENSION pg_stat_monitor; -SELECT pg_stat_monitor_reset(); -SELECT 1; -SELECT 1/0; -- divide by zero - -SELECT query, state_code, state FROM pg_stat_monitor ORDER BY query COLLATE "C"; -SELECT pg_stat_monitor_reset(); -DROP EXTENSION pg_stat_monitor;