From 1b9cd69c5bdd1a331891f282106125e6f2524991 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Thu, 27 Oct 2022 09:58:44 +0900 Subject: [PATCH] Add some tests to check the SQL functions of control file As the recent commit 05d4cbf (reverted after as a448e49) has proved, there is zero coverage for the four SQL functions that can scan the control file data: - pg_control_checkpoint() - pg_control_init() - pg_control_recovery() - pg_control_system() This commit adds a minimal coverage for these functions, checking that their execution is able to complete. This would have been enough to catch the problems introduced in the commit mentioned above. More checks could be done for each individual fields, but it is unclear whether this would be better than the other checks in place in the backend code. Per discussion with Bharath Rupireddy. Discussion: https://postgr.es/m/Y1d2FZmQmyAhPSRG@paquier.xyz --- src/test/regress/expected/misc_functions.out | 25 ++++++++++++++++++++ src/test/regress/sql/misc_functions.sql | 6 +++++ 2 files changed, 31 insertions(+) diff --git a/src/test/regress/expected/misc_functions.out b/src/test/regress/expected/misc_functions.out index 9f106c2a10..88bb696ded 100644 --- a/src/test/regress/expected/misc_functions.out +++ b/src/test/regress/expected/misc_functions.out @@ -594,3 +594,28 @@ SELECT * FROM tenk1 a JOIN my_gen_series(1,10) g ON a.unique1 = g; Index Cond: (unique1 = g.g) (4 rows) +-- Test functions for control data +SELECT count(*) > 0 AS ok FROM pg_control_checkpoint(); + ok +---- + t +(1 row) + +SELECT count(*) > 0 AS ok FROM pg_control_init(); + ok +---- + t +(1 row) + +SELECT count(*) > 0 AS ok FROM pg_control_recovery(); + ok +---- + t +(1 row) + +SELECT count(*) > 0 AS ok FROM pg_control_system(); + ok +---- + t +(1 row) + diff --git a/src/test/regress/sql/misc_functions.sql b/src/test/regress/sql/misc_functions.sql index 639e9b352c..b07e9e8dbb 100644 --- a/src/test/regress/sql/misc_functions.sql +++ b/src/test/regress/sql/misc_functions.sql @@ -223,3 +223,9 @@ SELECT * FROM tenk1 a JOIN my_gen_series(1,1000) g ON a.unique1 = g; EXPLAIN (COSTS OFF) SELECT * FROM tenk1 a JOIN my_gen_series(1,10) g ON a.unique1 = g; + +-- Test functions for control data +SELECT count(*) > 0 AS ok FROM pg_control_checkpoint(); +SELECT count(*) > 0 AS ok FROM pg_control_init(); +SELECT count(*) > 0 AS ok FROM pg_control_recovery(); +SELECT count(*) > 0 AS ok FROM pg_control_system();