aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2019-05-14 13:11:23 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2019-05-14 13:11:23 -0400
commit53ddefbaf8a0493d2c1fa0b18bfaba72da556985 (patch)
tree926b4b8b961310df9a32d69f9648eb21100d9ef4 /src
parent7c850320d8cfa5503ecec61c2559661b924f7595 (diff)
downloadpostgresql-53ddefbaf8a0493d2c1fa0b18bfaba72da556985.tar.gz
postgresql-53ddefbaf8a0493d2c1fa0b18bfaba72da556985.zip
Remove pg_rewind's private logging.h/logging.c files.
The existence of these files became rather confusing with the introduction of a widely-known logging.h header in commit cc8d41511. (Indeed, there's already some duplicative #includes here, perhaps betraying such confusion.) The only thing left in them, after that commit, is a progress-reporting function that's neither general-purpose nor tied in any way to other logging infrastructure. Hence, let's just move that function to pg_rewind.c, and get rid of the separate files. Discussion: https://postgr.es/m/3971.1557787914@sss.pgh.pa.us
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_rewind/Makefile2
-rw-r--r--src/bin/pg_rewind/copy_fetch.c1
-rw-r--r--src/bin/pg_rewind/file_ops.c1
-rw-r--r--src/bin/pg_rewind/filemap.c2
-rw-r--r--src/bin/pg_rewind/libpq_fetch.c2
-rw-r--r--src/bin/pg_rewind/logging.c79
-rw-r--r--src/bin/pg_rewind/logging.h25
-rw-r--r--src/bin/pg_rewind/nls.mk2
-rw-r--r--src/bin/pg_rewind/parsexlog.c1
-rw-r--r--src/bin/pg_rewind/pg_rewind.c62
-rw-r--r--src/bin/pg_rewind/pg_rewind.h12
-rw-r--r--src/bin/pg_rewind/timeline.c1
12 files changed, 74 insertions, 116 deletions
diff --git a/src/bin/pg_rewind/Makefile b/src/bin/pg_rewind/Makefile
index 019e19986eb..5455fd4e296 100644
--- a/src/bin/pg_rewind/Makefile
+++ b/src/bin/pg_rewind/Makefile
@@ -19,7 +19,7 @@ override CPPFLAGS := -I$(libpq_srcdir) -DFRONTEND $(CPPFLAGS)
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
OBJS = pg_rewind.o parsexlog.o xlogreader.o datapagemap.o timeline.o \
- fetch.o file_ops.o copy_fetch.o libpq_fetch.o filemap.o logging.o \
+ fetch.o file_ops.o copy_fetch.o libpq_fetch.o filemap.o \
$(WIN32RES)
EXTRA_CLEAN = xlogreader.c
diff --git a/src/bin/pg_rewind/copy_fetch.c b/src/bin/pg_rewind/copy_fetch.c
index 3fd0404ddfb..2ada8611ee4 100644
--- a/src/bin/pg_rewind/copy_fetch.c
+++ b/src/bin/pg_rewind/copy_fetch.c
@@ -18,7 +18,6 @@
#include "fetch.h"
#include "file_ops.h"
#include "filemap.h"
-#include "logging.h"
#include "pg_rewind.h"
static void recurse_dir(const char *datadir, const char *path,
diff --git a/src/bin/pg_rewind/file_ops.c b/src/bin/pg_rewind/file_ops.c
index e442f935555..f9e41b1fc40 100644
--- a/src/bin/pg_rewind/file_ops.c
+++ b/src/bin/pg_rewind/file_ops.c
@@ -21,7 +21,6 @@
#include "common/file_perm.h"
#include "file_ops.h"
#include "filemap.h"
-#include "logging.h"
#include "pg_rewind.h"
/*
diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c
index 63d0baee745..813eadcb017 100644
--- a/src/bin/pg_rewind/filemap.c
+++ b/src/bin/pg_rewind/filemap.c
@@ -15,12 +15,10 @@
#include "datapagemap.h"
#include "filemap.h"
-#include "logging.h"
#include "pg_rewind.h"
#include "common/string.h"
#include "catalog/pg_tablespace_d.h"
-#include "fe_utils/logging.h"
#include "storage/fd.h"
filemap_t *filemap = NULL;
diff --git a/src/bin/pg_rewind/libpq_fetch.c b/src/bin/pg_rewind/libpq_fetch.c
index 11ec045b8ec..b6fa7e5b09c 100644
--- a/src/bin/pg_rewind/libpq_fetch.c
+++ b/src/bin/pg_rewind/libpq_fetch.c
@@ -19,12 +19,10 @@
#include "fetch.h"
#include "file_ops.h"
#include "filemap.h"
-#include "logging.h"
#include "libpq-fe.h"
#include "catalog/pg_type_d.h"
#include "fe_utils/connect.h"
-#include "fe_utils/logging.h"
#include "port/pg_bswap.h"
static PGconn *conn = NULL;
diff --git a/src/bin/pg_rewind/logging.c b/src/bin/pg_rewind/logging.c
deleted file mode 100644
index 8169f739eef..00000000000
--- a/src/bin/pg_rewind/logging.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * logging.c
- * logging functions
- *
- * Copyright (c) 2010-2019, PostgreSQL Global Development Group
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres_fe.h"
-
-#include <unistd.h>
-#include <time.h>
-
-#include "pg_rewind.h"
-#include "logging.h"
-
-#include "pgtime.h"
-
-/* Progress counters */
-uint64 fetch_size;
-uint64 fetch_done;
-
-static pg_time_t last_progress_report = 0;
-
-
-/*
- * Print a progress report based on the global variables.
- *
- * Progress report is written at maximum once per second, unless the
- * force parameter is set to true.
- */
-void
-progress_report(bool force)
-{
- int percent;
- char fetch_done_str[32];
- char fetch_size_str[32];
- pg_time_t now;
-
- if (!showprogress)
- return;
-
- now = time(NULL);
- if (now == last_progress_report && !force)
- return; /* Max once per second */
-
- last_progress_report = now;
- percent = fetch_size ? (int) ((fetch_done) * 100 / fetch_size) : 0;
-
- /*
- * Avoid overflowing past 100% or the full size. This may make the total
- * size number change as we approach the end of the backup (the estimate
- * will always be wrong if WAL is included), but that's better than having
- * the done column be bigger than the total.
- */
- if (percent > 100)
- percent = 100;
- if (fetch_done > fetch_size)
- fetch_size = fetch_done;
-
- /*
- * Separate step to keep platform-dependent format code out of
- * translatable strings. And we only test for INT64_FORMAT availability
- * in snprintf, not fprintf.
- */
- snprintf(fetch_done_str, sizeof(fetch_done_str), INT64_FORMAT,
- fetch_done / 1024);
- snprintf(fetch_size_str, sizeof(fetch_size_str), INT64_FORMAT,
- fetch_size / 1024);
-
- fprintf(stderr, _("%*s/%s kB (%d%%) copied"),
- (int) strlen(fetch_size_str), fetch_done_str, fetch_size_str,
- percent);
- if (isatty(fileno(stderr)))
- fprintf(stderr, "\r");
- else
- fprintf(stderr, "\n");
-}
diff --git a/src/bin/pg_rewind/logging.h b/src/bin/pg_rewind/logging.h
deleted file mode 100644
index 81e17ac1f2c..00000000000
--- a/src/bin/pg_rewind/logging.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * logging.h
- * prototypes for logging functions
- *
- *
- * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *-------------------------------------------------------------------------
- */
-#ifndef PG_REWIND_LOGGING_H
-#define PG_REWIND_LOGGING_H
-
-#include "fe_utils/logging.h"
-
-/* progress counters */
-extern uint64 fetch_size;
-extern uint64 fetch_done;
-
-extern void progress_report(bool force);
-
-#define pg_fatal(...) do { pg_log_fatal(__VA_ARGS__); exit(1); } while(0)
-
-#endif /* PG_REWIND_LOGGING_H */
diff --git a/src/bin/pg_rewind/nls.mk b/src/bin/pg_rewind/nls.mk
index 58c9ede548d..ba29d62545c 100644
--- a/src/bin/pg_rewind/nls.mk
+++ b/src/bin/pg_rewind/nls.mk
@@ -1,7 +1,7 @@
# src/bin/pg_rewind/nls.mk
CATALOG_NAME = pg_rewind
AVAIL_LANGUAGES =de es fr it ja ko pl pt_BR ru sv tr zh_CN
-GETTEXT_FILES = $(FRONTEND_COMMON_GETTEXT_FILES) copy_fetch.c datapagemap.c fetch.c file_ops.c filemap.c libpq_fetch.c logging.c parsexlog.c pg_rewind.c timeline.c ../../common/fe_memutils.c ../../common/restricted_token.c xlogreader.c
+GETTEXT_FILES = $(FRONTEND_COMMON_GETTEXT_FILES) copy_fetch.c datapagemap.c fetch.c file_ops.c filemap.c libpq_fetch.c parsexlog.c pg_rewind.c timeline.c ../../common/fe_memutils.c ../../common/restricted_token.c xlogreader.c
GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) pg_fatal report_invalid_record:2
GETTEXT_FLAGS = $(FRONTEND_COMMON_GETTEXT_FLAGS) \
pg_fatal:1:c-format \
diff --git a/src/bin/pg_rewind/parsexlog.c b/src/bin/pg_rewind/parsexlog.c
index 7709b96e008..65e523f5d4e 100644
--- a/src/bin/pg_rewind/parsexlog.c
+++ b/src/bin/pg_rewind/parsexlog.c
@@ -15,7 +15,6 @@
#include "pg_rewind.h"
#include "filemap.h"
-#include "logging.h"
#include "access/rmgr.h"
#include "access/xlog_internal.h"
diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c
index 3702efaf9f4..d47b5f9648f 100644
--- a/src/bin/pg_rewind/pg_rewind.c
+++ b/src/bin/pg_rewind/pg_rewind.c
@@ -18,7 +18,6 @@
#include "fetch.h"
#include "file_ops.h"
#include "filemap.h"
-#include "logging.h"
#include "access/timeline.h"
#include "access/xlog_internal.h"
@@ -28,7 +27,6 @@
#include "common/file_perm.h"
#include "common/file_utils.h"
#include "common/restricted_token.h"
-#include "fe_utils/logging.h"
#include "getopt_long.h"
#include "storage/bufpage.h"
@@ -63,6 +61,11 @@ bool do_sync = true;
TimeLineHistoryEntry *targetHistory;
int targetNentries;
+/* Progress counters */
+uint64 fetch_size;
+uint64 fetch_done;
+
+
static void
usage(const char *progname)
{
@@ -446,6 +449,61 @@ sanityChecks(void)
}
/*
+ * Print a progress report based on the fetch_size and fetch_done variables.
+ *
+ * Progress report is written at maximum once per second, unless the
+ * force parameter is set to true.
+ */
+void
+progress_report(bool force)
+{
+ static pg_time_t last_progress_report = 0;
+ int percent;
+ char fetch_done_str[32];
+ char fetch_size_str[32];
+ pg_time_t now;
+
+ if (!showprogress)
+ return;
+
+ now = time(NULL);
+ if (now == last_progress_report && !force)
+ return; /* Max once per second */
+
+ last_progress_report = now;
+ percent = fetch_size ? (int) ((fetch_done) * 100 / fetch_size) : 0;
+
+ /*
+ * Avoid overflowing past 100% or the full size. This may make the total
+ * size number change as we approach the end of the backup (the estimate
+ * will always be wrong if WAL is included), but that's better than having
+ * the done column be bigger than the total.
+ */
+ if (percent > 100)
+ percent = 100;
+ if (fetch_done > fetch_size)
+ fetch_size = fetch_done;
+
+ /*
+ * Separate step to keep platform-dependent format code out of
+ * translatable strings. And we only test for INT64_FORMAT availability
+ * in snprintf, not fprintf.
+ */
+ snprintf(fetch_done_str, sizeof(fetch_done_str), INT64_FORMAT,
+ fetch_done / 1024);
+ snprintf(fetch_size_str, sizeof(fetch_size_str), INT64_FORMAT,
+ fetch_size / 1024);
+
+ fprintf(stderr, _("%*s/%s kB (%d%%) copied"),
+ (int) strlen(fetch_size_str), fetch_done_str, fetch_size_str,
+ percent);
+ if (isatty(fileno(stderr)))
+ fprintf(stderr, "\r");
+ else
+ fprintf(stderr, "\n");
+}
+
+/*
* Find minimum from two WAL locations assuming InvalidXLogRecPtr means
* infinity as src/include/access/timeline.h states. This routine should
* be used only when comparing WAL locations related to history files.
diff --git a/src/bin/pg_rewind/pg_rewind.h b/src/bin/pg_rewind/pg_rewind.h
index f2cc2800aa4..9e6f9474d59 100644
--- a/src/bin/pg_rewind/pg_rewind.h
+++ b/src/bin/pg_rewind/pg_rewind.h
@@ -17,6 +17,8 @@
#include "storage/block.h"
#include "storage/relfilenode.h"
+#include "fe_utils/logging.h"
+
/* Configuration options */
extern char *datadir_target;
extern char *datadir_source;
@@ -29,6 +31,13 @@ extern int WalSegSz;
extern TimeLineHistoryEntry *targetHistory;
extern int targetNentries;
+/* Progress counters */
+extern uint64 fetch_size;
+extern uint64 fetch_done;
+
+/* logging support */
+#define pg_fatal(...) do { pg_log_fatal(__VA_ARGS__); exit(1); } while(0)
+
/* in parsexlog.c */
extern void extractPageMap(const char *datadir, XLogRecPtr startpoint,
int tliIndex, XLogRecPtr endpoint);
@@ -39,6 +48,9 @@ extern void findLastCheckpoint(const char *datadir, XLogRecPtr searchptr,
extern XLogRecPtr readOneRecord(const char *datadir, XLogRecPtr ptr,
int tliIndex);
+/* in pg_rewind.c */
+extern void progress_report(bool force);
+
/* in timeline.c */
extern TimeLineHistoryEntry *rewind_parseTimeLineHistory(char *buffer,
TimeLineID targetTLI, int *nentries);
diff --git a/src/bin/pg_rewind/timeline.c b/src/bin/pg_rewind/timeline.c
index 12b19b353c2..987452c4f41 100644
--- a/src/bin/pg_rewind/timeline.c
+++ b/src/bin/pg_rewind/timeline.c
@@ -13,7 +13,6 @@
#include "access/timeline.h"
#include "access/xlog_internal.h"
-#include "fe_utils/logging.h"
/*
* This is copy-pasted from the backend readTimeLineHistory, modified to