|
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>F.22. pageinspect</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="ltree.html" title="F.21. ltree" /><link rel="next" href="passwordcheck.html" title="F.23. passwordcheck" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">F.22. pageinspect</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="ltree.html" title="F.21. ltree">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="contrib.html" title="Appendix F. Additional Supplied Modules">Up</a></td><th width="60%" align="center">Appendix F. Additional Supplied Modules</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 12.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="passwordcheck.html" title="F.23. passwordcheck">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="PAGEINSPECT"><div class="titlepage"><div><div><h2 class="title" style="clear: both">F.22. pageinspect</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="pageinspect.html#id-1.11.7.31.4">F.22.1. General Functions</a></span></dt><dt><span class="sect2"><a href="pageinspect.html#id-1.11.7.31.5">F.22.2. Heap Functions</a></span></dt><dt><span class="sect2"><a href="pageinspect.html#id-1.11.7.31.6">F.22.3. B-Tree Functions</a></span></dt><dt><span class="sect2"><a href="pageinspect.html#id-1.11.7.31.7">F.22.4. BRIN Functions</a></span></dt><dt><span class="sect2"><a href="pageinspect.html#id-1.11.7.31.8">F.22.5. GIN Functions</a></span></dt><dt><span class="sect2"><a href="pageinspect.html#id-1.11.7.31.9">F.22.6. Hash Functions</a></span></dt></dl></div><a id="id-1.11.7.31.2" class="indexterm"></a><p>
- The <code class="filename">pageinspect</code> module provides functions that allow you to
- inspect the contents of database pages at a low level, which is useful for
- debugging purposes. All of these functions may be used only by superusers.
- </p><div class="sect2" id="id-1.11.7.31.4"><div class="titlepage"><div><div><h3 class="title">F.22.1. General Functions</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
- <code class="function">get_raw_page(relname text, fork text, blkno int) returns bytea</code>
- <a id="id-1.11.7.31.4.2.1.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">get_raw_page</code> reads the specified block of the named
- relation and returns a copy as a <code class="type">bytea</code> value. This allows a
- single time-consistent copy of the block to be obtained.
- <em class="replaceable"><code>fork</code></em> should be <code class="literal">'main'</code> for
- the main data fork, <code class="literal">'fsm'</code> for the free space map,
- <code class="literal">'vm'</code> for the visibility map, or <code class="literal">'init'</code>
- for the initialization fork.
- </p></dd><dt><span class="term">
- <code class="function">get_raw_page(relname text, blkno int) returns bytea</code>
- </span></dt><dd><p>
- A shorthand version of <code class="function">get_raw_page</code>, for reading
- from the main fork. Equivalent to
- <code class="literal">get_raw_page(relname, 'main', blkno)</code>
- </p></dd><dt><span class="term">
- <code class="function">page_header(page bytea) returns record</code>
- <a id="id-1.11.7.31.4.2.3.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">page_header</code> shows fields that are common to all
- <span class="productname">PostgreSQL</span> heap and index pages.
- </p><p>
- A page image obtained with <code class="function">get_raw_page</code> should be
- passed as argument. For example:
- </p><pre class="screen">
- test=# SELECT * FROM page_header(get_raw_page('pg_class', 0));
- lsn | checksum | flags | lower | upper | special | pagesize | version | prune_xid
- -----------+----------+--------+-------+-------+---------+----------+---------+-----------
- 0/24A1B50 | 0 | 1 | 232 | 368 | 8192 | 8192 | 4 | 0
- </pre><p>
- The returned columns correspond to the fields in the
- <code class="structname">PageHeaderData</code> struct.
- See <code class="filename">src/include/storage/bufpage.h</code> for details.
- </p><p>
- The <code class="structfield">checksum</code> field is the checksum stored in
- the page, which might be incorrect if the page is somehow corrupted. If
- data checksums are not enabled for this instance, then the value stored
- is meaningless.
- </p></dd><dt><span class="term">
- <code class="function">page_checksum(page bytea, blkno int4) returns smallint</code>
- <a id="id-1.11.7.31.4.2.4.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">page_checksum</code> computes the checksum for the page, as if
- it was located at the given block.
- </p><p>
- A page image obtained with <code class="function">get_raw_page</code> should be
- passed as argument. For example:
- </p><pre class="screen">
- test=# SELECT page_checksum(get_raw_page('pg_class', 0), 0);
- page_checksum
- ---------------
- 13443
- </pre><p>
- Note that the checksum depends on the block number, so matching block
- numbers should be passed (except when doing esoteric debugging).
- </p><p>
- The checksum computed with this function can be compared with
- the <code class="structfield">checksum</code> result field of the
- function <code class="function">page_header</code>. If data checksums are
- enabled for this instance, then the two values should be equal.
- </p></dd><dt><span class="term">
- <code class="function">fsm_page_contents(page bytea) returns text</code>
- <a id="id-1.11.7.31.4.2.5.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">fsm_page_contents</code> shows the internal node structure
- of a FSM page. For example:
- </p><pre class="screen">
- test=# SELECT fsm_page_contents(get_raw_page('pg_class', 'fsm', 0));
- </pre><p>
- The output is a multiline string, with one line per node in the binary
- tree within the page. Only those nodes that are not zero are printed.
- The so-called "next" pointer, which points to the next slot to be
- returned from the page, is also printed.
- </p><p>
- See <code class="filename">src/backend/storage/freespace/README</code> for more
- information on the structure of an FSM page.
- </p></dd></dl></div></div><div class="sect2" id="id-1.11.7.31.5"><div class="titlepage"><div><div><h3 class="title">F.22.2. Heap Functions</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
- <code class="function">heap_page_items(page bytea) returns setof record</code>
- <a id="id-1.11.7.31.5.2.1.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">heap_page_items</code> shows all line pointers on a heap
- page. For those line pointers that are in use, tuple headers as well
- as tuple raw data 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.
- </p><p>
- A heap page image obtained with <code class="function">get_raw_page</code> should
- be passed as argument. For example:
- </p><pre class="screen">
- test=# SELECT * FROM heap_page_items(get_raw_page('pg_class', 0));
- </pre><p>
- See <code class="filename">src/include/storage/itemid.h</code> and
- <code class="filename">src/include/access/htup_details.h</code> for explanations of the fields
- returned.
- </p></dd><dt><span class="term">
- <code class="function">tuple_data_split(rel_oid oid, t_data bytea, t_infomask integer, t_infomask2 integer, t_bits text [, do_detoast bool]) returns bytea[]</code>
- <a id="id-1.11.7.31.5.2.2.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">tuple_data_split</code> splits tuple data into attributes
- in the same way as backend internals.
- </p><pre class="screen">
- test=# SELECT tuple_data_split('pg_class'::regclass, t_data, t_infomask, t_infomask2, t_bits) FROM heap_page_items(get_raw_page('pg_class', 0));
- </pre><p>
- This function should be called with the same arguments as the return
- attributes of <code class="function">heap_page_items</code>.
- </p><p>
- If <em class="parameter"><code>do_detoast</code></em> is <code class="literal">true</code>,
- attribute that will be detoasted as needed. Default value is
- <code class="literal">false</code>.
- </p></dd><dt><span class="term">
- <code class="function">heap_page_item_attrs(page bytea, rel_oid regclass [, do_detoast bool]) returns setof record</code>
- <a id="id-1.11.7.31.5.2.3.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">heap_page_item_attrs</code> is equivalent to
- <code class="function">heap_page_items</code> except that it returns
- tuple raw data as an array of attributes that can optionally
- be detoasted by <em class="parameter"><code>do_detoast</code></em> which is
- <code class="literal">false</code> by default.
- </p><p>
- A heap page image obtained with <code class="function">get_raw_page</code> should
- be passed as argument. For example:
- </p><pre class="screen">
- test=# SELECT * FROM heap_page_item_attrs(get_raw_page('pg_class', 0), 'pg_class'::regclass);
- </pre><p>
- </p></dd></dl></div></div><div class="sect2" id="id-1.11.7.31.6"><div class="titlepage"><div><div><h3 class="title">F.22.3. B-Tree Functions</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
- <code class="function">bt_metap(relname text) returns record</code>
- <a id="id-1.11.7.31.6.2.1.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">bt_metap</code> returns information about a B-tree
- index's metapage. For example:
- </p><pre class="screen">
- test=# SELECT * FROM bt_metap('pg_cast_oid_index');
- -[ RECORD 1 ]-----------+-------
- magic | 340322
- version | 3
- root | 1
- level | 0
- fastroot | 1
- fastlevel | 0
- oldest_xact | 582
- last_cleanup_num_tuples | 1000
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">bt_page_stats(relname text, blkno int) returns record</code>
- <a id="id-1.11.7.31.6.2.2.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">bt_page_stats</code> returns summary information about
- single pages of B-tree indexes. For example:
- </p><pre class="screen">
- 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
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">bt_page_items(relname text, blkno int) returns setof record</code>
- <a id="id-1.11.7.31.6.2.3.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">bt_page_items</code> returns detailed information about
- all of the items on a B-tree index page. For example:
- </p><pre class="screen">
- 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
- </pre><p>
- In a B-tree leaf page, <code class="structfield">ctid</code> points to a heap tuple.
- In an internal page, the block number part of <code class="structfield">ctid</code>
- points to another page in the index itself, while the offset part
- (the second number) is ignored and is usually 1.
- </p><p>
- Note that the first item on any non-rightmost page (any page with
- a non-zero value in the <code class="structfield">btpo_next</code> field) is the
- page's <span class="quote">“<span class="quote">high key</span>”</span>, meaning its <code class="structfield">data</code>
- serves as an upper bound on all items appearing on the page, while
- its <code class="structfield">ctid</code> field is meaningless. Also, on non-leaf
- pages, the first real data item (the first item that is not a high
- key) is a <span class="quote">“<span class="quote">minus infinity</span>”</span> item, with no actual value
- in its <code class="structfield">data</code> field. Such an item does have a valid
- downlink in its <code class="structfield">ctid</code> field, however.
- </p></dd><dt><span class="term">
- <code class="function">bt_page_items(page bytea) returns setof record</code>
- <a id="id-1.11.7.31.6.2.4.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- It is also possible to pass a page to <code class="function">bt_page_items</code>
- as a <code class="type">bytea</code> value. A page image obtained
- with <code class="function">get_raw_page</code> should be passed as argument. So
- the last example could also be rewritten like this:
- </p><pre class="screen">
- test=# SELECT * FROM bt_page_items(get_raw_page('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
- </pre><p>
- All the other details are the same as explained in the previous item.
- </p></dd></dl></div></div><div class="sect2" id="id-1.11.7.31.7"><div class="titlepage"><div><div><h3 class="title">F.22.4. BRIN Functions</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
- <code class="function">brin_page_type(page bytea) returns text</code>
- <a id="id-1.11.7.31.7.2.1.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">brin_page_type</code> returns the page type of the given
- <acronym class="acronym">BRIN</acronym> index page, or throws an error if the page is
- not a valid <acronym class="acronym">BRIN</acronym> page. For example:
- </p><pre class="screen">
- test=# SELECT brin_page_type(get_raw_page('brinidx', 0));
- brin_page_type
- ----------------
- meta
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">brin_metapage_info(page bytea) returns record</code>
- <a id="id-1.11.7.31.7.2.2.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">brin_metapage_info</code> returns assorted information
- about a <acronym class="acronym">BRIN</acronym> index metapage. For example:
- </p><pre class="screen">
- test=# SELECT * FROM brin_metapage_info(get_raw_page('brinidx', 0));
- magic | version | pagesperrange | lastrevmappage
- ------------+---------+---------------+----------------
- 0xA8109CFA | 1 | 4 | 2
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">brin_revmap_data(page bytea) returns setof tid</code>
- <a id="id-1.11.7.31.7.2.3.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">brin_revmap_data</code> returns the list of tuple
- identifiers in a <acronym class="acronym">BRIN</acronym> index range map page.
- For example:
- </p><pre class="screen">
- test=# SELECT * FROM brin_revmap_data(get_raw_page('brinidx', 2)) LIMIT 5;
- pages
- ---------
- (6,137)
- (6,138)
- (6,139)
- (6,140)
- (6,141)
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">brin_page_items(page bytea, index oid) returns setof record</code>
- <a id="id-1.11.7.31.7.2.4.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">brin_page_items</code> returns the data stored in the
- <acronym class="acronym">BRIN</acronym> data page. For example:
- </p><pre class="screen">
- test=# SELECT * FROM brin_page_items(get_raw_page('brinidx', 5),
- 'brinidx')
- ORDER BY blknum, attnum LIMIT 6;
- itemoffset | blknum | attnum | allnulls | hasnulls | placeholder | value
- ------------+--------+--------+----------+----------+-------------+--------------
- 137 | 0 | 1 | t | f | f |
- 137 | 0 | 2 | f | f | f | {1 .. 88}
- 138 | 4 | 1 | t | f | f |
- 138 | 4 | 2 | f | f | f | {89 .. 176}
- 139 | 8 | 1 | t | f | f |
- 139 | 8 | 2 | f | f | f | {177 .. 264}
- </pre><p>
- The returned columns correspond to the fields in the
- <code class="structname">BrinMemTuple</code> and <code class="structname">BrinValues</code> structs.
- See <code class="filename">src/include/access/brin_tuple.h</code> for details.
- </p></dd></dl></div></div><div class="sect2" id="id-1.11.7.31.8"><div class="titlepage"><div><div><h3 class="title">F.22.5. GIN Functions</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
- <code class="function">gin_metapage_info(page bytea) returns record</code>
- <a id="id-1.11.7.31.8.2.1.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">gin_metapage_info</code> returns information about
- a <acronym class="acronym">GIN</acronym> index metapage. For example:
- </p><pre class="screen">
- test=# SELECT * FROM gin_metapage_info(get_raw_page('gin_index', 0));
- -[ RECORD 1 ]----+-----------
- pending_head | 4294967295
- pending_tail | 4294967295
- tail_free_size | 0
- n_pending_pages | 0
- n_pending_tuples | 0
- n_total_pages | 7
- n_entry_pages | 6
- n_data_pages | 0
- n_entries | 693
- version | 2
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">gin_page_opaque_info(page bytea) returns record</code>
- <a id="id-1.11.7.31.8.2.2.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">gin_page_opaque_info</code> returns information about
- a <acronym class="acronym">GIN</acronym> index opaque area, like the page type.
- For example:
- </p><pre class="screen">
- test=# SELECT * FROM gin_page_opaque_info(get_raw_page('gin_index', 2));
- rightlink | maxoff | flags
- -----------+--------+------------------------
- 5 | 0 | {data,leaf,compressed}
- (1 row)
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">gin_leafpage_items(page bytea) returns setof record</code>
- <a id="id-1.11.7.31.8.2.3.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">gin_leafpage_items</code> returns information about
- the data stored in a <acronym class="acronym">GIN</acronym> leaf page. For example:
- </p><pre class="screen">
- test=# SELECT first_tid, nbytes, tids[0:5] AS some_tids
- FROM gin_leafpage_items(get_raw_page('gin_test_idx', 2));
- first_tid | nbytes | some_tids
- -----------+--------+----------------------------------------------------------
- (8,41) | 244 | {"(8,41)","(8,43)","(8,44)","(8,45)","(8,46)"}
- (10,45) | 248 | {"(10,45)","(10,46)","(10,47)","(10,48)","(10,49)"}
- (12,52) | 248 | {"(12,52)","(12,53)","(12,54)","(12,55)","(12,56)"}
- (14,59) | 320 | {"(14,59)","(14,60)","(14,61)","(14,62)","(14,63)"}
- (167,16) | 376 | {"(167,16)","(167,17)","(167,18)","(167,19)","(167,20)"}
- (170,30) | 376 | {"(170,30)","(170,31)","(170,32)","(170,33)","(170,34)"}
- (173,44) | 197 | {"(173,44)","(173,45)","(173,46)","(173,47)","(173,48)"}
- (7 rows)
- </pre><p>
- </p></dd></dl></div></div><div class="sect2" id="id-1.11.7.31.9"><div class="titlepage"><div><div><h3 class="title">F.22.6. Hash Functions</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
- <code class="function">hash_page_type(page bytea) returns text</code>
- <a id="id-1.11.7.31.9.2.1.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">hash_page_type</code> returns page type of
- the given <acronym class="acronym">HASH</acronym> index page. For example:
- </p><pre class="screen">
- test=# SELECT hash_page_type(get_raw_page('con_hash_index', 0));
- hash_page_type
- ----------------
- metapage
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">hash_page_stats(page bytea) returns setof record</code>
- <a id="id-1.11.7.31.9.2.2.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">hash_page_stats</code> returns information about
- a bucket or overflow page of a <acronym class="acronym">HASH</acronym> index.
- For example:
- </p><pre class="screen">
- test=# SELECT * FROM hash_page_stats(get_raw_page('con_hash_index', 1));
- -[ RECORD 1 ]---+-----------
- live_items | 407
- dead_items | 0
- page_size | 8192
- free_size | 8
- hasho_prevblkno | 4096
- hasho_nextblkno | 8474
- hasho_bucket | 0
- hasho_flag | 66
- hasho_page_id | 65408
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">hash_page_items(page bytea) returns setof record</code>
- <a id="id-1.11.7.31.9.2.3.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">hash_page_items</code> returns information about
- the data stored in a bucket or overflow page of a <acronym class="acronym">HASH</acronym>
- index page. For example:
- </p><pre class="screen">
- test=# SELECT * FROM hash_page_items(get_raw_page('con_hash_index', 1)) LIMIT 5;
- itemoffset | ctid | data
- ------------+-----------+------------
- 1 | (899,77) | 1053474816
- 2 | (897,29) | 1053474816
- 3 | (894,207) | 1053474816
- 4 | (892,159) | 1053474816
- 5 | (890,111) | 1053474816
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">hash_bitmap_info(index oid, blkno int) returns record</code>
- <a id="id-1.11.7.31.9.2.4.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">hash_bitmap_info</code> shows the status of a bit
- in the bitmap page for a particular overflow page of <acronym class="acronym">HASH</acronym>
- index. For example:
- </p><pre class="screen">
- test=# SELECT * FROM hash_bitmap_info('con_hash_index', 2052);
- bitmapblkno | bitmapbit | bitstatus
- -------------+-----------+-----------
- 65 | 3 | t
- </pre><p>
- </p></dd><dt><span class="term">
- <code class="function">hash_metapage_info(page bytea) returns record</code>
- <a id="id-1.11.7.31.9.2.5.1.2" class="indexterm"></a>
- </span></dt><dd><p>
- <code class="function">hash_metapage_info</code> returns information stored
- in meta page of a <acronym class="acronym">HASH</acronym> index. For example:
- </p><pre class="screen">
- test=# SELECT magic, version, ntuples, ffactor, bsize, bmsize, bmshift,
- test-# maxbucket, highmask, lowmask, ovflpoint, firstfree, nmaps, procid,
- test-# regexp_replace(spares::text, '(,0)*}', '}') as spares,
- test-# regexp_replace(mapp::text, '(,0)*}', '}') as mapp
- test-# FROM hash_metapage_info(get_raw_page('con_hash_index', 0));
- -[ RECORD 1 ]-------------------------------------------------------------------------------
- magic | 105121344
- version | 4
- ntuples | 500500
- ffactor | 40
- bsize | 8152
- bmsize | 4096
- bmshift | 15
- maxbucket | 12512
- highmask | 16383
- lowmask | 8191
- ovflpoint | 28
- firstfree | 1204
- nmaps | 1
- procid | 450
- spares | {0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,4,4,4,45,55,58,59,508,567,628,704,1193,1202,1204}
- mapp | {65}
- </pre><p>
- </p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ltree.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="contrib.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="passwordcheck.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">F.21. ltree </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> F.23. passwordcheck</td></tr></table></div></body></html>
|