윈 토토 헤더 파일의 핵심 부분은 윈 토토의 각 행의 레이아웃을 설명하는 C 구조 정의입니다. 이것은 A로 시작합니다.윈 토토
매크로, C 컴파일러가 관련된 한 속이typedef struct formdata_
. 구조물의 각 필드는 윈 토토 열을 발생시킵니다.Catalogname
genbki.h
, 예를 들어 필드의 기본값을 정의하거나 무효가되지 않거나 무효가되지 않는 것으로 표시합니다. 그만큼윈 토토
라인도 주석을 달 수 있으며, 다른 BKI 속성 매크로와 함께genbki.h
, 윈 토토의 다른 속성을 공유 관계인지 여부와 같이 전체적으로 윈 토토의 다른 속성을 정의하려면
시스템 윈 토토 캐시 코드 (및 대부분의 윈 토토 모니징 코드)는 모든 시스템 윈 토토 튜플의 고정 길이 부분이 실제로이 C 구조 선언을 매핑하기 때문에 실제로 존재한다고 가정합니다. 따라서 모든 가변 길이 필드 및 무효 필드는 끝에 배치되어야하며 구조장으로 액세스 할 수 없습니다.pg_type
.Typrelid
null이 되려면 일부 코드가 참조하려고 시도했을 때 실패합니다typetup-> typrelid
(또는 더 나쁜,typetup-> typelem
Typrelid
). 이로 인해 임의의 오류 또는 세분화 위반이 발생합니다.
이러한 유형의 오류에 대한 부분 가드로서, 가변 길이 또는 무효 필드는 C 컴파일러에 직접 보이지 않아야합니다. 이것은 그들을 감싸서 달성됩니다#ifdef catalog_varlen
... #endif
(wherecatalog_varlen
는 정의되지 않은 기호입니다). 이것은 C 코드가 부주의하게 없거나 다른 오프셋에있을 수있는 필드에 액세스하려고하는 것을 방지합니다.PG_ATTRIBUT
. 부트 스트랩 코드는 윈 토토 열을 자동으로 표시합니다.NOT NULL
고정 된 범위이고 무효 또는 가변 폭이 우선하지 않는 경우. 이 규칙이 부적절한 경우를 사용하여 올바른 표시를 강요 할 수 있습니다.BKI_FORCE_NOT_NULL
andbki_force_null
필요에 따른 주석.
Frontend 코드는 포함되어 있지 않아야합니다PG_XXX.H
윈 토토 헤더 파일,이 파일에는 백엔드 외부에서 컴파일하지 않는 C 코드가 포함될 수 있으므로. (일반적 으로이 파일은의 함수에 대한 선언이 포함되어 있기 때문에 발생합니다.SRC/백엔드/윈 토토/
files.) 대신, 프론트 엔드 코드는 해당 생성을 포함 할 수 있습니다PG_XXX_D.H
OID를 포함하는 헤더#define
s 및 클라이언트 측에서 사용할 수있는 다른 데이터. 윈 토토 헤더의 매크로 또는 기타 코드를 프론트 엔드 코드에 표시하려면 쓰기#ifdef Expose_to_client_code
... #endif
지시하기 위해 해당 섹션 주변genbki.pl
해당 섹션을 복사하려면PG_XXX_D.H
헤더
몇몇 윈 토토는 너무 근본적이므로bki Create
대부분의 윈 토토에 사용되는 명령.이 명령은 새 윈 토토를 설명하기 위해이 윈 토토에 정보를 작성해야하기 때문입니다. 이것들은라고합니다.부트 스트랩윈 토토를 정의하는 데 많은 추가 작업이 필요합니다. 사전로드 된 내용에서 적절한 항목을 수동으로 준비해야합니다PG_CLASS
andpg_type
, 윈 토토 구조의 후속 변경을 위해 해당 항목을 업데이트해야합니다. (부트 스트랩 윈 토토는 또한 사전로드 항목이 필요합니다PG_ATTRIBUT
그러나 다행히도genbki.pl
오늘날의 집안일을 처리합니다.) 새로운 윈 토토를 가능한 경우 부트 스트랩 윈 토토로 만드는 것을 피하십시오.
문서에 올바른 것이 없다면 일치하지 않습니다.이 양식문서 문제를보고하려면