diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2014-10-14 15:00:55 -0300 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2014-10-14 15:00:55 -0300 |
commit | 0eea8047bf0e15b402b951e383e39236bdfe57d5 (patch) | |
tree | 450b0761bb6d674de42e9018ac38c1d5f40e11f3 /src/bin/pg_dump/pg_backup_custom.c | |
parent | e0d97d77bf0875e4d5cc7dedfe701d9999bf678c (diff) | |
download | postgresql-0eea8047bf0e15b402b951e383e39236bdfe57d5.tar.gz postgresql-0eea8047bf0e15b402b951e383e39236bdfe57d5.zip |
pg_dump: Reduce use of global variables
Most pg_dump.c global variables, which were passed down individually to
dumping routines, are now grouped as members of the new DumpOptions
struct, which is used as a local variable and passed down into routines
that need it. This helps future development efforts; in particular it
is said to enable a mode in which a parallel pg_dump run can output
multiple streams, and have them restored in parallel.
Also take the opportunity to clean up the pg_dump header files somewhat,
to avoid circularity.
Author: Joachim Wieland, revised by Álvaro Herrera
Reviewed by Peter Eisentraut
Diffstat (limited to 'src/bin/pg_dump/pg_backup_custom.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_custom.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c index 06cd0a7864a..ee05380502c 100644 --- a/src/bin/pg_dump/pg_backup_custom.c +++ b/src/bin/pg_dump/pg_backup_custom.c @@ -23,6 +23,7 @@ * *------------------------------------------------------------------------- */ +#include "postgres_fe.h" #include "compress_io.h" #include "parallel.h" @@ -41,7 +42,7 @@ static int _WriteByte(ArchiveHandle *AH, const int i); static int _ReadByte(ArchiveHandle *); static void _WriteBuf(ArchiveHandle *AH, const void *buf, size_t len); static void _ReadBuf(ArchiveHandle *AH, void *buf, size_t len); -static void _CloseArchive(ArchiveHandle *AH); +static void _CloseArchive(ArchiveHandle *AH, DumpOptions *dopt); static void _ReopenArchive(ArchiveHandle *AH); static void _PrintTocData(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt); static void _WriteExtraToc(ArchiveHandle *AH, TocEntry *te); @@ -687,14 +688,14 @@ _ReadBuf(ArchiveHandle *AH, void *buf, size_t len) * the process of saving it to files. No data should be written prior * to this point, since the user could sort the TOC after creating it. * - * If an archive is to be written, this toutine must call: + * If an archive is to be written, this routine must call: * WriteHead to save the archive header * WriteToc to save the TOC entries * WriteDataChunks to save all DATA & BLOBs. * */ static void -_CloseArchive(ArchiveHandle *AH) +_CloseArchive(ArchiveHandle *AH, DumpOptions *dopt) { lclContext *ctx = (lclContext *) AH->formatData; pgoff_t tpos; @@ -709,7 +710,7 @@ _CloseArchive(ArchiveHandle *AH) strerror(errno)); WriteToc(AH); ctx->dataStart = _getFilePos(AH, ctx); - WriteDataChunks(AH, NULL); + WriteDataChunks(AH, dopt, NULL); /* * If possible, re-write the TOC in order to update the data offset |