Fix pg_dump to not crash if -t or a similar switch is used to select a serial
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 16 Apr 2007 18:42:10 +0000 (18:42 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 16 Apr 2007 18:42:10 +0000 (18:42 +0000)
sequence for dumping without also selecting its owning table.  Make it not try
to emit ALTER SEQUENCE OWNED BY in this situation.
Per report from Michael Nolan.

src/bin/pg_dump/pg_dump.c

index 9f9790baed112d6ec9ecd5399efb044bc496bfaa..65595062634cab727cc07b6cb609bbf2d40e9037 100644 (file)
@@ -12,7 +12,7 @@
  *     by PostgreSQL
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.466 2007/04/02 03:49:39 tgl Exp $
+ *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.467 2007/04/16 18:42:10 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -8654,8 +8654,8 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
         *
         * Add a CREATE SEQUENCE statement as part of a "schema" dump (use
         * last_val for start if called is false, else use min_val for start_val).
-        * Also, if the sequence is owned by a column, add an ALTER SEQUENCE SET
-        * OWNED command for it.
+        * Also, if the sequence is owned by a column, add an ALTER SEQUENCE
+        * OWNED BY command for it.
         *
         * Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
         */
@@ -8723,7 +8723,7 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
                {
                        TableInfo  *owning_tab = findTableByOid(tbinfo->owning_tab);
 
-                       if (owning_tab)
+                       if (owning_tab && owning_tab->dobj.dump)
                        {
                                resetPQExpBuffer(query);
                                appendPQExpBuffer(query, "ALTER SEQUENCE %s",