postgresql/src/include/utils
Nathan Bossart 133654a05b Use actual backend IDs in pg_stat_get_backend_subxact().
Unlike the other pg_stat_get_backend* functions,
pg_stat_get_backend_subxact() looks up the backend entry by using
its integer argument as a 1-based index in an internal array.  The
other functions look for the entry with the matching session
backend ID.  These numbers often match, but that isn't reliably
true.

This commit resolves this discrepancy by introducing
pgstat_get_local_beentry_by_backend_id() and using it in
pg_stat_get_backend_subxact().  We cannot use
pgstat_get_beentry_by_backend_id() because it returns a
PgBackendStatus, which lacks the locally computed additions
available in LocalPgBackendStatus that are required by
pg_stat_get_backend_subxact().

Author: Ian Barwick
Reviewed-by: Sami Imseih, Michael Paquier, Robert Haas
Discussion: https://postgr.es/m/CAB8KJ%3Dj-ACb3H4L9a_b3ZG3iCYDW5aEu3WsPAzkm2S7JzS1Few%40mail.gmail.com
Backpatch-through: 16
2023-08-30 14:47:20 -07:00
..
.gitignore Revert "Add gitignore entries for jsonpath_gram.h" 2019-03-23 00:19:34 +01:00
acl.h Revert MAINTAIN privilege and pg_maintain predefined role. 2023-07-07 11:25:23 -07:00
aclchk_internal.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
array.h Allow parallel aggregate on string_agg and array_agg 2023-01-23 17:35:01 +13:00
arrayaccess.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
ascii.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
attoptcache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
backend_progress.h Fix CREATE INDEX progress reporting for multi-level partitioning. 2023-03-25 15:34:03 -04:00
backend_status.h Use actual backend IDs in pg_stat_get_backend_subxact(). 2023-08-30 14:47:20 -07:00
builtins.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
bytea.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
cash.h Convert *GetDatum() and DatumGet*() macros to inline functions 2022-09-27 20:50:21 +02:00
catcache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
combocid.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
conffiles.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
date.h Add back SQLValueFunction for SQL keywords 2023-05-17 10:19:17 +09:00
datetime.h Refactor datetime functions' timezone lookup code to reduce duplication. 2023-03-17 17:47:19 -04:00
datum.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
dsa.h Avoid type cheats for invalid dsa_handles and dshash_table_handles. 2023-01-25 11:48:38 -05:00
dynahash.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
elog.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
evtcache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
expandeddatum.h New header varatt.h split off from postgres.h 2023-01-10 05:54:36 +01:00
expandedrecord.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
float.h Doc: improve commentary about providing our own definitions of M_PI. 2023-01-08 16:25:33 -05:00
fmgrtab.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
formatting.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
freepage.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
geo_decls.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
guc.h Revert "Fix search_path to a safe value during maintenance operations." 2023-06-10 08:11:41 -07:00
guc_hooks.h Rename hook functions for debug_io_direct to match variable name. 2023-08-24 22:27:53 +12:00
guc_tables.h Minor GUC code refactoring. 2023-01-27 12:13:41 -05:00
help_config.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
hsearch.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
index_selfuncs.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
inet.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
inval.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
json.h SQL/JSON: support the IS JSON predicate 2023-03-31 22:34:04 +02:00
jsonb.h SQL/JSON: add standard JSON constructor functions 2023-03-29 12:11:36 +02:00
jsonfuncs.h SQL/JSON: support the IS JSON predicate 2023-03-31 22:34:04 +02:00
jsonpath.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
logtape.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
lsyscache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
memdebug.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
memutils.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
memutils_internal.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
memutils_memorychunk.h Fix various typos 2023-04-18 13:23:23 +12:00
meson.build meson: Add dependencies to perl modules to various script invocations 2023-06-09 20:12:16 -07:00
multirangetypes.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
numeric.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
old_snapshot.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
palloc.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
partcache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
pg_crc.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
pg_locale.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
pg_lsn.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
pg_rusage.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
pgstat_internal.h Fix various typos and incorrect/outdated name references 2023-04-19 13:50:33 +12:00
pidfile.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
plancache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
portal.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
ps_status.h Speedup and increase usability of set proc title functions 2023-02-20 16:18:27 +13:00
queryenvironment.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
rangetypes.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
regproc.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
rel.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
relcache.h Document RelationGetIndexAttrBitmap better 2023-08-10 12:04:07 +02:00
relfilenumbermap.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
relmapper.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
relptr.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
reltrigger.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
resowner.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
resowner_private.h bufmgr: Support multiple in-progress IOs by using resowner 2023-04-05 14:17:55 -07:00
rls.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
ruleutils.h pageinspect: Fix gist_page_items() with included columns 2023-05-19 12:37:58 +09:00
sampling.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
selfuncs.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
sharedtuplestore.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
snapmgr.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
snapshot.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
sortsupport.h Fix various typos and incorrect/outdated name references 2023-04-19 13:50:33 +12:00
spccache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
syscache.h Add SysCacheGetAttrNotNull for guaranteed not-null attrs 2023-03-25 22:49:33 +01:00
timeout.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
timestamp.h Add back SQLValueFunction for SQL keywords 2023-05-17 10:19:17 +09:00
tuplesort.h nbtree: Allocate new pages in separate function. 2023-06-10 14:08:25 -07:00
tuplestore.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
typcache.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tzparser.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
usercontext.h Perform logical replication actions as the table owner. 2023-04-04 11:25:23 -04:00
uuid.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
varbit.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
varlena.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
wait_event.h Improve the naming of Parallel Hash Join phases. 2023-03-23 13:14:25 +13:00
xid8.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
xml.h Support [NO] INDENT option in XMLSERIALIZE(). 2023-03-15 16:59:09 -04:00