Re: Option to dump foreign data in pg_dump

Luis Carril <luis.carril@swarm64.com>

From: Luis Carril <luis.carril@swarm64.com>
To: Laurenz Albe <laurenz.albe@cybertec.at>, Daniel Gustafsson <daniel@yesql.se>
Cc: vignesh C <vignesh21@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-11-12T11:12:16Z
Lists: pgsql-hackers

Attachments

Hello

   a new version of the patch with the tests from Daniel (thanks!) and the nitpicks.


I don't feel good about this feature.
pg_dump should not dump any data that are not part of the database
being dumped.

If you restore such a dump, the data will be inserted into the foreign table,
right?  Unless someone emptied the remote table first, this will add
duplicated data to that table.
I think that is an unpleasant surprise.  I'd expect that if I drop a database
and restore it from a dump, it should be as it was before.  This change would
break that assumption.

What are the use cases of a dump with foreign table data?

Unless I misunderstood something there, -1.

This feature is opt-in so if the user makes dumps of a remote server explicitly by other means, then the user would not need to use these option.

But, not all foreign tables are necessarily in a remote server like the ones referenced by the postgres_fdw.
In FDWs like swarm64da, cstore, citus or timescaledb, the foreign tables are part of your database, and one could expect that a dump of the database includes data from these FDWs.


Cheers


Luis M Carril


Commits

  1. pg_dump: Allow dumping data of specific foreign servers