Tom Lane wrote:
> Kris Jurka <[EMAIL PROTECTED]> writes:
> > This patch makes pg_dump wrap insert dumps (-d, -D) in a transaction to 
> > speed the restore process.
> 
> What's the point of this, compared to Simon's recent patch adding an
> option to wrap the whole output in one big transaction?  An intermediate
> level doesn't seem very interesting ... and lord knows pg_dump has an
> unreasonable number of options already.
> 
> > It also adds an option to disable these 
> > transactions for doing things like copying only newly inserted values from 
> > one database to another (assuming old ones will fail on an unique 
> > constraint).
> 
> I would think that would be the main use-case for still using -d/-D at
> all (instead of COPY), so this seems of dubious usefulness, and
> certainly not what should be the default.

I have added a patch to document that pg_dump -d/-D throw an error on
invalid data, but allow other INSERTs to continue.

Also, we do have this TODO item:

        o %Have pg_dump use multi-statement transactions for INSERT dumps

It always bothered me that INSERT did not have the same behavior as
non-INSERT, but if we document the difference, and people find it
useful, we should just keep it.  TODO item removed.

-- 
  Bruce Momjian   http://candle.pha.pa.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: doc/src/sgml/ref/pg_dump.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v
retrieving revision 1.82
diff -c -c -r1.82 pg_dump.sgml
*** doc/src/sgml/ref/pg_dump.sgml       17 Mar 2006 16:02:47 -0000      1.82
--- doc/src/sgml/ref/pg_dump.sgml       15 Apr 2006 17:59:33 -0000
***************
*** 173,178 ****
--- 173,181 ----
          non-<productname>PostgreSQL</productname> databases.  Note that
          the restore may fail altogether if you have rearranged column order.
          The <option>-D</option> option is safer, though even slower.
+         Also, while this option generates errors for invalid data, 
+         it allows other <command>INSERT</command>s to continue loading
+         data into the table.
         </para>
        </listitem>
       </varlistentry>
***************
*** 190,195 ****
--- 193,201 ----
          ...</literal>).  This will make restoration very slow; it is mainly
          useful for making dumps that can be loaded into
          non-<productname>PostgreSQL</productname> databases.
+         Also, while this option generates errors for invalid data, 
+         it allows other <command>INSERT</command>s to continue loading
+         data into the table.
         </para>
        </listitem>
       </varlistentry>
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to