blob: 581146bbd70b48a937e9ac6e13656c45a87351fb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
VACUUM;
--
-- sanity check, if we don't have indices the test will take years to
-- complete. But skip TOAST relations since they will have varying
-- names depending on the current OID counter.
--
SELECT relname, relhasindex
FROM pg_class
WHERE relhasindex AND relkind != 't'
ORDER BY relname;
relname | relhasindex
---------------------+-------------
bt_f8_heap | t
bt_i4_heap | t
bt_name_heap | t
bt_txt_heap | t
fast_emp4000 | t
func_index_heap | t
hash_f8_heap | t
hash_i4_heap | t
hash_name_heap | t
hash_txt_heap | t
ihighway | t
num_exp_add | t
num_exp_div | t
num_exp_ln | t
num_exp_log10 | t
num_exp_mul | t
num_exp_power_10_ln | t
num_exp_sqrt | t
num_exp_sub | t
onek | t
onek2 | t
pg_aggregate | t
pg_am | t
pg_amop | t
pg_amproc | t
pg_attrdef | t
pg_attribute | t
pg_auth_members | t
pg_authid | t
pg_cast | t
pg_class | t
pg_constraint | t
pg_conversion | t
pg_database | t
pg_depend | t
pg_description | t
pg_index | t
pg_inherits | t
pg_language | t
pg_largeobject | t
pg_namespace | t
pg_opclass | t
pg_operator | t
pg_proc | t
pg_rewrite | t
pg_statistic | t
pg_tablespace | t
pg_trigger | t
pg_type | t
road | t
shighway | t
tenk1 | t
tenk2 | t
(53 rows)
--
-- another sanity check: every system catalog that has OIDs should have
-- a unique index on OID. This ensures that the OIDs will be unique,
-- even after the OID counter wraps around.
-- We exclude non-system tables from the check by looking at nspname.
--
SELECT relname, nspname
FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = relnamespace
WHERE relhasoids
AND ((nspname ~ '^pg_') IS NOT FALSE)
AND NOT EXISTS (SELECT 1 FROM pg_index i WHERE indrelid = c.oid
AND indkey[0] = -2 AND indnatts = 1 AND indisunique);
relname | nspname
---------+---------
(0 rows)
|