-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathrum--1.3--1.4.sql
More file actions
131 lines (123 loc) · 2.88 KB
/
rum--1.3--1.4.sql
File metadata and controls
131 lines (123 loc) · 2.88 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
* RUM version 1.4
*/
/*--------------------RUM debug functions-----------------------*/
CREATE FUNCTION rum_metapage_info(
IN rel_name text,
IN blk_num int4,
OUT pending_head bigint,
OUT pending_tail bigint,
OUT tail_free_size int4,
OUT n_pending_pages bigint,
OUT n_pending_tuples bigint,
OUT n_total_pages bigint,
OUT n_entry_pages bigint,
OUT n_data_pages bigint,
OUT n_entries bigint,
OUT version varchar)
AS 'MODULE_PATHNAME', 'rum_metapage_info'
LANGUAGE C STRICT PARALLEL SAFE;
CREATE FUNCTION rum_page_opaque_info(
IN rel_name text,
IN blk_num int4,
OUT leftlink bigint,
OUT rightlink bigint,
OUT maxoff int4,
OUT freespace int4,
OUT flags text[])
AS 'MODULE_PATHNAME', 'rum_page_opaque_info'
LANGUAGE C STRICT PARALLEL SAFE;
CREATE OR REPLACE FUNCTION
rum_page_items_info(rel_name text, blk_num int4, page_type int4)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'rum_page_items_info'
LANGUAGE C STRICT;
CREATE FUNCTION rum_leaf_data_page_items(
rel_name text,
blk_num int4
)
RETURNS TABLE(
is_high_key bool,
tuple_id tid,
add_info_is_null bool,
add_info varchar
)
AS $$
SELECT *
FROM rum_page_items_info(rel_name, blk_num, 0)
AS rum_page_items_info(
is_high_key bool,
tuple_id tid,
add_info_is_null bool,
add_info varchar
);
$$ LANGUAGE sql;
CREATE FUNCTION rum_internal_data_page_items(
rel_name text,
blk_num int4
)
RETURNS TABLE(
is_high_key bool,
block_number int4,
tuple_id tid,
add_info_is_null bool,
add_info varchar
)
AS $$
SELECT *
FROM rum_page_items_info(rel_name, blk_num, 1)
AS rum_page_items_info(
is_high_key bool,
block_number int4,
tuple_id tid,
add_info_is_null bool,
add_info varchar
);
$$ LANGUAGE sql;
CREATE FUNCTION rum_leaf_entry_page_items(
rel_name text,
blk_num int4
)
RETURNS TABLE(
key varchar,
attrnum int4,
category varchar,
tuple_id tid,
add_info_is_null bool,
add_info varchar,
is_postring_tree bool,
postring_tree_root int4
)
AS $$
SELECT *
FROM rum_page_items_info(rel_name, blk_num, 2)
AS rum_page_items_info(
key varchar,
attrnum int4,
category varchar,
tuple_id tid,
add_info_is_null bool,
add_info varchar,
is_postring_tree bool,
postring_tree_root int4
);
$$ LANGUAGE sql;
CREATE FUNCTION rum_internal_entry_page_items(
rel_name text,
blk_num int4
)
RETURNS TABLE(
key varchar,
attrnum int4,
category varchar,
down_link int4)
AS $$
SELECT *
FROM rum_page_items_info(rel_name, blk_num, 3)
AS rum_page_items_info(
key varchar,
attrnum int4,
category varchar,
down_link int4
);
$$ LANGUAGE sql;