Postgresql 9.1.24 문서화 | ||||
---|---|---|---|---|
토토 결과 : 문서 : 9.1 : 확장 성이 작동하는 방법 | up | 35 장. 확장SQL | 다음 |
PostgreSQL데이터 토토은입니다 기본 토토, 복합 토토, 도메인 및 의사 토토.
기본 토토은와 같은 것입니다.int4, 그 수준 아래에서 구현됩니다.SQL언어 (일반적으로 낮은 수준으로 C)와 같은 언어. 그것들은 일반적으로 무엇에 해당합니다 종종 추상 데이터 토토으로 알려져 있습니다.토토그러한 토토에서만 작동 할 수 있습니다 사용자가 제공 한 기능을 통해 사용자가 설명하는 정도까지 그러한 토토의 동작 그들을. 기본 토토은 스칼라와 어레이로 더 세분화됩니다 토토. 각 스칼라 토토에 대해 해당 배열 토토이 있습니다 가변 크기 배열을 보유 할 수있는 자동 생성 그 스칼라 타입.
composite 토토 또는 행 토토은 사용자가 생성됩니다. 테이블을 만듭니다. 또한 사용하는 것도 가능합니다토토 만들기a를 정의하려면"독립형"관련이없는 복합 토토 테이블. 복합 토토은 단순히 토토 목록입니다. 관련 필드 이름. 복합 토토의 값은 행 또는 필드 값의 기록. 사용자는 구성 요소에 액세스 할 수 있습니다 의 필드SQL쿼리. 참조섹션 8.15더 많은 것 복합 토토에 대한 정보.
도메인은 특정 기본 토토을 기반으로하며 많은 사람들을 기반으로합니다. 목적은 기본 토토과 상호 교환 가능합니다. 그러나 a 도메인은 유효한 값을 기본 기본 토토이 허용하는 것의 하위 집합.
도메인은를 사용하여 생성 할 수 있습니다SQL명령도메인 생성. 그들의 창조와 이 장에서는 사용이 논의되지 않습니다.
몇 가지가 있습니다"의사 토토"특별한 목적. 의사 토토은의 열로 나타날 수 없습니다 복합 토토의 테이블 또는 속성이지만 사용할 수 있습니다. 인수와 결과 토토의 기능을 선언합니다. 이것 토토 시스템 내에서 특수를 식별하기위한 메커니즘을 제공합니다. 기능 클래스.테이블 8-24기존 의사 토토을 나열합니다.
특별한 관심의 4 개의 의사 토토은Anylement, AnyArray, AnynonArray및AnyEnum다형성 토토. 사용하여 선언 된 모든 기능 이 토토은라고합니다.다형성 기능. 다형성 기능은 많은 사람들에게 작동 할 수 있습니다 특정 데이터 토토이있는 다른 데이터 토토 실제로 전달 된 데이터 토토에 의해 결정됩니다. 특정 전화.
다형성 논증과 결과는 서로 연결되어 있으며 쿼리가 호출 할 때 특정 데이터 토토으로 해결됩니다. 다형성 기능이 구문 분석됩니다. 각 위치 (어느 주장도 또는 반품 값) 선언Anylement특정 실제 데이터 토토을 가질 수 있지만 전화가 주어지면 그들은 모두이어야합니다.동일실제 토토. 각 위치 로 선언AnyArray배열을 가질 수 있습니다 데이터 유형이지만 마찬가지로 모두 동일한 유형이어야합니다. 만약에 선언 된 직책이 있습니다AnyArray및 다른 사람들은 선언했다Anylement, 실제 배열 토토AnyArray포지션이 필요합니다 요소가에 나타나는 동일한 유형의 배열이 되십시오.Anylement위치.AnynonArray|Anylement이지만 추가를 추가합니다 실제 토토이 배열 토토이되어서는 안된다는 제약 조건.AnyEnum|Anylement그러나 추가를 추가합니다 실제 토토이 열거 된 토토이어야한다는 제약.
따라서 둘 이상의 인수 위치가 선언 될 때 다형성 토토, 순 효과는 실제 인수 유형의 조합이 허용됩니다. 예를 들어, 로 선언 된 함수동등한 (Anylement, anylement)는 두 가지 입력 값을 사용합니다 그들은 동일한 데이터 유형입니다.
함수의 반환 값이 다형성 토토, 적어도 하나의 인수 위치가 있어야합니다. 그것은 또한 다형성이며, 실제 데이터 유형은 인수는 해당 호출의 실제 결과 유형을 결정합니다. 예를 들어, 배열 첨자가없는 경우 메커니즘, 하나는 구현하는 함수를 정의 할 수 있습니다 로브 스크립팅첨자 (AnyArray, 정수) 반환 친. 이 선언은 제한됩니다 실제 첫 번째 인수는 배열 토토이며 실제 첫 번째에서 올바른 결과 토토을 추론하는 파서 인수의 토토. 또 다른 예는로 선언 된 함수입니다.f (Anyarray) 반환전용 열거 토토의 배열 수락.
참고AnynonArrayandAnyEnum별도의 토토 변수를 나타내지 마십시오. 그들은와 같은 토토입니다.Anylement, 추가적인 제약으로. 예를 들어, 선언 a 기능f (Anylement, Anyenum)is 그것을 선언하는 것과 동일합니다f (Anyenum, Anyenum): 실제 인수는 모두 동일한 열거해야합니다. 유형.
변수 함수 (하나는 가변 수를 취합니다 논쟁,섹션 35.4.5)는 다형성이 될 수 있습니다 : 이것은 달성됩니다 마지막 매개 변수 선언variadic AnyArray. 을 위한 실제 결과를 일치시키고 결정하는 인수의 목적 유형, 그러한 함수는 당신이 작성한 것과 동일하게 동작합니다. 적절한 수AnynonArray매개 변수.