]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
test_custom_stats: Fail if loading module outside shared_preload_libraries
authorMichael Paquier <michael@paquier.xyz>
Thu, 2 Jul 2026 06:52:46 +0000 (15:52 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 2 Jul 2026 06:52:46 +0000 (15:52 +0900)
Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via
shared_preload_libraries, behavior inherited from injection_points.
This left the SQL functions callable without the kind registered,
leading to various issues on the backend side.

This code is not designed to work without the pgstats kinds registered.
pgstat_register_kind() gets now called when these libraries are loaded,
with or without shared_preload_libraries, letting the registration fail
if loading the modules at a later step than startup.  test_custom_rmgrs
does the same thing.

Oversight in 31280d96a648.

Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk@bdtpg
Backpatch-through: 19

src/test/modules/test_custom_stats/test_custom_fixed_stats.c
src/test/modules/test_custom_stats/test_custom_var_stats.c

index a066ce117a6d43c0abe0e78d2ce31a1f4df34aa7..32be1d587a1cf3a6ade112a7607c2a5e95c87cc4 100644 (file)
@@ -72,10 +72,6 @@ static const PgStat_KindInfo custom_stats = {
 void
 _PG_init(void)
 {
-       /* Must be loaded via shared_preload_libraries */
-       if (!process_shared_preload_libraries_in_progress)
-               return;
-
        /* Register custom statistics kind */
        pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
index 863d6a5249255a375f71fe2302b70064d27258ef..024dae85a45e7709f651e2928f62a6ab57f6ced5 100644 (file)
@@ -129,10 +129,6 @@ static const PgStat_KindInfo custom_stats = {
 void
 _PG_init(void)
 {
-       /* Must be loaded via shared_preload_libraries */
-       if (!process_shared_preload_libraries_in_progress)
-               return;
-
        /* Register custom statistics kind */
        pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }