mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
Fix inconsistencies for queries on pg_class in type_sanity.sql
Three queries did not consider partitioned indexes and tables, and
surrounding comments have not been updated in a while.
Like 4b9fbd6be4
, this is only cosmetic currently as no such relkinds
exist at this stage of the regression tests, but running these queries
on existing clusters could lead to incorrect results.
Author: Jian He, Michael Paquier
Discussion: https://postgr.es/m/CACJufxGsB1ciahkNDccyxhw-Pfp_-_y+Wx+1BOdRyVVxKojAbg@mail.gmail.com
This commit is contained in:
parent
b7f315c9d7
commit
a9f19c1349
@ -507,28 +507,30 @@ WHERE relkind NOT IN ('r', 'i', 'S', 't', 'v', 'm', 'c', 'f', 'p', 'I') OR
|
||||
-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- All tables and indexes should have an access method.
|
||||
-- All tables, indexes, partitioned indexes and matviews 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;
|
||||
oid | relname
|
||||
-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- Conversely, sequences, views, types shouldn't have them
|
||||
-- Conversely, sequences, views, foreign tables, types and partitioned
|
||||
-- tables 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;
|
||||
oid | relname
|
||||
-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- Indexes should have AMs of type 'i'
|
||||
-- Indexes and 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';
|
||||
oid | relname | amname | amtype
|
||||
-----+---------+--------+--------
|
||||
|
@ -364,22 +364,24 @@ 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, indexes, partitioned indexes and matviews 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, foreign tables, types and partitioned
|
||||
-- tables 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 and 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'
|
||||
|
Loading…
Reference in New Issue
Block a user