]> granicus.if.org Git - postgresql/commitdiff
Simplify structure of query used to gather database object information
authorBruce Momjian <bruce@momjian.us>
Thu, 7 Apr 2011 10:22:40 +0000 (06:22 -0400)
committerBruce Momjian <bruce@momjian.us>
Thu, 7 Apr 2011 10:23:12 +0000 (06:23 -0400)
in pg_upgrade.

contrib/pg_upgrade/info.c

index 9f74493e1ff540f0425c11fa8d04e6c89fcf0c2b..ceb1601cc6d8922bdd0fc33177500e480506bd9d 100644 (file)
@@ -255,27 +255,25 @@ get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo)
        snprintf(query, sizeof(query),
                         "SELECT c.oid, n.nspname, c.relname, "
                         "      c.relfilenode, t.spclocation "
-                        "FROM pg_catalog.pg_class c JOIN "
-                        "              pg_catalog.pg_namespace n "
-                        "      ON c.relnamespace = n.oid "
-                        "   LEFT OUTER JOIN pg_catalog.pg_tablespace t "
-                        "      ON c.reltablespace = t.oid "
-                        "WHERE (( n.nspname NOT IN ('pg_catalog', 'information_schema', 'binary_upgrade') "
-                        "      AND c.oid >= %u "
-                        "      ) OR ( "
-                        "      n.nspname = 'pg_catalog' "
-                        "      AND relname IN "
-                        "        ('pg_largeobject', 'pg_largeobject_loid_pn_index'%s) )) "
-                        "      AND relkind IN ('r','t', 'i'%s) "
+                        "FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n "
+                        "         ON c.relnamespace = n.oid "
+                        "  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 "
+                        "        c.oid >= %u) "
+                        "  OR (n.nspname = 'pg_catalog' AND "
+                        "    relname IN ('pg_largeobject', 'pg_largeobject_loid_pn_index'%s) )) "
        /* we preserve pg_class.oid so we sort by it to match old/new */
                         "ORDER BY 1;",
+       /* see the comment at the top of old_8_3_create_sequence_script() */
+                        (GET_MAJOR_VERSION(old_cluster.major_version) <= 803) ?
+                        "" : ", 'S'",
+       /* this oid allows us to skip system toast tables */
                         FirstNormalObjectId,
        /* does pg_largeobject_metadata need to be migrated? */
                         (GET_MAJOR_VERSION(old_cluster.major_version) <= 804) ?
-                        "" : ", 'pg_largeobject_metadata', 'pg_largeobject_metadata_oid_index'",
-       /* see the comment at the top of old_8_3_create_sequence_script() */
-                        (GET_MAJOR_VERSION(old_cluster.major_version) <= 803) ?
-                        "" : ", 'S'");
+                        "" : ", 'pg_largeobject_metadata', 'pg_largeobject_metadata_oid_index'");
 
        res = executeQueryOrDie(conn, query);