젠 토토 : 문서 : 9.6 : 젠 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.6 : 사용자 정의 토토 커뮤니티 | Postgre무지개 토토 : 문서 : 9.6 : 무지개 토토 확장 | 제 36 장. 확장SQL | 다음 |
모든 운영자는"구문 설탕"실제 작업을 수행하는 기본 기능에 대한 호출; 따라서 배트맨 토토를 생성하기 전에 먼저 기본 기능을 만들어야합니다. 그러나 운영자는구문 설탕 - 쿼리 플래너가 연산자를 사용하는 쿼리를 최적화하는 데 도움이되는 추가 정보를 제공하기 때문입니다. 다음 섹션은 그 추가 정보를 설명하는 데 전념 할 것입니다.
postgresql왼쪽 단지, 오른쪽 단지 및 이진 연산자 지원. 연산자가 과부하 될 수 있습니다. 즉, 동일한 연산자 이름은 오페라의 숫자와 유형이 다른 다른 연산자에게 사용될 수 있습니다. 쿼리가 실행되면 시스템은 운영자가 제공된 피연산자의 수 및 유형에서 호출하도록 결정합니다.
다음은 두 개의 복소수를 추가하기위한 연산자를 만드는 예입니다. 우리는 이미 유형의 정의를 생성했다고 가정합니다복잡한(참조PostgreSQL : 문서 : 9.6 : 사용자 정의 토토 커뮤니티). 먼저 작업을 수행하는 함수가 필요하고 배트맨 토토를 정의 할 수 있습니다.
함수 만들기 complex_add (complex, complex) 복잡한 반환 처럼 'filename','complex_add ' 언어 C 불변의 엄격; 배트맨 토토 생성 + ( leftarg = complex, rightarg = complex, 절차 = complex_add, 통근자 = + );
이제 다음과 같은 쿼리를 실행할 수 있습니다.
test_complex에서 c로 (a + b)를 선택합니다. 기음 ------------------ (5.2,6.05) (133.42,144.95)
여기에서 이진 배트맨 토토를 만드는 방법을 보여주었습니다. 단제 배트맨 토토를 만들려면 중 하나를 생략하십시오.왼쪽(왼쪽 단원의 경우) 또는Rightarg(오른쪽 단지의 경우). 그만큼절차절과 인수 조항은 유일하게 필요한 항목입니다운영자 생성. 그만큼Commutator예제에 표시된 절은 쿼리 옵티마이저에 대한 선택 사항입니다. 에 대한 자세한 내용Commutator및 기타 최적화 힌트는 다음 섹션에 나타납니다.