Custom WAL Resource Managers.
Allow extensions to specify a new custom resource manager (rmgr),
which allows specialized WAL. This is meant to be used by a Table
Access Method or Index Access Method.
Prior to this commit, only Generic WAL was available, which offers
support for recovery and physical replication but not logical
replication.
Reviewed-by: Julien Rouhaud, Bharath Rupireddy, Andres Freund
Discussion: https://postgr.es/m/ed1fb2e22d15d3563ae0eb610f7b61bb15999c0a.camel%40j-davis.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/5c279a6d350205cc98f91fb8e1d3e4442a6b25d1
Modified Files
--------------
doc/src/sgml/config.sgml | 4 +-
doc/src/sgml/custom-rmgr.sgml | 98 +++++++++++++++++++++++
doc/src/sgml/filelist.sgml | 1 +
doc/src/sgml/func.sgml | 19 +++++
doc/src/sgml/generic-wal.sgml | 20 ++++-
doc/src/sgml/postgres.sgml | 1 +
doc/src/sgml/ref/pg_waldump.sgml | 8 ++
src/backend/access/transam/rmgr.c | 124 +++++++++++++++++++++++++++++-
src/backend/access/transam/xlogreader.c | 2 +-
src/backend/access/transam/xlogrecovery.c | 33 +++-----
src/backend/postmaster/postmaster.c | 6 ++
src/backend/replication/logical/decode.c | 8 +-
src/backend/utils/init/miscinit.c | 2 +
src/backend/utils/misc/guc.c | 77 ++++++++++++++++---
src/bin/pg_rewind/parsexlog.c | 11 ++-
src/bin/pg_waldump/pg_waldump.c | 66 +++++++++++-----
src/bin/pg_waldump/rmgrdesc.c | 61 ++++++++++++++-
src/bin/pg_waldump/rmgrdesc.h | 2 +-
src/include/access/rmgr.h | 19 ++++-
src/include/access/xlog_internal.h | 23 +++++-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_proc.dat | 7 ++
src/include/miscadmin.h | 1 +
src/include/utils/guc.h | 1 +
24 files changed, 526 insertions(+), 70 deletions(-)