aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2012-11-28 12:35:01 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2012-11-28 13:01:15 -0300
commit1577b46b7c81e490cf5c8f0e90d0e5d0c09b5414 (patch)
tree6b7b73eea52d8beb905c8c4b592235cba4c41565 /src/include
parentdd7353dde82ad451bf681b37175be128995330fe (diff)
downloadpostgresql-1577b46b7c81e490cf5c8f0e90d0e5d0c09b5414.tar.gz
postgresql-1577b46b7c81e490cf5c8f0e90d0e5d0c09b5414.zip
Split out rmgr rm_desc functions into their own files
This is necessary (but not sufficient) to have them compilable outside of a backend environment.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/access/xlog_internal.h19
-rw-r--r--src/include/catalog/storage.h6
-rw-r--r--src/include/catalog/storage_xlog.h49
3 files changed, 68 insertions, 6 deletions
diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h
index b70a62052c4..89252d02301 100644
--- a/src/include/access/xlog_internal.h
+++ b/src/include/access/xlog_internal.h
@@ -205,6 +205,25 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
(uint32) ((logSegNo) / XLogSegmentsPerXLogId), \
(uint32) ((logSegNo) % XLogSegmentsPerXLogId), offset)
+/*
+ * Information logged when we detect a change in one of the parameters
+ * important for Hot Standby.
+ */
+typedef struct xl_parameter_change
+{
+ int MaxConnections;
+ int max_prepared_xacts;
+ int max_locks_per_xact;
+ int wal_level;
+} xl_parameter_change;
+
+/* logs restore point */
+typedef struct xl_restore_point
+{
+ TimestampTz rp_time;
+ char rp_name[MAXFNAMELEN];
+} xl_restore_point;
+
/*
* Method table for resource managers.
diff --git a/src/include/catalog/storage.h b/src/include/catalog/storage.h
index d5103a88f4c..a4c3ba6b4f2 100644
--- a/src/include/catalog/storage.h
+++ b/src/include/catalog/storage.h
@@ -14,7 +14,6 @@
#ifndef STORAGE_H
#define STORAGE_H
-#include "access/xlog.h"
#include "storage/block.h"
#include "storage/relfilenode.h"
#include "utils/relcache.h"
@@ -34,9 +33,4 @@ extern void AtSubCommit_smgr(void);
extern void AtSubAbort_smgr(void);
extern void PostPrepare_smgr(void);
-extern void log_smgrcreate(RelFileNode *rnode, ForkNumber forkNum);
-
-extern void smgr_redo(XLogRecPtr lsn, XLogRecord *record);
-extern void smgr_desc(StringInfo buf, uint8 xl_info, char *rec);
-
#endif /* STORAGE_H */
diff --git a/src/include/catalog/storage_xlog.h b/src/include/catalog/storage_xlog.h
new file mode 100644
index 00000000000..ae3a9282313
--- /dev/null
+++ b/src/include/catalog/storage_xlog.h
@@ -0,0 +1,49 @@
+/*-------------------------------------------------------------------------
+ *
+ * storage_xlog.h
+ * prototypes for XLog support for backend/catalog/storage.c
+ *
+ *
+ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/catalog/storage_xlog.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef STORAGE_XLOG_H
+#define STORAGE_XLOG_H
+
+#include "access/xlog.h"
+#include "storage/block.h"
+#include "storage/relfilenode.h"
+
+/*
+ * Declarations for smgr-related XLOG records
+ *
+ * Note: we log file creation and truncation here, but logging of deletion
+ * actions is handled by xact.c, because it is part of transaction commit.
+ */
+
+/* XLOG gives us high 4 bits */
+#define XLOG_SMGR_CREATE 0x10
+#define XLOG_SMGR_TRUNCATE 0x20
+
+typedef struct xl_smgr_create
+{
+ RelFileNode rnode;
+ ForkNumber forkNum;
+} xl_smgr_create;
+
+typedef struct xl_smgr_truncate
+{
+ BlockNumber blkno;
+ RelFileNode rnode;
+} xl_smgr_truncate;
+
+extern void log_smgrcreate(RelFileNode *rnode, ForkNumber forkNum);
+
+extern void smgr_redo(XLogRecPtr lsn, XLogRecord *record);
+extern void smgr_desc(StringInfo buf, uint8 xl_info, char *rec);
+
+#endif /* STORAGE_XLOG_H */