Improve pg_restore's -t switch to match all types of relations.
-t will now match views, foreign tables, materialized views, and sequences, not only plain tables. This is more useful, and also more consistent with the behavior of pg_dump's -t switch, which has always matched all relation types. We're still not there on matching pg_dump's behavior entirely, so mention that in the docs. Craig Ringer, reviewed by Pavel Stehule
This commit is contained in:
parent
a5d489ccb7
commit
5671aaca87
@ -497,8 +497,10 @@ PostgreSQL documentation
|
|||||||
<term><option>--table=<replaceable class="parameter">table</replaceable></option></term>
|
<term><option>--table=<replaceable class="parameter">table</replaceable></option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Dump only tables (or views or sequences or foreign tables) matching
|
Dump only tables with names matching
|
||||||
<replaceable class="parameter">table</replaceable>. Multiple tables
|
<replaceable class="parameter">table</replaceable>.
|
||||||
|
For this purpose, <quote>table</> includes views, materialized views,
|
||||||
|
sequences, and foreign tables. Multiple tables
|
||||||
can be selected by writing multiple <option>-t</> switches. Also, the
|
can be selected by writing multiple <option>-t</> switches. Also, the
|
||||||
<replaceable class="parameter">table</replaceable> parameter is
|
<replaceable class="parameter">table</replaceable> parameter is
|
||||||
interpreted as a pattern according to the same rules used by
|
interpreted as a pattern according to the same rules used by
|
||||||
|
@ -395,10 +395,39 @@
|
|||||||
<term><option>--table=<replaceable class="parameter">table</replaceable></option></term>
|
<term><option>--table=<replaceable class="parameter">table</replaceable></option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Restore definition and/or data of named table only. Multiple tables
|
Restore definition and/or data of only the named table.
|
||||||
may be specified with multiple <option>-t</> switches. This can be
|
For this purpose, <quote>table</> includes views, materialized views,
|
||||||
combined with the <option>-n</option> option to specify a schema.
|
sequences, and foreign tables. Multiple tables
|
||||||
|
can be selected by writing multiple <option>-t</> switches.
|
||||||
|
This option can be combined with the <option>-n</option> option to
|
||||||
|
specify table(s) in a particular schema.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
When <option>-t</option> is specified, <application>pg_restore</>
|
||||||
|
makes no attempt to restore any other database objects that the
|
||||||
|
selected table(s) might depend upon. Therefore, there is no
|
||||||
|
guarantee that a specific-table restore into a clean database will
|
||||||
|
succeed.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
This flag does not behave identically to the <option>-t</option>
|
||||||
|
flag of <application>pg_dump</application>. There is not currently
|
||||||
|
any provision for wild-card matching in <application>pg_restore</>,
|
||||||
|
nor can you include a schema name within its <option>-t</>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
In versions prior to <productname>PostgreSQL</> 9.6, this flag
|
||||||
|
matched only tables, not any other type of relation.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
@ -2663,7 +2663,13 @@ _tocEntryRequired(TocEntry *te, teSection curSection, RestoreOptions *ropt)
|
|||||||
if (ropt->selTypes)
|
if (ropt->selTypes)
|
||||||
{
|
{
|
||||||
if (strcmp(te->desc, "TABLE") == 0 ||
|
if (strcmp(te->desc, "TABLE") == 0 ||
|
||||||
strcmp(te->desc, "TABLE DATA") == 0)
|
strcmp(te->desc, "TABLE DATA") == 0 ||
|
||||||
|
strcmp(te->desc, "VIEW") == 0 ||
|
||||||
|
strcmp(te->desc, "FOREIGN TABLE") == 0 ||
|
||||||
|
strcmp(te->desc, "MATERIALIZED VIEW") == 0 ||
|
||||||
|
strcmp(te->desc, "MATERIALIZED VIEW DATA") == 0 ||
|
||||||
|
strcmp(te->desc, "SEQUENCE") == 0 ||
|
||||||
|
strcmp(te->desc, "SEQUENCE SET") == 0)
|
||||||
{
|
{
|
||||||
if (!ropt->selTable)
|
if (!ropt->selTable)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -227,7 +227,7 @@ main(int argc, char **argv)
|
|||||||
if (strlen(optarg) != 0)
|
if (strlen(optarg) != 0)
|
||||||
opts->superuser = pg_strdup(optarg);
|
opts->superuser = pg_strdup(optarg);
|
||||||
break;
|
break;
|
||||||
case 't': /* Dump data for this table only */
|
case 't': /* Dump specified table(s) only */
|
||||||
opts->selTypes = 1;
|
opts->selTypes = 1;
|
||||||
opts->selTable = 1;
|
opts->selTable = 1;
|
||||||
simple_string_list_append(&opts->tableNames, optarg);
|
simple_string_list_append(&opts->tableNames, optarg);
|
||||||
@ -455,7 +455,7 @@ usage(const char *progname)
|
|||||||
printf(_(" -P, --function=NAME(args) restore named function\n"));
|
printf(_(" -P, --function=NAME(args) restore named function\n"));
|
||||||
printf(_(" -s, --schema-only restore only the schema, no data\n"));
|
printf(_(" -s, --schema-only restore only the schema, no data\n"));
|
||||||
printf(_(" -S, --superuser=NAME superuser user name to use for disabling triggers\n"));
|
printf(_(" -S, --superuser=NAME superuser user name to use for disabling triggers\n"));
|
||||||
printf(_(" -t, --table=NAME restore named table\n"));
|
printf(_(" -t, --table=NAME restore named relation (table, view, etc)\n"));
|
||||||
printf(_(" -T, --trigger=NAME restore named trigger\n"));
|
printf(_(" -T, --trigger=NAME restore named trigger\n"));
|
||||||
printf(_(" -x, --no-privileges skip restoration of access privileges (grant/revoke)\n"));
|
printf(_(" -x, --no-privileges skip restoration of access privileges (grant/revoke)\n"));
|
||||||
printf(_(" -1, --single-transaction restore as a single transaction\n"));
|
printf(_(" -1, --single-transaction restore as a single transaction\n"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user