From: | Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: WAL-log the creation of the init fork of unlogged indexes. |
Date: | 2023-07-06 14:30:12 |
Message-ID: | E1qHPzp-002CtY-13@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
WAL-log the creation of the init fork of unlogged indexes.
We create a file, so we better WAL-log it. In practice, all the
built-in index AMs and all extensions that I'm aware of write a
metapage to the init fork, which is WAL-logged, and replay of the
metapage implicitly creates the fork too. But if ambuildempty() didn't
write any page, we would miss it.
This can be seen with dummy_index_am. Set up replication, create a
'dummy_index_am' index on an unlogged table, and look at the files
created in the replica: the init fork is not created on the
replica. Dummy_index_am doesn't do anything with the relation files,
however, so it doesn't lead to any user-visible errors.
Backpatch to all supported versions.
Reviewed-by: Robert Haas
Discussion: https://www.postgresql.org/message-id/6e5bbc08-cdfc-b2b3-9e23-1a914b9850a9%40iki.fi
Branch
------
REL_14_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/32f327f681d5ea86582c50e3eaf8f52a9ee65754
Modified Files
--------------
src/backend/catalog/index.c | 2 ++
1 file changed, 2 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2023-07-06 16:37:55 | pgsql: Skip pg_baseback long filename test if path too long on Windows |
Previous Message | Heikki Linnakangas | 2023-07-06 10:06:51 | pgsql: Fix MarkGUCPrefixReserved() to check all options. |