Re: pg_upgrade and relkind filtering
От | Robert Haas |
---|---|
Тема | Re: pg_upgrade and relkind filtering |
Дата | |
Msg-id | CA+Tgmob7nxo9D-sX=E5E1Od6+1qNwxKVASQ4vRJt765n2a7wqg@mail.gmail.com обсуждение исходный текст |
Ответ на | pg_upgrade and relkind filtering (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: pg_upgrade and relkind filtering
(Bruce Momjian <bruce@momjian.us>)
Re: pg_upgrade and relkind filtering (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Mon, Dec 5, 2011 at 5:06 PM, Bruce Momjian <bruce@momjian.us> wrote: > Pg_upgrade has the following check to make sure the cluster is safe for > upgrading: > > res = executeQueryOrDie(conn, > "SELECT n.nspname, c.relname, a.attname > " > "FROM pg_catalog.pg_class c, " > " pg_catalog.pg_namespace n, " > " pg_catalog.pg_attribute a " > "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 */ > /* regtype.oid is preserved, so 'regtype' is OK */ > " 'pg_catalog.regconfig'::pg_catalog.regtype, " > " 'pg_catalog.regdictionary'::pg_catalog.regtype) AND > " > " c.relnamespace = n.oid AND " > " n.nspname != 'pg_catalog' AND " > " n.nspname != 'information_schema'"); > > Based on a report from EnterpriseDB, I noticed that we check all > pg_class entries, while there are cases where this is unnecessary > because there is no data behind the entry, e.g. views. Here are the > relkinds supported: > > #define RELKIND_RELATION 'r' /* ordinary table */ > #define RELKIND_INDEX 'i' /* secondary index */ > #define RELKIND_SEQUENCE 'S' /* sequence object */ > #define RELKIND_TOASTVALUE 't' /* for out-of-line values */ > #define RELKIND_VIEW 'v' /* view */ > #define RELKIND_COMPOSITE_TYPE 'c' /* composite type */ > #define RELKIND_FOREIGN_TABLE 'f' /* foreign table */ > #define RELKIND_UNCATALOGED 'u' /* not yet cataloged */ > > What types, other than views, can we skip in this query? It's not obvious to me that anything other than a table or index would matter. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: