aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/dumputils.c
diff options
context:
space:
mode:
authorTeodor Sigaev <teodor@sigaev.ru>2015-09-14 16:19:49 +0300
committerTeodor Sigaev <teodor@sigaev.ru>2015-09-14 16:19:49 +0300
commitd02426029b133ee2bbe492a038642359bce3c527 (patch)
treedccd2378dc06cb15019d91ade50898d6ebb2e33b /src/bin/pg_dump/dumputils.c
parentb5217d696833b15ed5d3c5e858e7f20836defa95 (diff)
downloadpostgresql-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.c17
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;
+}