aboutsummaryrefslogtreecommitdiff
path: root/contrib/pgstattuple/pgstattuple.sql.in
blob: 39220f35366270891587371e4e0cd69be85cd73b (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
-- Adjust this setting to control where the objects get created.
SET search_path = public;

CREATE TYPE pgstattuple_type AS (
	table_len BIGINT,		-- physical table length in bytes
	tuple_count BIGINT,		-- number of live tuples
	tuple_len BIGINT,		-- total tuples length in bytes
	tuple_percent FLOAT,		-- live tuples in %
	dead_tuple_count BIGINT,	-- number of dead tuples
	dead_tuple_len BIGINT,		-- total dead tuples length in bytes
	dead_tuple_percent FLOAT,	-- dead tuples in %
	free_space BIGINT,		-- free space in bytes
	free_percent FLOAT		-- free space in %
);

CREATE OR REPLACE FUNCTION pgstattuple(text)
RETURNS pgstattuple_type
AS 'MODULE_PATHNAME', 'pgstattuple'
LANGUAGE C STRICT;

CREATE OR REPLACE FUNCTION pgstattuple(oid)
RETURNS pgstattuple_type
AS 'MODULE_PATHNAME', 'pgstattuplebyid'
LANGUAGE C STRICT;

--
-- pgstatindex
--
CREATE TYPE pgstatindex_type AS (
  version int4,
  tree_level int4,
  index_size int4,
  root_block_no int4,
  internal_pages int4,
  leaf_pages int4,
  empty_pages int4,
  deleted_pages int4,
  avg_leaf_density float8,
  leaf_fragmentation float8
);

CREATE OR REPLACE FUNCTION pgstatindex(text)
RETURNS pgstatindex_type
AS 'MODULE_PATHNAME', 'pgstatindex'
LANGUAGE 'C' STRICT;

--
-- bt_metap()
--
CREATE TYPE bt_metap_type AS (
  magic int4,
  version int4,
  root int4,
  level int4,
  fastroot int4,
  fastlevel int4
);

CREATE OR REPLACE FUNCTION bt_metap(text)
RETURNS bt_metap_type
AS 'MODULE_PATHNAME', 'bt_metap'
LANGUAGE 'C' STRICT;

--
-- bt_page_stats()
--
CREATE TYPE bt_page_stats_type AS (
  blkno int4,
  type char,
  live_items int4,
  dead_items int4,
  avg_item_size float,
  page_size int4,
  free_size int4,
  btpo_prev int4,
  btpo_next int4,
  btpo int4,
  btpo_flags int4
);

CREATE OR REPLACE FUNCTION bt_page_stats(text, int4)
RETURNS bt_page_stats_type
AS 'MODULE_PATHNAME', 'bt_page_stats'
LANGUAGE 'C' STRICT;

--
-- bt_page_items()
--
CREATE TYPE bt_page_items_type AS (
  itemoffset int4,
  ctid tid,
  itemlen int4,
  nulls bool,
  vars bool,
  data text
);

CREATE OR REPLACE FUNCTION bt_page_items(text, int4)
RETURNS SETOF bt_page_items_type
AS 'MODULE_PATHNAME', 'bt_page_items'
LANGUAGE 'C' STRICT;

--
-- pg_relpages()
--
CREATE OR REPLACE FUNCTION pg_relpages(text)
RETURNS int
AS 'MODULE_PATHNAME', 'pg_relpages'
LANGUAGE 'C' STRICT;