diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 7340a1fc2b..b450bcf754 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -490,7 +490,8 @@ DefineIndex(Oid relationId, accessMethodId = HeapTupleGetOid(tuple); accessMethodForm = (Form_pg_am) GETSTRUCT(tuple); - if (strcmp(accessMethodName, "hash") == 0) + if (strcmp(accessMethodName, "hash") == 0 && + RelationNeedsWAL(rel)) ereport(WARNING, (errmsg("hash indexes are not WAL-logged and their use is discouraged"))); diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out index 5c2e67d0db..b72e65d1bd 100644 --- a/src/test/regress/expected/create_index.out +++ b/src/test/regress/expected/create_index.out @@ -2342,6 +2342,9 @@ CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); 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 their use is discouraged +CREATE UNLOGGED TABLE unlogged_hash_table (id int4); +CREATE INDEX unlogged_hash_index ON unlogged_hash_table USING hash (id int4_ops); +DROP TABLE unlogged_hash_table; -- CREATE INDEX hash_ovfl_index ON hash_ovfl_heap USING hash (x int4_ops); -- -- Test functional index diff --git a/src/test/regress/sql/create_index.sql b/src/test/regress/sql/create_index.sql index 67dd2f0685..ff8695361c 100644 --- a/src/test/regress/sql/create_index.sql +++ b/src/test/regress/sql/create_index.sql @@ -684,6 +684,10 @@ CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops); +CREATE UNLOGGED TABLE unlogged_hash_table (id int4); +CREATE INDEX unlogged_hash_index ON unlogged_hash_table USING hash (id int4_ops); +DROP TABLE unlogged_hash_table; + -- CREATE INDEX hash_ovfl_index ON hash_ovfl_heap USING hash (x int4_ops);