diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2015-09-14 16:19:49 +0300 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2015-09-14 16:19:49 +0300 |
commit | d02426029b133ee2bbe492a038642359bce3c527 (patch) | |
tree | dccd2378dc06cb15019d91ade50898d6ebb2e33b /src/bin/pg_dump/dumputils.c | |
parent | b5217d696833b15ed5d3c5e858e7f20836defa95 (diff) | |
download | postgresql-d02426029b133ee2bbe492a038642359bce3c527.tar.gz postgresql-d02426029b133ee2bbe492a038642359bce3c527.zip |
Check existency of table/schema for -t/-n option (pg_dump/pg_restore)
Patch provides command line option --strict-names which requires that at
least one table/schema should present for each -t/-n option.
Pavel Stehule <pavel.stehule@gmail.com>
Diffstat (limited to 'src/bin/pg_dump/dumputils.c')
-rw-r--r-- | src/bin/pg_dump/dumputils.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c index d7506e119e2..52b2b98ed0e 100644 --- a/src/bin/pg_dump/dumputils.c +++ b/src/bin/pg_dump/dumputils.c @@ -1220,6 +1220,7 @@ simple_string_list_append(SimpleStringList *list, const char *val) pg_malloc(offsetof(SimpleStringListCell, val) +strlen(val) + 1); cell->next = NULL; + cell->touched = false; strcpy(cell->val, val); if (list->tail) @@ -1237,7 +1238,23 @@ simple_string_list_member(SimpleStringList *list, const char *val) for (cell = list->head; cell; cell = cell->next) { if (strcmp(cell->val, val) == 0) + { + cell->touched = true; return true; + } } return false; } + +const char * +simple_string_list_not_touched(SimpleStringList *list) +{ + SimpleStringListCell *cell; + + for (cell = list->head; cell; cell = cell->next) + { + if (!cell->touched) + return cell->val; + } + return NULL; +} |