mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-29 00:57:20 +02:00
It's currently necessary to take a heavyweight lock when scanning a
hash bucket, but pgstattuple only examines individual pages, so it
doesn't need to do this. If, for some hypothetical reason, it did
need to do any heavyweight locking here, this logic would probably
still be incorrect, because most of the locks that it is taking are
meaningless. Only a heavyweight lock on a primary bucket page has any
meaning, but this takes heavyweight locks on all pages regardless of
function - and in particular overflow pages, where you might imagine
that we'd want to lock the primary bucket page if we needed to lock
anything at all.
This is arguably a bug that has existed since this code was added in
commit
|
||
---|---|---|
.. | ||
expected | ||
sql | ||
.gitignore | ||
Makefile | ||
pgstatapprox.c | ||
pgstatindex.c | ||
pgstattuple--1.0--1.1.sql | ||
pgstattuple--1.1--1.2.sql | ||
pgstattuple--1.2--1.3.sql | ||
pgstattuple--1.3--1.4.sql | ||
pgstattuple--1.4--1.5.sql | ||
pgstattuple--1.4.sql | ||
pgstattuple--unpackaged--1.0.sql | ||
pgstattuple.c | ||
pgstattuple.control |