From 8339f33d68e08d24eb316971a0ac73af162d52b3 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Tue, 11 Nov 2014 20:00:58 -0500
Subject: [PATCH] Message improvements

---
 src/backend/libpq/auth.c                        |  2 +-
 src/backend/replication/logical/logical.c       |  4 ++--
 src/backend/replication/logical/reorderbuffer.c |  2 +-
 src/backend/replication/logical/snapbuild.c     | 17 +++++++++++------
 src/backend/replication/slot.c                  |  6 ++----
 src/backend/utils/misc/guc.c                    | 14 +++++++-------
 6 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index b1974d121c..9ad99ceafa 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -1590,7 +1590,7 @@ auth_peer(hbaPort *port)
 	if (!pw)
 	{
 		ereport(LOG,
-				(errmsg("failed to look up local user id %ld: %s",
+				(errmsg("could not to look up local user ID %ld: %s",
 		   (long) uid, errno ? strerror(errno) : _("user does not exist"))));
 		return STATUS_ERROR;
 	}
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 49f9c7d3a5..875b89a628 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -218,7 +218,7 @@ CreateInitDecodingContext(char *plugin,
 	if (slot->data.database == InvalidOid)
 		ereport(ERROR,
 				(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
-				 errmsg("cannot use physical replication slot created for logical decoding")));
+				 errmsg("cannot use physical replication slot for logical decoding")));
 
 	if (slot->data.database != MyDatabaseId)
 		ereport(ERROR,
@@ -410,7 +410,7 @@ CreateDecodingContext(XLogRecPtr start_lsn,
 	MemoryContextSwitchTo(old_context);
 
 	ereport(LOG,
-			(errmsg("starting logical decoding for slot %s",
+			(errmsg("starting logical decoding for slot \"%s\"",
 					NameStr(slot->data.name)),
 			 errdetail("streaming transactions committing after %X/%X, reading WAL from %X/%X",
 					   (uint32) (slot->data.confirmed_flush >> 32),
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index ab09296763..ece1bc8064 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -2198,7 +2198,7 @@ ReorderBufferRestoreChanges(ReorderBuffer *rb, ReorderBufferTXN *txn,
 		else if (readBytes != sizeof(ReorderBufferDiskChange))
 			ereport(ERROR,
 					(errcode_for_file_access(),
-					 errmsg("incomplete read from reorderbuffer spill file: read %d instead of %u bytes",
+					 errmsg("could not read from reorderbuffer spill file: read %d instead of %u bytes",
 							readBytes,
 							(uint32) sizeof(ReorderBufferDiskChange))));
 
diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c
index 71c5fe2490..705ee0b61c 100644
--- a/src/backend/replication/logical/snapbuild.c
+++ b/src/backend/replication/logical/snapbuild.c
@@ -598,8 +598,10 @@ SnapBuildExportSnapshot(SnapBuild *builder)
 	snapname = ExportSnapshot(snap);
 
 	ereport(LOG,
-			(errmsg("exported logical decoding snapshot: \"%s\" with %u xids",
-					snapname, snap->xcnt)));
+			(errmsg_plural("exported logical decoding snapshot: \"%s\" with %u transaction ID",
+						   "exported logical decoding snapshot: \"%s\" with %u transaction IDs",
+						   snap->xcnt,
+						   snapname, snap->xcnt)));
 	return snapname;
 }
 
@@ -901,7 +903,7 @@ SnapBuildEndTxn(SnapBuild *builder, XLogRecPtr lsn, TransactionId xid)
 			ereport(LOG,
 				  (errmsg("logical decoding found consistent point at %X/%X",
 						  (uint32) (lsn >> 32), (uint32) lsn),
-				errdetail("xid %u finished, no running transactions anymore",
+				errdetail("Transaction ID %u finished; no more running transactions.",
 						  xid)));
 			builder->state = SNAPBUILD_CONSISTENT;
 		}
@@ -1228,9 +1230,9 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn
 									builder->initial_xmin_horizon))
 	{
 		ereport(DEBUG1,
-				(errmsg("skipping snapshot at %X/%X while building logical decoding snapshot, xmin horizon too low",
+				(errmsg_internal("skipping snapshot at %X/%X while building logical decoding snapshot, xmin horizon too low",
 						(uint32) (lsn >> 32), (uint32) lsn),
-				 errdetail("initial xmin horizon of %u vs the snapshot's %u",
+				 errdetail_internal("initial xmin horizon of %u vs the snapshot's %u",
 				 builder->initial_xmin_horizon, running->oldestRunningXid)));
 		return true;
 	}
@@ -1324,7 +1326,10 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn
 		ereport(LOG,
 			(errmsg("logical decoding found initial starting point at %X/%X",
 					(uint32) (lsn >> 32), (uint32) lsn),
-			 errdetail("%u xacts need to finish", (uint32) builder->running.xcnt)));
+			 errdetail_plural("%u transaction needs to finish.",
+							  "%u transactions need to finish.",
+							  builder->running.xcnt,
+							  (uint32) builder->running.xcnt)));
 
 		/*
 		 * Iterate through all xids, wait for them to finish.
diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c
index 2c3ea555d0..7817ad8659 100644
--- a/src/backend/replication/slot.c
+++ b/src/backend/replication/slot.c
@@ -797,8 +797,7 @@ CheckPointReplicationSlots(void)
 {
 	int			i;
 
-	ereport(DEBUG1,
-			(errmsg("performing replication slot checkpoint")));
+	elog(DEBUG1, "performing replication slot checkpoint");
 
 	/*
 	 * Prevent any slot from being created/dropped while we're active. As we
@@ -834,8 +833,7 @@ StartupReplicationSlots(void)
 	DIR		   *replication_dir;
 	struct dirent *replication_de;
 
-	ereport(DEBUG1,
-			(errmsg("starting up replication slots")));
+	elog(DEBUG1, "starting up replication slots");
 
 	/* restore all slots by iterating over all on-disk entries */
 	replication_dir = AllocateDir("pg_replslot");
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 6547dfab69..db65c7688d 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -900,7 +900,7 @@ static struct config_bool ConfigureNamesBool[] =
 
 	{
 		{"wal_log_hints", PGC_POSTMASTER, WAL_SETTINGS,
-			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications"),
+			gettext_noop("Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications."),
 			NULL
 		},
 		&wal_log_hints,
@@ -3504,7 +3504,7 @@ static struct config_enum ConfigureNamesEnum[] =
 
 	{
 		{"huge_pages", PGC_POSTMASTER, RESOURCES_MEM,
-			gettext_noop("Use of huge pages on Linux"),
+			gettext_noop("Use of huge pages on Linux."),
 			NULL
 		},
 		&huge_pages,
@@ -6608,7 +6608,7 @@ write_auto_conf_file(int fd, const char *filename, ConfigVariable **head_p)
 	 */
 	if (write(fd, buf.data, buf.len) < 0)
 		ereport(ERROR,
-				(errmsg("failed to write to \"%s\" file", filename)));
+				(errmsg("could not write to file \"%s\": %m", filename)));
 	resetStringInfo(&buf);
 
 	/*
@@ -6633,7 +6633,7 @@ write_auto_conf_file(int fd, const char *filename, ConfigVariable **head_p)
 
 		if (write(fd, buf.data, buf.len) < 0)
 			ereport(ERROR,
-					(errmsg("failed to write to \"%s\" file", filename)));
+					(errmsg("could not write to file \"%s\": %m", filename)));
 		resetStringInfo(&buf);
 	}
 
@@ -6838,7 +6838,7 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 	if (Tmpfd < 0)
 		ereport(ERROR,
 				(errcode_for_file_access(),
-				 errmsg("failed to open auto conf temp file \"%s\": %m",
+				 errmsg("could not open file \"%s\": %m",
 						AutoConfTmpFileName)));
 
 	PG_TRY();
@@ -6856,8 +6856,8 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 				infile = AllocateFile(AutoConfFileName, "r");
 				if (infile == NULL)
 					ereport(ERROR,
-						  (errmsg("failed to open auto conf file \"%s\": %m",
-								  AutoConfFileName)));
+							(errmsg("could not open file \"%s\": %m",
+									AutoConfFileName)));
 
 				/* parse it */
 				ParseConfigFp(infile, AutoConfFileName, 0, LOG, &head, &tail);