74 장. 시스템 토토 커뮤니티 선언 및 초기 내용

PostgreSQL테이블 및 기능과 같은 데이터베이스 개체의 존재 및 속성을 추적하기 위해 다양한 시스템 토토 커뮤니티를 사용합니다. 물리적으로 시스템 토토 커뮤니티와 일반 사용자 테이블 사이에는 차이가 없지만 백엔드 C 코드는 각 토토 커뮤니티의 구조와 속성을 알고 있으며 낮은 수준으로 직접 조작 할 수 있습니다.

카탈로그의 구조는의 특수 포맷 된 C 헤더 파일로 선언됩니다.SRC/포함/토토 커뮤니티/소스 트리의 디렉토리. 각 카탈로그에는 카탈로그의 이름을 따서 명명 된 헤더 파일이 있습니다 (예 :pg_class.hforPG_CLASS)는 토토 커뮤니티가 가지고있는 열 세트와 Oid와 같은 다른 기본 속성을 정의하는 것입니다.

많은 토토 커뮤니티에는 초기 데이터가 있습니다.부트 스트랩위상initdb, 시스템을 SQL 명령을 실행할 수있는 지점까지 시스템을 가져옵니다. (예를 들어,pg_class.h자체에 대한 항목과 서로 시스템 카탈로그 및 색인에 대한 항목을 포함해야합니다.)이 초기 데이터는에 저장된 데이터 파일에서 편집 가능한 형식으로 유지됩니다.SRC/포함/토토 커뮤니티/디렉토리. 예를 들어,PG_PROC|PG_PROC토토 커뮤니티.

카탈로그 파일을 생성 하고이 초기 데이터를 그들에게로드하려면 부트 스트랩 모드에서 실행되는 백엔드는 a를 읽습니다.bki(백엔드 인터페이스) 명령 및 초기 데이터가 포함 된 파일. 그만큼postgres.bki이 모드에서 사용 된 파일은 앞서 언급 한 헤더 및 데이터 파일에서 준비되어 있으며 APostgreSQL배포, perl 스크립트에 의한genbki.pl. 특정에만 해당되지만PostgreSQL릴리스,postgres.bki| 플랫폼 독립적이며에 설치됩니다.공유설치 트리의 하위 디렉토리.

genbki.pl예를 들어 각 카탈로그에 대한 파생 된 헤더 파일도 생성pg_class_d.hPG_CLASS토토 커뮤니티. 이 파일은 자동으로 생성 된 매크로 정의가 포함되어 있으며 특정 카탈로그를 읽는 클라이언트 C 코드에 유용 할 수있는 다른 매크로, 열거 선언 등이 포함될 수 있습니다..

대부분의 PostgreSQL 개발자는 직접 걱정할 필요가 없습니다bki파일이지만 백엔드의 거의 사소한 기능 추가는 카탈로그 헤더 파일 및/또는 초기 데이터 파일을 수정해야합니다. 이 장의 나머지 부분은 그것에 대한 정보를 제공하며 완전성을 위해를 설명합니다.bki파일 형식.

정정 제출

문서에 올바른 것이없는 것이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면