]> granicus.if.org Git - postgresql/commitdiff
Final (?) fix for tar (null block at end)
authorPhilip Warner <pjw@rhyme.com.au>
Wed, 25 Oct 2000 10:21:38 +0000 (10:21 +0000)
committerPhilip Warner <pjw@rhyme.com.au>
Wed, 25 Oct 2000 10:21:38 +0000 (10:21 +0000)
Dump template db in dumpall

src/bin/pg_dump/pg_backup_archiver.h
src/bin/pg_dump/pg_backup_tar.c
src/bin/pg_dump/pg_dumpall.sh

index 417c50bf68a859a3742f1fa8a6fd2d13b6ec2276..41fbb5c9c06a0918aeb480969105629cd0974a94 100644 (file)
@@ -62,7 +62,7 @@ typedef z_stream *z_streamp;
 
 #define K_VERS_MAJOR 1
 #define K_VERS_MINOR 4 
-#define K_VERS_REV 20 
+#define K_VERS_REV 21 
 
 /* Data block types */
 #define BLK_DATA 1
index 674c24191dc14f613ee8cfb275fd691994d0c835..a137513e78c2e6f15bcb1352df851465bd4a8347 100644 (file)
@@ -721,7 +721,7 @@ static void _CloseArchive(ArchiveHandle* AH)
        lclContext*             ctx = (lclContext*)AH->formatData;
        TAR_MEMBER              *th;
        RestoreOptions  *ropt;
-       int                             savVerbose;
+       int                             savVerbose, i;
 
     if (AH->mode == archModeWrite) {
 
@@ -774,6 +774,13 @@ static void        _CloseArchive(ArchiveHandle* AH)
                AH->public.verbose = savVerbose;
 
                tarClose(AH, th);
+
+               /* Add a block of NULLs since it's de-rigeur. */
+               for(i=0; i<512; i++) 
+               {
+                       fputc(0, ctx->tarFH);
+               }
+
     }
 
     AH->FH = NULL; 
index e638681562360a9191f3083a0eb78b4fe359e1c9..f24922d3f371dcda148d69f1b984847899e34e6c 100644 (file)
@@ -6,7 +6,7 @@
 # and "pg_group" tables, which belong to the whole installation rather
 # than any one individual database.
 #
-# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.4 2000/09/08 18:29:27 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.5 2000/10/25 10:21:38 pjw Exp $
 
 CMDNAME=`basename $0`
 
@@ -179,6 +179,20 @@ while read GRONAME GROSYSID GROLIST ; do
 done
 
 
+# First we dump the template in case there are local extensions.
+
+echo
+echo "--"
+echo "-- Database template1"
+echo "--"
+echo "${BS}connect template1"
+$PGDUMP "template1"
+if [ "$?" -ne 0 ] ; then
+    echo "pg_dump failed on template1, exiting" 1>&2
+    exit 1
+fi
+
+
 # For each database, run pg_dump to dump the contents of that database.
 
 $PSQL -d template1 -At -F ' ' \