In pg_upgrade, copy pg_largeobject_metadata and its index for 9.0+
authorBruce Momjian <bruce@momjian.us>
Wed, 5 Jan 2011 04:35:52 +0000 (23:35 -0500)
committerBruce Momjian <bruce@momjian.us>
Wed, 5 Jan 2011 04:35:52 +0000 (23:35 -0500)
servers because, like pg_largeobject, it is a system table whose
contents are not dumped by pg_dump --schema-only.

contrib/pg_upgrade/info.c

index 33ff52c68581f77c0226942306b8d68b5a4c105d..567c64e8b826bc08d181abdca6520e0447349e11 100644 (file)
@@ -331,13 +331,16 @@ get_rel_infos(migratorContext *ctx, const DbInfo *dbinfo,
                         "      ) OR ( "
                         "      n.nspname = 'pg_catalog' "
                         "      AND relname IN "
-                        "        ('pg_largeobject', 'pg_largeobject_loid_pn_index') )) "
+                        "        ('pg_largeobject', 'pg_largeobject_loid_pn_index'%s) )) "
                         "      AND relkind IN ('r','t', 'i'%s)"
                         "GROUP BY  c.oid, n.nspname, c.relname, c.relfilenode,"
                         "                      c.reltoastrelid, t.spclocation, "
                         "                      n.nspname "
                         "ORDER BY n.nspname, c.relname;",
                         FirstNormalObjectId,
+       /* does pg_largeobject_metadata need to be migrated? */
+                        (GET_MAJOR_VERSION(ctx->old.major_version) <= 804) ?
+                        "" : ", 'pg_largeobject_metadata', 'pg_largeobject_metadata_oid_index'",
        /* see the comment at the top of old_8_3_create_sequence_script() */
                         (GET_MAJOR_VERSION(ctx->old.major_version) <= 803) ?
                         "" : ", 'S'");