Обсуждение: pg_class(relpersistence) of hash index
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
Antonin Houska <ah@cybertec.at> writes:
> 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?
See archives; we do not currently have a way to support unlogged indexes
on logged tables. The whole hash-index mess would be better if we did,
but getting there is less than trivial.
regards, tom lane