mirror of https://github.com/postgres/postgres
b09c248bdd
installations whose pg_config program does not appear first in the PATH. Per gripe from Eddie Stanley and subsequent discussions with Fabien Coelho and others. |
||
---|---|---|
.. | ||
Makefile | ||
README.pageinspect | ||
btreefuncs.c | ||
heapfuncs.c | ||
pageinspect.sql.in | ||
rawpage.c | ||
uninstall_pageinspect.sql |
README.pageinspect
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