agora inbox for pgsql-hackers@postgresql.org  
help / color / mirror / Atom feed
[PATCH v1 1/1] remove pg_spin_delay()
323+ messages / 2 participants
[nested] [flat]

* [PATCH v1 1/1] remove pg_spin_delay()
@ 2026-05-05 17:37  Nathan Bossart <nathan@postgresql.org>
  0 siblings, 0 replies; 323+ messages in thread

From: Nathan Bossart @ 2026-05-05 17:37 UTC (permalink / raw)

---
 src/include/port/atomics.h          |  5 ---
 src/include/port/atomics/arch-x86.h | 54 -----------------------------
 src/include/port/atomics/generic.h  |  6 ----
 3 files changed, 65 deletions(-)

diff --git a/src/include/port/atomics.h b/src/include/port/atomics.h
index d8b1d20fe60..c50d95d29e2 100644
--- a/src/include/port/atomics.h
+++ b/src/include/port/atomics.h
@@ -154,11 +154,6 @@
 #define pg_read_barrier()	pg_read_barrier_impl()
 #define pg_write_barrier()	pg_write_barrier_impl()
 
-/*
- * Spinloop delay - Allow CPU to relax in busy loops
- */
-#define pg_spin_delay() pg_spin_delay_impl()
-
 /*
  * pg_atomic_init_flag - initialize atomic flag.
  *
diff --git a/src/include/port/atomics/arch-x86.h b/src/include/port/atomics/arch-x86.h
index bd6f4f56ca2..b317cf7a188 100644
--- a/src/include/port/atomics/arch-x86.h
+++ b/src/include/port/atomics/arch-x86.h
@@ -76,60 +76,6 @@ typedef struct pg_atomic_uint64
 } pg_atomic_uint64;
 #endif	/* __x86_64__ */
 
-#endif /* defined(__GNUC__) || defined(__INTEL_COMPILER) */
-
-#if !defined(PG_HAVE_SPIN_DELAY)
-/*
- * This sequence is equivalent to the PAUSE instruction ("rep" is
- * ignored by old IA32 processors if the following instruction is
- * not a string operation); the IA-32 Architecture Software
- * Developer's Manual, Vol. 3, Section 7.7.2 describes why using
- * PAUSE in the inner loop of a spin lock is necessary for good
- * performance:
- *
- *     The PAUSE instruction improves the performance of IA-32
- *     processors supporting Hyper-Threading Technology when
- *     executing spin-wait loops and other routines where one
- *     thread is accessing a shared lock or semaphore in a tight
- *     polling loop. When executing a spin-wait loop, the
- *     processor can suffer a severe performance penalty when
- *     exiting the loop because it detects a possible memory order
- *     violation and flushes the core processor's pipeline. The
- *     PAUSE instruction provides a hint to the processor that the
- *     code sequence is a spin-wait loop. The processor uses this
- *     hint to avoid the memory order violation and prevent the
- *     pipeline flush. In addition, the PAUSE instruction
- *     de-pipelines the spin-wait loop to prevent it from
- *     consuming execution resources excessively.
- */
-#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-#define PG_HAVE_SPIN_DELAY
-static inline void
-pg_spin_delay_impl(void)
-{
-	__asm__ __volatile__(" rep; nop			\n");
-}
-#elif defined(_MSC_VER) && defined(__x86_64__)
-#define PG_HAVE_SPIN_DELAY
-static __forceinline void
-pg_spin_delay_impl(void)
-{
-	_mm_pause();
-}
-#elif defined(_MSC_VER)
-#define PG_HAVE_SPIN_DELAY
-static __forceinline void
-pg_spin_delay_impl(void)
-{
-	/* See comment for gcc code. Same code, MASM syntax */
-	__asm rep nop;
-}
-#endif
-#endif /* !defined(PG_HAVE_SPIN_DELAY) */
-
-
-#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-
 #define PG_HAVE_ATOMIC_TEST_SET_FLAG
 static inline bool
 pg_atomic_test_set_flag_impl(volatile pg_atomic_flag *ptr)
diff --git a/src/include/port/atomics/generic.h b/src/include/port/atomics/generic.h
index fd64b6cbd86..daa772e9a6d 100644
--- a/src/include/port/atomics/generic.h
+++ b/src/include/port/atomics/generic.h
@@ -28,12 +28,6 @@
 #	define pg_write_barrier_impl pg_memory_barrier_impl
 #endif
 
-#ifndef PG_HAVE_SPIN_DELAY
-#define PG_HAVE_SPIN_DELAY
-#define pg_spin_delay_impl()	((void)0)
-#endif
-
-
 /* provide fallback */
 #if !defined(PG_HAVE_ATOMIC_FLAG_SUPPORT) && defined(PG_HAVE_ATOMIC_U32_SUPPORT)
 #define PG_HAVE_ATOMIC_FLAG_SUPPORT
-- 
2.50.1 (Apple Git-155)


--9wPlq30DMLxbhZ5y--





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

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread

* [PATCH v3] Fix test_custom_stats modules to error out when not preloaded
@ 2026-07-02 04:34  Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
  0 siblings, 0 replies; 323+ 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 <bertranddrouvot.pg@gmail.com>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
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] 323+ messages in thread


end of thread, other threads:[~2026-07-02 04:34 UTC | newest]

Thread overview: 323+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-05-05 17:37 [PATCH v1 1/1] remove pg_spin_delay() Nathan Bossart <nathan@postgresql.org>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
2026-07-02 04:34 [PATCH v3] Fix test_custom_stats modules to error out when not preloaded Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox