mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Remove unused system table columns:
pg_language.lancompiler pg_operator.oprprec pg_operator.oprisleft pg_proc.proimplicit pg_proc.probyte_pct pg_proc.properbyte_cpu pg_proc.propercall_cpu pg_proc.prooutin_ratio pg_shadow.usetrace pg_type.typprtlen pg_type.typreceive pg_type.typsend Attempts to use the obsoleted attributes of pg_operator or pg_proc in the CREATE commands will be greeted by a warning. For pg_type, there is no warning (yet) because pg_dump scripts still contain these attributes. Also remove new but already obsolete spellings isVolatile, isStable, isImmutable in WITH clause. (Use new syntax instead.)
This commit is contained in:
@ -417,19 +417,3 @@ WHERE pg_type.typoutput != 0 AND
|
||||
------+-----------
|
||||
(0 rows)
|
||||
|
||||
SELECT ctid, pg_type.typreceive
|
||||
FROM pg_type
|
||||
WHERE pg_type.typreceive != 0 AND
|
||||
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typreceive);
|
||||
ctid | typreceive
|
||||
------+------------
|
||||
(0 rows)
|
||||
|
||||
SELECT ctid, pg_type.typsend
|
||||
FROM pg_type
|
||||
WHERE pg_type.typsend != 0 AND
|
||||
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typsend);
|
||||
ctid | typsend
|
||||
------+---------
|
||||
(0 rows)
|
||||
|
||||
|
@ -1288,7 +1288,7 @@ SELECT viewname, definition FROM pg_views ORDER BY viewname;
|
||||
pg_statio_user_tables | SELECT pg_statio_all_tables.relid, pg_statio_all_tables.relname, pg_statio_all_tables.heap_blks_read, pg_statio_all_tables.heap_blks_hit, pg_statio_all_tables.idx_blks_read, pg_statio_all_tables.idx_blks_hit, pg_statio_all_tables.toast_blks_read, pg_statio_all_tables.toast_blks_hit, pg_statio_all_tables.tidx_blks_read, pg_statio_all_tables.tidx_blks_hit FROM pg_statio_all_tables WHERE (pg_statio_all_tables.relname !~ '^pg_'::text);
|
||||
pg_stats | SELECT c.relname AS tablename, a.attname, s.stanullfrac AS null_frac, s.stawidth AS avg_width, s.stadistinct AS n_distinct, CASE WHEN (1 = s.stakind1) THEN s.stavalues1 WHEN (1 = s.stakind2) THEN s.stavalues2 WHEN (1 = s.stakind3) THEN s.stavalues3 WHEN (1 = s.stakind4) THEN s.stavalues4 ELSE NULL::text[] END AS most_common_vals, CASE WHEN (1 = s.stakind1) THEN s.stanumbers1 WHEN (1 = s.stakind2) THEN s.stanumbers2 WHEN (1 = s.stakind3) THEN s.stanumbers3 WHEN (1 = s.stakind4) THEN s.stanumbers4 ELSE NULL::real[] END AS most_common_freqs, CASE WHEN (2 = s.stakind1) THEN s.stavalues1 WHEN (2 = s.stakind2) THEN s.stavalues2 WHEN (2 = s.stakind3) THEN s.stavalues3 WHEN (2 = s.stakind4) THEN s.stavalues4 ELSE NULL::text[] END AS histogram_bounds, CASE WHEN (3 = s.stakind1) THEN s.stanumbers1[1] WHEN (3 = s.stakind2) THEN s.stanumbers2[1] WHEN (3 = s.stakind3) THEN s.stanumbers3[1] WHEN (3 = s.stakind4) THEN s.stanumbers4[1] ELSE NULL::real END AS correlation FROM pg_class c, pg_attribute a, pg_statistic s WHERE ((((c.oid = s.starelid) AND (c.oid = a.attrelid)) AND (a.attnum = s.staattnum)) AND has_table_privilege(c.oid, 'select'::text));
|
||||
pg_tables | SELECT c.relname AS tablename, pg_get_userbyid(c.relowner) AS tableowner, c.relhasindex AS hasindexes, c.relhasrules AS hasrules, (c.reltriggers > 0) AS hastriggers FROM pg_class c WHERE ((c.relkind = 'r'::"char") OR (c.relkind = 's'::"char"));
|
||||
pg_user | SELECT pg_shadow.usename, pg_shadow.usesysid, pg_shadow.usecreatedb, pg_shadow.usetrace, pg_shadow.usesuper, pg_shadow.usecatupd, '********'::text AS passwd, pg_shadow.valuntil, pg_shadow.useconfig FROM pg_shadow;
|
||||
pg_user | SELECT pg_shadow.usename, pg_shadow.usesysid, pg_shadow.usecreatedb, pg_shadow.usesuper, pg_shadow.usecatupd, '********'::text AS passwd, pg_shadow.valuntil, pg_shadow.useconfig FROM pg_shadow;
|
||||
pg_views | SELECT n.nspname AS schemaname, c.relname AS viewname, pg_get_userbyid(c.relowner) AS viewowner, pg_get_viewdef(c.oid) AS definition FROM (pg_class c LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'v'::"char");
|
||||
rtest_v1 | SELECT rtest_t1.a, rtest_t1.b FROM rtest_t1;
|
||||
rtest_vcomp | SELECT x.part, (x.size * y.factor) AS size_in_cm FROM rtest_comp x, rtest_unitfact y WHERE (x.unit = y.unit);
|
||||
|
@ -85,8 +85,7 @@ WHERE p1.typtype != 'c' AND p1.typname LIKE '\\_%' AND NOT EXISTS
|
||||
SELECT p1.oid, p1.typname
|
||||
FROM pg_type as p1
|
||||
WHERE p1.typtype != 'c' AND
|
||||
(p1.typinput = 0 OR p1.typoutput = 0 OR
|
||||
p1.typreceive = 0 OR p1.typsend = 0);
|
||||
(p1.typinput = 0 OR p1.typoutput = 0);
|
||||
oid | typname
|
||||
-----+---------
|
||||
(0 rows)
|
||||
@ -117,32 +116,6 @@ WHERE p1.typoutput = p2.oid AND p1.typtype = 'b' AND
|
||||
-----+---------+-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- Check for bogus typreceive routines
|
||||
-- FIXME: ought to check prorettype, but there are special cases that make it
|
||||
-- hard: prorettype might be binary-compatible with the type but not the same,
|
||||
-- and for array types array_in's result has nothing to do with anything.
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typreceive = p2.oid AND p1.typtype = 'b' AND
|
||||
(p2.pronargs != 1 OR p2.proretset) AND
|
||||
(p2.pronargs != 3 OR p2.proretset OR p2.proargtypes[2] != 'int4'::regtype);
|
||||
oid | typname | oid | proname
|
||||
-----+---------+-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- Check for bogus typsend routines
|
||||
-- The first OR subclause detects bogus non-array cases,
|
||||
-- the second one detects bogus array cases.
|
||||
-- FIXME: ought to check prorettype, but not clear what it should be.
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typsend = p2.oid AND p1.typtype = 'b' AND
|
||||
(p2.pronargs != 1 OR p2.proretset) AND
|
||||
(p2.pronargs != 2 OR p2.proretset OR p1.typelem = 0);
|
||||
oid | typname | oid | proname
|
||||
-----+---------+-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- **************** pg_class ****************
|
||||
-- Look for illegal values in pg_class fields
|
||||
SELECT p1.oid, p1.relname
|
||||
|
@ -209,11 +209,3 @@ SELECT ctid, pg_type.typoutput
|
||||
FROM pg_type
|
||||
WHERE pg_type.typoutput != 0 AND
|
||||
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typoutput);
|
||||
SELECT ctid, pg_type.typreceive
|
||||
FROM pg_type
|
||||
WHERE pg_type.typreceive != 0 AND
|
||||
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typreceive);
|
||||
SELECT ctid, pg_type.typsend
|
||||
FROM pg_type
|
||||
WHERE pg_type.typsend != 0 AND
|
||||
NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typsend);
|
||||
|
@ -73,8 +73,7 @@ WHERE p1.typtype != 'c' AND p1.typname LIKE '\\_%' AND NOT EXISTS
|
||||
SELECT p1.oid, p1.typname
|
||||
FROM pg_type as p1
|
||||
WHERE p1.typtype != 'c' AND
|
||||
(p1.typinput = 0 OR p1.typoutput = 0 OR
|
||||
p1.typreceive = 0 OR p1.typsend = 0);
|
||||
(p1.typinput = 0 OR p1.typoutput = 0);
|
||||
|
||||
-- Check for bogus typinput routines
|
||||
-- FIXME: ought to check prorettype, but there are special cases that make it
|
||||
@ -98,28 +97,6 @@ WHERE p1.typoutput = p2.oid AND p1.typtype = 'b' AND
|
||||
(p2.pronargs != 1 OR p2.proretset) AND
|
||||
(p2.pronargs != 2 OR p2.proretset OR p1.typelem = 0);
|
||||
|
||||
-- Check for bogus typreceive routines
|
||||
-- FIXME: ought to check prorettype, but there are special cases that make it
|
||||
-- hard: prorettype might be binary-compatible with the type but not the same,
|
||||
-- and for array types array_in's result has nothing to do with anything.
|
||||
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typreceive = p2.oid AND p1.typtype = 'b' AND
|
||||
(p2.pronargs != 1 OR p2.proretset) AND
|
||||
(p2.pronargs != 3 OR p2.proretset OR p2.proargtypes[2] != 'int4'::regtype);
|
||||
|
||||
-- Check for bogus typsend routines
|
||||
-- The first OR subclause detects bogus non-array cases,
|
||||
-- the second one detects bogus array cases.
|
||||
-- FIXME: ought to check prorettype, but not clear what it should be.
|
||||
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typsend = p2.oid AND p1.typtype = 'b' AND
|
||||
(p2.pronargs != 1 OR p2.proretset) AND
|
||||
(p2.pronargs != 2 OR p2.proretset OR p1.typelem = 0);
|
||||
|
||||
-- **************** pg_class ****************
|
||||
|
||||
-- Look for illegal values in pg_class fields
|
||||
|
Reference in New Issue
Block a user