While checking how BM_PERMANENT flag is set (in buffer header), I noticed that hash index has it set too. Shouldn't pg_class(relpersistence) be 'u' in this case? Currently it's set to 'p':
postgres=# CREATE TABLE a(i int); CREATE TABLE postgres=# CREATE INDEX ON a USING HASH (i); WARNING: hash indexes are not WAL-logged and their use is discouraged CREATE INDEX postgres=# \d a Table "public.a" Column | Type | Modifiers --------+---------+----------- i | integer | Indexes: "a_i_idx" hash (i) postgres=# select relpersistence from pg_class where relname='a_i_idx'; relpersistence ---------------- p (1 row) -- Antonin Houska Cybertec Schönig & Schönig GmbH Gröhrmühlgasse 26 A-2700 Wiener Neustadt Web: http://www.postgresql-support.de, http://www.cybertec.at -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers