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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy