]> granicus.if.org Git - postgresql/commitdiff
Update pg_upgrade test for reg* to include regrole and regnamespace.
authorAndres Freund <andres@anarazel.de>
Tue, 27 Nov 2018 01:00:43 +0000 (17:00 -0800)
committerAndres Freund <andres@anarazel.de>
Tue, 27 Nov 2018 01:07:38 +0000 (17:07 -0800)
When the regrole (0c90f6769) and regnamespace (cb9fa802b) types were
added in 9.5, pg_upgrade's check for reg* types wasn't updated. While
regrole currently is safe, regnamespace is not.

It seems unlikely that anybody uses regnamespace inside catalog tables
across a pg_upgrade, but the tests should be correct nevertheless.

While at it, reorder the types checked in the query to be
alphabetical. Otherwise it's annoying to compare existing and tested
for types.

Author: Andres Freund
Discussion: https://postgr.es/m/037e152a-cb25-3bcb-4f35-bdc9988f8204@2ndQuadrant.com
Backpatch: 9.5-, as regrole/regnamespace

src/bin/pg_upgrade/check.c

index a26e55ca7fbfde728855ee9dcd4cb5ee6776e0cc..4e75d1d02cd4be45a1fcc3463961bd8a7ad09881 100644 (file)
@@ -909,14 +909,17 @@ check_for_reg_data_type_usage(ClusterInfo *cluster)
                                                                "WHERE  c.oid = a.attrelid AND "
                                                                "               NOT a.attisdropped AND "
                                                                "               a.atttypid IN ( "
-                 "                     'pg_catalog.regproc'::pg_catalog.regtype, "
-                                                               "                       'pg_catalog.regprocedure'::pg_catalog.regtype, "
-                 "                     'pg_catalog.regoper'::pg_catalog.regtype, "
-                                                               "                       'pg_catalog.regoperator'::pg_catalog.regtype, "
                /* regclass.oid is preserved, so 'regclass' is OK */
+                                                               "                       'pg_catalog.regconfig'::pg_catalog.regtype, "
+                                                               "                       'pg_catalog.regdictionary'::pg_catalog.regtype, "
+                                                               "                       'pg_catalog.regnamespace'::pg_catalog.regtype, "
+                                                               "                       'pg_catalog.regoper'::pg_catalog.regtype, "
+                                                               "                       'pg_catalog.regoperator'::pg_catalog.regtype, "
+                                                               "                       'pg_catalog.regproc'::pg_catalog.regtype, "
+                                                               "                       'pg_catalog.regprocedure'::pg_catalog.regtype "
+               /* regrole.oid is preserved, so 'regrole' is OK */
                /* regtype.oid is preserved, so 'regtype' is OK */
-               "                       'pg_catalog.regconfig'::pg_catalog.regtype, "
-                                                               "                       'pg_catalog.regdictionary'::pg_catalog.regtype) AND "
+                                                               "                       ) AND "
                                                                "               c.relnamespace = n.oid AND "
                                                                "               n.nspname NOT IN ('pg_catalog', 'information_schema')");