agora inbox for [email protected]  
help / color / mirror / Atom feed
[PATCH v1 2/2] Deprecate CREATE MATERIALIZED VIEW IF NOT EXISTS
219+ messages / 2 participants
[nested] [flat]

* [PATCH v1 2/2] Deprecate CREATE MATERIALIZED VIEW IF NOT EXISTS
@ 2024-05-28 00:19  Erik Wienhold <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Erik Wienhold @ 2024-05-28 00:19 UTC (permalink / raw)

---
 src/backend/parser/gram.y                     | 14 +++++++++++++
 .../expected/test_extensions.out              | 18 +++++++++++++++++
 src/test/regress/expected/matview.out         | 20 +++++++++++++++++++
 3 files changed, 52 insertions(+)

diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index ed477806d1..b1100bdec1 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -4830,6 +4830,20 @@ CreateMatViewStmt:
 					$8->rel->relpersistence = $2;
 					$8->skipData = !($11);
 					$$ = (Node *) ctas;
+
+					if (ctas->into->rel->schemaname)
+							ereport(WARNING,
+									errmsg("IF NOT EXISTS is deprecated in materialized view creation"),
+									errhint("Use CREATE OR REPLACE MATERIALIZED VIEW %s.%s.",
+											ctas->into->rel->schemaname,
+											ctas->into->rel->relname),
+									parser_errposition(@1));
+					else
+							ereport(WARNING,
+									errmsg("IF NOT EXISTS is deprecated in materialized view creation"),
+									errhint("Use CREATE OR REPLACE MATERIALIZED VIEW %s.",
+											ctas->into->rel->relname),
+									parser_errposition(@1));
 				}
 		| CREATE OR REPLACE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data
 				{
diff --git a/src/test/modules/test_extensions/expected/test_extensions.out b/src/test/modules/test_extensions/expected/test_extensions.out
index f357cc21aa..ecd453b29d 100644
--- a/src/test/modules/test_extensions/expected/test_extensions.out
+++ b/src/test/modules/test_extensions/expected/test_extensions.out
@@ -377,41 +377,57 @@ Objects in extension "test_ext_cor"
 CREATE COLLATION ext_cine_coll
   ( LC_COLLATE = "C", LC_CTYPE = "C" );
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  collation ext_cine_coll is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP COLLATION ext_cine_coll;
 CREATE MATERIALIZED VIEW ext_cine_mv AS SELECT 11 AS f1;
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  materialized view ext_cine_mv is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP MATERIALIZED VIEW ext_cine_mv;
 CREATE FOREIGN DATA WRAPPER dummy;
 CREATE SERVER ext_cine_srv FOREIGN DATA WRAPPER dummy;
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  server ext_cine_srv is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP SERVER ext_cine_srv;
 CREATE SCHEMA ext_cine_schema;
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  schema ext_cine_schema is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP SCHEMA ext_cine_schema;
 CREATE SEQUENCE ext_cine_seq;
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  sequence ext_cine_seq is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP SEQUENCE ext_cine_seq;
 CREATE TABLE ext_cine_tab1 (x int);
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  table ext_cine_tab1 is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP TABLE ext_cine_tab1;
 CREATE TABLE ext_cine_tab2 AS SELECT 42 AS y;
 CREATE EXTENSION test_ext_cine;  -- fail
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 ERROR:  table ext_cine_tab2 is not a member of extension "test_ext_cine"
 DETAIL:  An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns.
 DROP TABLE ext_cine_tab2;
 CREATE EXTENSION test_ext_cine;
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 \dx+ test_ext_cine
 Objects in extension "test_ext_cine"
         Object description         
@@ -433,6 +449,8 @@ Objects in extension "test_ext_cine"
 (14 rows)
 
 ALTER EXTENSION test_ext_cine UPDATE TO '1.1';
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW ext_cine_mv.
 \dx+ test_ext_cine
 Objects in extension "test_ext_cine"
         Object description         
diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out
index e2e2a13396..cefd0d442c 100644
--- a/src/test/regress/expected/matview.out
+++ b/src/test/regress/expected/matview.out
@@ -565,6 +565,10 @@ CREATE MATERIALIZED VIEW mvtest_mv_foo AS SELECT * FROM mvtest_foo_data;
 CREATE MATERIALIZED VIEW mvtest_mv_foo AS SELECT * FROM mvtest_foo_data;
 ERROR:  relation "mvtest_mv_foo" already exists
 CREATE MATERIALIZED VIEW IF NOT EXISTS mvtest_mv_foo AS SELECT * FROM mvtest_foo_data;
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+LINE 1: CREATE MATERIALIZED VIEW IF NOT EXISTS mvtest_mv_foo AS SELE...
+        ^
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW mvtest_mv_foo.
 NOTICE:  relation "mvtest_mv_foo" already exists, skipping
 CREATE UNIQUE INDEX ON mvtest_mv_foo (i);
 RESET ROLE;
@@ -662,12 +666,20 @@ CREATE MATERIALIZED VIEW matview_ine_tab AS SELECT 1 / 0; -- error
 ERROR:  relation "matview_ine_tab" already exists
 CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
   SELECT 1 / 0; -- ok
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+LINE 1: CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
+        ^
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW matview_ine_tab.
 NOTICE:  relation "matview_ine_tab" already exists, skipping
 CREATE MATERIALIZED VIEW matview_ine_tab AS
   SELECT 1 / 0 WITH NO DATA; -- error
 ERROR:  relation "matview_ine_tab" already exists
 CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
   SELECT 1 / 0 WITH NO DATA; -- ok
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+LINE 1: CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
+        ^
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW matview_ine_tab.
 NOTICE:  relation "matview_ine_tab" already exists, skipping
 EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
   CREATE MATERIALIZED VIEW matview_ine_tab AS
@@ -676,6 +688,10 @@ ERROR:  relation "matview_ine_tab" already exists
 EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
   CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
     SELECT 1 / 0; -- ok
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+LINE 2:   CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
+          ^
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW matview_ine_tab.
 NOTICE:  relation "matview_ine_tab" already exists, skipping
  QUERY PLAN 
 ------------
@@ -688,6 +704,10 @@ ERROR:  relation "matview_ine_tab" already exists
 EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF)
   CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
     SELECT 1 / 0 WITH NO DATA; -- ok
+WARNING:  IF NOT EXISTS is deprecated in materialized view creation
+LINE 2:   CREATE MATERIALIZED VIEW IF NOT EXISTS matview_ine_tab AS
+          ^
+HINT:  Use CREATE OR REPLACE MATERIALIZED VIEW matview_ine_tab.
 NOTICE:  relation "matview_ine_tab" already exists, skipping
  QUERY PLAN 
 ------------
-- 
2.45.2


--kl5hblbqqgigaot5--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <[email protected]>
  0 siblings, 0 replies; 219+ messages in thread

From: Bertrand Drouvot @ 2026-07-02 04:34 UTC (permalink / raw)

Previously, test_custom_var_stats and test_custom_fixed_stats silently
skipped pgstat_register_kind() when not loaded via shared_preload_libraries.
This left the SQL functions callable without the kind registered, leading to NULL
dereferences in core pgstat functions.

Remove the early return and let pgstat_register_kind() error out naturally,
matching the pattern used by test_custom_rmgrs with RegisterCustomRmgr(). Now
CREATE EXTENSION fails with a clear error if the module is not preloaded.

Author: Bertrand Drouvot <[email protected]>
Reviewed-by: Ewan Young <[email protected]>
Discussion: https://postgr.es/m/akS/ldidWeqG1FWk%40bdtpg
---
 .../modules/test_custom_stats/test_custom_fixed_stats.c  | 9 ++++-----
 .../modules/test_custom_stats/test_custom_var_stats.c    | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)
 100.0% src/test/modules/test_custom_stats/

diff --git a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
index a066ce117a6..8b29ca3e27a 100644
--- a/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_fixed_stats.c
@@ -72,11 +72,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_FIXED_STATS, &custom_stats);
 }
 
diff --git a/src/test/modules/test_custom_stats/test_custom_var_stats.c b/src/test/modules/test_custom_stats/test_custom_var_stats.c
index 863d6a52492..fa415c81301 100644
--- a/src/test/modules/test_custom_stats/test_custom_var_stats.c
+++ b/src/test/modules/test_custom_stats/test_custom_var_stats.c
@@ -129,11 +129,10 @@ 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 */
+	/*
+	 * In order to register our custom statistics kind, we have to be loaded
+	 * via shared_preload_libraries. Otherwise, registration will fail.
+	 */
 	pgstat_register_kind(PGSTAT_KIND_TEST_CUSTOM_VAR_STATS, &custom_stats);
 }
 
-- 
2.34.1


--i51FQWZELabmlh2Y--





^ permalink  raw  reply  [nested|flat] 219+ messages in thread


end of thread, other threads:[~2026-07-02 04:34 UTC | newest]

Thread overview: 219+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-05-28 00:19 [PATCH v1 2/2] Deprecate CREATE MATERIALIZED VIEW IF NOT EXISTS Erik Wienhold <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox