mirror of https://github.com/postgres/postgres
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-c46fe7a9b407@iki.fipull/159/head
parent
ab355e3a88
commit
024c521117
@ -1,41 +0,0 @@ |
||||
/*-------------------------------------------------------------------------
|
||||
* |
||||
* backendid.h |
||||
* POSTGRES backend id communication definitions |
||||
* |
||||
* |
||||
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group |
||||
* Portions Copyright (c) 1994, Regents of the University of California |
||||
* |
||||
* src/include/storage/backendid.h |
||||
* |
||||
*------------------------------------------------------------------------- |
||||
*/ |
||||
#ifndef BACKENDID_H |
||||
#define BACKENDID_H |
||||
|
||||
/*
|
||||
* BackendId uniquely identifies an active backend or auxiliary process. It's |
||||
* assigned at backend startup after authentication. Note that a backend ID |
||||
* can be reused for a different backend immediately after a backend exits. |
||||
* |
||||
* Backend IDs are assigned starting from 1. For historical reasons, BackendId |
||||
* 0 is unused, but InvalidBackendId is defined as -1. |
||||
*/ |
||||
typedef int BackendId; |
||||
|
||||
#define InvalidBackendId (-1) |
||||
|
||||
extern PGDLLIMPORT BackendId MyBackendId; /* backend id of this backend */ |
||||
|
||||
/* backend id of our parallel session leader, or InvalidBackendId if none */ |
||||
extern PGDLLIMPORT BackendId ParallelLeaderBackendId; |
||||
|
||||
/*
|
||||
* The BackendId to use for our session's temp relations is normally our own, |
||||
* but parallel workers should use their leader's ID. |
||||
*/ |
||||
#define BackendIdForTempRelations() \ |
||||
(ParallelLeaderBackendId == InvalidBackendId ? MyBackendId : ParallelLeaderBackendId) |
||||
|
||||
#endif /* BACKENDID_H */ |
@ -0,0 +1,43 @@ |
||||
/*-------------------------------------------------------------------------
|
||||
* |
||||
* procnumber.h |
||||
* definition of process number |
||||
* |
||||
* |
||||
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group |
||||
* Portions Copyright (c) 1994, Regents of the University of California |
||||
* |
||||
* src/include/storage/procnumber.h |
||||
* |
||||
*------------------------------------------------------------------------- |
||||
*/ |
||||
#ifndef PROCNUMBER_H |
||||
#define PROCNUMBER_H |
||||
|
||||
/*
|
||||
* ProcNumber uniquely identifies an active backend or auxiliary process. |
||||
* It's assigned at backend startup after authentication, when the process |
||||
* adds itself to the proc array. It is an index into the proc array, |
||||
* starting from 0. Note that a ProcNumber can be reused for a different |
||||
* backend immediately after a backend exits. |
||||
*/ |
||||
typedef int ProcNumber; |
||||
|
||||
#define INVALID_PROC_NUMBER (-1) |
||||
|
||||
/*
|
||||
* Proc number of this backend (same as GetNumberFromPGProc(MyProc)) |
||||
*/ |
||||
extern PGDLLIMPORT ProcNumber MyProcNumber; |
||||
|
||||
/* proc number of our parallel session leader, or INVALID_PROC_NUMBER if none */ |
||||
extern PGDLLIMPORT ProcNumber ParallelLeaderProcNumber; |
||||
|
||||
/*
|
||||
* The ProcNumber to use for our session's temp relations is normally our own, |
||||
* but parallel workers should use their leader's proc number. |
||||
*/ |
||||
#define ProcNumberForTempRelations() \ |
||||
(ParallelLeaderProcNumber == INVALID_PROC_NUMBER ? MyProcNumber : ParallelLeaderProcNumber) |
||||
|
||||
#endif /* PROCNUMBER_H */ |
Loading…
Reference in new issue