From 52fb1fbc7dd5d0ebae8bd103f8bf78c5253225f7 Mon Sep 17 00:00:00 2001 From: Diego Fronza Date: Fri, 21 Jan 2022 13:44:05 -0300 Subject: [PATCH] PG-338: Fix counters regression test. After fixing the problem with utility statements, this whole block: do $$ declare n integer:= 1; begin loop PERFORM a,b,c,d FROM t1, t2, t3, t4 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a; exit when n = 1000; n := n + 1; end loop; end $$; Is only processed once, as those are nested statements, in order to match the 1000 statements the GUC pg_stat_monitor.track must be set to 'all' and then back to the default of 'top' when done testing it. --- regression/expected/counters.out | 26 +++++++++++++++++++++++--- regression/sql/counters.sql | 9 ++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/regression/expected/counters.out b/regression/expected/counters.out index 744db3f..a210a6f 100644 --- a/regression/expected/counters.out +++ b/regression/expected/counters.out @@ -42,9 +42,16 @@ SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; SELECT pg_stat_monitor_reset() | 1 (2 rows) -SELECT pg_stat_monitor_reset(); - pg_stat_monitor_reset ------------------------ +ALTER SYSTEM SET pg_stat_monitor.track TO 'all'; +SELECT pg_reload_conf(); + pg_reload_conf +---------------- + t +(1 row) + +SELECT pg_sleep(1); + pg_sleep +---------- (1 row) @@ -81,6 +88,19 @@ SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; end $$ | (3 rows) +ALTER SYSTEM SET pg_stat_monitor.track TO 'top'; +SELECT pg_reload_conf(); + pg_reload_conf +---------------- + t +(1 row) + +SELECT pg_sleep(1); + pg_sleep +---------- + +(1 row) + SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset ----------------------- diff --git a/regression/sql/counters.sql b/regression/sql/counters.sql index 8d5c461..093d971 100644 --- a/regression/sql/counters.sql +++ b/regression/sql/counters.sql @@ -12,9 +12,12 @@ SELECT a,b,c,d FROM t1, t2, t3, t4 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a; SELECT a,b,c,d FROM t1, t2, t3, t4 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a; SELECT a,b,c,d FROM t1, t2, t3, t4 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a; SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; + +ALTER SYSTEM SET pg_stat_monitor.track TO 'all'; +SELECT pg_reload_conf(); +SELECT pg_sleep(1); SELECT pg_stat_monitor_reset(); -SELECT pg_stat_monitor_reset(); do $$ declare n integer:= 1; @@ -26,6 +29,10 @@ begin end loop; end $$; SELECT query,calls FROM pg_stat_monitor ORDER BY query COLLATE "C"; + +ALTER SYSTEM SET pg_stat_monitor.track TO 'top'; +SELECT pg_reload_conf(); +SELECT pg_sleep(1); SELECT pg_stat_monitor_reset(); DROP TABLE t1;