diff options
Diffstat (limited to 'src/bin/pg_dump/pg_backup.h')
-rw-r--r-- | src/bin/pg_dump/pg_backup.h | 279 |
1 files changed, 154 insertions, 125 deletions
diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index e84b4dd16cc..fb930637ccc 100644 --- a/src/bin/pg_dump/pg_backup.h +++ b/src/bin/pg_dump/pg_backup.h @@ -1,125 +1,154 @@ -/*-------------------------------------------------------------------------
- *
- * pg_backup.h
- *
- * Public interface to the pg_dump archiver routines.
- *
- * 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
- *
- * Modifications - 28-Jun-2000 - pjw@rhyme.com.au
- *
- * Initial version.
- *
- *-------------------------------------------------------------------------
- */
-
-#ifndef PG_BACKUP__
-
-#include "config.h"
-#include "c.h"
-
-#define PG_BACKUP__
-
-typedef enum _archiveFormat {
- archUnknown = 0,
- archCustom = 1,
- archFiles = 2,
- archTar = 3,
- archPlainText = 4
-} ArchiveFormat;
-
-/*
- * We may want to have so user-readbale data, but in the mean
- * time this gives us some abstraction and type checking.
- */
-typedef struct _Archive {
- /* Nothing here */
-} Archive;
-
-typedef int (*DataDumperPtr)(Archive* AH, char* oid, void* userArg);
-
-typedef struct _restoreOptions {
- int dataOnly;
- int dropSchema;
- char *filename;
- int schemaOnly;
- int verbose;
- int aclsSkip;
- int tocSummary;
- char *tocFile;
- int oidOrder;
- int origOrder;
- int rearrange;
- int format;
- char *formatName;
-
- int selTypes;
- int selIndex;
- int selFunction;
- int selTrigger;
- int selTable;
- char *indexNames;
- char *functionNames;
- char *tableNames;
- char *triggerNames;
-
- int *idWanted;
- int limitToList;
- int compression;
-
-} RestoreOptions;
-
-/*
- * Main archiver interface.
- */
-
-/* Called to add a TOC entry */
-extern void ArchiveEntry(Archive* AH, const char* oid, const char* name,
- const char* desc, const char* (deps[]), const char* defn,
- const char* dropStmt, const char* owner,
- DataDumperPtr dumpFn, void* dumpArg);
-
-/* Called to write *data* to the archive */
-extern int WriteData(Archive* AH, const void* data, int dLen);
-
-extern void CloseArchive(Archive* AH);
-
-extern void RestoreArchive(Archive* AH, RestoreOptions *ropt);
-
-/* Open an existing archive */
-extern Archive* OpenArchive(const char* FileSpec, ArchiveFormat fmt);
-
-/* Create a new archive */
-extern Archive* CreateArchive(const char* FileSpec, ArchiveFormat fmt, int compression);
-
-/* The --list option */
-extern void PrintTOCSummary(Archive* AH, RestoreOptions *ropt);
-
-extern RestoreOptions* NewRestoreOptions(void);
-
-/* Rearrange TOC entries */
-extern void MoveToStart(Archive* AH, char *oType);
-extern void MoveToEnd(Archive* AH, char *oType);
-extern void SortTocByOID(Archive* AH);
-extern void SortTocByID(Archive* AH);
-extern void SortTocFromFile(Archive* AH, RestoreOptions *ropt);
-
-/* Convenience functions used only when writing DATA */
-extern int archputs(const char *s, Archive* AH);
-extern int archputc(const char c, Archive* AH);
-extern int archprintf(Archive* AH, const char *fmt, ...);
-
-#endif
-
-
-
+/*------------------------------------------------------------------------- + * + * pg_backup.h + * + * Public interface to the pg_dump archiver routines. + * + * 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 + * + * Modifications - 28-Jun-2000 - pjw@rhyme.com.au + * + * Initial version. + * + *------------------------------------------------------------------------- + */ + +#ifndef PG_BACKUP__ + +#include "config.h" +#include "c.h" + +#define PG_BACKUP__ + +#include "postgres.h" +#include "libpq-fe.h" + +typedef enum _archiveFormat { + archUnknown = 0, + archCustom = 1, + archFiles = 2, + archTar = 3, + archNull = 4 +} ArchiveFormat; + +/* + * We may want to have so user-readbale data, but in the mean + * time this gives us some abstraction and type checking. + */ +typedef struct _Archive { + int verbose; + /* The rest is private */ +} Archive; + +typedef int (*DataDumperPtr)(Archive* AH, char* oid, void* userArg); + +typedef struct _restoreOptions { + int dataOnly; + int dropSchema; + char *filename; + int schemaOnly; + int verbose; + int aclsSkip; + int tocSummary; + char *tocFile; + int oidOrder; + int origOrder; + int rearrange; + int format; + char *formatName; + + int selTypes; + int selIndex; + int selFunction; + int selTrigger; + int selTable; + char *indexNames; + char *functionNames; + char *tableNames; + char *triggerNames; + + int useDB; + char *dbname; + char *pgport; + char *pghost; + int ignoreVersion; + int requirePassword; + + int *idWanted; + int limitToList; + int compression; + +} RestoreOptions; + +/* + * Main archiver interface. + */ + +extern void exit_horribly(Archive *AH, const char *fmt, ...); + +/* Lets the archibe know we have a DB connection to shutdown if it dies */ + +PGconn* ConnectDatabase(Archive *AH, + const char* dbname, + const char* pghost, + const char* pgport, + const int reqPwd, + const int ignoreVersion); + + +/* Called to add a TOC entry */ +extern void ArchiveEntry(Archive* AH, const char* oid, const char* name, + const char* desc, const char* (deps[]), const char* defn, + const char* dropStmt, const char* copyStmt, const char* owner, + DataDumperPtr dumpFn, void* dumpArg); + +/* Called to write *data* to the archive */ +extern int WriteData(Archive* AH, const void* data, int dLen); + +//extern int StartBlobs(Archive* AH); +//extern int EndBlobs(Archive* AH); +extern int StartBlob(Archive* AH, int oid); +extern int EndBlob(Archive* AH, int oid); + +extern void CloseArchive(Archive* AH); + +extern void RestoreArchive(Archive* AH, RestoreOptions *ropt); + +/* Open an existing archive */ +extern Archive* OpenArchive(const char* FileSpec, const ArchiveFormat fmt); + +/* Create a new archive */ +extern Archive* CreateArchive(const char* FileSpec, const ArchiveFormat fmt, + const int compression); + +/* The --list option */ +extern void PrintTOCSummary(Archive* AH, RestoreOptions *ropt); + +extern RestoreOptions* NewRestoreOptions(void); + +/* Rearrange TOC entries */ +extern void MoveToStart(Archive* AH, char *oType); +extern void MoveToEnd(Archive* AH, char *oType); +extern void SortTocByOID(Archive* AH); +extern void SortTocByID(Archive* AH); +extern void SortTocFromFile(Archive* AH, RestoreOptions *ropt); + +/* Convenience functions used only when writing DATA */ +extern int archputs(const char *s, Archive* AH); +extern int archputc(const char c, Archive* AH); +extern int archprintf(Archive* AH, const char *fmt, ...); + +#endif + + + |