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