]> granicus.if.org Git - postgresql/commitdiff
In pg_upgrade, limit schema name filter to include toast tables. Bug
authorBruce Momjian <bruce@momjian.us>
Fri, 26 Aug 2011 04:12:39 +0000 (00:12 -0400)
committerBruce Momjian <bruce@momjian.us>
Fri, 26 Aug 2011 04:12:39 +0000 (00:12 -0400)
introduced recently when trying to filter out temp tables.

Backpatch to 9.0 and 9.1.

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

index ca357e78924ff60cb0245852356cd21e3a440cfc..1f5b7ae70bff4f35705d48aba8f238320bd7bdff 100644 (file)
@@ -328,9 +328,11 @@ get_rel_infos(migratorContext *ctx, const DbInfo *dbinfo,
                         "      ON c.reltablespace = t.oid "
                         "WHERE (( "
                         /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
-                        "      n.nspname !~ '^pg_' "
-                        "      AND n.nspname != 'information_schema' "
-                        "      AND c.oid >= %u "
+                        "    n.nspname != 'pg_catalog' "
+                        "    AND n.nspname !~ '^pg_temp_' "
+                        "    AND n.nspname !~ '^pg_toast_temp_' "
+                        "        AND n.nspname != 'information_schema' "
+                        "        AND c.oid >= %u "
                         "      ) OR ( "
                         "      n.nspname = 'pg_catalog' "
                         "      AND relname IN "
index 930f76d7146f700c150bd41c1ef77d831aed3526..6fcd61b9c4a4933a9d58e930d2759cf266512f11 100644 (file)
@@ -61,9 +61,11 @@ old_8_3_check_for_name_data_type_usage(migratorContext *ctx, Cluster whichCluste
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid = 'pg_catalog.name'::pg_catalog.regtype AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
-                                                               "   n.nspname !~ '^pg_' AND "
-                                                "              n.nspname != 'information_schema'");
+                                                               /* exclude possibly orphaned temp tables */
+                                                               "               n.nspname != 'pg_catalog' AND "
+                                                               "               n.nspname !~ '^pg_temp_' AND "
+                                                               "               n.nspname !~ '^pg_toast_temp_' AND "
+                                                               "               n.nspname != 'information_schema' ");
 
                ntups = PQntuples(res);
                i_nspname = PQfnumber(res, "nspname");
@@ -152,9 +154,11 @@ old_8_3_check_for_tsquery_usage(migratorContext *ctx, Cluster whichCluster)
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid = 'pg_catalog.tsquery'::pg_catalog.regtype AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
-                                                               "   n.nspname !~ '^pg_' AND "
-                                                "              n.nspname != 'information_schema'");
+                                                               /* exclude possibly orphaned temp tables */
+                                                               "               n.nspname != 'pg_catalog' AND "
+                                                               "               n.nspname !~ '^pg_temp_' AND "
+                                                               "               n.nspname !~ '^pg_toast_temp_' AND "
+                                                               "               n.nspname != 'information_schema' ");
 
                ntups = PQntuples(res);
                i_nspname = PQfnumber(res, "nspname");
@@ -252,9 +256,11 @@ old_8_3_rebuild_tsvector_tables(migratorContext *ctx, bool check_mode,
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid = 'pg_catalog.tsvector'::pg_catalog.regtype AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
-                                                               "   n.nspname !~ '^pg_' AND "
-                                                "              n.nspname != 'information_schema'");
+                                                               /* exclude possibly orphaned temp tables */
+                                                               "               n.nspname != 'pg_catalog' AND "
+                                                               "               n.nspname !~ '^pg_temp_' AND "
+                                                               "               n.nspname !~ '^pg_toast_temp_' AND "
+                                                               "               n.nspname != 'information_schema' ");
 
 /*
  *     This macro is used below to avoid reindexing indexes already rebuilt
@@ -271,8 +277,10 @@ old_8_3_rebuild_tsvector_tables(migratorContext *ctx, bool check_mode,
                                                                "               NOT a.attisdropped AND "                \
                                                                "               a.atttypid = 'pg_catalog.tsvector'::pg_catalog.regtype AND " \
                                                                "               c.relnamespace = n.oid AND "    \
-                                                               "       n.nspname !~ '^pg_' AND "               \
-                                                               "               n.nspname != 'information_schema') "
+                                                               "               n.nspname != 'pg_catalog' AND " \
+                                                               "               n.nspname !~ '^pg_temp_' AND " \
+                                                               "               n.nspname !~ '^pg_toast_temp_' AND " \
+                                                               "               n.nspname != 'information_schema')"
 
                ntups = PQntuples(res);
                i_nspname = PQfnumber(res, "nspname");
@@ -641,9 +649,12 @@ old_8_3_create_sequence_script(migratorContext *ctx, Cluster whichCluster)
                                                                "               pg_catalog.pg_namespace n "
                                                                "WHERE  c.relkind = 'S' AND "
                                                                "               c.relnamespace = n.oid AND "
-                                                        /* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
-                                                               "   n.nspname !~ '^pg_' AND "
-                                                "              n.nspname != 'information_schema'");
+                                                               /* exclude possibly orphaned temp tables */
+                                                               "               n.nspname != 'pg_catalog' AND "
+                                                               "               n.nspname !~ '^pg_temp_' AND "
+                                                               "               n.nspname !~ '^pg_toast_temp_' AND "
+                                                               "               n.nspname != 'information_schema' ");
+
 
                ntups = PQntuples(res);
                i_nspname = PQfnumber(res, "nspname");