Split out XLog reading as an independent facility
This new facility can not only be used by xlog.c to carry out crash
recovery, but also by external programs. By supplying a function to
read XLog pages from somewhere, all the WAL reading can be used for
completely different purposes.
For the standard backend use, the behavior should be pretty much the
same as previously. As for non-backend programs, an hypothetical
pg_xlogdump program is now closer to reality, but some more backend
support is still necessary.
This patch was originally submitted by Andres Freund in a different
form, but Heikki Linnakangas opted for and authored another design of
the concept. Andres has advanced the patch since Heikki's initial
version. Review and some (mostly cosmetics) changes by me.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/7fcbf6a405ffc12a4546a25b98592ee6733783fc
Modified Files
--------------
src/backend/access/transam/Makefile | 2 +-
src/backend/access/transam/xlog.c | 836 +++++---------------------
src/backend/access/transam/xlogreader.c | 1005 +++++++++++++++++++++++++++++++
src/backend/nls.mk | 5 +-
src/include/access/xlogreader.h | 116 ++++
5 files changed, 1260 insertions(+), 704 deletions(-)