Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit eb013ed

Browse files
committed
In pg_upgrade, limit schema name filter to include toast tables. Bug
introduced recently when trying to filter out temp tables. Backpatch to 9.0 and 9.1.
1 parent 7327cb6 commit eb013ed

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

contrib/pg_upgrade/info.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,10 @@ get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo)
266266
" LEFT OUTER JOIN pg_catalog.pg_tablespace t "
267267
" ON c.reltablespace = t.oid "
268268
"WHERE relkind IN ('r','t', 'i'%s) AND "
269-
/* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
270-
" ((n.nspname !~ '^pg_' AND "
271-
" n.nspname NOT IN ('information_schema', 'binary_upgrade') AND "
269+
/* exclude possible orphaned temp tables */
270+
" ((n.nspname !~ '^pg_temp_' AND "
271+
" n.nspname !~ '^pg_toast_temp_' AND "
272+
" n.nspname NOT IN ('pg_catalog', 'information_schema', 'binary_upgrade') AND "
272273
" c.oid >= %u) "
273274
" OR (n.nspname = 'pg_catalog' AND "
274275
" relname IN ('pg_largeobject', 'pg_largeobject_loid_pn_index'%s) )) "

contrib/pg_upgrade/version_old_8_3.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,10 @@ old_8_3_check_for_name_data_type_usage(ClusterInfo *cluster)
5959
" NOT a.attisdropped AND "
6060
" a.atttypid = 'pg_catalog.name'::pg_catalog.regtype AND "
6161
" c.relnamespace = n.oid AND "
62-
/* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
63-
" n.nspname !~ '^pg_' AND "
64-
" n.nspname != 'information_schema'");
62+
/* exclude possible orphaned temp tables */
63+
" n.nspname !~ '^pg_temp_' AND "
64+
" n.nspname !~ '^pg_toast_temp_' AND "
65+
" n.nspname NOT IN ('pg_catalog', 'information_schema')");
6566

6667
ntups = PQntuples(res);
6768
i_nspname = PQfnumber(res, "nspname");
@@ -149,9 +150,10 @@ old_8_3_check_for_tsquery_usage(ClusterInfo *cluster)
149150
" NOT a.attisdropped AND "
150151
" a.atttypid = 'pg_catalog.tsquery'::pg_catalog.regtype AND "
151152
" c.relnamespace = n.oid AND "
152-
/* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
153-
" n.nspname !~ '^pg_' AND "
154-
" n.nspname != 'information_schema'");
153+
/* exclude possible orphaned temp tables */
154+
" n.nspname !~ '^pg_temp_' AND "
155+
" n.nspname !~ '^pg_toast_temp_' AND "
156+
" n.nspname NOT IN ('pg_catalog', 'information_schema')");
155157

156158
ntups = PQntuples(res);
157159
i_nspname = PQfnumber(res, "nspname");
@@ -247,9 +249,10 @@ old_8_3_rebuild_tsvector_tables(ClusterInfo *cluster, bool check_mode)
247249
" NOT a.attisdropped AND "
248250
" a.atttypid = 'pg_catalog.tsvector'::pg_catalog.regtype AND "
249251
" c.relnamespace = n.oid AND "
250-
/* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
251-
" n.nspname !~ '^pg_' AND "
252-
" n.nspname != 'information_schema'");
252+
/* exclude possible orphaned temp tables */
253+
" n.nspname !~ '^pg_temp_' AND "
254+
" n.nspname !~ '^pg_toast_temp_' AND "
255+
" n.nspname NOT IN ('pg_catalog', 'information_schema')");
253256

254257
/*
255258
* This macro is used below to avoid reindexing indexes already rebuilt
@@ -619,9 +622,10 @@ old_8_3_create_sequence_script(ClusterInfo *cluster)
619622
" pg_catalog.pg_namespace n "
620623
"WHERE c.relkind = 'S' AND "
621624
" c.relnamespace = n.oid AND "
622-
/* exclude pg_catalog and pg_temp_ (could be orphaned tables) */
623-
" n.nspname !~ '^pg_' AND "
624-
" n.nspname != 'information_schema'");
625+
/* exclude possible orphaned temp tables */
626+
" n.nspname !~ '^pg_temp_' AND "
627+
" n.nspname !~ '^pg_toast_temp_' AND "
628+
" n.nspname NOT IN ('pg_catalog', 'information_schema')");
625629

626630
ntups = PQntuples(res);
627631
i_nspname = PQfnumber(res, "nspname");

0 commit comments

Comments
 (0)