mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
64058429c5
Simon and Heikki
95 lines
3.4 KiB
Plaintext
95 lines
3.4 KiB
Plaintext
The functions in this module allow you to inspect the contents of data pages
|
|
at a low level, for debugging purposes.
|
|
|
|
1. Installation
|
|
|
|
$ make
|
|
$ make install
|
|
$ psql -e -f /usr/local/pgsql/share/contrib/pageinspect.sql test
|
|
|
|
2. Functions included:
|
|
|
|
get_raw_page
|
|
------------
|
|
get_raw_page reads one block of the named table and returns a copy as a
|
|
bytea field. This allows a single time-consistent copy of the block to be
|
|
made. Use of this functions is restricted to superusers.
|
|
|
|
page_header
|
|
-----------
|
|
page_header shows fields which are common to all PostgreSQL heap and index
|
|
pages. Use of this function is restricted to superusers.
|
|
|
|
A page image obtained with get_raw_page should be passed as argument:
|
|
|
|
test=# SELECT * FROM page_header(get_raw_page('pg_class',0));
|
|
lsn | tli | flags | lower | upper | special | pagesize | version
|
|
----------+-----+-------+-------+-------+---------+----------+---------
|
|
0/3C5614 | 1 | 1 | 216 | 256 | 8192 | 8192 | 4
|
|
(1 row)
|
|
|
|
The returned columns correspond to the fields in the PageHeaderData-struct,
|
|
see src/include/storage/bufpage.h for more details.
|
|
|
|
heap_page_items
|
|
---------------
|
|
heap_page_items shows all line pointers on a heap page. For those line
|
|
pointers that are in use, tuple headers are also shown. All tuples are
|
|
shown, whether or not the tuples were visible to an MVCC snapshot at the
|
|
time the raw page was copied. Use of this function is restricted to
|
|
superusers.
|
|
|
|
A heap page image obtained with get_raw_page should be passed as argument:
|
|
|
|
test=# SELECT * FROM heap_page_items(get_raw_page('pg_class',0));
|
|
|
|
See src/include/storage/itemid.h and src/include/access/htup.h for
|
|
explanations of the fields returned.
|
|
|
|
bt_metap
|
|
--------
|
|
bt_metap() returns information about the btree index metapage:
|
|
|
|
test=> SELECT * FROM bt_metap('pg_cast_oid_index');
|
|
-[ RECORD 1 ]-----
|
|
magic | 340322
|
|
version | 2
|
|
root | 1
|
|
level | 0
|
|
fastroot | 1
|
|
fastlevel | 0
|
|
|
|
bt_page_stats
|
|
-------------
|
|
bt_page_stats() shows information about single btree pages:
|
|
|
|
test=> SELECT * FROM bt_page_stats('pg_cast_oid_index', 1);
|
|
-[ RECORD 1 ]-+-----
|
|
blkno | 1
|
|
type | l
|
|
live_items | 256
|
|
dead_items | 0
|
|
avg_item_size | 12
|
|
page_size | 8192
|
|
free_size | 4056
|
|
btpo_prev | 0
|
|
btpo_next | 0
|
|
btpo | 0
|
|
btpo_flags | 3
|
|
|
|
bt_page_items
|
|
-------------
|
|
bt_page_items() returns information about specific items on btree pages:
|
|
|
|
test=> SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
|
|
itemoffset | ctid | itemlen | nulls | vars | data
|
|
------------+---------+---------+-------+------+-------------
|
|
1 | (0,1) | 12 | f | f | 23 27 00 00
|
|
2 | (0,2) | 12 | f | f | 24 27 00 00
|
|
3 | (0,3) | 12 | f | f | 25 27 00 00
|
|
4 | (0,4) | 12 | f | f | 26 27 00 00
|
|
5 | (0,5) | 12 | f | f | 27 27 00 00
|
|
6 | (0,6) | 12 | f | f | 28 27 00 00
|
|
7 | (0,7) | 12 | f | f | 29 27 00 00
|
|
8 | (0,8) | 12 | f | f | 2a 27 00 00
|