목차
PostgreSQL다양한 토토 꽁 머니 카탈로그를 사용하여 테이블 및 함수와 같은 데이터베이스 개체의 존재 및 속성을 추적합니다. 물리적으로 토토 꽁 머니 카탈로그와 일반 사용자 테이블 사이에는 차이가 없지만 백엔드 C 코드는 각 카탈로그의 구조와 속성을 알고 있으며 하위 수준에서 직접 조작할 수 있습니다. 따라서 예를 들어 카탈로그의 구조를 즉석에서 변경하려고 시도하는 것은 바람직하지 않습니다. 이는 카탈로그 행이 어떻게 배치되는지에 대한 C 코드에 내장된 가정을 깨뜨릴 수 있습니다. 그러나 카탈로그의 구조는 주요 버전 간에 변경될 수 있습니다.
카탈로그의 구조는 특별히 형식화된 C 헤더 파일에서 선언됩니다.src/include/카탈로그/소스 트리의 디렉토리. 각 카탈로그에는 카탈로그 이름을 딴 헤더 파일이 있습니다(예:pg_class.hforpg_class)은 카탈로그에 있는 열 집합과 OID와 같은 기타 기본 속성을 정의합니다.
많은 카탈로그에는 작업 중에 로드해야 하는 초기 데이터가 있습니다.“부트스트랩”단계initdb, SQL 명령을 실행할 수 있는 지점까지 시스템을 가져옵니다. (예를 들어,pg_class.h그 자체에 대한 항목은 물론 서로의 시스템 카탈로그 및 색인에 대한 항목도 포함해야 합니다.) 이 초기 데이터는 다음에도 저장되는 데이터 파일에 편집 가능한 형식으로 보관됩니다.src/include/카탈로그/디렉토리. 예를 들어,pg_proc.dat에 삽입되어야 하는 모든 초기 행을 설명합니다.pg_proc카탈로그.
카탈로그 파일을 생성하고 이 초기 데이터를 여기에 로드하기 위해 부트스트랩 모드에서 실행되는 백엔드는 다음을 읽습니다.BKI15027_15097postgres.bki이 모드에서 사용되는 파일은 앞서 언급한 헤더와 데이터 파일로 준비됩니다.포스트그레SQL배포, 이름이 Perl 스크립트에 의한genbki.pl. 특정 특정에만 적용되지만PostgreSQL출시,postgres.bki플랫폼 독립적이며 다음에 설치됩니다.공유설치 트리의 하위 디렉토리.
genbki.pl또한 각 카탈로그에 대해 파생된 헤더 파일을 생성합니다. 예를 들어pg_class_d.h에 대한pg_class카탈로그. 이 파일에는 자동으로 생성된 매크로 정의가 포함되어 있으며 특정 카탈로그를 읽는 클라이언트 C 코드에 유용할 수 있는 다른 매크로, 열거형 선언 등이 포함될 수 있습니다.
대부분의 PostgreSQL 개발자는 다음 문제에 직접적으로 관심을 가질 필요가 없습니다.BKI파일이지만 백엔드에 추가되는 거의 모든 중요한 기능에는 카탈로그 헤더 파일 및/또는 초기 데이터 파일을 수정해야 합니다. 이 장의 나머지 부분에서는 이에 대한 몇 가지 정보를 제공하며, 완전성을 위해 다음 내용을 설명합니다.BKI파일 형식.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.