pg_dump: Allow pg_dump to dump the statistics for foreign tables.

Commit 1fd1bd8710 introduced support for dumping statistics with
pg_dump and pg_dumpall, covering tables, materialized views, and indexes.
However, it overlooked foreign tables, even though functions like
pg_restore_relation_stats() support them.

This commit fixes that oversight by allowing pg_dump and pg_dumpall
to include statistics for foreign tables.

Author: Fujii Masao <masao.fujii@gmail.com>
Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Reviewed-by: Nathan Bossart <nathandbossart@gmail.com>
Discussion: https://postgr.es/m/3772e4e4-ef39-4deb-bb76-aa8165f33fb6@oss.nttdata.com
pull/233/head
Fujii Masao 1 week ago
parent 9e1183953f
commit c2e2589ab9
  1. 7
      doc/src/sgml/ref/pg_dump.sgml
  2. 3
      doc/src/sgml/ref/pg_dumpall.sgml
  3. 4
      src/bin/pg_dump/pg_dump.c

@ -1277,8 +1277,8 @@ PostgreSQL documentation
</para>
<para>
The data section contains actual table data, large-object
contents, statistics for tables and materialized views and
sequence values.
contents, sequence values, and statistics for tables,
materialized views, and foriegn tables.
Post-data items include definitions of indexes, triggers, rules,
statistics for indexes, and constraints other than validated check
constraints.
@ -1359,7 +1359,8 @@ PostgreSQL documentation
<listitem>
<para>
Dump only the statistics, not the schema (data definitions) or data.
Statistics for tables, materialized views, and indexes are dumped.
Statistics for tables, materialized views, foreign tables,
and indexes are dumped.
</para>
</listitem>
</varlistentry>

@ -690,7 +690,8 @@ exclude database <replaceable class="parameter">PATTERN</replaceable>
<listitem>
<para>
Dump only the statistics, not the schema (data definitions) or data.
Statistics for tables, materialized views, and indexes are dumped.
Statistics for tables, materialized views, foreign tables,
and indexes are dumped.
</para>
</listitem>
</varlistentry>

@ -6890,7 +6890,8 @@ getRelationStatistics(Archive *fout, DumpableObject *rel, int32 relpages,
(relkind == RELKIND_PARTITIONED_TABLE) ||
(relkind == RELKIND_INDEX) ||
(relkind == RELKIND_PARTITIONED_INDEX) ||
(relkind == RELKIND_MATVIEW))
(relkind == RELKIND_MATVIEW ||
relkind == RELKIND_FOREIGN_TABLE))
{
RelStatsInfo *info = pg_malloc0(sizeof(RelStatsInfo));
DumpableObject *dobj = &info->dobj;
@ -6929,6 +6930,7 @@ getRelationStatistics(Archive *fout, DumpableObject *rel, int32 relpages,
case RELKIND_RELATION:
case RELKIND_PARTITIONED_TABLE:
case RELKIND_MATVIEW:
case RELKIND_FOREIGN_TABLE:
info->section = SECTION_DATA;
break;
case RELKIND_INDEX:

Loading…
Cancel
Save