looking around. I found other three minor issues. attached.
I am not sure the pg_class "relam" description part is correct. since partitioned indexes (relkind "I") also have the access method, but no storage. " If this is a table or an index, the access method used (heap, B-tree, hash, etc.); otherwise zero (zero occurs for sequences, as well as relations without storage, such as views) "
diff --git a/src/test/regress/sql/type_sanity.sql b/src/test/regress/sql/type_sanity.sql index a546ba89..6d806941 100644 --- a/src/test/regress/sql/type_sanity.sql +++ b/src/test/regress/sql/type_sanity.sql @@ -364,22 +364,22 @@ WHERE relkind NOT IN ('r', 'i', 'S', 't', 'v', 'm', 'c', 'f', 'p', 'I') OR relpersistence NOT IN ('p', 'u', 't') OR relreplident NOT IN ('d', 'n', 'f', 'i'); --- All tables and indexes should have an access method. +-- All tables and indexes, partitioned indexes should have an access method. SELECT c1.oid, c1.relname FROM pg_class as c1 -WHERE c1.relkind NOT IN ('S', 'v', 'f', 'c') and +WHERE c1.relkind NOT IN ('S', 'v', 'f', 'c','p') and c1.relam = 0; --- Conversely, sequences, views, types shouldn't have them +-- Conversely, sequences, views, types, partitioned table shouldn't have them SELECT c1.oid, c1.relname FROM pg_class as c1 -WHERE c1.relkind IN ('S', 'v', 'f', 'c') and +WHERE c1.relkind IN ('S', 'v', 'f', 'c','p') and c1.relam != 0; --- Indexes should have AMs of type 'i' +-- Indexes, partitioned indexes should have AMs of type 'i' SELECT pc.oid, pc.relname, pa.amname, pa.amtype FROM pg_class as pc JOIN pg_am AS pa ON (pc.relam = pa.oid) -WHERE pc.relkind IN ('i') and +WHERE pc.relkind IN ('i','I') and pa.amtype != 'i'; -- Tables, matviews etc should have AMs of type 't'