summaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/pg_backup_archiver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_dump/pg_backup_archiver.h')
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.h316
1 files changed, 0 insertions, 316 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h
deleted file mode 100644
index 95ab2133ca5..00000000000
--- a/src/bin/pg_dump/pg_backup_archiver.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * pg_backup_archiver.h
- *
- * Private interface to the pg_dump archiver routines.
- * It is NOT intended that these routines be called by any
- * dumper directly.
- *
- * See the headers to pg_restore for more details.
- *
- * Copyright (c) 2000, Philip Warner
- * Rights are granted to use this software in any way so long
- * as this notice is not removed.
- *
- * The author is not responsible for loss or damages that may
- * result from it's use.
- *
- *
- * IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.h,v 1.43 2002/05/10 22:36:26 tgl Exp $
- *
- *-------------------------------------------------------------------------
- */
-
-#ifndef __PG_BACKUP_ARCHIVE__
-#define __PG_BACKUP_ARCHIVE__
-
-#include "postgres_fe.h"
-
-#include <time.h>
-#include <errno.h>
-
-#include "pqexpbuffer.h"
-#define LOBBUFSIZE 32768
-
-#ifdef HAVE_LIBZ
-#include <zlib.h>
-#define GZCLOSE(fh) gzclose(fh)
-#define GZWRITE(p, s, n, fh) gzwrite(fh, p, n * s)
-#define GZREAD(p, s, n, fh) gzread(fh, p, n * s)
-#else
-#define GZCLOSE(fh) fclose(fh)
-#define GZWRITE(p, s, n, fh) (fwrite(p, s, n, fh) * s)
-#define GZREAD(p, s, n, fh) fread(p, s, n, fh)
-#define Z_DEFAULT_COMPRESSION -1
-
-typedef struct _z_stream
-{
- void *next_in;
- void *next_out;
- int avail_in;
- int avail_out;
-} z_stream;
-typedef z_stream *z_streamp;
-#endif
-
-#include "pg_backup.h"
-#include "libpq-fe.h"
-
-#define K_VERS_MAJOR 1
-#define K_VERS_MINOR 6
-#define K_VERS_REV 0
-
-/* Data block types */
-#define BLK_DATA 1
-#define BLK_BLOB 2
-#define BLK_BLOBS 3
-
-/* Some important version numbers (checked in code) */
-#define K_VERS_1_0 (( (1 * 256 + 0) * 256 + 0) * 256 + 0)
-#define K_VERS_1_2 (( (1 * 256 + 2) * 256 + 0) * 256 + 0) /* Allow No ZLIB */
-#define K_VERS_1_3 (( (1 * 256 + 3) * 256 + 0) * 256 + 0) /* BLOBs */
-#define K_VERS_1_4 (( (1 * 256 + 4) * 256 + 0) * 256 + 0) /* Date & name in header */
-#define K_VERS_1_5 (( (1 * 256 + 5) * 256 + 0) * 256 + 0) /* Handle dependencies */
-#define K_VERS_1_6 (( (1 * 256 + 6) * 256 + 0) * 256 + 0) /* Schema field in TOCs */
-#define K_VERS_MAX (( (1 * 256 + 6) * 256 + 255) * 256 + 0)
-
-/* No of BLOBs to restore in 1 TX */
-#define BLOB_BATCH_SIZE 100
-
-struct _archiveHandle;
-struct _tocEntry;
-struct _restoreList;
-
-typedef void (*ClosePtr) (struct _archiveHandle * AH);
-typedef void (*ArchiveEntryPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-
-typedef void (*StartDataPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-typedef int (*WriteDataPtr) (struct _archiveHandle * AH, const void *data, int dLen);
-typedef void (*EndDataPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-
-typedef void (*StartBlobsPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-typedef void (*StartBlobPtr) (struct _archiveHandle * AH, struct _tocEntry * te, Oid oid);
-typedef void (*EndBlobPtr) (struct _archiveHandle * AH, struct _tocEntry * te, Oid oid);
-typedef void (*EndBlobsPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-
-typedef int (*WriteBytePtr) (struct _archiveHandle * AH, const int i);
-typedef int (*ReadBytePtr) (struct _archiveHandle * AH);
-typedef int (*WriteBufPtr) (struct _archiveHandle * AH, const void *c, int len);
-typedef int (*ReadBufPtr) (struct _archiveHandle * AH, void *buf, int len);
-typedef void (*SaveArchivePtr) (struct _archiveHandle * AH);
-typedef void (*WriteExtraTocPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-typedef void (*ReadExtraTocPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-typedef void (*PrintExtraTocPtr) (struct _archiveHandle * AH, struct _tocEntry * te);
-typedef void (*PrintTocDataPtr) (struct _archiveHandle * AH, struct _tocEntry * te, RestoreOptions *ropt);
-
-typedef int (*CustomOutPtr) (struct _archiveHandle * AH, const void *buf, int len);
-
-typedef int (*TocSortCompareFn) (const void *te1, const void *te2);
-
-typedef enum _archiveMode
-{
- archModeWrite,
- archModeRead
-} ArchiveMode;
-
-typedef struct _outputContext
-{
- void *OF;
- int gzOut;
-} OutputContext;
-
-typedef enum
-{
- SQL_SCAN = 0,
- SQL_IN_SQL_COMMENT,
- SQL_IN_EXT_COMMENT,
- SQL_IN_QUOTE
-} sqlparseState;
-
-typedef struct
-{
- int backSlash;
- sqlparseState state;
- char lastChar;
- char quoteChar;
- int braceDepth;
-} sqlparseInfo;
-
-typedef struct _archiveHandle
-{
- Archive public; /* Public part of archive */
- char vmaj; /* Version of file */
- char vmin;
- char vrev;
- int version; /* Conveniently formatted version */
-
- int debugLevel; /* Used for logging (currently only by
- * --verbose) */
- int intSize; /* Size of an integer in the archive */
- ArchiveFormat format; /* Archive format */
-
- sqlparseInfo sqlparse;
- PQExpBuffer sqlBuf;
-
- time_t createDate; /* Date archive created */
-
- /*
- * Fields used when discovering header. A format can always get the
- * previous read bytes from here...
- */
- int readHeader; /* Used if file header has been read
- * already */
- char *lookahead; /* Buffer used when reading header to
- * discover format */
- int lookaheadSize; /* Size of allocated buffer */
- int lookaheadLen; /* Length of data in lookahead */
- int lookaheadPos; /* Current read position in lookahead
- * buffer */
-
- ArchiveEntryPtr ArchiveEntryPtr; /* Called for each metadata object */
- StartDataPtr StartDataPtr; /* Called when table data is about to be
- * dumped */
- WriteDataPtr WriteDataPtr; /* Called to send some table data to the
- * archive */
- EndDataPtr EndDataPtr; /* Called when table data dump is finished */
- WriteBytePtr WriteBytePtr; /* Write a byte to output */
- ReadBytePtr ReadBytePtr; /* Read a byte from an archive */
- WriteBufPtr WriteBufPtr; /* Write a buffer of output to the archive */
- ReadBufPtr ReadBufPtr; /* Read a buffer of input from the archive */
- ClosePtr ClosePtr; /* Close the archive */
- WriteExtraTocPtr WriteExtraTocPtr; /* Write extra TOC entry data
- * associated with the current
- * archive format */
- ReadExtraTocPtr ReadExtraTocPtr; /* Read extr info associated with
- * archie format */
- PrintExtraTocPtr PrintExtraTocPtr; /* Extra TOC info for format */
- PrintTocDataPtr PrintTocDataPtr;
-
- StartBlobsPtr StartBlobsPtr;
- EndBlobsPtr EndBlobsPtr;
- StartBlobPtr StartBlobPtr;
- EndBlobPtr EndBlobPtr;
-
- CustomOutPtr CustomOutPtr; /* Alternate script output routine */
-
- /* Stuff for direct DB connection */
- char *username;
- char *dbname; /* Name of db for connection */
- char *archdbname; /* DB name *read* from archive */
- char *pghost;
- char *pgport;
- bool requirePassword;
- 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 */
-
- 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 */
- FILE *FH; /* General purpose file handle */
- void *OF;
- int gzOut; /* Output file */
-
- struct _tocEntry *toc; /* List of TOC entries */
- int tocCount; /* Number of TOC entries */
- struct _tocEntry *currToc; /* Used when dumping data */
- char *currUser; /* Restore: current username in script */
- char *currSchema; /* Restore: current schema in script */
- int compression; /* Compression requested on open */
- ArchiveMode mode; /* File mode - r or w */
- void *formatData; /* Header data specific to file format */
-
- RestoreOptions *ropt; /* Used to check restore options in
- * ahwrite etc */
- void *lo_buf;
- int lo_buf_used;
- int lo_buf_size;
-} ArchiveHandle;
-
-typedef struct _tocEntry
-{
- struct _tocEntry *prev;
- struct _tocEntry *next;
- int id;
- int hadDumper; /* Archiver was passed a dumper routine
- * (used in restore) */
- char *name;
- char *namespace; /* null or empty string if not in a schema */
- char *owner;
- char *desc;
- char *defn;
- char *dropStmt;
- char *copyStmt;
- char *oid; /* Oid of source of entry */
- Oid oidVal; /* Value of above */
- const char *((*depOid)[]);
- Oid maxDepOidVal; /* Value of largest OID in deps */
- Oid maxOidVal; /* Max of entry OID and max dep OID */
-
- int printed; /* Indicates if entry defn has been dumped */
- DataDumperPtr dataDumper; /* Routine to dump data for object */
- void *dataDumperArg; /* Arg for above routine */
- void *formatData; /* TOC Entry data specific to file format */
-
- int _moved; /* Marker used when rearranging TOC */
-
-} TocEntry;
-
-/* Used everywhere */
-extern const char *progname;
-extern void die_horribly(ArchiveHandle *AH, const char *modulename, const char *fmt,...) __attribute__((format(printf, 3, 4)));
-extern void write_msg(const char *modulename, const char *fmt,...) __attribute__((format(printf, 2, 3)));
-
-extern void WriteTOC(ArchiveHandle *AH);
-extern void ReadTOC(ArchiveHandle *AH);
-extern void WriteHead(ArchiveHandle *AH);
-extern void ReadHead(ArchiveHandle *AH);
-extern void WriteToc(ArchiveHandle *AH);
-extern void ReadToc(ArchiveHandle *AH);
-extern void WriteDataChunks(ArchiveHandle *AH);
-
-extern int TocIDRequired(ArchiveHandle *AH, int id, RestoreOptions *ropt);
-
-/*
- * Mandatory routines for each supported format
- */
-
-extern int WriteInt(ArchiveHandle *AH, int i);
-extern int ReadInt(ArchiveHandle *AH);
-extern char *ReadStr(ArchiveHandle *AH);
-extern int WriteStr(ArchiveHandle *AH, const char *s);
-
-extern void StartRestoreBlobs(ArchiveHandle *AH);
-extern void StartRestoreBlob(ArchiveHandle *AH, Oid oid);
-extern void EndRestoreBlob(ArchiveHandle *AH, Oid oid);
-extern void EndRestoreBlobs(ArchiveHandle *AH);
-
-extern void InitArchiveFmt_Custom(ArchiveHandle *AH);
-extern void InitArchiveFmt_Files(ArchiveHandle *AH);
-extern void InitArchiveFmt_Null(ArchiveHandle *AH);
-extern void InitArchiveFmt_Tar(ArchiveHandle *AH);
-
-extern int isValidTarHeader(char *header);
-
-extern OutputContext SetOutput(ArchiveHandle *AH, char *filename, int compression);
-extern void ResetOutput(ArchiveHandle *AH, OutputContext savedContext);
-extern int RestoringToDB(ArchiveHandle *AH);
-extern int ReconnectToServer(ArchiveHandle *AH, const char *dbname, const char *newUser);
-
-int ahwrite(const void *ptr, size_t size, size_t nmemb, ArchiveHandle *AH);
-int ahprintf(ArchiveHandle *AH, const char *fmt,...) __attribute__((format(printf, 2, 3)));
-
-void ahlog(ArchiveHandle *AH, int level, const char *fmt,...) __attribute__((format(printf, 3, 4)));
-
-#endif