From e8ea9e9587f096fdfbd4e451e2e88afee9009902 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 17 Aug 2006 23:04:10 +0000 Subject: Implement archive_timeout feature to force xlog file switches to occur no more than N seconds apart. This allows a simple, if not very high performance, means of guaranteeing that a PITR archive is no more than N seconds behind real time. Also make pg_current_xlog_location return the WAL Write pointer, add pg_current_xlog_insert_location to return the Insert pointer, and fix pg_xlogfile_name_offset to return its results as a two-element record instead of a smashed-together string, as per recent discussion. Simon Riggs --- src/include/access/xlog.h | 3 ++- src/include/access/xlog_internal.h | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src/include/access') diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h index e076979a44..22b0f0bb7b 100644 --- a/src/include/access/xlog.h +++ b/src/include/access/xlog.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.72 2006/07/13 16:49:19 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/xlog.h,v 1.73 2006/08/17 23:04:08 tgl Exp $ */ #ifndef XLOG_H #define XLOG_H @@ -139,6 +139,7 @@ extern XLogRecPtr ProcLastRecEnd; extern int CheckPointSegments; extern int XLOGbuffers; extern char *XLogArchiveCommand; +extern int XLogArchiveTimeout; extern char *XLOG_sync_method; extern const char XLOG_sync_method_default[]; diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h index 03bf0e8623..773e85fbcd 100644 --- a/src/include/access/xlog_internal.h +++ b/src/include/access/xlog_internal.h @@ -11,11 +11,13 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/xlog_internal.h,v 1.15 2006/08/07 16:57:57 tgl Exp $ + * $PostgreSQL: pgsql/src/include/access/xlog_internal.h,v 1.16 2006/08/17 23:04:08 tgl Exp $ */ #ifndef XLOG_INTERNAL_H #define XLOG_INTERNAL_H +#include + #include "access/xlog.h" #include "fmgr.h" #include "storage/block.h" @@ -237,6 +239,12 @@ typedef struct RmgrData extern const RmgrData RmgrTable[]; +/* + * Exported to support xlog switching from bgwriter + */ +extern time_t GetLastSegSwitchTime(void); +extern XLogRecPtr RequestXLogSwitch(void); + /* * These aren't in xlog.h because I'd rather not include fmgr.h there. */ @@ -244,6 +252,7 @@ extern Datum pg_start_backup(PG_FUNCTION_ARGS); extern Datum pg_stop_backup(PG_FUNCTION_ARGS); extern Datum pg_switch_xlog(PG_FUNCTION_ARGS); extern Datum pg_current_xlog_location(PG_FUNCTION_ARGS); +extern Datum pg_current_xlog_insert_location(PG_FUNCTION_ARGS); extern Datum pg_xlogfile_name_offset(PG_FUNCTION_ARGS); extern Datum pg_xlogfile_name(PG_FUNCTION_ARGS); -- cgit v1.2.1