]> granicus.if.org Git - postgresql/commitdiff
In pg_upgrade, avoid dumping orphaned temporary tables. This makes the
authorBruce Momjian <bruce@momjian.us>
Tue, 16 Aug 2011 02:39:31 +0000 (22:39 -0400)
committerBruce Momjian <bruce@momjian.us>
Tue, 16 Aug 2011 02:40:14 +0000 (22:40 -0400)
pg_upgrade schema matching pattern match pg_dump/pg_dumpall.

Fix for 9.0, 9.1, and 9.2.

contrib/pg_upgrade/info.c
contrib/pg_upgrade/version_old_8_3.c

index 72bc489d0e856eec37c3e05880ff9f29a29b8dea..3ef342911eb2f9cbade98ff372761df518bd71ff 100644 (file)
@@ -266,7 +266,9 @@ get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo)
                         "  LEFT OUTER JOIN pg_catalog.pg_tablespace t "
                         "         ON c.reltablespace = t.oid "
                         "WHERE relkind IN ('r','t', 'i'%s) AND "
-                        "  ((n.nspname NOT IN ('pg_catalog', 'information_schema', 'binary_upgrade') AND "
+                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
+                        "  ((n.nspname !~ '^pg_' AND "
+                       "     n.nspname NOT IN ('information_schema', 'binary_upgrade') AND "
                         "        c.oid >= %u) "
                         "  OR (n.nspname = 'pg_catalog' AND "
        "    relname IN ('pg_largeobject', 'pg_largeobject_loid_pn_index'%s) )) "
index 43bfdc1dba426bf3d1fc01967ca43e1e63b62efb..1c736d256f903ae1866170632bbbe51f3022bfda 100644 (file)
@@ -59,7 +59,8 @@ old_8_3_check_for_name_data_type_usage(ClusterInfo *cluster)
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid = 'pg_catalog.name'::pg_catalog.regtype AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                         "             n.nspname != 'pg_catalog' AND "
+                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
+                                                               "   n.nspname !~ '^pg_' AND "
                                                 "              n.nspname != 'information_schema'");
 
                ntups = PQntuples(res);
@@ -148,7 +149,8 @@ old_8_3_check_for_tsquery_usage(ClusterInfo *cluster)
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid = 'pg_catalog.tsquery'::pg_catalog.regtype AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                         "             n.nspname != 'pg_catalog' AND "
+                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
+                                                               "   n.nspname !~ '^pg_' AND "
                                                 "              n.nspname != 'information_schema'");
 
                ntups = PQntuples(res);
@@ -245,7 +247,8 @@ old_8_3_rebuild_tsvector_tables(ClusterInfo *cluster, bool check_mode)
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid = 'pg_catalog.tsvector'::pg_catalog.regtype AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                         "             n.nspname != 'pg_catalog' AND "
+                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
+                                                               "   n.nspname !~ '^pg_' AND "
                                                 "              n.nspname != 'information_schema'");
 
 /*
@@ -263,7 +266,7 @@ old_8_3_rebuild_tsvector_tables(ClusterInfo *cluster, bool check_mode)
                                                                "               NOT a.attisdropped AND "                \
                                                                "               a.atttypid = 'pg_catalog.tsvector'::pg_catalog.regtype AND " \
                                                                "               c.relnamespace = n.oid AND "    \
-                                                               "               n.nspname != 'pg_catalog' AND " \
+                                                               "       n.nspname !~ '^pg_' AND "               \
                                                                "               n.nspname != 'information_schema') "
 
                ntups = PQntuples(res);
@@ -616,7 +619,8 @@ old_8_3_create_sequence_script(ClusterInfo *cluster)
                                                                "               pg_catalog.pg_namespace n "
                                                                "WHERE  c.relkind = 'S' AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                         "             n.nspname != 'pg_catalog' AND "
+                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
+                                                               "   n.nspname !~ '^pg_' AND "
                                                 "              n.nspname != 'information_schema'");
 
                ntups = PQntuples(res);