postgresql/src/include/access
Andres Freund 5607e996f4 Flush unlogged table's buffers when copying or moving databases.
CREATE DATABASE and ALTER DATABASE .. SET TABLESPACE copy the source
database directory on the filesystem level. To ensure the on disk
state is consistent they block out users of the affected database and
force a checkpoint to flush out all data to disk. Unfortunately, up to
now, that checkpoint didn't flush out dirty buffers from unlogged
relations.

That bug means there could be leftover dirty buffers in either the
template database, or the database in its old location. Leading to
problems when accessing relations in an inconsistent state; and to
possible problems during shutdown in the SET TABLESPACE case because
buffers belonging files that don't exist anymore are flushed.

This was reported in bug #10675 by Maxim Boguk.

Fix by Pavan Deolasee, modified somewhat by me. Reviewed by MauMau and
Fujii Masao.

Backpatch to 9.1 where unlogged tables were introduced.
2014-10-20 23:45:20 +02:00
..
attnum.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
clog.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
genam.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
gin.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
gin_private.h Silence warning on new versions of clang. 2014-09-02 14:23:38 +03:00
gist.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
gist_private.h Avoid palloc in critical section in GiST WAL-logging. 2014-04-03 15:43:50 +03:00
gistscan.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
hash.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
heapam.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
heapam_xlog.h Fix decoding of consecutive MULTI_INSERTs emitted by one heap_multi_insert(). 2014-07-12 14:30:43 +02:00
hio.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
htup.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
htup_details.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
itup.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
multixact.h Have multixact be truncated by checkpoint, not vacuum 2014-06-27 14:43:52 -04:00
nbtree.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
printtup.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
reloptions.h Move view reloptions into their own varlena struct 2014-07-14 17:24:40 -04:00
relscan.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
rewriteheap.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
rmgr.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
rmgrlist.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
sdir.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
skey.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
slru.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
spgist.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
spgist_private.h Adjust SP-GiST WAL record formats to reduce alignment padding. 2014-06-05 12:55:35 +03:00
subtrans.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
sysattr.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
timeline.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
transam.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
tupconvert.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
tupdesc.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
tupmacs.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
tuptoaster.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
twophase.h Fix race condition in preparing a transaction for two-phase commit. 2014-05-15 16:37:50 +03:00
twophase_rmgr.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
valid.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
visibilitymap.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
xact.h Treat 2PC commit/abort the same as regular xacts in recovery. 2014-07-29 11:57:39 +03:00
xlog.h Flush unlogged table's buffers when copying or moving databases. 2014-10-20 23:45:20 +02:00
xlog_fn.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
xlog_internal.h Adjust SP-GiST WAL record formats to reduce alignment padding. 2014-06-05 12:55:35 +03:00
xlogdefs.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
xlogreader.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
xlogutils.h Update copyright for 2014 2014-01-07 16:05:30 -05:00