pgsql: Log the creation of an init fork unconditionally.
От | Robert Haas |
---|---|
Тема | pgsql: Log the creation of an init fork unconditionally. |
Дата | |
Msg-id | E1cF4Td-0000UH-CF@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Log the creation of an init fork unconditionally. Previously, it was thought that this only needed to be done for the benefit of possible standbys, so wal_level = minimal skipped it. But that's not safe, because during crash recovery we might replay XLOG_DBASE_CREATE or XLOG_TBLSPC_CREATE record which recursively removes the directory that contains the new init fork. So log it always. The user-visible effect of this bug is that if you create a database or tablespace, then create an unlogged table, then crash without checkpointing, then restart, accessing the table will fail, because the it won't have been properly reset. This commit fixes that. Michael Paquier, per a report from Konstantin Knizhnik. Wording of the comments per a suggestion from me. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/fa0f466d5329e10b16f3b38c8eaf5306f7e234e8 Modified Files -------------- contrib/bloom/blinsert.c | 13 +++++++++---- src/backend/access/nbtree/nbtree.c | 13 +++++++++---- src/backend/access/spgist/spginsert.c | 23 +++++++++++++---------- src/backend/catalog/heap.c | 13 +++++++------ 4 files changed, 38 insertions(+), 24 deletions(-)
В списке pgsql-committers по дате отправления: