diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-03-27 18:10:40 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-03-27 18:10:40 +0200 |
commit | 7800a71291690dcc34eb3b7aab18750b5a7ebe2c (patch) | |
tree | ce2832159c7f6486c12faff5191b114339ee8065 /src/bin/pg_dump/pg_backup_utils.h | |
parent | 1cea9bbb21e9e90dc7085ce605d9160e7161fa58 (diff) |
Move some pg_dump function around.
Move functions used only by pg_dump and pg_restore from dumputils.c to a new
file, pg_backup_utils.c. dumputils.c is linked into psql and some programs
in bin/scripts, so it seems good to keep it slim. The parallel functionality
is moved to parallel.c, as is exit_horribly, because the interesting code in
exit_horribly is parallel-related.
This refactoring gets rid of the on_exit_msg_func function pointer. It was
problematic, because a modern gcc version with -Wmissing-format-attribute
complained if it wasn't marked with PF_PRINTF_ATTRIBUTE, but the ancient gcc
version that Tom Lane's old HP-UX box has didn't accept that attribute on a
function pointer, and gave an error. We still use a similar function pointer
trick for getLocalPQBuffer() function, to use a thread-local version of that
in parallel mode on Windows, but that dodges the problem because it doesn't
take printf-like arguments.
Diffstat (limited to 'src/bin/pg_dump/pg_backup_utils.h')
-rw-r--r-- | src/bin/pg_dump/pg_backup_utils.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/bin/pg_dump/pg_backup_utils.h b/src/bin/pg_dump/pg_backup_utils.h new file mode 100644 index 00000000000..0e31cff47c6 --- /dev/null +++ b/src/bin/pg_dump/pg_backup_utils.h @@ -0,0 +1,40 @@ +/*------------------------------------------------------------------------- + * + * pg_backup_utils.h + * Utility routines shared by pg_dump and pg_restore. + * + * + * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/bin/pg_dump/pg_backup_utils.h + * + *------------------------------------------------------------------------- + */ + +#ifndef PG_BACKUP_UTILS_H +#define PG_BACKUP_UTILS_H + +typedef enum /* bits returned by set_dump_section */ +{ + DUMP_PRE_DATA = 0x01, + DUMP_DATA = 0x02, + DUMP_POST_DATA = 0x04, + DUMP_UNSECTIONED = 0xff +} DumpSections; + +typedef void (*on_exit_nicely_callback) (int code, void *arg); + +extern const char *progname; + +extern void set_dump_section(const char *arg, int *dumpSections); +extern void +write_msg(const char *modulename, const char *fmt,...) +__attribute__((format(PG_PRINTF_ATTRIBUTE, 2, 3))); +extern void +vwrite_msg(const char *modulename, const char *fmt, va_list ap) +__attribute__((format(PG_PRINTF_ATTRIBUTE, 2, 0))); +extern void on_exit_nicely(on_exit_nicely_callback function, void *arg); +extern void exit_nicely(int code) __attribute__((noreturn)); + +#endif /* PG_BACKUP_UTILS_H */ |