hash: Add write-ahead logging support.
authorRobert Haas <rhaas@postgresql.org>
Tue, 14 Mar 2017 17:27:02 +0000 (13:27 -0400)
committerRobert Haas <rhaas@postgresql.org>
Tue, 14 Mar 2017 17:27:02 +0000 (13:27 -0400)
commitc11453ce0aeaa377cbbcc9a3fc418acb94629330
treeb7e0c1952bd7167ce826b8ed4bf8204012f4a47b
parent2b32ac2a59df18246c3b79e96a209bfdb39bb918
hash: Add write-ahead logging support.

The warning about hash indexes not being write-ahead logged and their
use being discouraged has been removed.  "snapshot too old" is now
supported for tables with hash indexes.  Most importantly, barring
bugs, hash indexes will now be crash-safe and usable on standbys.

This commit doesn't yet add WAL consistency checking for hash
indexes, as we now have for other index types; a separate patch has
been submitted to cure that lack.

Amit Kapila, reviewed and slightly modified by me.  The larger patch
series of which this is a part has been reviewed and tested by Γlvaro
Herrera, Ashutosh Sharma, Mark Kirkwood, Jeff Janes, and Jesper
Pedersen.

Discussion: http://postgr.es/m/CAA4eK1JOBX=YU33631Qh-XivYXtPSALh514+jR8XeD7v+K3r_Q@mail.gmail.com
25 files changed:
contrib/pageinspect/expected/hash.out
contrib/pgstattuple/expected/pgstattuple.out
doc/src/sgml/backup.sgml
doc/src/sgml/config.sgml
doc/src/sgml/high-availability.sgml
doc/src/sgml/indices.sgml
doc/src/sgml/ref/create_index.sgml
src/backend/access/hash/Makefile
src/backend/access/hash/README
src/backend/access/hash/hash.c
src/backend/access/hash/hash_xlog.c [new file with mode: 0644]
src/backend/access/hash/hashinsert.c
src/backend/access/hash/hashovfl.c
src/backend/access/hash/hashpage.c
src/backend/access/hash/hashsearch.c
src/backend/access/rmgrdesc/hashdesc.c
src/backend/commands/indexcmds.c
src/backend/utils/cache/relcache.c
src/include/access/hash_xlog.h
src/test/regress/expected/create_index.out
src/test/regress/expected/enum.out
src/test/regress/expected/hash_index.out
src/test/regress/expected/macaddr.out
src/test/regress/expected/replica_identity.out
src/test/regress/expected/uuid.out