Make pg_dump --oids work when default_with_oids = off. Per report from
authorTom Lane
Tue, 4 Jan 2005 22:27:46 +0000 (22:27 +0000)
committerTom Lane
Tue, 4 Jan 2005 22:27:46 +0000 (22:27 +0000)
Michael Fuhr.

src/bin/pg_dump/pg_dump.c

index 788aa129b3388b6eae91365f9e9d163ee11746e5..73bc2134573c01f4cc4eb85fa63e0043088aaf3c 100644 (file)
@@ -12,7 +12,7 @@
  * by PostgreSQL
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.397 2004/12/31 22:03:08 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.398 2005/01/04 22:27:46 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -7157,8 +7157,12 @@ setMaxOid(Archive *fout)
    Oid         max_oid;
    char        sql[1024];
 
-   do_sql_command(g_conn,
-                  "CREATE TEMPORARY TABLE pgdump_oid (dummy integer)");
+   if (fout->remoteVersion >= 70200)
+       do_sql_command(g_conn,
+                      "CREATE TEMPORARY TABLE pgdump_oid (dummy integer) WITH OIDS");
+   else
+       do_sql_command(g_conn,
+                      "CREATE TEMPORARY TABLE pgdump_oid (dummy integer)");
    res = PQexec(g_conn, "INSERT INTO pgdump_oid VALUES (0)");
    check_sql_result(res, g_conn, "INSERT INTO pgdump_oid VALUES (0)",
                     PGRES_COMMAND_OK);
@@ -7173,7 +7177,7 @@ setMaxOid(Archive *fout)
    if (g_verbose)
        write_msg(NULL, "maximum system OID is %u\n", max_oid);
    snprintf(sql, sizeof(sql),
-            "CREATE TEMPORARY TABLE pgdump_oid (dummy integer);\n"
+            "CREATE TEMPORARY TABLE pgdump_oid (dummy integer) WITH OIDS;\n"
             "COPY pgdump_oid WITH OIDS FROM stdin;\n"
             "%u\t0\n"
             "\\.\n"