From 9f1856aeb56be888123702fe471d8388da66439f Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Thu, 24 Nov 2022 00:55:03 +0000 Subject: [PATCH 1/2] XXX Dirty hack to clobber control file for testing --- src/backend/access/transam/xlog.c | 10 ++++++++++ src/include/catalog/pg_proc.dat | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index a31fbbff78..88de05ab35 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -2502,6 +2502,16 @@ UpdateMinRecoveryPoint(XLogRecPtr lsn, bool force) LWLockRelease(ControlFileLock); } +Datum +pg_update_control_file() +{ + LWLockAcquire(ControlFileLock, LW_EXCLUSIVE); + ControlFile->minRecoveryPoint++; /* XXX change something to affect CRC! */ + UpdateControlFile(); + LWLockRelease(ControlFileLock); + PG_RETURN_VOID(); +} + /* * Ensure that all XLOG data through the given position is flushed to disk. * diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index f15aa2dbb1..8177c1657c 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -11679,6 +11679,14 @@ proargnames => '{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified}', prosrc => 'pg_control_system' }, +{ oid => '8888', + descr => 'update control file', + proname => 'pg_update_control_file', provolatile => 'v', prorettype => 'void', + proargtypes => '', proallargtypes => '', + proargmodes => '{}', + proargnames => '{}', + prosrc => 'pg_update_control_file' }, + { oid => '3442', descr => 'pg_controldata checkpoint state information as a function', proname => 'pg_control_checkpoint', provolatile => 'v', -- 2.35.1