aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/pg_backup_archiver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_dump/pg_backup_archiver.c')
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c250
1 files changed, 107 insertions, 143 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 6131cdda96c..1a75cd00cd9 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -35,6 +35,7 @@
#include "pg_backup_db.h"
#include "pg_backup_utils.h"
#include "dumputils.h"
+#include "fe_utils/logging.h"
#include "fe_utils/string_utils.h"
#include "libpq/libpq-fs.h"
@@ -67,9 +68,6 @@ typedef struct _parallelReadyList
bool sorted; /* are valid entries currently sorted? */
} ParallelReadyList;
-/* translator: this is a module name */
-static const char *modulename = gettext_noop("archiver");
-
static ArchiveHandle *_allocAH(const char *FileSpec, const ArchiveFormat fmt,
const int compression, bool dosync, ArchiveMode mode,
@@ -272,8 +270,7 @@ CloseArchive(Archive *AHX)
res = fclose(AH->OF);
if (res != 0)
- exit_horribly(modulename, "could not close output file: %s\n",
- strerror(errno));
+ fatal("could not close output file: %m");
}
/* Public */
@@ -317,19 +314,17 @@ ProcessArchiveRestoreOptions(Archive *AHX)
break;
case SECTION_PRE_DATA:
if (curSection != SECTION_PRE_DATA)
- write_msg(modulename,
- "WARNING: archive items not in correct section order\n");
+ pg_log_warning("archive items not in correct section order");
break;
case SECTION_DATA:
if (curSection == SECTION_POST_DATA)
- write_msg(modulename,
- "WARNING: archive items not in correct section order\n");
+ pg_log_warning("archive items not in correct section order");
break;
case SECTION_POST_DATA:
/* ok no matter which section we were in */
break;
default:
- exit_horribly(modulename, "unexpected section code %d\n",
+ fatal("unexpected section code %d",
(int) te->section);
break;
}
@@ -366,11 +361,11 @@ RestoreArchive(Archive *AHX)
{
/* We haven't got round to making this work for all archive formats */
if (AH->ClonePtr == NULL || AH->ReopenPtr == NULL)
- exit_horribly(modulename, "parallel restore is not supported with this archive file format\n");
+ fatal("parallel restore is not supported with this archive file format");
/* Doesn't work if the archive represents dependencies as OIDs */
if (AH->version < K_VERS_1_8)
- exit_horribly(modulename, "parallel restore is not supported with archives made by pre-8.0 pg_dump\n");
+ fatal("parallel restore is not supported with archives made by pre-8.0 pg_dump");
/*
* It's also not gonna work if we can't reopen the input file, so
@@ -388,7 +383,7 @@ RestoreArchive(Archive *AHX)
for (te = AH->toc->next; te != AH->toc; te = te->next)
{
if (te->hadDumper && (te->reqs & REQ_DATA) != 0)
- exit_horribly(modulename, "cannot restore from compressed archive (compression not supported in this installation)\n");
+ fatal("cannot restore from compressed archive (compression not supported in this installation)");
}
}
#endif
@@ -405,9 +400,9 @@ RestoreArchive(Archive *AHX)
*/
if (ropt->useDB)
{
- ahlog(AH, 1, "connecting to database for restore\n");
+ pg_log_info("connecting to database for restore");
if (AH->version < K_VERS_1_3)
- exit_horribly(modulename, "direct database connections are not supported in pre-1.3 archives\n");
+ fatal("direct database connections are not supported in pre-1.3 archives");
/*
* We don't want to guess at whether the dump will successfully
@@ -452,7 +447,7 @@ RestoreArchive(Archive *AHX)
if (impliedDataOnly)
{
ropt->dataOnly = impliedDataOnly;
- ahlog(AH, 1, "implied data-only restore\n");
+ pg_log_info("implied data-only restore");
}
}
@@ -518,7 +513,7 @@ RestoreArchive(Archive *AHX)
/* Otherwise, drop anything that's selected and has a dropStmt */
if (((te->reqs & (REQ_SCHEMA | REQ_DATA)) != 0) && te->dropStmt)
{
- ahlog(AH, 1, "dropping %s %s\n", te->desc, te->tag);
+ pg_log_info("dropping %s %s", te->desc, te->tag);
/* Select owner and schema as necessary */
_becomeOwner(AH, te);
_selectOutputSchema(AH, te->namespace);
@@ -613,8 +608,7 @@ RestoreArchive(Archive *AHX)
else
{
/* complain and emit unmodified command */
- write_msg(modulename,
- "WARNING: could not find where to insert IF EXISTS in statement \"%s\"\n",
+ pg_log_warning("could not find where to insert IF EXISTS in statement \"%s\"",
dropStmtOrig);
appendPQExpBufferStr(ftStmt, dropStmt);
}
@@ -770,9 +764,9 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
if (!ropt->suppressDumpWarnings && strcmp(te->desc, "WARNING") == 0)
{
if (!ropt->dataOnly && te->defn != NULL && strlen(te->defn) != 0)
- write_msg(modulename, "warning from original dump file: %s\n", te->defn);
+ pg_log_warning("warning from original dump file: %s", te->defn);
else if (te->copyStmt != NULL && strlen(te->copyStmt) != 0)
- write_msg(modulename, "warning from original dump file: %s\n", te->copyStmt);
+ pg_log_warning("warning from original dump file: %s", te->copyStmt);
}
/* Work out what, if anything, we want from this entry */
@@ -787,10 +781,11 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
{
/* Show namespace in log message if available */
if (te->namespace)
- ahlog(AH, 1, "creating %s \"%s.%s\"\n",
- te->desc, te->namespace, te->tag);
+ pg_log_info("creating %s \"%s.%s\"",
+ te->desc, te->namespace, te->tag);
else
- ahlog(AH, 1, "creating %s \"%s\"\n", te->desc, te->tag);
+ pg_log_info("creating %s \"%s\"",
+ te->desc, te->tag);
_printTocEntry(AH, te, false);
defnDumped = true;
@@ -846,7 +841,7 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
appendConnStrVal(&connstr, te->tag);
/* Abandon struct, but keep its buffer until process exit. */
- ahlog(AH, 1, "connecting to new database \"%s\"\n", te->tag);
+ pg_log_info("connecting to new database \"%s\"", te->tag);
_reconnectToDB(AH, te->tag);
ropt->dbname = connstr.data;
}
@@ -874,7 +869,7 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
if (strcmp(te->desc, "BLOBS") == 0 ||
strcmp(te->desc, "BLOB COMMENTS") == 0)
{
- ahlog(AH, 1, "processing %s\n", te->desc);
+ pg_log_info("processing %s", te->desc);
_selectOutputSchema(AH, "pg_catalog");
@@ -894,7 +889,7 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
_becomeOwner(AH, te);
_selectOutputSchema(AH, te->namespace);
- ahlog(AH, 1, "processing data for table \"%s.%s\"\n",
+ pg_log_info("processing data for table \"%s.%s\"",
te->namespace, te->tag);
/*
@@ -956,7 +951,7 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, bool is_parallel)
else if (!defnDumped)
{
/* If we haven't already dumped the defn part, do so now */
- ahlog(AH, 1, "executing %s %s\n", te->desc, te->tag);
+ pg_log_info("executing %s %s", te->desc, te->tag);
_printTocEntry(AH, te, false);
}
}
@@ -995,7 +990,7 @@ _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te)
if (!ropt->dataOnly || !ropt->disable_triggers)
return;
- ahlog(AH, 1, "disabling triggers for %s\n", te->tag);
+ pg_log_info("disabling triggers for %s", te->tag);
/*
* Become superuser if possible, since they are the only ones who can
@@ -1021,7 +1016,7 @@ _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te)
if (!ropt->dataOnly || !ropt->disable_triggers)
return;
- ahlog(AH, 1, "enabling triggers for %s\n", te->tag);
+ pg_log_info("enabling triggers for %s", te->tag);
/*
* Become superuser if possible, since they are the only ones who can
@@ -1049,7 +1044,7 @@ WriteData(Archive *AHX, const void *data, size_t dLen)
ArchiveHandle *AH = (ArchiveHandle *) AHX;
if (!AH->currToc)
- exit_horribly(modulename, "internal error -- WriteData cannot be called outside the context of a DataDumper routine\n");
+ fatal("internal error -- WriteData cannot be called outside the context of a DataDumper routine");
AH->WriteDataPtr(AH, data, dLen);
@@ -1234,7 +1229,7 @@ StartBlob(Archive *AHX, Oid oid)
ArchiveHandle *AH = (ArchiveHandle *) AHX;
if (!AH->StartBlobPtr)
- exit_horribly(modulename, "large-object output not supported in chosen format\n");
+ fatal("large-object output not supported in chosen format");
AH->StartBlobPtr(AH, AH->currToc, oid);
@@ -1292,8 +1287,8 @@ EndRestoreBlobs(ArchiveHandle *AH)
ahprintf(AH, "COMMIT;\n\n");
}
- ahlog(AH, 1, ngettext("restored %d large object\n",
- "restored %d large objects\n",
+ pg_log_info(ngettext("restored %d large object",
+ "restored %d large objects",
AH->blobCount),
AH->blobCount);
}
@@ -1313,7 +1308,7 @@ StartRestoreBlob(ArchiveHandle *AH, Oid oid, bool drop)
/* Initialize the LO Buffer */
AH->lo_buf_used = 0;
- ahlog(AH, 1, "restoring large object with OID %u\n", oid);
+ pg_log_info("restoring large object with OID %u", oid);
/* With an old archive we must do drop and create logic here */
if (old_blob_style && drop)
@@ -1325,12 +1320,12 @@ StartRestoreBlob(ArchiveHandle *AH, Oid oid, bool drop)
{
loOid = lo_create(AH->connection, oid);
if (loOid == 0 || loOid != oid)
- exit_horribly(modulename, "could not create large object %u: %s",
+ fatal("could not create large object %u: %s",
oid, PQerrorMessage(AH->connection));
}
AH->loFd = lo_open(AH->connection, oid, INV_WRITE);
if (AH->loFd == -1)
- exit_horribly(modulename, "could not open large object %u: %s",
+ fatal("could not open large object %u: %s",
oid, PQerrorMessage(AH->connection));
}
else
@@ -1387,8 +1382,7 @@ SortTocFromFile(Archive *AHX)
/* Setup the file */
fh = fopen(ropt->tocFile, PG_BINARY_R);
if (!fh)
- exit_horribly(modulename, "could not open TOC file \"%s\": %s\n",
- ropt->tocFile, strerror(errno));
+ fatal("could not open TOC file \"%s\": %m", ropt->tocFile);
incomplete_line = false;
while (fgets(buf, sizeof(buf), fh) != NULL)
@@ -1428,14 +1422,14 @@ SortTocFromFile(Archive *AHX)
if (endptr == buf || id <= 0 || id > AH->maxDumpId ||
ropt->idWanted[id - 1])
{
- write_msg(modulename, "WARNING: line ignored: %s\n", buf);
+ pg_log_warning("line ignored: %s", buf);
continue;
}
/* Find TOC entry */
te = getTocEntryByDumpId(AH, id);
if (!te)
- exit_horribly(modulename, "could not find entry for ID %d\n",
+ fatal("could not find entry for ID %d",
id);
/* Mark it wanted */
@@ -1456,8 +1450,7 @@ SortTocFromFile(Archive *AHX)
}
if (fclose(fh) != 0)
- exit_horribly(modulename, "could not close TOC file: %s\n",
- strerror(errno));
+ fatal("could not close TOC file: %m");
}
/**********************
@@ -1567,11 +1560,9 @@ SetOutput(ArchiveHandle *AH, const char *filename, int compression)
if (!AH->OF)
{
if (filename)
- exit_horribly(modulename, "could not open output file \"%s\": %s\n",
- filename, strerror(errno));
+ fatal("could not open output file \"%s\": %m", filename);
else
- exit_horribly(modulename, "could not open output file: %s\n",
- strerror(errno));
+ fatal("could not open output file: %m");
}
}
@@ -1597,8 +1588,7 @@ RestoreOutput(ArchiveHandle *AH, OutputContext savedContext)
res = fclose(AH->OF);
if (res != 0)
- exit_horribly(modulename, "could not close output file: %s\n",
- strerror(errno));
+ fatal("could not close output file: %m");
AH->gzOut = savedContext.gzOut;
AH->OF = savedContext.OF;
@@ -1643,19 +1633,6 @@ ahprintf(ArchiveHandle *AH, const char *fmt,...)
return (int) cnt;
}
-void
-ahlog(ArchiveHandle *AH, int level, const char *fmt,...)
-{
- va_list ap;
-
- if (AH->debugLevel < level && (!AH->public.verbose || level > 1))
- return;
-
- va_start(ap, fmt);
- vwrite_msg(NULL, fmt, ap);
- va_end(ap);
-}
-
/*
* Single place for logic which says 'We are restoring to a direct DB connection'.
*/
@@ -1678,13 +1655,12 @@ dump_lo_buf(ArchiveHandle *AH)
size_t res;
res = lo_write(AH->connection, AH->loFd, AH->lo_buf, AH->lo_buf_used);
- ahlog(AH, 5, ngettext("wrote %lu byte of large object data (result = %lu)\n",
- "wrote %lu bytes of large object data (result = %lu)\n",
+ pg_log_debug(ngettext("wrote %lu byte of large object data (result = %lu)",
+ "wrote %lu bytes of large object data (result = %lu)",
AH->lo_buf_used),
(unsigned long) AH->lo_buf_used, (unsigned long) res);
if (res != AH->lo_buf_used)
- exit_horribly(modulename,
- "could not write to large object (result: %lu, expected: %lu)\n",
+ fatal("could not write to large object (result: %lu, expected: %lu)",
(unsigned long) res, (unsigned long) AH->lo_buf_used);
}
else
@@ -1763,8 +1739,7 @@ ahwrite(const void *ptr, size_t size, size_t nmemb, ArchiveHandle *AH)
/* on some error, we may decide to go on... */
void
-warn_or_exit_horribly(ArchiveHandle *AH,
- const char *modulename, const char *fmt,...)
+warn_or_exit_horribly(ArchiveHandle *AH, const char *fmt,...)
{
va_list ap;
@@ -1777,22 +1752,22 @@ warn_or_exit_horribly(ArchiveHandle *AH,
case STAGE_INITIALIZING:
if (AH->stage != AH->lastErrorStage)
- write_msg(modulename, "Error while INITIALIZING:\n");
+ pg_log_generic(PG_LOG_INFO, "while INITIALIZING:");
break;
case STAGE_PROCESSING:
if (AH->stage != AH->lastErrorStage)
- write_msg(modulename, "Error while PROCESSING TOC:\n");
+ pg_log_generic(PG_LOG_INFO, "while PROCESSING TOC:");
break;
case STAGE_FINALIZING:
if (AH->stage != AH->lastErrorStage)
- write_msg(modulename, "Error while FINALIZING:\n");
+ pg_log_generic(PG_LOG_INFO, "while FINALIZING:");
break;
}
if (AH->currentTE != NULL && AH->currentTE != AH->lastErrorTE)
{
- write_msg(modulename, "Error from TOC entry %d; %u %u %s %s %s\n",
+ pg_log_generic(PG_LOG_INFO, "from TOC entry %d; %u %u %s %s %s",
AH->currentTE->dumpId,
AH->currentTE->catalogId.tableoid,
AH->currentTE->catalogId.oid,
@@ -1804,7 +1779,7 @@ warn_or_exit_horribly(ArchiveHandle *AH,
AH->lastErrorTE = AH->currentTE;
va_start(ap, fmt);
- vwrite_msg(modulename, fmt, ap);
+ pg_log_generic_v(PG_LOG_ERROR, fmt, ap);
va_end(ap);
if (AH->public.exit_on_error)
@@ -1868,7 +1843,7 @@ buildTocEntryArrays(ArchiveHandle *AH)
{
/* this check is purely paranoia, maxDumpId should be correct */
if (te->dumpId <= 0 || te->dumpId > maxDumpId)
- exit_horribly(modulename, "bad dumpId\n");
+ fatal("bad dumpId");
/* tocsByDumpId indexes all TOCs by their dump ID */
AH->tocsByDumpId[te->dumpId] = te;
@@ -1889,7 +1864,7 @@ buildTocEntryArrays(ArchiveHandle *AH)
* item's dump ID, so there should be a place for it in the array.
*/
if (tableId <= 0 || tableId > maxDumpId)
- exit_horribly(modulename, "bad table dumpId for TABLE DATA item\n");
+ fatal("bad table dumpId for TABLE DATA item");
AH->tableDataId[tableId] = te->dumpId;
}
@@ -1981,7 +1956,7 @@ ReadOffset(ArchiveHandle *AH, pgoff_t * o)
break;
default:
- exit_horribly(modulename, "unexpected data offset flag %d\n", offsetFlg);
+ fatal("unexpected data offset flag %d", offsetFlg);
}
/*
@@ -1994,7 +1969,7 @@ ReadOffset(ArchiveHandle *AH, pgoff_t * o)
else
{
if (AH->ReadBytePtr(AH) != 0)
- exit_horribly(modulename, "file offset in dump file is too large\n");
+ fatal("file offset in dump file is too large");
}
}
@@ -2106,9 +2081,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
size_t cnt;
int wantClose = 0;
-#if 0
- write_msg(modulename, "attempting to ascertain archive format\n");
-#endif
+ pg_log_debug("attempting to ascertain archive format");
if (AH->lookahead)
free(AH->lookahead);
@@ -2133,7 +2106,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
char buf[MAXPGPATH];
if (snprintf(buf, MAXPGPATH, "%s/toc.dat", AH->fSpec) >= MAXPGPATH)
- exit_horribly(modulename, "directory name too long: \"%s\"\n",
+ fatal("directory name too long: \"%s\"",
AH->fSpec);
if (stat(buf, &st) == 0 && S_ISREG(st.st_mode))
{
@@ -2143,7 +2116,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
#ifdef HAVE_LIBZ
if (snprintf(buf, MAXPGPATH, "%s/toc.dat.gz", AH->fSpec) >= MAXPGPATH)
- exit_horribly(modulename, "directory name too long: \"%s\"\n",
+ fatal("directory name too long: \"%s\"",
AH->fSpec);
if (stat(buf, &st) == 0 && S_ISREG(st.st_mode))
{
@@ -2151,7 +2124,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
return AH->format;
}
#endif
- exit_horribly(modulename, "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)\n",
+ fatal("directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)",
AH->fSpec);
fh = NULL; /* keep compiler quiet */
}
@@ -2159,24 +2132,22 @@ _discoverArchiveFormat(ArchiveHandle *AH)
{
fh = fopen(AH->fSpec, PG_BINARY_R);
if (!fh)
- exit_horribly(modulename, "could not open input file \"%s\": %s\n",
- AH->fSpec, strerror(errno));
+ fatal("could not open input file \"%s\": %m", AH->fSpec);
}
}
else
{
fh = stdin;
if (!fh)
- exit_horribly(modulename, "could not open input file: %s\n",
- strerror(errno));
+ fatal("could not open input file: %m");
}
if ((cnt = fread(sig, 1, 5, fh)) != 5)
{
if (ferror(fh))
- exit_horribly(modulename, "could not read input file: %s\n", strerror(errno));
+ fatal("could not read input file: %m");
else
- exit_horribly(modulename, "input file is too short (read %lu, expected 5)\n",
+ fatal("input file is too short (read %lu, expected 5)",
(unsigned long) cnt);
}
@@ -2261,19 +2232,19 @@ _discoverArchiveFormat(ArchiveHandle *AH)
* looks like it's probably a text format dump. so suggest they
* try psql
*/
- exit_horribly(modulename, "input file appears to be a text format dump. Please use psql.\n");
+ fatal("input file appears to be a text format dump. Please use psql.");
}
if (AH->lookaheadLen != 512)
{
if (feof(fh))
- exit_horribly(modulename, "input file does not appear to be a valid archive (too short?)\n");
+ fatal("input file does not appear to be a valid archive (too short?)");
else
READ_ERROR_EXIT(fh);
}
if (!isValidTarHeader(AH->lookahead))
- exit_horribly(modulename, "input file does not appear to be a valid archive\n");
+ fatal("input file does not appear to be a valid archive");
AH->format = archTar;
}
@@ -2293,8 +2264,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
/* Close the file */
if (wantClose)
if (fclose(fh) != 0)
- exit_horribly(modulename, "could not close input file: %s\n",
- strerror(errno));
+ fatal("could not close input file: %m");
return AH->format;
}
@@ -2310,14 +2280,10 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
{
ArchiveHandle *AH;
-#if 0
- write_msg(modulename, "allocating AH for %s, format %d\n", FileSpec, fmt);
-#endif
+ pg_log_debug("allocating AH for %s, format %d", FileSpec, fmt);
AH = (ArchiveHandle *) pg_malloc0(sizeof(ArchiveHandle));
- /* AH->debugLevel = 100; */
-
AH->version = K_VERS_SELF;
/* initialize for backwards compatible string processing */
@@ -2412,7 +2378,7 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
break;
default:
- exit_horribly(modulename, "unrecognized file format \"%d\"\n", fmt);
+ fatal("unrecognized file format \"%d\"", fmt);
}
return AH;
@@ -2494,11 +2460,11 @@ mark_dump_job_done(ArchiveHandle *AH,
int status,
void *callback_data)
{
- ahlog(AH, 1, "finished item %d %s %s\n",
+ pg_log_info("finished item %d %s %s",
te->dumpId, te->desc, te->tag);
if (status != 0)
- exit_horribly(modulename, "worker process failed: exit code %d\n",
+ fatal("worker process failed: exit code %d",
status);
}
@@ -2618,8 +2584,7 @@ ReadToc(ArchiveHandle *AH)
/* Sanity check */
if (te->dumpId <= 0)
- exit_horribly(modulename,
- "entry ID %d out of range -- perhaps a corrupt TOC\n",
+ fatal("entry ID %d out of range -- perhaps a corrupt TOC",
te->dumpId);
te->hadDumper = ReadInt(AH);
@@ -2686,8 +2651,7 @@ ReadToc(ArchiveHandle *AH)
te->owner = ReadStr(AH);
if (AH->version < K_VERS_1_9 || strcmp(ReadStr(AH), "true") == 0)
- write_msg(modulename,
- "WARNING: restoring tables WITH OIDS is not supported anymore\n");
+ pg_log_warning("restoring tables WITH OIDS is not supported anymore");
/* Read TOC entry dependencies */
if (AH->version >= K_VERS_1_5)
@@ -2733,7 +2697,7 @@ ReadToc(ArchiveHandle *AH)
if (AH->ReadExtraTocPtr)
AH->ReadExtraTocPtr(AH, te);
- ahlog(AH, 3, "read TOC entry %d (ID %d) for %s %s\n",
+ pg_log_debug("read TOC entry %d (ID %d) for %s %s",
i, te->dumpId, te->desc, te->tag);
/* link completed entry into TOC circular list */
@@ -2769,12 +2733,12 @@ processEncodingEntry(ArchiveHandle *AH, TocEntry *te)
*ptr2 = '\0';
encoding = pg_char_to_encoding(ptr1);
if (encoding < 0)
- exit_horribly(modulename, "unrecognized encoding \"%s\"\n",
+ fatal("unrecognized encoding \"%s\"",
ptr1);
AH->public.encoding = encoding;
}
else
- exit_horribly(modulename, "invalid ENCODING item: %s\n",
+ fatal("invalid ENCODING item: %s",
te->defn);
free(defn);
@@ -2792,7 +2756,7 @@ processStdStringsEntry(ArchiveHandle *AH, TocEntry *te)
else if (ptr1 && strncmp(ptr1, "'off'", 5) == 0)
AH->public.std_strings = false;
else
- exit_horribly(modulename, "invalid STDSTRINGS item: %s\n",
+ fatal("invalid STDSTRINGS item: %s",
te->defn);
}
@@ -2817,35 +2781,35 @@ StrictNamesCheck(RestoreOptions *ropt)
{
missing_name = simple_string_list_not_touched(&ropt->schemaNames);
if (missing_name != NULL)
- exit_horribly(modulename, "schema \"%s\" not found\n", missing_name);
+ fatal("schema \"%s\" not found", missing_name);
}
if (ropt->tableNames.head != NULL)
{
missing_name = simple_string_list_not_touched(&ropt->tableNames);
if (missing_name != NULL)
- exit_horribly(modulename, "table \"%s\" not found\n", missing_name);
+ fatal("table \"%s\" not found", missing_name);
}
if (ropt->indexNames.head != NULL)
{
missing_name = simple_string_list_not_touched(&ropt->indexNames);
if (missing_name != NULL)
- exit_horribly(modulename, "index \"%s\" not found\n", missing_name);
+ fatal("index \"%s\" not found", missing_name);
}
if (ropt->functionNames.head != NULL)
{
missing_name = simple_string_list_not_touched(&ropt->functionNames);
if (missing_name != NULL)
- exit_horribly(modulename, "function \"%s\" not found\n", missing_name);
+ fatal("function \"%s\" not found", missing_name);
}
if (ropt->triggerNames.head != NULL)
{
missing_name = simple_string_list_not_touched(&ropt->triggerNames);
if (missing_name != NULL)
- exit_horribly(modulename, "trigger \"%s\" not found\n", missing_name);
+ fatal("trigger \"%s\" not found", missing_name);
}
}
@@ -3224,7 +3188,7 @@ _doSetSessionAuth(ArchiveHandle *AH, const char *user)
if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
/* NOT warn_or_exit_horribly... use -O instead to skip this. */
- exit_horribly(modulename, "could not set session user to \"%s\": %s",
+ fatal("could not set session user to \"%s\": %s",
user, PQerrorMessage(AH->connection));
PQclear(res);
@@ -3362,7 +3326,7 @@ _selectOutputSchema(ArchiveHandle *AH, const char *schemaName)
res = PQexec(AH->connection, qry->data);
if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
- warn_or_exit_horribly(AH, modulename,
+ warn_or_exit_horribly(AH,
"could not set search_path to \"%s\": %s",
schemaName, PQerrorMessage(AH->connection));
@@ -3424,7 +3388,7 @@ _selectTablespace(ArchiveHandle *AH, const char *tablespace)
res = PQexec(AH->connection, qry->data);
if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
- warn_or_exit_horribly(AH, modulename,
+ warn_or_exit_horribly(AH,
"could not set default_tablespace to %s: %s",
fmtId(want), PQerrorMessage(AH->connection));
@@ -3468,7 +3432,7 @@ _selectTableAccessMethod(ArchiveHandle *AH, const char *tableam)
res = PQexec(AH->connection, cmd->data);
if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
- warn_or_exit_horribly(AH, modulename,
+ warn_or_exit_horribly(AH,
"could not set default_table_access_method: %s",
PQerrorMessage(AH->connection));
@@ -3561,7 +3525,7 @@ _getObjectDescription(PQExpBuffer buf, TocEntry *te, ArchiveHandle *AH)
return;
}
- write_msg(modulename, "WARNING: don't know how to set owner for object type \"%s\"\n",
+ pg_log_warning("don't know how to set owner for object type \"%s\"",
type);
}
@@ -3718,7 +3682,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, bool isData)
}
else
{
- write_msg(modulename, "WARNING: don't know how to set owner for object type \"%s\"\n",
+ pg_log_warning("don't know how to set owner for object type \"%s\"",
te->desc);
}
}
@@ -3822,7 +3786,7 @@ ReadHead(ArchiveHandle *AH)
AH->ReadBufPtr(AH, tmpMag, 5);
if (strncmp(tmpMag, "PGDMP", 5) != 0)
- exit_horribly(modulename, "did not find magic string in file header\n");
+ fatal("did not find magic string in file header");
vmaj = AH->ReadBytePtr(AH);
vmin = AH->ReadBytePtr(AH);
@@ -3835,16 +3799,16 @@ ReadHead(ArchiveHandle *AH)
AH->version = MAKE_ARCHIVE_VERSION(vmaj, vmin, vrev);
if (AH->version < K_VERS_1_0 || AH->version > K_VERS_MAX)
- exit_horribly(modulename, "unsupported version (%d.%d) in file header\n",
+ fatal("unsupported version (%d.%d) in file header",
vmaj, vmin);
AH->intSize = AH->ReadBytePtr(AH);
if (AH->intSize > 32)
- exit_horribly(modulename, "sanity check on integer size (%lu) failed\n",
+ fatal("sanity check on integer size (%lu) failed",
(unsigned long) AH->intSize);
if (AH->intSize > sizeof(int))
- write_msg(modulename, "WARNING: archive was made on a machine with larger integers, some operations might fail\n");
+ pg_log_warning("archive was made on a machine with larger integers, some operations might fail");
if (AH->version >= K_VERS_1_7)
AH->offSize = AH->ReadBytePtr(AH);
@@ -3854,7 +3818,7 @@ ReadHead(ArchiveHandle *AH)
fmt = AH->ReadBytePtr(AH);
if (AH->format != fmt)
- exit_horribly(modulename, "expected format (%d) differs from format found in file (%d)\n",
+ fatal("expected format (%d) differs from format found in file (%d)",
AH->format, fmt);
}
@@ -3870,7 +3834,7 @@ ReadHead(ArchiveHandle *AH)
#ifndef HAVE_LIBZ
if (AH->compression != 0)
- write_msg(modulename, "WARNING: archive is compressed, but this installation does not support compression -- no data will be available\n");
+ pg_log_warning("archive is compressed, but this installation does not support compression -- no data will be available");
#endif
if (AH->version >= K_VERS_1_4)
@@ -3888,7 +3852,7 @@ ReadHead(ArchiveHandle *AH)
AH->createDate = mktime(&crtm);
if (AH->createDate == (time_t) -1)
- write_msg(modulename, "WARNING: invalid creation date in header\n");
+ pg_log_warning("invalid creation date in header");
}
if (AH->version >= K_VERS_1_10)
@@ -3961,7 +3925,7 @@ restore_toc_entries_prefork(ArchiveHandle *AH, TocEntry *pending_list)
bool skipped_some;
TocEntry *next_work_item;
- ahlog(AH, 2, "entering restore_toc_entries_prefork\n");
+ pg_log_debug("entering restore_toc_entries_prefork");
/* Adjust dependency information */
fix_dependencies(AH);
@@ -4025,7 +3989,7 @@ restore_toc_entries_prefork(ArchiveHandle *AH, TocEntry *pending_list)
if (do_now)
{
/* OK, restore the item and update its dependencies */
- ahlog(AH, 1, "processing item %d %s %s\n",
+ pg_log_info("processing item %d %s %s",
next_work_item->dumpId,
next_work_item->desc, next_work_item->tag);
@@ -4081,7 +4045,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate,
ParallelReadyList ready_list;
TocEntry *next_work_item;
- ahlog(AH, 2, "entering restore_toc_entries_parallel\n");
+ pg_log_debug("entering restore_toc_entries_parallel");
/* Set up ready_list with enough room for all known TocEntrys */
ready_list_init(&ready_list, AH->tocCount);
@@ -4104,7 +4068,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate,
* left to be done. Note invariant: at top of loop, there should always
* be at least one worker available to dispatch a job to.
*/
- ahlog(AH, 1, "entering main parallel loop\n");
+ pg_log_info("entering main parallel loop");
for (;;)
{
@@ -4115,7 +4079,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate,
/* If not to be restored, don't waste time launching a worker */
if ((next_work_item->reqs & (REQ_SCHEMA | REQ_DATA)) == 0)
{
- ahlog(AH, 1, "skipping item %d %s %s\n",
+ pg_log_info("skipping item %d %s %s",
next_work_item->dumpId,
next_work_item->desc, next_work_item->tag);
/* Update its dependencies as though we'd completed it */
@@ -4124,7 +4088,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate,
continue;
}
- ahlog(AH, 1, "launching item %d %s %s\n",
+ pg_log_info("launching item %d %s %s",
next_work_item->dumpId,
next_work_item->desc, next_work_item->tag);
@@ -4178,7 +4142,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate,
ready_list_free(&ready_list);
- ahlog(AH, 1, "finished main parallel loop\n");
+ pg_log_info("finished main parallel loop");
}
/*
@@ -4196,7 +4160,7 @@ restore_toc_entries_postfork(ArchiveHandle *AH, TocEntry *pending_list)
RestoreOptions *ropt = AH->public.ropt;
TocEntry *te;
- ahlog(AH, 2, "entering restore_toc_entries_postfork\n");
+ pg_log_debug("entering restore_toc_entries_postfork");
/*
* Now reconnect the single parent connection.
@@ -4216,7 +4180,7 @@ restore_toc_entries_postfork(ArchiveHandle *AH, TocEntry *pending_list)
*/
for (te = pending_list->pending_next; te != pending_list; te = te->pending_next)
{
- ahlog(AH, 1, "processing missed item %d %s %s\n",
+ pg_log_info("processing missed item %d %s %s",
te->dumpId, te->desc, te->tag);
(void) restore_toc_entry(AH, te, false);
}
@@ -4458,7 +4422,7 @@ pop_next_work_item(ArchiveHandle *AH, ParallelReadyList *ready_list,
return te;
}
- ahlog(AH, 2, "no item ready\n");
+ pg_log_debug("no item ready");
return NULL;
}
@@ -4502,7 +4466,7 @@ mark_restore_job_done(ArchiveHandle *AH,
{
ParallelReadyList *ready_list = (ParallelReadyList *) callback_data;
- ahlog(AH, 1, "finished item %d %s %s\n",
+ pg_log_info("finished item %d %s %s",
te->dumpId, te->desc, te->tag);
if (status == WORKER_CREATE_DONE)
@@ -4515,7 +4479,7 @@ mark_restore_job_done(ArchiveHandle *AH,
else if (status == WORKER_IGNORED_ERRORS)
AH->public.n_errors++;
else if (status != 0)
- exit_horribly(modulename, "worker process failed: exit code %d\n",
+ fatal("worker process failed: exit code %d",
status);
reduce_dependencies(AH, te, ready_list);
@@ -4687,7 +4651,7 @@ repoint_table_dependencies(ArchiveHandle *AH)
te->dependencies[i] = tabledataid;
te->dataLength = Max(te->dataLength, tabledatate->dataLength);
- ahlog(AH, 2, "transferring dependency %d -> %d to %d\n",
+ pg_log_debug("transferring dependency %d -> %d to %d",
te->dumpId, olddep, tabledataid);
}
}
@@ -4769,7 +4733,7 @@ reduce_dependencies(ArchiveHandle *AH, TocEntry *te,
{
int i;
- ahlog(AH, 2, "reducing dependencies for %d\n", te->dumpId);
+ pg_log_debug("reducing dependencies for %d", te->dumpId);
for (i = 0; i < te->nRevDeps; i++)
{
@@ -4821,7 +4785,7 @@ mark_create_done(ArchiveHandle *AH, TocEntry *te)
static void
inhibit_data_for_failed_table(ArchiveHandle *AH, TocEntry *te)
{
- ahlog(AH, 1, "table \"%s\" could not be created, will not restore its data\n",
+ pg_log_info("table \"%s\" could not be created, will not restore its data",
te->tag);
if (AH->tableDataId[te->dumpId] != 0)