이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 동일한 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 67 장. 시스템 롤 토토 사이트 선언 및 초기 내용버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

70 장. 시스템 토토 사이트 선언 및 초기 컨텐츠

PostgreSQL테이블 및 함수와 같은 데이터베이스 개체의 존재 및 속성을 추적하기 위해 다양한 시스템 토토 사이트를 사용합니다. 물리적으로 시스템 토토 사이트와 일반 사용자 테이블 사이에는 차이가 없지만 백엔드 C 코드는 각 토토 사이트의 구조와 속성을 알고 있으며 낮은 수준으로 직접 조작 할 수 있습니다. 따라서, 예를 들어, 토토 사이트의 구조를 날려 버리는 것은 용서할 수 없다. 그것은 토토 사이트의 행이 어떻게 배치되는지에 대한 C 코드에 내장 된 가정을 깨뜨릴 것입니다. 그러나 토토 사이트의 구조는 주요 버전간에 변경 될 수 있습니다.

토토 사이트의 구조는의 특수 포맷 된 C 헤더 파일로 선언됩니다.src/include/catalog/소스 트리의 디렉토리. 특히, 각 토토 사이트마다 토토 사이트의 이름을 따서 명명 된 헤더 파일이 있습니다 (예 :pg_class.hforpg_class)는 토토 사이트가 가지고있는 열 집합과 OID와 같은 다른 기본 속성을 정의합니다. 토토 사이트 구조를 정의하는 다른 중요한 파일은 다음과 같습니다.Indexing.h, 모든 시스템 토토 사이트에 존재하는 인덱스를 정의하고토스트 .H, 하나가 필요한 토토 사이트의 토스트 테이블을 정의합니다.

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

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

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

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