]> granicus.if.org Git - postgresql/commit
Fix hash index vs "snapshot too old" problemms
authorKevin Grittner <kgrittn@postgresql.org>
Fri, 6 May 2016 12:47:12 +0000 (07:47 -0500)
committerKevin Grittner <kgrittn@postgresql.org>
Fri, 6 May 2016 12:47:12 +0000 (07:47 -0500)
commit2cc41acd8fa3ebb8f0501c6102a253fb7053cf46
treeda067fb39fbe366b6f15746173050582e2b8f56c
parent9b66aa006f81b2705337ca223daeeabf4db6453a
Fix hash index vs "snapshot too old" problemms

Hash indexes are not WAL-logged, and so do not maintain the LSN of
index pages.  Since the "snapshot too old" feature counts on
detecting error conditions using the LSN of a table and all indexes
on it, this makes it impossible to safely do early vacuuming on any
table with a hash index, so add this to the tests for whether the
xid used to vacuum a table can be adjusted based on
old_snapshot_threshold.

While at it, add a paragraph to the docs for old_snapshot_threshold
which specifically mentions this and other aspects of the feature
which may otherwise surprise users.

Problem reported and patch reviewed by Amit Kapila
doc/src/sgml/config.sgml
src/backend/access/hash/hash.c
src/backend/access/hash/hashsearch.c
src/backend/utils/cache/relcache.c
src/backend/utils/time/snapmgr.c
src/include/utils/rel.h