Collect built-in LWLock tranche names statically, not dynamically.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 May 2020 15:10:31 +0000 (11:10 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 May 2020 15:10:31 +0000 (11:10 -0400)
commit29c3e2dd5a6aeaf1a23d7d83d665501e2dcc6955
treed855391c63c8464375e49e962c3cc3ee9e171da6
parent07451e1f1adc4ff832196f1f47def13e49d2ed38
Collect built-in LWLock tranche names statically, not dynamically.

There is little point in using the LWLockRegisterTranche mechanism for
built-in tranche names.  It wastes cycles, it creates opportunities for
bugs (since failing to register a tranche name is a very hard-to-detect
problem), and the lack of any centralized list of names encourages
sloppy nonconformity in name choices.  Moreover, since we have a
centralized list of the tranches anyway in enum BuiltinTrancheIds, we're
certainly not buying any flexibility in return for these disadvantages.

Hence, nuke all the backend-internal LWLockRegisterTranche calls,
and instead provide a const array of the builtin tranche names.

(I have in mind to change a bunch of these names shortly, but this
patch is just about getting them into one place.)

Discussion: https://postgr.es/m/9056.1589419765@sss.pgh.pa.us
src/backend/access/transam/slru.c
src/backend/access/transam/xlog.c
src/backend/replication/logical/origin.c
src/backend/replication/slot.c
src/backend/storage/buffer/buf_init.c
src/backend/storage/ipc/procarray.c
src/backend/storage/lmgr/lwlock.c