OSDN Git Service

Unite ReadBufferWithFork, ReadBufferWithStrategy, and ZeroOrReadBuffer
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 31 Oct 2008 15:05:00 +0000 (15:05 +0000)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 31 Oct 2008 15:05:00 +0000 (15:05 +0000)
commit19c8dc839b64a43958f08108b85ce8ca98d06a8b
treebe6bff739a33bd11e4915f47f30038840d397cd5
parent29077051deae30b7704a3e3f2cf7d0a7e3a4130a
Unite ReadBufferWithFork, ReadBufferWithStrategy, and ZeroOrReadBuffer
functions into one ReadBufferExtended function, that takes the strategy
and mode as argument. There's three modes, RBM_NORMAL which is the default
used by plain ReadBuffer(), RBM_ZERO, which replaces ZeroOrReadBuffer, and
a new mode RBM_ZERO_ON_ERROR, which allows callers to read corrupt pages
without throwing an error. The FSM needs the new mode to recover from
corrupt pages, which could happend if we crash after extending an FSM file,
and the new page is "torn".

Add fork number to some error messages in bufmgr.c, that still lacked it.
15 files changed:
contrib/pageinspect/rawpage.c
src/backend/access/gin/ginvacuum.c
src/backend/access/gist/gistvacuum.c
src/backend/access/hash/hashpage.c
src/backend/access/heap/heapam.c
src/backend/access/nbtree/nbtree.c
src/backend/access/transam/xlog.c
src/backend/access/transam/xlogutils.c
src/backend/commands/analyze.c
src/backend/commands/vacuum.c
src/backend/commands/vacuumlazy.c
src/backend/storage/buffer/bufmgr.c
src/backend/storage/freespace/freespace.c
src/include/access/xlogutils.h
src/include/storage/bufmgr.h