From 373218a00af09f1e87020b752064fe2fe429a749 Mon Sep 17 00:00:00 2001
From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Date: Tue, 22 Jul 2025 05:32:55 +0000
Subject: [PATCH v2 3/3] Remove the list of built-in tranches in lwlock.h

Now that commit XXXX extracted the predefined LWLock tranches from lwlock.c and
put them in a new file (namely lwlocktranchelist.h), we can remove the hard-coded
list of built-in tranches in lwlock.h and rely on lwlocktranchelist.h
instead.
---
 src/include/storage/lwlock.h | 48 +++++-------------------------------
 1 file changed, 6 insertions(+), 42 deletions(-)

diff --git a/src/include/storage/lwlock.h b/src/include/storage/lwlock.h
index 08a72569ae5..04e0823451e 100644
--- a/src/include/storage/lwlock.h
+++ b/src/include/storage/lwlock.h
@@ -176,51 +176,15 @@ extern void LWLockInitialize(LWLock *lock, int tranche_id);
  * Every tranche ID less than NUM_INDIVIDUAL_LWLOCKS is reserved; also,
  * we reserve additional tranche IDs for builtin tranches not included in
  * the set of individual LWLocks.  A call to LWLockNewTrancheId will never
- * return a value less than LWTRANCHE_FIRST_USER_DEFINED.
+ * return a value less than LWTRANCHE_FIRST_USER_DEFINED. The enum list source
+ * of truth is in lwlocktranchelist.h.
  */
 typedef enum BuiltinTrancheIds
 {
-	LWTRANCHE_XACT_BUFFER = NUM_INDIVIDUAL_LWLOCKS,
-	LWTRANCHE_COMMITTS_BUFFER,
-	LWTRANCHE_SUBTRANS_BUFFER,
-	LWTRANCHE_MULTIXACTOFFSET_BUFFER,
-	LWTRANCHE_MULTIXACTMEMBER_BUFFER,
-	LWTRANCHE_NOTIFY_BUFFER,
-	LWTRANCHE_SERIAL_BUFFER,
-	LWTRANCHE_WAL_INSERT,
-	LWTRANCHE_BUFFER_CONTENT,
-	LWTRANCHE_REPLICATION_ORIGIN_STATE,
-	LWTRANCHE_REPLICATION_SLOT_IO,
-	LWTRANCHE_LOCK_FASTPATH,
-	LWTRANCHE_BUFFER_MAPPING,
-	LWTRANCHE_LOCK_MANAGER,
-	LWTRANCHE_PREDICATE_LOCK_MANAGER,
-	LWTRANCHE_PARALLEL_HASH_JOIN,
-	LWTRANCHE_PARALLEL_BTREE_SCAN,
-	LWTRANCHE_PARALLEL_QUERY_DSA,
-	LWTRANCHE_PER_SESSION_DSA,
-	LWTRANCHE_PER_SESSION_RECORD_TYPE,
-	LWTRANCHE_PER_SESSION_RECORD_TYPMOD,
-	LWTRANCHE_SHARED_TUPLESTORE,
-	LWTRANCHE_SHARED_TIDBITMAP,
-	LWTRANCHE_PARALLEL_APPEND,
-	LWTRANCHE_PER_XACT_PREDICATE_LIST,
-	LWTRANCHE_PGSTATS_DSA,
-	LWTRANCHE_PGSTATS_HASH,
-	LWTRANCHE_PGSTATS_DATA,
-	LWTRANCHE_LAUNCHER_DSA,
-	LWTRANCHE_LAUNCHER_HASH,
-	LWTRANCHE_DSM_REGISTRY_DSA,
-	LWTRANCHE_DSM_REGISTRY_HASH,
-	LWTRANCHE_COMMITTS_SLRU,
-	LWTRANCHE_MULTIXACTMEMBER_SLRU,
-	LWTRANCHE_MULTIXACTOFFSET_SLRU,
-	LWTRANCHE_NOTIFY_SLRU,
-	LWTRANCHE_SERIAL_SLRU,
-	LWTRANCHE_SUBTRANS_SLRU,
-	LWTRANCHE_XACT_SLRU,
-	LWTRANCHE_PARALLEL_VACUUM_DSA,
-	LWTRANCHE_AIO_URING_COMPLETION,
+	LWTRANCHE_INVALID = NUM_INDIVIDUAL_LWLOCKS - 1,
+#define PG_LWLOCK(id, name) id,
+#include "storage/lwlocktranchelist.h"
+#undef PG_LWLOCK
 	LWTRANCHE_FIRST_USER_DEFINED,
 }			BuiltinTrancheIds;
 
-- 
2.34.1

