Re: pgsql: Replace BackendIds with 0-based ProcNumbers
On 09/07/2024 21:10, Thomas Munro wrote: --- a/src/backend/libpq/pqmq.c +++ b/src/backend/libpq/pqmq.c @@ -26,7 +26,7 @@ static shm_mq_handle *pq_mq_handle; static bool pq_mq_busy = false; static pid_t pq_mq_parallel_leader_pid = 0; -static pid_t pq_mq_parallel_leader_backend_id = InvalidBackendId; +static pid_t pq_mq_parallel_leader_proc_number = INVALID_PROC_NUMBER; I guess it was a historical mistake that this variable of type pid_t instead of BackendId, but now it should be ProcNumber? Yep, fixed thanks! -- Heikki Linnakangas Neon (https://neon.tech)
Re: pgsql: Replace BackendIds with 0-based ProcNumbers
--- a/src/backend/libpq/pqmq.c +++ b/src/backend/libpq/pqmq.c @@ -26,7 +26,7 @@ static shm_mq_handle *pq_mq_handle; static bool pq_mq_busy = false; static pid_t pq_mq_parallel_leader_pid = 0; -static pid_t pq_mq_parallel_leader_backend_id = InvalidBackendId; +static pid_t pq_mq_parallel_leader_proc_number = INVALID_PROC_NUMBER; I guess it was a historical mistake that this variable of type pid_t instead of BackendId, but now it should be ProcNumber?
pgsql: Replace BackendIds with 0-based ProcNumbers
Replace BackendIds with 0-based ProcNumbers Now that BackendId was just another index into the proc array, it was redundant with the 0-based proc numbers used in other places. Replace all usage of backend IDs with proc numbers. The only place where the term "backend id" remains is in a few pgstat functions that expose backend IDs at the SQL level. Those IDs are now in fact 0-based ProcNumbers too, but the documentation still calls them "backend ids". That term still seems appropriate to describe what the numbers are, so I let it be. One user-visible effect is that pg_temp_0 is now a valid temp schema name, for backend with ProcNumber 0. Reviewed-by: Andres Freund Discussion: https://www.postgresql.org/message-id/8171f1aa-496f-46a6-afc3-c46fe7a9b...@iki.fi Branch -- master Details --- https://git.postgresql.org/pg/commitdiff/024c521117579a6d356050ad3d78fdc95e44eefa Modified Files -- doc/src/sgml/config.sgml | 2 +- doc/src/sgml/monitoring.sgml | 18 ++--- doc/src/sgml/storage.sgml | 2 +- doc/src/sgml/xact.sgml | 4 +- src/backend/access/transam/README | 10 +-- src/backend/access/transam/clog.c | 18 ++--- src/backend/access/transam/multixact.c | 64 src/backend/access/transam/parallel.c | 10 +-- src/backend/access/transam/twophase.c | 43 ++- src/backend/access/transam/xact.c | 9 ++- src/backend/access/transam/xlogprefetcher.c| 2 +- src/backend/access/transam/xlogutils.c | 6 +- src/backend/backup/basebackup_incremental.c| 2 +- src/backend/catalog/catalog.c | 14 ++-- src/backend/catalog/namespace.c| 30 src/backend/catalog/storage.c | 30 src/backend/commands/async.c | 89 ++ src/backend/commands/dbcommands.c | 2 +- src/backend/commands/indexcmds.c | 2 +- src/backend/commands/sequence.c| 2 +- src/backend/libpq/pqmq.c | 10 +-- src/backend/postmaster/pgarch.c| 12 +-- src/backend/postmaster/walsummarizer.c | 16 ++-- .../replication/logical/applyparallelworker.c | 4 +- src/backend/replication/slot.c | 2 +- src/backend/replication/walsender.c| 2 +- src/backend/storage/buffer/buf_init.c | 2 +- src/backend/storage/buffer/bufmgr.c| 30 src/backend/storage/buffer/localbuf.c | 6 +- src/backend/storage/ipc/procarray.c| 44 +-- src/backend/storage/ipc/procsignal.c | 36 - src/backend/storage/ipc/sinvaladt.c| 45 +-- src/backend/storage/ipc/standby.c | 6 +- src/backend/storage/lmgr/lmgr.c| 2 +- src/backend/storage/lmgr/lock.c| 26 +++ src/backend/storage/lmgr/predicate.c | 10 +-- src/backend/storage/lmgr/proc.c| 39 +- src/backend/storage/smgr/md.c | 4 +- src/backend/storage/smgr/smgr.c| 2 +- src/backend/utils/activity/backend_status.c| 50 ++-- src/backend/utils/adt/dbsize.c | 14 ++-- src/backend/utils/adt/lockfuncs.c | 13 ++-- src/backend/utils/adt/mcxtfuncs.c | 7 +- src/backend/utils/adt/pgstatfuncs.c| 50 ++-- src/backend/utils/cache/inval.c| 4 +- src/backend/utils/cache/relcache.c | 30 src/backend/utils/error/csvlog.c | 4 +- src/backend/utils/error/elog.c | 6 +- src/backend/utils/error/jsonlog.c | 4 +- src/backend/utils/init/globals.c | 6 +- src/backend/utils/time/snapmgr.c | 6 +- src/common/relpath.c | 24 +++--- src/include/access/twophase.h | 2 +- src/include/catalog/namespace.h| 3 +- src/include/common/relpath.h | 4 +- src/include/libpq/pqmq.h | 2 +- src/include/miscadmin.h| 5 -- src/include/postmaster/postmaster.h| 2 +- src/include/storage/backendid.h| 41 -- src/include/storage/lock.h | 18 ++--- src/include/storage/proc.h | 36 - src/include/storage/procarray.h| 8 +- src/include/storage/proclist.h | 38 - src/include/storage/proclist_types.h | 18 +++-- src/include/storage/procnumber.h | 43 +++ src/include/storage/procsignal.h | 4