mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-07-23 00:59:38 +02:00
57690c6803
pg_type.typtype whereever practical. Tom Dunstan, with some kibitzing from Tom Lane.
163 lines
4.8 KiB
Plaintext
163 lines
4.8 KiB
Plaintext
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) as well as temp tables
|
|
-- of other backends (to avoid timing-dependent behavior).
|
|
--
|
|
SELECT relname, relhasindex
|
|
FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = relnamespace
|
|
WHERE relkind = 'r' AND (nspname ~ '^pg_temp_') IS NOT TRUE
|
|
ORDER BY relname;
|
|
relname | relhasindex
|
|
-------------------------+-------------
|
|
a | f
|
|
a_star | f
|
|
abstime_tbl | f
|
|
aggtest | f
|
|
array_index_op_test | t
|
|
array_op_test | f
|
|
b | f
|
|
b_star | f
|
|
box_tbl | f
|
|
bprime | f
|
|
bt_f8_heap | t
|
|
bt_i4_heap | t
|
|
bt_name_heap | t
|
|
bt_txt_heap | t
|
|
c | f
|
|
c_star | f
|
|
char_tbl | f
|
|
check2_tbl | f
|
|
check_tbl | f
|
|
circle_tbl | t
|
|
city | f
|
|
copy_tbl | f
|
|
d | f
|
|
d_star | f
|
|
date_tbl | f
|
|
default_tbl | f
|
|
defaultexpr_tbl | f
|
|
dept | f
|
|
e_star | f
|
|
emp | f
|
|
equipment_r | f
|
|
f_star | f
|
|
fast_emp4000 | t
|
|
float4_tbl | f
|
|
float8_tbl | f
|
|
func_index_heap | t
|
|
hash_f8_heap | t
|
|
hash_i4_heap | t
|
|
hash_name_heap | t
|
|
hash_txt_heap | t
|
|
hobbies_r | f
|
|
ihighway | t
|
|
inet_tbl | f
|
|
inhe | f
|
|
inhf | f
|
|
inhx | t
|
|
insert_tbl | f
|
|
int2_tbl | f
|
|
int4_tbl | f
|
|
int8_tbl | f
|
|
interval_tbl | f
|
|
iportaltest | f
|
|
log_table | f
|
|
lseg_tbl | f
|
|
main_table | f
|
|
num_data | f
|
|
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
|
|
num_input_test | f
|
|
num_result | f
|
|
onek | t
|
|
onek2 | t
|
|
path_tbl | f
|
|
person | f
|
|
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_autovacuum | t
|
|
pg_cast | t
|
|
pg_class | t
|
|
pg_constraint | t
|
|
pg_conversion | t
|
|
pg_database | t
|
|
pg_depend | t
|
|
pg_description | t
|
|
pg_enum | t
|
|
pg_index | t
|
|
pg_inherits | t
|
|
pg_language | t
|
|
pg_largeobject | t
|
|
pg_listener | f
|
|
pg_namespace | t
|
|
pg_opclass | t
|
|
pg_operator | t
|
|
pg_opfamily | t
|
|
pg_pltemplate | t
|
|
pg_proc | t
|
|
pg_rewrite | t
|
|
pg_shdepend | t
|
|
pg_shdescription | t
|
|
pg_statistic | t
|
|
pg_tablespace | t
|
|
pg_trigger | t
|
|
pg_type | t
|
|
point_tbl | f
|
|
polygon_tbl | t
|
|
ramp | f
|
|
real_city | f
|
|
reltime_tbl | f
|
|
road | t
|
|
shighway | t
|
|
slow_emp4000 | f
|
|
sql_features | f
|
|
sql_implementation_info | f
|
|
sql_languages | f
|
|
sql_packages | f
|
|
sql_parts | f
|
|
sql_sizing | f
|
|
sql_sizing_profiles | f
|
|
stud_emp | f
|
|
student | f
|
|
tenk1 | t
|
|
tenk2 | t
|
|
text_tbl | f
|
|
time_tbl | f
|
|
timestamp_tbl | f
|
|
timestamptz_tbl | f
|
|
timetz_tbl | f
|
|
tinterval_tbl | f
|
|
varchar_tbl | f
|
|
(131 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)
|
|
|