2025 년 9 월 4 일 :토토 18 RC 1 릴리스!
지원되는 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 버전의 토토을위한 것입니다.
당신은에 대해 같은 토토를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.21. 토토inspect

the토토inspect모듈은 데이터베이스 토토의 내용을 낮은 레벨에서 검사 할 수있는 기능을 제공하며, 이는 디버깅 목적으로 유용합니다. 이러한 모든 기능은 슈퍼업자에 의해서만 사용될 수 있습니다.

F.21.1. 기능

get_raw_토토 (Relname 텍스트, 포크 텍스트, blkno int)를 반환합니다

get_raw_토토지정된 관계의 지정된 블록을 읽고 사본을 A로 반환합니다BYTEA값. 이를 통해 블록의 단일 일관된 사본을 얻을 수 있습니다.포크'main'기본 데이터 포크의 경우'FSM'여유 공간지도의 경우'VM'가시성 맵 또는'init'초기화 포크의 경우

get_raw_토토 (relname 텍스트, blkno int) bytea를 반환

속기 버전의get_raw_토토, 메인 포크에서 읽기. 동등한get_raw_토토 (relname, 'main', blkno)

토토_header (토토 bytea) 레코드를 반환

토토_header모두에게 공통적 인 필드를 보여줍니다토토힙 및 인덱스 토토.

획득 한 토토 이미지get_raw_토토인수로 전달되어야합니다. 예를 들어:

test =# select * from 토토_header (get_raw_토토 ( 'pg_class', 0));
    LSN | 체크섬 | 깃발 | 더 낮은 | 상단 | 스페셜 | Pagesize | 버전 | prune_xid
-----------+----------+--------+------------------------------------------------------------------------------------------------------
 0/24A1B50 |        1 |      1 |   232 |   368 |    8192 |     8192 |       4 |         0

반환 된 열은의 필드에 해당합니다.토토HeaderDatastruct. 보다src/include/stacod/buf토토.h자세한 내용.

heap_토토_items (토토 bytea) 레코드를 반환

heap_토토_items힙 토토에 모든 줄 포인터가 표시됩니다. 사용중인 라인 포인터의 경우 튜플 헤더도 표시됩니다. 튜플이 원시 토토를 복사 할 때 MVCC 스냅 샷으로 보이는지 여부에 관계없이 모든 튜플이 표시됩니다.

획득 한 힙 토토 이미지get_raw_토토인수로 전달되어야합니다. 예를 들어:

test =# 선택 * heap_토토_items (get_raw_토토 ( 'pg_class', 0));

참조src/include/stoage/itemid.handsrc/include/access/htup_details.h필드에 대한 설명이 반환되었습니다.

BT_METAP (RELNAME TEXT) 레코드를 반환

bt_metapB-Tree 지수의 메타지에 대한 정보를 반환합니다. 예를 들어:

test =# select * from bt_metap ( 'pg_cast_oid_index');
-[레코드 1] -----
마술 | 340322
버전 | 2
루트 | 1
레벨 | 0
Fastroot | 1
FastLevel | 0
BT_토토_STATS (Relname Text, Blkno int) 레코드를 반환

BT_토토_STATSB- 트리 인덱스의 단일 토토에 대한 요약 정보를 반환합니다. 예를 들어:

test =# select * from bt_토토_stats ( 'pg_cast_oid_index', 1);
-[레코드 1]-+----
Blkno | 1
유형 | 엘
live_items | 256
dead_items | 0
avg_item_size | 12
토토_size | 8192
free_size | 4056
btpo_prev | 0
btpo_next | 0
btpo | 0
btpo_flags | 3
bt_토토_items (relname 텍스트, blkno int) setof record를 반환합니다

bt_토토_itemsB-Tree Index 토토의 모든 항목에 대한 자세한 정보를 반환합니다. 예를 들어:

test =# select * from bt_토토_items ( 'pg_cast_oid_index', 1);
 ItemOffset |  ctid | ItemLen | 널스 | vars |    데이터
------------+--------+---------+-------+------+-----------
          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

B- 트리 리프 토토에서CTID힙 튜플을 가리 킵니다. 내부 토토에서 블록 번호 부분CTID인덱스 자체의 다른 토토를 가리키고 오프셋 부분 (두 번째 숫자)은 무시되고 일반적으로 1입니다.

가장 오른쪽이 아닌 토토의 첫 번째 항목 (0이 아닌 값이없는 모든 토토에 유의하십시오.btpo_next필드)는 토토입니다"높은 키", 그 의미데이터토토에 나타나는 모든 항목의 상한 역할을하는 반면CTID필드는 의미가 없습니다. 또한 잎이 아닌 페이지에서 첫 번째 실제 데이터 항목 (키가 아닌 첫 번째 항목)은 A입니다."마이너스 인피니티"항목, 실제 가치가없는 항목데이터필드. 이러한 항목은 유효한 다운 링크가 있습니다.CTID필드.

brin_토토_type (토토 bytea) 텍스트를 반환

brin_토토_type주어진 토토 유형을 반환브린색인 토토 또는 토토가 유효하지 않은 경우 오류를 던지십시오브린토토. 예를 들어:

test =# select brin_토토_type (get_raw_토토 ( 'brinidx', 0));
 brin_토토_type 
---------------
 메타
brin_meta토토_info (토토 Bytea) 레코드를 반환

brin_meta토토_infoa에 대한 다양한 정보를 반환합니다브린인덱스 메타지. 예를 들어:

test =# select * from brin_meta토토_info (get_raw_토토 ( 'brinidx', 0));
   마술 | 버전 | PagesperRange | lastevmappage 
------------+---------+----------------------------------
 0xa8109cfa |       1 |             4 |              2
brin_revmap_data (토토 bytea) 반환 tid

brin_revmap_dataA에서 튜플 식별자 목록을 반환합니다브린인덱스 범위 맵 토토. 예를 들어:

test =# select * from brin_revmap_data (get_raw_토토 ( 'brinidx', 2)) 한계 5;
  페이지  
-------
 (6,137)
 (6,138)
 (6,139)
 (6,140)
 (6,141)
brin_토토_items (페이지 바이 ​​테아, 인덱스 OID) 레코드를 반환

brin_토토_items에 저장된 데이터를 반환합니다브린데이터 토토. 예를 들어:

test =# select * from brin_토토_items (get_raw_토토 ( 'brinidx', 5),
                                     'brinidx')
       Blknum, Attnum Limit 6에 의한 주문;
 ItemOffset | Blknum | Attnum | allnulls | Hasnulls | 자리 표시 자 |    값     
-------------+--------+-------+--------------------------------------------------------------
        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

반환 된 열은의 필드에 해당합니다.brinmemtupleandBrinValuesstructs. 보다src/include/access/brin_tuple.h자세한 내용.

gin_meta토토_info (토토 Bytea) 레코드를 반환

gin_meta토토_infoA에 대한 정보를 반환합니다인덱스 메타지. 예를 들어:

test =# select * from gin_meta토토_info (get_raw_토토 ( 'gin_index', 0));
-[레코드 1] ----+-----------
ending_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
버전 | 2
gin_토토_opaque_info (토토 Bytea) 레코드를 반환

gin_토토_opaque_infoA에 대한 정보를 반환합니다GIN토토 유형과 같은 색인 불투명 영역. 예를 들어:

test =# select * from gin_토토_opaque_info (get_raw_토토 ( 'gin_index', 2));
 오른쪽 링크 | Maxoff |         깃발
-----------+-------+----------------------------
         5 |      0 | 데이터, 잎, 압축
gin_leaf토토_items (토토 bytea) 레코드를 반환

gin_leaf토토_itemsA에 저장된 데이터에 대한 정보를 반환합니다잎 토토. 예를 들어:

test =# first_tid, nbytes, tids [0 : 5]를 some_tids로 선택하십시오
        gin_leaf토토_items에서 (get_raw_토토 ( '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)"
fsm_토토_contents (토토 bytea) 텍스트를 반환

fsm_토토_contentsFSM 토토의 내부 노드 구조를 보여줍니다. 출력은 멀티 라인 문자열이며 토토 내의 이진 트리의 노드 당 한 줄이 있습니다. 0이 아닌 노드 만 인쇄됩니다. 토토에서 반환 할 다음 슬롯을 가리키는 소위 "다음"포인터도 인쇄됩니다.

참조SRC/백엔드/스토리지/프리 스페이스/readmeFSM 토토의 구조에 대한 자세한 내용은