From: Peter Eisentraut <peter_e@gmx.net>
Date: Mon, 22 May 2006 11:21:54 +0000 (+0000)
Subject: Add strerror to pg_dump error messages where missing.
X-Git-Tag: REL8_2_BETA1~942
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79e371037b960208c7febb4b292fb701a3f2a862;p=postgresql

Add strerror to pg_dump error messages where missing.
---

diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c
index bbbef5c51f..102ed6a844 100644
--- a/src/bin/pg_dump/common.c
+++ b/src/bin/pg_dump/common.c
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/bin/pg_dump/common.c,v 1.89 2006/03/05 15:58:50 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/bin/pg_dump/common.c,v 1.90 2006/05/22 11:21:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -768,7 +768,7 @@ parseOidArray(const char *str, Oid *array, int arraysize)
 			{
 				if (argNum >= arraysize)
 				{
-					write_msg(NULL, "could not parse numeric array: too many numbers\n");
+					write_msg(NULL, "could not parse numeric array \"%s\": too many numbers\n", str);
 					exit_nicely();
 				}
 				temp[j] = '\0';
@@ -783,7 +783,7 @@ parseOidArray(const char *str, Oid *array, int arraysize)
 			if (!(isdigit((unsigned char) s) || s == '-') ||
 				j >= sizeof(temp) - 1)
 			{
-				write_msg(NULL, "could not parse numeric array: invalid character in number\n");
+				write_msg(NULL, "could not parse numeric array \"%s\": invalid character in number\n", str);
 				exit_nicely();
 			}
 			temp[j++] = s;
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 0f56a647f2..55cbf64bd0 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.127 2006/04/19 16:02:17 tgl Exp $
+ *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.128 2006/05/22 11:21:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -122,7 +122,8 @@ CloseArchive(Archive *AHX)
 		res = fclose(AH->OF);
 
 	if (res != 0)
-		die_horribly(AH, modulename, "could not close output archive file\n");
+		die_horribly(AH, modulename, "could not close output file: %s\n",
+					 strerror(errno));
 }
 
 /* Public */
@@ -306,7 +307,7 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
 				{
 #ifndef HAVE_LIBZ
 					if (AH->compression != 0)
-						die_horribly(AH, modulename, "cannot restore from compressed archive (not configured for compression support)\n");
+						die_horribly(AH, modulename, "cannot restore from compressed archive (compression not supported in this installation)\n");
 #endif
 
 					_printTocEntry(AH, te, ropt, true, false);
@@ -774,7 +775,8 @@ SortTocFromFile(Archive *AHX, RestoreOptions *ropt)
 	/* Setup the file */
 	fh = fopen(ropt->tocFile, PG_BINARY_R);
 	if (!fh)
-		die_horribly(AH, modulename, "could not open TOC file\n");
+		die_horribly(AH, modulename, "could not open TOC file: %s\n",
+					 strerror(errno));
 
 	while (fgets(buf, sizeof(buf), fh) != NULL)
 	{
@@ -1066,7 +1068,7 @@ ahwrite(const void *ptr, size_t size, size_t nmemb, ArchiveHandle *AH)
 	{
 		res = GZWRITE((void *) ptr, size, nmemb, AH->OF);
 		if (res != (nmemb * size))
-			die_horribly(AH, modulename, "could not write to compressed archive\n");
+			die_horribly(AH, modulename, "could not write to output file: %s\n", strerror(errno));
 		return res;
 	}
 	else if (AH->CustomOutPtr)
@@ -1089,8 +1091,8 @@ ahwrite(const void *ptr, size_t size, size_t nmemb, ArchiveHandle *AH)
 		{
 			res = fwrite((void *) ptr, size, nmemb, AH->OF);
 			if (res != nmemb)
-				die_horribly(AH, modulename, "could not write to output file (%lu != %lu)\n",
-							 (unsigned long) res, (unsigned long) nmemb);
+				die_horribly(AH, modulename, "could not write to output file: %s\n",
+							 strerror(errno));
 			return res;
 		}
 	}
@@ -1321,7 +1323,7 @@ ReadOffset(ArchiveHandle *AH, off_t *o)
 			break;
 
 		default:
-			die_horribly(AH, modulename, "Unexpected data offset flag %d\n", offsetFlg);
+			die_horribly(AH, modulename, "unexpected data offset flag %d\n", offsetFlg);
 	}
 
 	/*
@@ -1556,7 +1558,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
 	/* Close the file */
 	if (wantClose)
 		if (fclose(fh) != 0)
-			die_horribly(AH, modulename, "could not close the input file after reading header: %s\n",
+			die_horribly(AH, modulename, "could not close input file: %s\n",
 						 strerror(errno));
 
 	return AH->format;
diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c
index 3edbb8f5c0..41b7bc2313 100644
--- a/src/bin/pg_dump/pg_backup_custom.c
+++ b/src/bin/pg_dump/pg_backup_custom.c
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_custom.c,v 1.33 2005/10/15 02:49:38 momjian Exp $
+ *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_custom.c,v 1.34 2006/05/22 11:21:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -175,7 +175,7 @@ InitArchiveFmt_Custom(ArchiveHandle *AH)
 			AH->FH = stdout;
 
 		if (!AH->FH)
-			die_horribly(AH, modulename, "could not open archive file \"%s\": %s\n", AH->fSpec, strerror(errno));
+			die_horribly(AH, modulename, "could not open output file \"%s\": %s\n", AH->fSpec, strerror(errno));
 
 		ctx->hasSeek = checkSeek(AH->FH);
 	}
@@ -186,7 +186,7 @@ InitArchiveFmt_Custom(ArchiveHandle *AH)
 		else
 			AH->FH = stdin;
 		if (!AH->FH)
-			die_horribly(AH, modulename, "could not open archive file \"%s\": %s\n", AH->fSpec, strerror(errno));
+			die_horribly(AH, modulename, "could not open input file \"%s\": %s\n", AH->fSpec, strerror(errno));
 
 		ctx->hasSeek = checkSeek(AH->FH);
 
@@ -438,7 +438,7 @@ _PrintTocData(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt)
 		{
 			if ((TocIDRequired(AH, id, ropt) & REQ_DATA) != 0)
 				die_horribly(AH, modulename,
-							 "Dumping a specific TOC data block out of order is not supported"
+							 "dumping a specific TOC data block out of order is not supported"
 					  " without ID on this input stream (fseek required)\n");
 
 			switch (blkType)
@@ -540,9 +540,14 @@ _PrintData(ArchiveHandle *AH)
 
 		cnt = fread(in, 1, blkLen, AH->FH);
 		if (cnt != blkLen)
-			die_horribly(AH, modulename,
-					  "could not read data block -- expected %lu, got %lu\n",
-						 (unsigned long) blkLen, (unsigned long) cnt);
+		{
+			if (feof(AH->FH))
+				die_horribly(AH, modulename,
+							 "could not read from input file: end of file\n");
+			else
+				die_horribly(AH, modulename,
+							 "could not read from input file: %s\n", strerror(errno));
+		}
 
 		ctx->filePos += blkLen;
 
@@ -663,9 +668,14 @@ _skipData(ArchiveHandle *AH)
 		}
 		cnt = fread(in, 1, blkLen, AH->FH);
 		if (cnt != blkLen)
-			die_horribly(AH, modulename,
-					  "could not read data block -- expected %lu, got %lu\n",
-						 (unsigned long) blkLen, (unsigned long) cnt);
+		{
+			if (feof(AH->FH))
+				die_horribly(AH, modulename,
+							 "could not read from input file: end of file\n");
+			else
+				die_horribly(AH, modulename,
+							 "could not read from input file: %s\n", strerror(errno));
+		}
 
 		ctx->filePos += blkLen;
 
@@ -736,8 +746,7 @@ _WriteBuf(ArchiveHandle *AH, const void *buf, size_t len)
 
 	if (res != len)
 		die_horribly(AH, modulename,
-					 "write error in _WriteBuf (%lu != %lu)\n",
-					 (unsigned long) res, (unsigned long) len);
+					 "could not write to output file: %s\n", strerror(errno));
 
 	ctx->filePos += res;
 	return res;
@@ -929,7 +938,7 @@ _DoDeflate(ArchiveHandle *AH, lclContext *ctx, int flush)
 				 */
 				WriteInt(AH, zlibOutSize - zp->avail_out);
 				if (fwrite(out, 1, zlibOutSize - zp->avail_out, AH->FH) != (zlibOutSize - zp->avail_out))
-					die_horribly(AH, modulename, "could not write compressed chunk\n");
+					die_horribly(AH, modulename, "could not write to output file: %s\n", strerror(errno));
 				ctx->filePos += zlibOutSize - zp->avail_out;
 			}
 			zp->next_out = (void *) out;
@@ -943,7 +952,7 @@ _DoDeflate(ArchiveHandle *AH, lclContext *ctx, int flush)
 		{
 			WriteInt(AH, zp->avail_in);
 			if (fwrite(zp->next_in, 1, zp->avail_in, AH->FH) != zp->avail_in)
-				die_horribly(AH, modulename, "could not write uncompressed chunk\n");
+				die_horribly(AH, modulename, "could not write to output file: %s\n", strerror(errno));
 			ctx->filePos += zp->avail_in;
 			zp->avail_in = 0;
 		}
diff --git a/src/bin/pg_dump/pg_backup_files.c b/src/bin/pg_dump/pg_backup_files.c
index b36a1c8600..b882598f77 100644
--- a/src/bin/pg_dump/pg_backup_files.c
+++ b/src/bin/pg_dump/pg_backup_files.c
@@ -20,7 +20,7 @@
  *
  *
  * IDENTIFICATION
- *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_files.c,v 1.27 2005/10/15 02:49:38 momjian Exp $
+ *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_files.c,v 1.28 2006/05/22 11:21:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -243,7 +243,7 @@ _StartData(ArchiveHandle *AH, TocEntry *te)
 #endif
 
 	if (tctx->FH == NULL)
-		die_horribly(AH, modulename, "could not open data file for output\n");
+		die_horribly(AH, modulename, "could not open output file: %s\n", strerror(errno));
 }
 
 static size_t
@@ -287,7 +287,7 @@ _PrintFileData(ArchiveHandle *AH, char *filename, RestoreOptions *ropt)
 #endif
 
 	if (AH->FH == NULL)
-		die_horribly(AH, modulename, "could not open data file for input\n");
+		die_horribly(AH, modulename, "could not open input file: %s\n", strerror(errno));
 
 	while ((cnt = GZREAD(buf, 1, 4095, AH->FH)) > 0)
 	{
@@ -411,7 +411,7 @@ _WriteBuf(ArchiveHandle *AH, const void *buf, size_t len)
 
 	res = fwrite(buf, 1, len, AH->FH);
 	if (res != len)
-		die_horribly(AH, modulename, "write error in _WriteBuf (%lu != %lu)\n", (unsigned long) res, (unsigned long) len);
+		die_horribly(AH, modulename, "could not write to output file: %s\n", strerror(errno));
 
 	ctx->filePos += res;
 	return res;
@@ -508,7 +508,7 @@ _StartBlob(ArchiveHandle *AH, TocEntry *te, Oid oid)
 #endif
 
 	if (tctx->FH == NULL)
-		die_horribly(AH, modulename, "could not open large object file\n");
+		die_horribly(AH, modulename, "could not open large object file for input: %s\n", strerror(errno));
 }
 
 /*
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c
index b777fa140e..bb490e2aef 100644
--- a/src/bin/pg_dump/pg_backup_tar.c
+++ b/src/bin/pg_dump/pg_backup_tar.c
@@ -16,7 +16,7 @@
  *
  *
  * IDENTIFICATION
- *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.50 2006/02/12 06:11:50 momjian Exp $
+ *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.51 2006/05/22 11:21:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -546,8 +546,7 @@ tarWrite(const void *buf, size_t len, TAR_MEMBER *th)
 
 	if (res != len)
 		die_horribly(th->AH, modulename,
-				"could not write to tar member (wrote %lu, attempted %lu)\n",
-					 (unsigned long) res, (unsigned long) len);
+					 "could not write to output file: %s\n", strerror(errno));
 
 	th->pos += res;
 	return res;
@@ -1035,13 +1034,12 @@ _tarAddFile(ArchiveHandle *AH, TAR_MEMBER *th)
 		res = fwrite(&buf[0], 1, cnt, th->tarFH);
 		if (res != cnt)
 			die_horribly(AH, modulename,
-						 "write error appending to tar archive (wrote %lu, attempted %lu)\n",
-						 (unsigned long) res, (unsigned long) cnt);
+						 "could not write to output file: %s\n", strerror(errno));
 		len += res;
 	}
 
 	if (fclose(tmp) != 0)		/* This *should* delete it... */
-		die_horribly(AH, modulename, "could not close tar member: %s\n", strerror(errno));
+		die_horribly(AH, modulename, "could not close temporary file: %s\n", strerror(errno));
 
 	if (len != th->fileLen)
 	{
@@ -1327,6 +1325,6 @@ _tarWriteHeader(TAR_MEMBER *th)
 	}
 
 	if (fwrite(h, 1, 512, th->tarFH) != 512)
-		die_horribly(th->AH, modulename, "could not write tar header\n");
+		die_horribly(th->AH, modulename, "could not write to output file: %s\n", strerror(errno));
 
 }
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 71edfde398..e8c22e510d 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.74 2006/04/07 21:26:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.75 2006/05/22 11:21:54 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -38,8 +38,8 @@ int			optreset;
 #include "pqexpbuffer.h"
 
 
-/* version string we expect back from postgres */
-#define PG_VERSIONSTR "pg_dump (PostgreSQL) " PG_VERSION "\n"
+/* version string we expect back from pg_dump */
+#define PGDUMP_VERSIONSTR "pg_dump (PostgreSQL) " PG_VERSION "\n"
 
 
 static const char *progname;
@@ -142,7 +142,7 @@ main(int argc, char *argv[])
 		}
 	}
 
-	if ((ret = find_other_exec(argv[0], "pg_dump", PG_VERSIONSTR,
+	if ((ret = find_other_exec(argv[0], "pg_dump", PGDUMP_VERSIONSTR,
 							   pg_dump_bin)) < 0)
 	{
 		char		full_path[MAXPGPATH];