Albe Laurenz <laurenz.albe@xxxxxxxxxx> writes: > Restoring a "plain format" dump and a "custom format" dump of > the same database can lead to different results: > pg_dump organizes the SQL statements it creates in "TOC entries". > If a custom format dump is restored with pg_restore, all > SQL statements in a TOC entry will be executed as a single command > and thus in a single transaction. Yeah, this is a bug I think. pg_dump was designed around the idea that the output would be executed as a simple script, and in a number of places there's an expectation that one SQL statement can fail without affecting following ones. So if pg_restore can't provide that behavior it's not good. On the other hand, I'm not sure how much enthusiasm there'd be for complex or fragile changes to fix this. A lot of people invariably run restores in single-transaction mode and don't really care about fault-tolerant restores. Also, it's easy enough to dodge the problem if you must: just pipe the output into psql rather than direct-to-database. So to me the question is can we fix this without doing something like duplicating psql's lexer? If we have to parse out the statements contained in each text blob, it's probably going to be too painful. Some cautionary history about this sort of thing can be read at http://www.postgresql.org/message-id/flat/18006.1325700782@xxxxxxxxxxxxx regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general