From 5035172e4ab58e4e8eef1bc60b0712fc59e0be31 Mon Sep 17 00:00:00 2001 From: Alexander Korotkov Date: Thu, 24 Oct 2024 14:37:53 +0300 Subject: [PATCH] Move LSN waiting declarations and definitions to better place 3c5db1d6b implemented the pg_wal_replay_wait() stored procedure. Due to the patch development history, the implementation resided in src/backend/commands/waitlsn.c (src/include/commands/waitlsn.h for headers). 014f9f34d moved pg_wal_replay_wait() itself to src/backend/access/transam/xlogfuncs.c near to the WAL-manipulation functions. But most of the implementation stayed in place. The code in src/backend/commands/waitlsn.c has nothing to do with commands, but is related to WAL. So, this commit moves this code into src/backend/access/transam/xlogwait.c (src/include/access/xlogwait.h for headers). Reported-by: Peter Eisentraut Discussion: https://postgr.es/m/18c0fa64-0475-415e-a1bd-665d922c5201%40eisentraut.org Reviewed-by: Pavel Borisov --- src/backend/access/transam/Makefile | 3 ++- src/backend/access/transam/meson.build | 1 + src/backend/access/transam/xact.c | 2 +- src/backend/access/transam/xlog.c | 2 +- src/backend/access/transam/xlogfuncs.c | 2 +- src/backend/access/transam/xlogrecovery.c | 2 +- .../{commands/waitlsn.c => access/transam/xlogwait.c} | 6 +++--- src/backend/commands/Makefile | 3 +-- src/backend/commands/meson.build | 1 - src/backend/storage/ipc/ipci.c | 2 +- src/backend/storage/lmgr/proc.c | 2 +- src/include/{commands/waitlsn.h => access/xlogwait.h} | 10 +++++----- 12 files changed, 18 insertions(+), 18 deletions(-) rename src/backend/{commands/waitlsn.c => access/transam/xlogwait.c} (99%) rename src/include/{commands/waitlsn.h => access/xlogwait.h} (94%) diff --git a/src/backend/access/transam/Makefile b/src/backend/access/transam/Makefile index 661c55a9db7..a32f473e0a2 100644 --- a/src/backend/access/transam/Makefile +++ b/src/backend/access/transam/Makefile @@ -36,7 +36,8 @@ OBJS = \ xlogreader.o \ xlogrecovery.o \ xlogstats.o \ - xlogutils.o + xlogutils.o \ + xlogwait.o include $(top_srcdir)/src/backend/common.mk diff --git a/src/backend/access/transam/meson.build b/src/backend/access/transam/meson.build index 8a3522557cd..91d258f9df1 100644 --- a/src/backend/access/transam/meson.build +++ b/src/backend/access/transam/meson.build @@ -24,6 +24,7 @@ backend_sources += files( 'xlogrecovery.c', 'xlogstats.c', 'xlogutils.c', + 'xlogwait.c', ) # used by frontend programs to build a frontend xlogreader diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index b0b05e28790..d8f6c658420 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -31,6 +31,7 @@ #include "access/xloginsert.h" #include "access/xlogrecovery.h" #include "access/xlogutils.h" +#include "access/xlogwait.h" #include "catalog/index.h" #include "catalog/namespace.h" #include "catalog/pg_enum.h" @@ -38,7 +39,6 @@ #include "commands/async.h" #include "commands/tablecmds.h" #include "commands/trigger.h" -#include "commands/waitlsn.h" #include "common/pg_prng.h" #include "executor/spi.h" #include "libpq/be-fsstubs.h" diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 9102c8d772e..ad9b0b612f4 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -62,11 +62,11 @@ #include "access/xlogreader.h" #include "access/xlogrecovery.h" #include "access/xlogutils.h" +#include "access/xlogwait.h" #include "backup/basebackup.h" #include "catalog/catversion.h" #include "catalog/pg_control.h" #include "catalog/pg_database.h" -#include "commands/waitlsn.h" #include "common/controldata_utils.h" #include "common/file_utils.h" #include "executor/instrument.h" diff --git a/src/backend/access/transam/xlogfuncs.c b/src/backend/access/transam/xlogfuncs.c index 3e3d2bb6189..cbf84ef7d8f 100644 --- a/src/backend/access/transam/xlogfuncs.c +++ b/src/backend/access/transam/xlogfuncs.c @@ -22,8 +22,8 @@ #include "access/xlog_internal.h" #include "access/xlogbackup.h" #include "access/xlogrecovery.h" +#include "access/xlogwait.h" #include "catalog/pg_type.h" -#include "commands/waitlsn.h" #include "funcapi.h" #include "miscadmin.h" #include "pgstat.h" diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 320b14add1a..31caa49d6c3 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -40,10 +40,10 @@ #include "access/xlogreader.h" #include "access/xlogrecovery.h" #include "access/xlogutils.h" +#include "access/xlogwait.h" #include "backup/basebackup.h" #include "catalog/pg_control.h" #include "commands/tablespace.h" -#include "commands/waitlsn.h" #include "common/file_utils.h" #include "miscadmin.h" #include "pgstat.h" diff --git a/src/backend/commands/waitlsn.c b/src/backend/access/transam/xlogwait.c similarity index 99% rename from src/backend/commands/waitlsn.c rename to src/backend/access/transam/xlogwait.c index 501938f4330..eef58ce69ce 100644 --- a/src/backend/commands/waitlsn.c +++ b/src/backend/access/transam/xlogwait.c @@ -1,13 +1,13 @@ /*------------------------------------------------------------------------- * - * waitlsn.c + * xlogwait.c * Implements waiting for the given replay LSN, which is used in * CALL pg_wal_replay_wait(target_lsn pg_lsn, timeout float8). * * Copyright (c) 2024, PostgreSQL Global Development Group * * IDENTIFICATION - * src/backend/commands/waitlsn.c + * src/backend/access/transam/xlogwait.c * *------------------------------------------------------------------------- */ @@ -20,7 +20,7 @@ #include "pgstat.h" #include "access/xlog.h" #include "access/xlogrecovery.h" -#include "commands/waitlsn.h" +#include "access/xlogwait.h" #include "funcapi.h" #include "miscadmin.h" #include "storage/latch.h" diff --git a/src/backend/commands/Makefile b/src/backend/commands/Makefile index cede90c3b98..48f7348f91c 100644 --- a/src/backend/commands/Makefile +++ b/src/backend/commands/Makefile @@ -61,7 +61,6 @@ OBJS = \ vacuum.o \ vacuumparallel.o \ variable.o \ - view.o \ - waitlsn.o + view.o include $(top_srcdir)/src/backend/common.mk diff --git a/src/backend/commands/meson.build b/src/backend/commands/meson.build index 7549be5dc3b..6dd00a4abde 100644 --- a/src/backend/commands/meson.build +++ b/src/backend/commands/meson.build @@ -50,5 +50,4 @@ backend_sources += files( 'vacuumparallel.c', 'variable.c', 'view.c', - 'waitlsn.c', ) diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c index 10fc18f2529..9ff687045f4 100644 --- a/src/backend/storage/ipc/ipci.c +++ b/src/backend/storage/ipc/ipci.c @@ -24,8 +24,8 @@ #include "access/twophase.h" #include "access/xlogprefetcher.h" #include "access/xlogrecovery.h" +#include "access/xlogwait.h" #include "commands/async.h" -#include "commands/waitlsn.h" #include "miscadmin.h" #include "pgstat.h" #include "postmaster/autovacuum.h" diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index eaf3916f282..260e7029f50 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -36,7 +36,7 @@ #include "access/transam.h" #include "access/twophase.h" #include "access/xlogutils.h" -#include "commands/waitlsn.h" +#include "access/xlogwait.h" #include "miscadmin.h" #include "pgstat.h" #include "postmaster/autovacuum.h" diff --git a/src/include/commands/waitlsn.h b/src/include/access/xlogwait.h similarity index 94% rename from src/include/commands/waitlsn.h rename to src/include/access/xlogwait.h index bb5ac858dcc..31e208cb7ad 100644 --- a/src/include/commands/waitlsn.h +++ b/src/include/access/xlogwait.h @@ -1,16 +1,16 @@ /*------------------------------------------------------------------------- * - * waitlsn.h + * xlogwait.h * Declarations for LSN replay waiting routines. * * Copyright (c) 2024, PostgreSQL Global Development Group * - * src/include/commands/waitlsn.h + * src/include/access/xlogwait.h * *------------------------------------------------------------------------- */ -#ifndef WAIT_LSN_H -#define WAIT_LSN_H +#ifndef XLOG_WAIT_H +#define XLOG_WAIT_H #include "lib/pairingheap.h" #include "postgres.h" @@ -78,4 +78,4 @@ extern void WaitLSNSetLatches(XLogRecPtr currentLSN); extern void WaitLSNCleanup(void); extern void WaitForLSNReplay(XLogRecPtr targetLSN, int64 timeout); -#endif /* WAIT_LSN_H */ +#endif /* XLOG_WAIT_H */