이 문서는 지원되지 않는 토토 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 결과 PostgreSQL : 문서 : 17 : 51.64. pg_type버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

3.29. pg_type

이 카탈로그는 데이터 유형에 대한 정보를 저장합니다. 스칼라 유형 ("기본 유형")는로 생성됩니다.유형 생성. 복합형은 데이터베이스의 각 테이블에 대해 자동으로 생성됩니다. 테이블의 행 구조를 나타냅니다. 또한 가능합니다 다음을 사용하여 복잡한 유형을 생성합니다.유형 작성 그대로및 파생 유형만들기 도메인.

표 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이것은 이 유형의 값을 저장할 때 정렬이 필요합니다. 이는 디스크 저장소뿐만 아니라 대부분의 저장소에도 적용됩니다. 내부 값의 표현토토. 값이 여러 개인 경우 표현과 같이 연속적으로 저장됩니다. 디스크의 전체 행에서 패딩은 지정된 날짜에서 시작되도록 이 유형의 데이텀 경계. 정렬 참조는 다음의 시작입니다. 시퀀스의 첫 번째 데이터입니다.

가능한 값은 다음과 같습니다:

  • 'c' = CHAR 정렬, 즉 정렬 없음 필요합니다.

  • 's' = SHORT 정렬(대부분 2바이트) 기계).

  • 'i' = INT 정렬(대부분 4바이트) 기계).

  • 'd' = DOUBLE 정렬(많은 경우 8바이트) 기계이지만 전부는 아닙니다).

참고:시스템 테이블에 사용되는 유형의 경우 에 정의된 크기와 정렬이 중요합니다.pg_type동의합니다 컴파일러가 필드를 레이아웃하는 방식 테이블 행을 나타내는 구조체입니다.

유형저장 문자

유형저장다음을 알려줍니다. varlena 유형(다음을 가진 사람)타이플렌= -1) 유형이 준비된 경우 토스트에 대한 기본 전략은 무엇입니까? 이 유형의 속성이 있어야 합니다. 가능한 값 이다

  • 'p': 값은 항상 일반으로 저장되어야 합니다.

  • 'e': 값은 a에 저장될 수 있습니다."보조"관계(관계인 경우) 하나 있어요, 보세요pg_class.reltoastrelid).

  • 'm': 값을 인라인으로 압축하여 저장할 수 있습니다.

  • 'x': 값은 인라인 또는 압축하여 저장할 수 있습니다."보조".

'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이고일반기본값그렇지 않다면일반기본값외부입니다 유형의 기본값을 표현합니다. 유형의 입력 변환기에 공급되어 상수.