From 0d4e6ed3085828edb68f516067d45761c0a89ac5 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 25 Jan 2018 14:26:07 -0500 Subject: Clean up some aspects of pg_dump/pg_restore item-selection logic. Ensure that CREATE DATABASE and related commands are issued when, and only when, --create is specified. Previously there were scenarios where using selective-dump switches would prevent --create from having any effect. For example, it would fail to do anything in pg_restore if the archive file had been made by a selective dump, because there would be no TOC entry for the database. Since we don't issue \connect either if we don't issue CREATE DATABASE, this could result in unexpectedly restoring objects into the wrong database. Also fix pg_restore's selective restore logic so that when an object is selected to be restored, we also restore its ACL, comment, and security label if any. Previously there was no way to get the latter properties except through tedious mucking about with a -L file. If, for some reason, you don't want these properties, you can match the old behavior by adding --no-acl etc. While at it, try to make _tocEntryRequired() a little better organized and better documented. Discussion: https://postgr.es/m/32668.1516848577@sss.pgh.pa.us --- doc/src/sgml/ref/pg_restore.sgml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'doc/src') diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml index a2ebf75ebb5..ee756159f60 100644 --- a/doc/src/sgml/ref/pg_restore.sgml +++ b/doc/src/sgml/ref/pg_restore.sgml @@ -446,6 +446,11 @@ flag of pg_dump. There is not currently any provision for wild-card matching in pg_restore, nor can you include a schema name within its . + And, while pg_dump's + flag will also dump subsidiary objects (such as indexes) of the + selected table(s), + pg_restore's + flag does not include such subsidiary objects. @@ -564,7 +569,7 @@ Use conditional commands (i.e. add an IF EXISTS - clause) when cleaning database objects. This option is not valid + clause) to drop database objects. This option is not valid unless is also specified. -- cgit v1.2.3