이 카탈로그는 데이터 유형에 대한 정보를 저장합니다. 스칼라 유형 ("기본 유형")는로 생성됩니다.유형 생성. 복합형은 데이터베이스의 각 테이블에 대해 자동으로 생성됩니다. 테이블의 행 구조를 나타냅니다. 또한 가능합니다 다음을 사용하여 복잡한 유형을 생성합니다.유형 작성 그대로및 파생 유형만들기 도메인.
표 3-29. pg_type 열
| 이름 | 유형 | 참고자료 | 설명 |
|---|---|---|---|
| 일반 이름 | 이름 | 데이터 유형 이름 | |
| typnamespace | oid | pg_namespace.oid | 이 유형을 포함하는 네임스페이스의 OID |
| typowner | int4 | pg_shadow.usesysid | 유형의 소유자(작성자) |
| 타이플렌 | int2 | 고정 크기 유형의 경우,타이플렌은(는) 유형의 내부 표현. 하지만 가변 길이 유형,타이플렌음수입니다. -1은 를 나타냅니다."발레나"유형(길이가 있는 유형) 단어), -2는 null로 끝나는 C 문자열을 나타냅니다. | |
| typbyval | 부울 | typbyval결정합니다 내부 루틴이 다음을 통해 이 유형의 값을 전달하는지 여부 값 또는 참조로. 만문자, 짧은및int동등한 항목은 값으로 전달될 수 있으며, 따라서 유형의 길이가 1, 2 또는 4바이트가 아닌 경우포스트그레SQL옵션이 없습니다 값으로 전달하는 등typbyval거짓인 것이 낫습니다. 가변 길이 유형은 항상 참조로 전달됩니다. 참고하세요typbyval될 수 있습니다 길이가 값별 전달을 허용하는 경우에도 false입니다. 이 현재 유형에 해당됩니다.플로트4, 예를 들어. | |
| 유형 | 문자 | 유형isb기본 유형의 경우c복잡한 유형(예: 테이블의 행) 유형),d파생 유형의 경우 (즉, 도메인) 또는p에 대한 의사형. 또한 참조하세요typrelid그리고typbasetype. | |
| 일반 정의 | 부울 | 유형이 정의되어 있으면 참이고, 다음 유형이면 거짓입니다. 아직 정의되지 않은 유형에 대한 자리 표시자 항목입니다. 언제 typisdefinition은 false이며 유형 이름 외에는 아무것도 없습니다. 네임스페이스 및 OID를 신뢰할 수 있습니다. | |
| typdelim | 문자 | 다음 경우에 이 유형의 두 값을 구분하는 문자 배열 입력을 구문 분석합니다. 구분 기호는 다음과 같습니다. 배열 요소 데이터 유형과 연관되어 있지만 배열 데이터 유형입니다. | |
| typrelid | oid | pg_class.oid | 이것이 복합 유형인 경우(참조유형형), 이 필드는 다음을 가리킵니다.pg_class다음 항목 해당 테이블을 정의합니다. (자립형의 경우 복합 유형,pg_class항목은 실제로 테이블을 나타내지는 않지만 필요합니다. 어쨌든 해당 유형에 대해서는pg_attribute링크할 항목입니다.) 0 복잡하지 않은 유형의 경우. |
| typelem | oid | pg_type.oid | 만약typelem0이 아닌 경우 의 다른 행을 식별합니다.pg_type. 현재 유형은 다음과 같습니다. 유형의 값을 생성하는 배열처럼 첨자 처리됨typelem. 갑"사실"배열 유형은 가변 길이입니다. (타이플렌= -1), 하지만 일부 고정 길이(타이플렌 0) 유형도 0이 아닙니다.typelem, 예를 들어이름그리고oidVector. 만약에 고정 길이 유형에는typelem그럼 내부입니다 표현은 N 값이어야 합니다.typelem다른 데이터가 없는 데이터 유형입니다. 가변 길이 배열 유형에는 다음에 의해 정의된 헤더가 있습니다. 배열 서브루틴. |
| typinput | regproc | pg_proc.oid | 입력 변환 함수 |
| 입력출력 | regproc | pg_proc.oid | 출력 변환 기능 |
| typalign | 문자 |
typalign이것은 이 유형의 값을 저장할 때 정렬이 필요합니다. 이는 디스크 저장소뿐만 아니라 대부분의 저장소에도 적용됩니다. 내부 값의 표현토토. 값이 여러 개인 경우 표현과 같이 연속적으로 저장됩니다. 디스크의 전체 행에서 패딩은 지정된 날짜에서 시작되도록 이 유형의 데이텀 경계. 정렬 참조는 다음의 시작입니다. 시퀀스의 첫 번째 데이터입니다. 가능한 값은 다음과 같습니다:
|
|
| 유형저장 | 문자 |
유형저장다음을 알려줍니다. varlena 유형(다음을 가진 사람)타이플렌= -1) 유형이 준비된 경우 토스트에 대한 기본 전략은 무엇입니까? 이 유형의 속성이 있어야 합니다. 가능한 값 이다
'm' 필드는 다음으로 이동할 수도 있습니다. 보조 저장소이지만 최후의 수단으로만 사용됩니다('e' 및 'x' 필드가 먼저 이동됩니다.) |
|
| typnotnull | 부울 |
typnotnull은(는) 유형에 대한 NOT NULL 제약 조건입니다. 현재 사용되는 용도 도메인만 해당됩니다. |
|
| typbasetype | oid | pg_type.oid |
이것이 파생된 유형인 경우(참조유형), 그러면typbasetype다음 유형을 식별합니다. 이것은 이것에 근거합니다. 파생 유형이 아닌 경우 0입니다. |
| typtypmod | int4 |
도메인 사용typtypmod기본 유형에 적용될 typmod를 기록합니다. (기본 유형이 typmod를 사용하지 않는 경우 -1). -1이면 유형은 도메인이 아닙니다. |
|
| typndims | int4 |
typndims숫자입니다 배열인 도메인에 대한 배열 차원( 즉, typbasetype은 배열 유형입니다. 도메인의 typelem 기본 유형의 typelem과 일치합니다). 제로 비도메인 및 비어레이 도메인. |
|
| typdefaultbin | 텍스트 |
만약typdefaultbin아님 NULL, 이는 nodeToString 표현입니다. 유형에 대한 기본 표현식입니다. 현재는 이것뿐이다 도메인에 사용됩니다. |
|
| 일반기본값 | 텍스트 |
일반기본값다음의 경우 NULL입니다. 유형에는 연관된 기본값이 없습니다. 만일typdefaultbinNULL이 아닙니다.일반기본값다음을 포함해야 합니다. 사람이 읽을 수 있는 기본 표현식 버전 으로 표현됨typdefaultbin. 만일typdefaultbinNULL이고일반기본값그렇지 않다면일반기본값외부입니다 유형의 기본값을 표현합니다. 유형의 입력 변환기에 공급되어 상수. |