Tom Lane wrote:
Okay, I got tired of seeing people complain about foreign-key constraint
violations in data-only dumps.  While it's true that the problem can't
be solved in the general case (because of potentially circular
references), we could certainly make pg_dump at least *try* to order the
tables according to foreign key relationships.  It turns out not to even
require a whole lot of new code.  Accordingly I propose the attached
patch.  It will order the tables safely if it can, and otherwise
complain like this:

+1

pg_dump: WARNING: circular foreign-key constraints among these table(s):
pg_dump:   master
pg_dump:   child
pg_dump: You may not be able to restore the dump without using 
--disable-triggers or temporarily dropping the constraints.

WARNING feels a bit too strong. I realize that that message isn't going to the postmaster's log, bloating it, but if a user does that regularly, always disabling triggers as instructed, or there is in fact never circular references in the data with a particular schema, seeing that big fat warning every time is going to become a bit tiresome. Perhaps "NOTE: ..." ?

How about printing that notice at the top of the dump file as well? Most people probably don't look at the dump files, but if someone needs to deal with a data-only dumps that contain circular constraints, and also those that don't, it would be invaluable information.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to