mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
pageinspect: Add tests
This commit is contained in:
18
contrib/pageinspect/sql/brin.sql
Normal file
18
contrib/pageinspect/sql/brin.sql
Normal file
@ -0,0 +1,18 @@
|
||||
CREATE TABLE test1 (a int, b text);
|
||||
INSERT INTO test1 VALUES (1, 'one');
|
||||
CREATE INDEX test1_a_idx ON test1 USING brin (a);
|
||||
|
||||
SELECT brin_page_type(get_raw_page('test1_a_idx', 0));
|
||||
SELECT brin_page_type(get_raw_page('test1_a_idx', 1));
|
||||
SELECT brin_page_type(get_raw_page('test1_a_idx', 2));
|
||||
|
||||
SELECT * FROM brin_metapage_info(get_raw_page('test1_a_idx', 0));
|
||||
SELECT * FROM brin_metapage_info(get_raw_page('test1_a_idx', 1));
|
||||
|
||||
SELECT * FROM brin_revmap_data(get_raw_page('test1_a_idx', 0)) LIMIT 5;
|
||||
SELECT * FROM brin_revmap_data(get_raw_page('test1_a_idx', 1)) LIMIT 5;
|
||||
|
||||
SELECT * FROM brin_page_items(get_raw_page('test1_a_idx', 2), 'test1_a_idx')
|
||||
ORDER BY blknum, attnum LIMIT 5;
|
||||
|
||||
DROP TABLE test1;
|
17
contrib/pageinspect/sql/btree.sql
Normal file
17
contrib/pageinspect/sql/btree.sql
Normal file
@ -0,0 +1,17 @@
|
||||
CREATE TABLE test1 (a int, b text);
|
||||
INSERT INTO test1 VALUES (1, 'one');
|
||||
CREATE INDEX test1_a_idx ON test1 USING btree (a);
|
||||
|
||||
\x
|
||||
|
||||
SELECT * FROM bt_metap('test1_a_idx');
|
||||
|
||||
SELECT * FROM bt_page_stats('test1_a_idx', 0);
|
||||
SELECT * FROM bt_page_stats('test1_a_idx', 1);
|
||||
SELECT * FROM bt_page_stats('test1_a_idx', 2);
|
||||
|
||||
SELECT * FROM bt_page_items('test1_a_idx', 0);
|
||||
SELECT * FROM bt_page_items('test1_a_idx', 1);
|
||||
SELECT * FROM bt_page_items('test1_a_idx', 2);
|
||||
|
||||
DROP TABLE test1;
|
14
contrib/pageinspect/sql/gin.sql
Normal file
14
contrib/pageinspect/sql/gin.sql
Normal file
@ -0,0 +1,14 @@
|
||||
CREATE TABLE test1 (x int, y int[]);
|
||||
INSERT INTO test1 VALUES (1, ARRAY[11, 111]);
|
||||
CREATE INDEX test1_y_idx ON test1 USING gin (y);
|
||||
|
||||
\x
|
||||
|
||||
SELECT * FROM gin_metapage_info(get_raw_page('test1_y_idx', 0));
|
||||
SELECT * FROM gin_metapage_info(get_raw_page('test1_y_idx', 1));
|
||||
|
||||
SELECT * FROM gin_page_opaque_info(get_raw_page('test1_y_idx', 1));
|
||||
|
||||
SELECT * FROM gin_leafpage_items(get_raw_page('test1_y_idx', 1));
|
||||
|
||||
DROP TABLE test1;
|
30
contrib/pageinspect/sql/page.sql
Normal file
30
contrib/pageinspect/sql/page.sql
Normal file
@ -0,0 +1,30 @@
|
||||
CREATE EXTENSION pageinspect;
|
||||
|
||||
CREATE TABLE test1 (a int, b text);
|
||||
INSERT INTO test1 VALUES (1, 'one');
|
||||
|
||||
VACUUM test1; -- set up FSM
|
||||
|
||||
-- The page contents can vary, so just test that it can be read
|
||||
-- successfully, but don't keep the output.
|
||||
|
||||
SELECT octet_length(get_raw_page('test1', 'main', 0)) AS main_0;
|
||||
SELECT octet_length(get_raw_page('test1', 'main', 1)) AS main_1;
|
||||
|
||||
SELECT octet_length(get_raw_page('test1', 'fsm', 0)) AS fsm_0;
|
||||
SELECT octet_length(get_raw_page('test1', 'fsm', 1)) AS fsm_1;
|
||||
|
||||
SELECT octet_length(get_raw_page('test1', 'vm', 0)) AS vm_0;
|
||||
SELECT octet_length(get_raw_page('test1', 'vm', 1)) AS vm_1;
|
||||
|
||||
SELECT octet_length(get_raw_page('xxx', 'main', 0));
|
||||
SELECT octet_length(get_raw_page('test1', 'xxx', 0));
|
||||
|
||||
SELECT get_raw_page('test1', 0) = get_raw_page('test1', 'main', 0);
|
||||
|
||||
SELECT tuple_data_split('test1'::regclass, t_data, t_infomask, t_infomask2, t_bits)
|
||||
FROM heap_page_items(get_raw_page('test1', 0));
|
||||
|
||||
SELECT * FROM fsm_page_contents(get_raw_page('test1', 'fsm', 0));
|
||||
|
||||
DROP TABLE test1;
|
Reference in New Issue
Block a user