67 장. 시스템 롤 토토 선언 및 초기 컨텐츠

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파일 형식.

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면