]> granicus.if.org Git - postgresql/commit
Prevent re-use of a deleted relation's relfilenode until after the next
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 15 Nov 2007 20:36:40 +0000 (20:36 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 15 Nov 2007 20:36:40 +0000 (20:36 +0000)
commit6cc4451b5c47eac02e09c3342281da469374432d
treea97187cef1c3c2a95b7094fd46d68b0f448d7f33
parent7a550cb95cf3a541deed15df1d5e25f36af636e5
Prevent re-use of a deleted relation's relfilenode until after the next
checkpoint.  This guards against an unlikely data-loss scenario in which
we re-use the relfilenode, then crash, then replay the deletion and
recreation of the file.  Even then we'd be OK if all insertions into the
new relation had been WAL-logged ... but that's not guaranteed given all
the no-WAL-logging optimizations that have recently been added.

Patch by Heikki Linnakangas, per a discussion last month.
src/backend/access/transam/xlog.c
src/backend/commands/tablespace.c
src/backend/storage/smgr/md.c
src/backend/storage/smgr/smgr.c
src/include/storage/smgr.h