From b87671f1b63a0c9cf264afc209e3acebdb52477f Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Sat, 18 Oct 2014 10:36:09 -0400 Subject: [PATCH] Shorten warning about hash creation Also document that PITR is also affected. --- doc/src/sgml/ref/create_index.sgml | 3 ++- src/backend/commands/indexcmds.c | 2 +- src/test/regress/expected/create_index.out | 8 ++++---- src/test/regress/expected/enum.out | 2 +- src/test/regress/expected/macaddr.out | 2 +- src/test/regress/expected/replica_identity.out | 2 +- src/test/regress/expected/uuid.out | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml index e469b17e168..43df32f977a 100644 --- a/doc/src/sgml/ref/create_index.sgml +++ b/doc/src/sgml/ref/create_index.sgml @@ -474,7 +474,8 @@ Indexes: Also, changes to hash indexes are not replicated over streaming or file-based replication after the initial base backup, so they give wrong answers to queries that subsequently use them. - For these reasons, hash index use is presently discouraged. + Hash indexes are also not properly restored during point-in-time + recovery. For these reasons, hash index use is presently discouraged. </para> </caution> diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 8a1cb4b8182..3c1e90eb0e9 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -491,7 +491,7 @@ DefineIndex(Oid relationId, if (strcmp(accessMethodName, "hash") == 0) ereport(WARNING, - (errmsg("hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers"))); + (errmsg("hash indexes are not WAL-logged and their use is discouraged"))); if (stmt->unique && !accessMethodForm->amcanunique) ereport(ERROR, diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out index a2bef7acb9a..8326e942500 100644 --- a/src/test/regress/expected/create_index.out +++ b/src/test/regress/expected/create_index.out @@ -2238,13 +2238,13 @@ DROP TABLE array_gin_test; -- HASH -- CREATE INDEX hash_i4_index ON hash_i4_heap USING hash (random int4_ops); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged CREATE INDEX hash_name_index ON hash_name_heap USING hash (random name_ops); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged -- CREATE INDEX hash_ovfl_index ON hash_ovfl_heap USING hash (x int4_ops); -- -- Test functional index diff --git a/src/test/regress/expected/enum.out b/src/test/regress/expected/enum.out index fa23b52e552..1a61a5b0df2 100644 --- a/src/test/regress/expected/enum.out +++ b/src/test/regress/expected/enum.out @@ -383,7 +383,7 @@ DROP INDEX enumtest_btree; -- Hash index / opclass with the = operator -- CREATE INDEX enumtest_hash ON enumtest USING hash (col); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged SELECT * FROM enumtest WHERE col = 'orange'; col -------- diff --git a/src/test/regress/expected/macaddr.out b/src/test/regress/expected/macaddr.out index 91edc5ab7ae..8e41a4bbf35 100644 --- a/src/test/regress/expected/macaddr.out +++ b/src/test/regress/expected/macaddr.out @@ -39,7 +39,7 @@ SELECT * FROM macaddr_data; CREATE INDEX macaddr_data_btree ON macaddr_data USING btree (b); CREATE INDEX macaddr_data_hash ON macaddr_data USING hash (b); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged SELECT a, b, trunc(b) FROM macaddr_data ORDER BY 2, 1; a | b | trunc ----+-------------------+------------------- diff --git a/src/test/regress/expected/replica_identity.out b/src/test/regress/expected/replica_identity.out index 45df81ae485..e29e2fba674 100644 --- a/src/test/regress/expected/replica_identity.out +++ b/src/test/regress/expected/replica_identity.out @@ -11,7 +11,7 @@ CREATE INDEX test_replica_identity_keyab ON test_replica_identity (keya, keyb); CREATE UNIQUE INDEX test_replica_identity_keyab_key ON test_replica_identity (keya, keyb); CREATE UNIQUE INDEX test_replica_identity_nonkey ON test_replica_identity (keya, nonkey); CREATE INDEX test_replica_identity_hash ON test_replica_identity USING hash (nonkey); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged CREATE UNIQUE INDEX test_replica_identity_expr ON test_replica_identity (keya, keyb, (3)); CREATE UNIQUE INDEX test_replica_identity_partial ON test_replica_identity (keya, keyb) WHERE keyb != '3'; -- default is 'd'/DEFAULT for user created tables diff --git a/src/test/regress/expected/uuid.out b/src/test/regress/expected/uuid.out index 97c0ce30de3..59cb1e0ba6f 100644 --- a/src/test/regress/expected/uuid.out +++ b/src/test/regress/expected/uuid.out @@ -114,7 +114,7 @@ SELECT COUNT(*) FROM guid1 WHERE guid_field >= '22222222-2222-2222-2222-22222222 -- btree and hash index creation test CREATE INDEX guid1_btree ON guid1 USING BTREE (guid_field); CREATE INDEX guid1_hash ON guid1 USING HASH (guid_field); -WARNING: hash indexes are not WAL-logged and thus are not crash-safe and cannot be used on standby servers +WARNING: hash indexes are not WAL-logged and their use is discouraged -- unique index test CREATE UNIQUE INDEX guid1_unique_BTREE ON guid1 USING BTREE (guid_field); -- should fail -- GitLab