]> granicus.if.org Git - postgresql/commitdiff
Add regression test for system catalog toast tables
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 12 Jul 2018 10:31:49 +0000 (12:31 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 12 Jul 2018 10:31:49 +0000 (12:31 +0200)
For the moment, this just records which system catalogs have toast
tables right now.  Future patches will possibly change that set.

from Tom Lane via Joe Conway

Discussion: https://www.postgresql.org/message-id/flat/84ddff04-f122-784b-b6c5-3536804495f8@joeconway.com/

src/test/regress/expected/misc_sanity.out
src/test/regress/sql/misc_sanity.sql

index 5aaae6c39fc1573728b464bf555050803ad89855..baf302953c7a2056f5e4cc165b592969c11aa671 100644 (file)
@@ -76,3 +76,70 @@ NOTICE:  pg_database contains unpinned initdb-created object(s)
 NOTICE:  pg_extension contains unpinned initdb-created object(s)
 NOTICE:  pg_rewrite contains unpinned initdb-created object(s)
 NOTICE:  pg_tablespace contains unpinned initdb-created object(s)
+-- **************** pg_class ****************
+-- Look for system tables with varlena columns but no toast table.  At
+-- the moment, the result just records the status quo so that changes
+-- are deliberate.  Which system tables have toast tables is a bit
+-- arbitrary at the moment.
+SELECT relname, attname, atttypid::regtype
+FROM pg_class c JOIN pg_attribute a ON c.oid = attrelid
+WHERE c.oid < 16384 AND
+      reltoastrelid = 0 AND
+      relkind = 'r' AND
+      attstorage != 'p'
+ORDER BY 1, 2;
+         relname         |     attname     |   atttypid   
+-------------------------+-----------------+--------------
+ pg_aggregate            | agginitval      | text
+ pg_aggregate            | aggminitval     | text
+ pg_attribute            | attacl          | aclitem[]
+ pg_attribute            | attfdwoptions   | text[]
+ pg_attribute            | attmissingval   | anyarray
+ pg_attribute            | attoptions      | text[]
+ pg_authid               | rolpassword     | text
+ pg_class                | relacl          | aclitem[]
+ pg_class                | reloptions      | text[]
+ pg_class                | relpartbound    | pg_node_tree
+ pg_collation            | collversion     | text
+ pg_database             | datacl          | aclitem[]
+ pg_default_acl          | defaclacl       | aclitem[]
+ pg_event_trigger        | evttags         | text[]
+ pg_extension            | extcondition    | text[]
+ pg_extension            | extconfig       | oid[]
+ pg_extension            | extversion      | text
+ pg_foreign_data_wrapper | fdwacl          | aclitem[]
+ pg_foreign_data_wrapper | fdwoptions      | text[]
+ pg_foreign_server       | srvacl          | aclitem[]
+ pg_foreign_server       | srvoptions      | text[]
+ pg_foreign_server       | srvtype         | text
+ pg_foreign_server       | srvversion      | text
+ pg_foreign_table        | ftoptions       | text[]
+ pg_index                | indexprs        | pg_node_tree
+ pg_index                | indpred         | pg_node_tree
+ pg_init_privs           | initprivs       | aclitem[]
+ pg_language             | lanacl          | aclitem[]
+ pg_largeobject          | data            | bytea
+ pg_largeobject_metadata | lomacl          | aclitem[]
+ pg_namespace            | nspacl          | aclitem[]
+ pg_partitioned_table    | partexprs       | pg_node_tree
+ pg_pltemplate           | tmplacl         | aclitem[]
+ pg_pltemplate           | tmplhandler     | text
+ pg_pltemplate           | tmplinline      | text
+ pg_pltemplate           | tmpllibrary     | text
+ pg_pltemplate           | tmplvalidator   | text
+ pg_policy               | polqual         | pg_node_tree
+ pg_policy               | polroles        | oid[]
+ pg_policy               | polwithcheck    | pg_node_tree
+ pg_replication_origin   | roname          | text
+ pg_subscription         | subconninfo     | text
+ pg_subscription         | subpublications | text[]
+ pg_subscription         | subsynccommit   | text
+ pg_tablespace           | spcacl          | aclitem[]
+ pg_tablespace           | spcoptions      | text[]
+ pg_ts_dict              | dictinitoption  | text
+ pg_type                 | typacl          | aclitem[]
+ pg_type                 | typdefault      | text
+ pg_type                 | typdefaultbin   | pg_node_tree
+ pg_user_mapping         | umoptions       | text[]
+(51 rows)
+
index b921117fa52c74f1d5ede57e0d1bd1f8d5659ab6..fe15fdda800ded9eeb135d5bdee918ddf643d08c 100644 (file)
@@ -72,3 +72,18 @@ loop
   end if;
 end loop;
 end$$;
+
+-- **************** pg_class ****************
+
+-- Look for system tables with varlena columns but no toast table.  At
+-- the moment, the result just records the status quo so that changes
+-- are deliberate.  Which system tables have toast tables is a bit
+-- arbitrary at the moment.
+
+SELECT relname, attname, atttypid::regtype
+FROM pg_class c JOIN pg_attribute a ON c.oid = attrelid
+WHERE c.oid < 16384 AND
+      reltoastrelid = 0 AND
+      relkind = 'r' AND
+      attstorage != 'p'
+ORDER BY 1, 2;