Fix pg_dump to not crash if -t or a similar switch is used to select a serial
authorTom Lane
Mon, 16 Apr 2007 18:42:10 +0000 (18:42 +0000)
committerTom Lane
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",