mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
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-c46fe7a9b407@iki.fi
This commit is contained in:
@@ -73,15 +73,16 @@ typedef struct
|
||||
* This is currently only used in pg_lock_status, so we put it here.
|
||||
*/
|
||||
static Datum
|
||||
VXIDGetDatum(BackendId bid, LocalTransactionId lxid)
|
||||
VXIDGetDatum(ProcNumber procNumber, LocalTransactionId lxid)
|
||||
{
|
||||
/*
|
||||
* The representation is "<bid>/<lxid>", decimal and unsigned decimal
|
||||
* respectively. Note that elog.c also knows how to format a vxid.
|
||||
* The representation is "<procNumber>/<lxid>", decimal and unsigned
|
||||
* decimal respectively. Note that elog.c also knows how to format a
|
||||
* vxid.
|
||||
*/
|
||||
char vxidstr[32];
|
||||
|
||||
snprintf(vxidstr, sizeof(vxidstr), "%d/%u", bid, lxid);
|
||||
snprintf(vxidstr, sizeof(vxidstr), "%d/%u", procNumber, lxid);
|
||||
|
||||
return CStringGetTextDatum(vxidstr);
|
||||
}
|
||||
@@ -353,7 +354,7 @@ pg_lock_status(PG_FUNCTION_ARGS)
|
||||
break;
|
||||
}
|
||||
|
||||
values[10] = VXIDGetDatum(instance->vxid.backendId, instance->vxid.localTransactionId);
|
||||
values[10] = VXIDGetDatum(instance->vxid.procNumber, instance->vxid.localTransactionId);
|
||||
if (instance->pid != 0)
|
||||
values[11] = Int32GetDatum(instance->pid);
|
||||
else
|
||||
@@ -419,7 +420,7 @@ pg_lock_status(PG_FUNCTION_ARGS)
|
||||
nulls[9] = true; /* objsubid */
|
||||
|
||||
/* lock holder */
|
||||
values[10] = VXIDGetDatum(xact->vxid.backendId,
|
||||
values[10] = VXIDGetDatum(xact->vxid.procNumber,
|
||||
xact->vxid.localTransactionId);
|
||||
if (xact->pid != 0)
|
||||
values[11] = Int32GetDatum(xact->pid);
|
||||
|
||||
Reference in New Issue
Block a user