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

37.2. 그만큼포스트그레SQL토토 결과 시스템

포스트그레SQL데이터 토토 결과은 기본 토토 결과, 복합 토토 결과, 도메인 및 의사 토토 결과으로 구분됩니다.

37.2.1. 기본 토토 결과

기본 유형은 다음과 같습니다.int4, 이는 수준 아래에 구현됩니다.SQL언어(일반적으로 C와 같은 저급 언어). 이는 일반적으로 추상 데이터 토토 결과으로 알려진 것에 해당합니다.PostgreSQL사용자가 제공한 기능을 통해서만 이러한 토토 결과에 대해 작동할 수 있으며 사용자가 설명하는 정도까지만 이러한 토토 결과의 동작을 이해합니다. 기본 토토 결과은 스칼라 토토 결과과 배열 토토 결과으로 더 세분화됩니다. 각 스칼라 토토 결과에 대해 해당 스칼라 토토 결과의 가변 크기 배열을 보유할 수 있는 해당 배열 토토 결과이 자동으로 생성됩니다.

37.2.2. 복합 토토 결과

복합 토토 결과 또는 행 토토 결과은 사용자가 테이블을 생성할 때마다 생성됩니다. 사용하는 것도 가능합니다토토 결과 생성정의하다독립형연결된 테이블이 없는 복합 유형입니다. 복합 유형은 단순히 연관된 필드 이름이 있는 유형 목록입니다. 복합 유형의 값은 필드 값의 행 또는 레코드입니다. 사용자는 다음에서 구성요소 필드에 액세스할 수 있습니다.SQL쿼리. 참조섹션 8.16복합 토토 결과에 대한 자세한 내용을 확인하세요.

37.2.3. 도메인

도메인은 특정 기본 토토 결과을 기반으로 하며 다양한 목적으로 기본 토토 결과과 상호 교환 가능합니다. 그러나 도메인에는 유효한 값을 기본 기본 토토 결과이 허용하는 것의 하위 집합으로 제한하는 제약 조건이 있을 수 있습니다.

도메인은 다음을 사용하여 생성될 수 있습니다.SQL명령도메인 만들기. 이 장에서는 생성 및 사용에 대해 논의하지 않습니다.

37.2.4. 의사 토토 결과

몇 가지가 있습니다의사 토토 결과특별한 목적을 위해. 의사 토토 결과은 테이블의 열이나 복합 유형의 속성으로 나타날 수 없지만 함수의 인수 및 결과 유형을 선언하는 데 사용할 수 있습니다. 이는 토토 결과 시스템 내에서 특수 클래스의 함수를 식별하는 메커니즘을 제공합니다.표 8.25기존 의사 토토 결과을 나열합니다.

37.2.5. 다형성 토토 결과

특별한 관심을 끄는 5가지 유사 유형은 다음과 같습니다.모든 요소, 모든 배열, anynonarray, 안예넘아무범위, 통칭다형성 토토 결과. 이러한 유형을 사용하여 선언된 모든 함수는 다음과 같습니다.다형성 함수. 다형성 함수는 다양한 데이터 유형에 대해 작동할 수 있으며, 특정 데이터 유형은 특정 호출에서 실제로 전달된 데이터 유형에 의해 결정됩니다.

다형성 인수와 결과는 서로 연결되어 있으며 다형성 함수를 호출하는 쿼리가 구문 분석될 때 특정 데이터 유형으로 확인됩니다. 다음과 같이 선언된 각 위치(인수 또는 반환 값)는모든 요소특정 실제 데이터 유형을 가질 수 있지만 특정 호출에서는 모두 다음과 같아야 합니다.동일실제 유형. 각 직위는 다음과 같이 선언됩니다.임의 배열모든 배열 데이터 유형을 가질 수 있지만 마찬가지로 모두 동일한 유형이어야 합니다. 마찬가지로, 다음과 같이 선언된 위치는anyrange모두 동일한 범위 유형이어야 합니다. 또한, 선언된 직위가 있는 경우모든 배열및 기타 선언모든 요소, 실제 배열 토토 결과은임의 배열위치는 요소가 다음에 나타나는 것과 동일한 유형인 배열이어야 합니다.모든 요소위치. 마찬가지로 선언된 직위가 있는 경우anyrange및 기타 선언모든 요소또는모든 배열, 실제 범위 토토 결과은anyrange위치는 하위 유형이 다음에 나타나는 유형과 동일한 범위여야 합니다.모든 요소위치 및 요소 유형과 동일임의배열위치.anynonarray다음과 정확히 동일하게 취급됩니다.모든 요소, 그러나 실제 토토 결과이 배열 토토 결과이 아니어야 한다는 추가 제약 조건을 추가합니다.안예넘다음과 정확히 동일하게 취급됩니다.모든 요소, 그러나 실제 토토 결과은 열거형 토토 결과이어야 한다는 추가 제약 조건을 추가합니다.

따라서 ​​하나 이상의 인수 위치가 다형성 토토 결과으로 선언되면 최종 효과는 실제 인수 유형의 특정 조합만 허용된다는 것입니다. 예를 들어, 다음과 같이 선언된 함수는같음(모든 요소, 모든 요소)동일한 데이터 유형인 한 두 개의 입력 값을 사용합니다.

함수의 반환 값이 다형성 토토 결과으로 선언되면 역시 다형성인 인수 위치가 하나 이상 있어야 하며 인수로 제공된 실제 데이터 유형에 따라 해당 호출에 대한 실제 결과 유형이 결정됩니다. 예를 들어 배열 첨자 메커니즘이 아직 없다면 다음과 같이 첨자를 구현하는 함수를 정의할 수 있습니다.subscript(anyarray, 정수)는 모든 요소를 ​​반환합니다.. 이 선언은 실제 첫 번째 인수를 배열 유형으로 제한하고 파서가 실제 첫 번째 인수 유형에서 올바른 결과 유형을 추론할 수 있도록 합니다. 또 다른 예는 다음과 같이 선언된 함수입니다.f(anyarray)는 anyenum을 반환합니다.열거형 배열만 허용합니다.

대부분의 경우 파서는 다른 다형성 토토 결과의 인수로부터 다형성 결과 유형에 대한 실제 데이터 유형을 추론할 수 있습니다. 예를 들어모든 배열다음에서 추론할 수 있습니다모든 요소또는 그 반대. 예외는 다음 유형의 다형성 결과입니다.anyrange다음 유형의 인수가 필요합니다.anyrange; 그것은 추론할 수 없다모든 배열또는모든 요소인수. 이는 동일한 하위 유형을 가진 여러 범위 유형이 있을 수 있기 때문입니다.

참고하세요anynonarray그리고아옌눔별도의 유형 변수를 나타내지 않습니다. 그들은 다음과 같은 유형입니다.모든 요소, 추가 제약 조건이 있습니다. 예를 들어 함수를 다음과 같이 선언합니다.f(모든 요소, 모든 요소)다음과 같이 선언하는 것과 같습니다f(anyenum, anyenum): 두 실제 인수는 모두 동일한 열거형 유형이어야 합니다.

가변 함수(다음과 같이 가변 개수의 인수를 취하는 함수섹션 37.4.5)은 다형성일 수 있습니다. 이는 마지막 매개변수를 다음과 같이 선언하여 수행됩니다.VARIADIC 임의 배열. 인수 일치 및 실제 결과 토토 결과 결정을 위해 이러한 함수는 적절한 개수의를 작성한 것처럼 동작합니다.anynonarray매개변수.