Fix hash index vs "snapshot too old" problemms
Kevin Grittner <kgrittn@postgresql.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/config.sgml | modified | +13 −0 |
| src/backend/access/hash/hash.c | modified | +0 −1 |
| src/backend/access/hash/hashsearch.c | modified | +0 −4 |
| src/backend/utils/cache/relcache.c | modified | +46 −0 |
| src/backend/utils/time/snapmgr.c | modified | +2 −1 |
| src/include/utils/rel.h | modified | +1 −0 |