diff options
author | Philip Warner <pjw@rhyme.com.au> | 2000-10-31 14:20:30 +0000 |
---|---|---|
committer | Philip Warner <pjw@rhyme.com.au> | 2000-10-31 14:20:30 +0000 |
commit | 44954fae084339cedfdcfe88628e4cecd437cd39 (patch) | |
tree | e2777899200bb137ee0cebf14124f9894d3afbdc /src/bin/pg_dump/pg_backup_archiver.h | |
parent | 0babf31640cc73b8ee998d772f40dbfd73527fd1 (diff) | |
download | postgresql-44954fae084339cedfdcfe88628e4cecd437cd39.tar.gz postgresql-44954fae084339cedfdcfe88628e4cecd437cd39.zip |
Added long-standing transaction when restoring BLOBS (uses commit every BLOB_BATCH_SIZE)
Prevent dumping of languages from template1.
Diffstat (limited to 'src/bin/pg_dump/pg_backup_archiver.h')
-rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h index 41fbb5c9c06..2c7291e6c69 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -62,7 +62,7 @@ typedef z_stream *z_streamp; #define K_VERS_MAJOR 1 #define K_VERS_MINOR 4 -#define K_VERS_REV 21 +#define K_VERS_REV 22 /* Data block types */ #define BLK_DATA 1 @@ -76,6 +76,9 @@ typedef z_stream *z_streamp; #define K_VERS_1_4 (( (1 * 256 + 4) * 256 + 0) * 256 + 0) /* Date & name in header */ #define K_VERS_MAX (( (1 * 256 + 4) * 256 + 255) * 256 + 0) +/* No of BLOBs to restore in 1 TX */ +#define BLOB_BATCH_SIZE 100 + struct _archiveHandle; struct _tocEntry; struct _restoreList; @@ -186,6 +189,8 @@ typedef struct _archiveHandle { char *pgport; PGconn *connection; PGconn *blobConnection; /* Connection for BLOB xref */ + int txActive; /* Flag set if TX active on connection */ + int blobTxActive; /* Flag set if TX active on blobConnection */ int connectToDB; /* Flag to indicate if direct DB connection is required */ int pgCopyIn; /* Currently in libpq 'COPY IN' mode. */ PQExpBuffer pgCopyBuf; /* Left-over data from incomplete lines in COPY IN */ @@ -193,6 +198,7 @@ typedef struct _archiveHandle { int loFd; /* BLOB fd */ int writingBlob; /* Flag */ int createdBlobXref; /* Flag */ + int blobCount; /* # of blobs restored */ int lastID; /* Last internal ID for a TOC entry */ char* fSpec; /* Archive File Spec */ @@ -256,8 +262,10 @@ extern int ReadInt(ArchiveHandle* AH); extern char* ReadStr(ArchiveHandle* AH); extern int WriteStr(ArchiveHandle* AH, char* s); +extern void StartRestoreBlobs(ArchiveHandle* AH); extern void StartRestoreBlob(ArchiveHandle* AH, int oid); extern void EndRestoreBlob(ArchiveHandle* AH, int oid); +extern void EndRestoreBlobs(ArchiveHandle* AH); extern void InitArchiveFmt_Custom(ArchiveHandle* AH); extern void InitArchiveFmt_Files(ArchiveHandle* AH); |