mirror of
https://github.com/postgres/postgres.git
synced 2025-05-06 19:59:18 +03:00
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.fi
44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* 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 */
|