목차
PostgreSQL테이블 및 기능과 같은 데이터베이스 개체의 존재 및 속성을 추적하기 위해 다양한 시스템 토토 결과를 사용합니다. 물리적으로 시스템 토토 결과와 일반 사용자 테이블 사이에는 차이가 없지만 백엔드 C 코드는 각 토토 결과의 구조와 속성을 알고 있으며 낮은 수준으로 직접 조작 할 수 있습니다.
토토 결과의 구조는의 특수 포맷 된 C 헤더 파일로 선언됩니다.SRC/포함/토토 결과/
소스 트리의 디렉토리. 각 토토 결과에는 토토 결과의 이름을 따서 명명 된 헤더 파일이 있습니다 (예 :pg_class.h
forpg_class
)는 토토 결과가 가지고있는 열 세트와 Oid와 같은 다른 기본 속성을 정의하는 것입니다.
많은 토토 결과에는 초기 데이터가 있습니다.“부트 스트랩”위상initdb, 시스템을 SQL 명령을 실행할 수있는 지점까지 시스템을 가져옵니다. (예를 들어,pg_class.h
서로에 대한 항목과 서로 시스템 토토 결과 및 색인에 대한 항목을 포함해야합니다.)이 초기 데이터는에 저장된 데이터 파일에서 편집 가능한 형식으로 유지됩니다.SRC/포함/토토 결과/
디렉토리. 예를 들어,PG_PROC
에 삽입 해야하는 모든 초기 행을 설명합니다.PG_PROC
토토 결과
토토 결과 파일을 생성 하고이 초기 데이터를 그들에게로드하려면 부트 스트랩 모드에서 실행되는 백엔드는 a를 읽습니다.bki(백엔드 인터페이스) 명령 및 초기 데이터가 포함 된 파일. 그만큼postgres.bki
이 모드에서 사용 된 파일은 앞서 언급 한 헤더 및 데이터 파일에서 준비되어 있습니다.PostgreSQL배포, perl 스크립트에 의한genbki.pl
. 특정에만 해당되지만PostgreSQL릴리스,postgres.bki
| 플랫폼 독립적이며에 설치됩니다.공유
설치 트리의 하위 디렉토리.
genbki.pl
예를 들어 각 토토 결과에 대한 파생 헤더 파일도 생성pg_class_d.h
용pg_class
토토 결과. 이 파일은 자동으로 생성 된 매크로 정의가 포함되어 있으며 특정 토토 결과를 읽는 클라이언트 C 코드에 유용 할 수있는 다른 매크로, 열거 선언 등이 포함될 수 있습니다..
대부분의 PostgreSQL 개발자는 직접 걱정할 필요가 없습니다bki파일이지만 백엔드의 거의 사소한 기능 추가는 토토 결과 헤더 파일 및/또는 초기 데이터 파일을 수정해야합니다. 이 장의 나머지 부분은 그것에 대한 정보를 제공하며 완전성을 위해를 설명합니다.bki파일 형식.