summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera2024-01-24 14:01:30 +0000
committerAlvaro Herrera2024-01-24 14:01:30 +0000
commit74a73063106583b1f49274a2cd1df42e35107361 (patch)
tree112d7b6748910d3fca405f56cd0d868e945fe78b
parent94edfe250c6a200d2067b0debfe00b4122e9b11e (diff)
Improve notation of BuiltinTrancheNames
Use C99 designated initializer syntax for array elements, instead of writing the position in a comment. This is less verbose and much more readable. Akin to cc150596341e. One disadvantage is that the BuiltinTrancheNames array now has a hole of 51 NULLs -- previously, the array elements were shifted 51 elements downward to avoid this. This can be fixed by merging the IndividualLWLockNames array into BuiltinTrancheNames, which would occupy those 51 pointers, but because it requires some arguably ugly Meson hackery, it's left for later. Discussion: https://postgr.es/m/202401231025.gbv4nnte5fmm@alvherre.pgsql
-rw-r--r--src/backend/storage/lmgr/lwlock.c97
1 files changed, 33 insertions, 64 deletions
diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c
index 2f2de5a5624..98fa6035cc5 100644
--- a/src/backend/storage/lmgr/lwlock.c
+++ b/src/backend/storage/lmgr/lwlock.c
@@ -132,72 +132,41 @@ StaticAssertDecl(LW_VAL_EXCLUSIVE > (uint32) MAX_BACKENDS,
extern const char *const IndividualLWLockNames[]; /* in lwlocknames.c */
static const char *const BuiltinTrancheNames[] = {
- /* LWTRANCHE_XACT_BUFFER: */
- "XactBuffer",
- /* LWTRANCHE_COMMITTS_BUFFER: */
- "CommitTsBuffer",
- /* LWTRANCHE_SUBTRANS_BUFFER: */
- "SubtransBuffer",
- /* LWTRANCHE_MULTIXACTOFFSET_BUFFER: */
- "MultiXactOffsetBuffer",
- /* LWTRANCHE_MULTIXACTMEMBER_BUFFER: */
- "MultiXactMemberBuffer",
- /* LWTRANCHE_NOTIFY_BUFFER: */
- "NotifyBuffer",
- /* LWTRANCHE_SERIAL_BUFFER: */
- "SerialBuffer",
- /* LWTRANCHE_WAL_INSERT: */
- "WALInsert",
- /* LWTRANCHE_BUFFER_CONTENT: */
- "BufferContent",
- /* LWTRANCHE_REPLICATION_ORIGIN_STATE: */
- "ReplicationOriginState",
- /* LWTRANCHE_REPLICATION_SLOT_IO: */
- "ReplicationSlotIO",
- /* LWTRANCHE_LOCK_FASTPATH: */
- "LockFastPath",
- /* LWTRANCHE_BUFFER_MAPPING: */
- "BufferMapping",
- /* LWTRANCHE_LOCK_MANAGER: */
- "LockManager",
- /* LWTRANCHE_PREDICATE_LOCK_MANAGER: */
- "PredicateLockManager",
- /* LWTRANCHE_PARALLEL_HASH_JOIN: */
- "ParallelHashJoin",
- /* LWTRANCHE_PARALLEL_QUERY_DSA: */
- "ParallelQueryDSA",
- /* LWTRANCHE_PER_SESSION_DSA: */
- "PerSessionDSA",
- /* LWTRANCHE_PER_SESSION_RECORD_TYPE: */
- "PerSessionRecordType",
- /* LWTRANCHE_PER_SESSION_RECORD_TYPMOD: */
- "PerSessionRecordTypmod",
- /* LWTRANCHE_SHARED_TUPLESTORE: */
- "SharedTupleStore",
- /* LWTRANCHE_SHARED_TIDBITMAP: */
- "SharedTidBitmap",
- /* LWTRANCHE_PARALLEL_APPEND: */
- "ParallelAppend",
- /* LWTRANCHE_PER_XACT_PREDICATE_LIST: */
- "PerXactPredicateList",
- /* LWTRANCHE_PGSTATS_DSA: */
- "PgStatsDSA",
- /* LWTRANCHE_PGSTATS_HASH: */
- "PgStatsHash",
- /* LWTRANCHE_PGSTATS_DATA: */
- "PgStatsData",
- /* LWTRANCHE_LAUNCHER_DSA: */
- "LogicalRepLauncherDSA",
- /* LWTRANCHE_LAUNCHER_HASH: */
- "LogicalRepLauncherHash",
- /* LWTRANCHE_DSM_REGISTRY_DSA: */
- "DSMRegistryDSA",
- /* LWTRANCHE_DSM_REGISTRY_HASH: */
- "DSMRegistryHash",
+ [LWTRANCHE_XACT_BUFFER] = "XactBuffer",
+ [LWTRANCHE_COMMITTS_BUFFER] = "CommitTsBuffer",
+ [LWTRANCHE_SUBTRANS_BUFFER] = "SubtransBuffer",
+ [LWTRANCHE_MULTIXACTOFFSET_BUFFER] = "MultiXactOffsetBuffer",
+ [LWTRANCHE_MULTIXACTMEMBER_BUFFER] = "MultiXactMemberBuffer",
+ [LWTRANCHE_NOTIFY_BUFFER] = "NotifyBuffer",
+ [LWTRANCHE_SERIAL_BUFFER] = "SerialBuffer",
+ [LWTRANCHE_WAL_INSERT] = "WALInsert",
+ [LWTRANCHE_BUFFER_CONTENT] = "BufferContent",
+ [LWTRANCHE_REPLICATION_ORIGIN_STATE] = "ReplicationOriginState",
+ [LWTRANCHE_REPLICATION_SLOT_IO] = "ReplicationSlotIO",
+ [LWTRANCHE_LOCK_FASTPATH] = "LockFastPath",
+ [LWTRANCHE_BUFFER_MAPPING] = "BufferMapping",
+ [LWTRANCHE_LOCK_MANAGER] = "LockManager",
+ [LWTRANCHE_PREDICATE_LOCK_MANAGER] = "PredicateLockManager",
+ [LWTRANCHE_PARALLEL_HASH_JOIN] = "ParallelHashJoin",
+ [LWTRANCHE_PARALLEL_QUERY_DSA] = "ParallelQueryDSA",
+ [LWTRANCHE_PER_SESSION_DSA] = "PerSessionDSA",
+ [LWTRANCHE_PER_SESSION_RECORD_TYPE] = "PerSessionRecordType",
+ [LWTRANCHE_PER_SESSION_RECORD_TYPMOD] = "PerSessionRecordTypmod",
+ [LWTRANCHE_SHARED_TUPLESTORE] = "SharedTupleStore",
+ [LWTRANCHE_SHARED_TIDBITMAP] = "SharedTidBitmap",
+ [LWTRANCHE_PARALLEL_APPEND] = "ParallelAppend",
+ [LWTRANCHE_PER_XACT_PREDICATE_LIST] = "PerXactPredicateList",
+ [LWTRANCHE_PGSTATS_DSA] = "PgStatsDSA",
+ [LWTRANCHE_PGSTATS_HASH] = "PgStatsHash",
+ [LWTRANCHE_PGSTATS_DATA] = "PgStatsData",
+ [LWTRANCHE_LAUNCHER_DSA] = "LogicalRepLauncherDSA",
+ [LWTRANCHE_LAUNCHER_HASH] = "LogicalRepLauncherHash",
+ [LWTRANCHE_DSM_REGISTRY_DSA] = "DSMRegistryDSA",
+ [LWTRANCHE_DSM_REGISTRY_HASH] = "DSMRegistryHash",
};
StaticAssertDecl(lengthof(BuiltinTrancheNames) ==
- LWTRANCHE_FIRST_USER_DEFINED - NUM_INDIVIDUAL_LWLOCKS,
+ LWTRANCHE_FIRST_USER_DEFINED,
"missing entries in BuiltinTrancheNames[]");
/*
@@ -775,7 +744,7 @@ GetLWTrancheName(uint16 trancheId)
/* Built-in tranche? */
if (trancheId < LWTRANCHE_FIRST_USER_DEFINED)
- return BuiltinTrancheNames[trancheId - NUM_INDIVIDUAL_LWLOCKS];
+ return BuiltinTrancheNames[trancheId];
/*
* It's an extension tranche, so look in LWLockTrancheNames[]. However,