CREATE OPERATOR — 새 토토 사이트 정의
토토 사이트 생성이름( 함수|절차 =함수_이름[, LEFTARG =left_type] , RIGHTARG =right_type[, 통신자 =com_op] [, NEGATOR =neg_op] [, 제한 =res_proc] [, JOIN =join_proc] [, 해시 ] [, 병합 ] )
토토 사이트 생성새 토토 사이트를 정의합니다.이름. 운영자를 정의하는 사용자가 소유자가 됩니다. 스키마 이름이 제공되면 지정된 스키마에 연산자가 생성됩니다. 그렇지 않으면 현재 스키마에 생성됩니다.
연산자 이름은 최대의 순서입니다NAMEDATALEN-다음 목록의 1개(기본적으로 63) 문자:
+ - * / < = ~ ! @ # % ^ & | ` ?
이름 선택에는 몇 가지 제한 사항이 있습니다:
--그리고/*연산자 이름은 주석의 시작으로 간주되므로 연산자 이름 어디에도 나타날 수 없습니다.
다중 문자 연산자 이름은 다음으로 끝날 수 없습니다.+또는-, 이름에 다음 문자 중 하나 이상이 포함되어 있지 않은 경우:
~ ! @ # % ^ & | ` ?
예를 들어,@-허용되는 연산자 이름이지만*-그렇지 않습니다. 이 제한은 다음을 허용합니다.PostgreSQL토큰 사이에 공백을 요구하지 않고 SQL 호환 명령을 구문 분석합니다.
상징=SQL 문법에 예약되어 있으므로 연산자 이름으로 사용할 수 없습니다.
운영자!=다음에 매핑됨<입력 시 이 두 이름은 항상 동일합니다.
이진 토토 사이트의 경우 둘 다LEFTARG그리고오른쪽ARG정의되어야 합니다. 접두사 토토 사이트의 경우에만오른쪽ARG정의되어야 합니다.함수_이름함수는 이전에 다음을 사용하여 정의되었어야 합니다.함수 생성그리고 표시된 유형 중 올바른 수의 인수(1개 또는 2개)를 허용하도록 정의되어야 합니다.
구문에서토토 사이트 생성, 키워드기능그리고절차동등하지만 참조된 함수는 어떤 경우에도 프로시저가 아닌 함수여야 합니다. 키워드의 사용절차여기는 역사적이며 더 이상 사용되지 않습니다.
다른 절은 선택적 연산자 최적화 속성을 지정합니다. 그 의미는 다음에 자세히 설명되어 있습니다.PostgreSQL : 문서 : 개발 : 36.15. 토토 사이트 순위 최적화 정보.
운영자를 생성하려면 다음이 있어야 합니다.사용인수 유형 및 반환 유형에 대한 권한 및실행기본 함수에 대한 권한. 정류자 또는 부정 연산자가 지정된 경우 해당 연산자를 소유해야 합니다.
이름정의할 연산자의 이름. 허용되는 문자는 위를 참조하세요. 이름은 스키마로 한정될 수 있습니다. 예를 들면토토 사이트 myschema 생성.+ (...). 그렇지 않은 경우 현재 스키마에 연산자가 생성됩니다. 동일한 스키마에 있는 두 연산자가 서로 다른 데이터 유형에 대해 작동하는 경우 동일한 이름을 가질 수 있습니다. 이것을 이라고 합니다.오버로딩.
함수_이름이 연산자를 구현하는 데 사용되는 함수입니다.
left_type토토 사이트의 왼쪽 피토토 사이트의 데이터 유형(있는 경우). 접두사 토토 사이트의 경우 이 옵션이 생략됩니다.
right_type토토 사이트의 오른쪽 피토토 사이트의 데이터 유형.
com_op이 토토 사이트의 정류자.
neg_op이 토토 사이트의 부정자입니다.
res_proc이 토토 사이트에 대한 제한 선택 추정 함수입니다.
join_proc이 토토 사이트에 대한 조인 선택 추정기 함수입니다.
해시이 연산자가 해시 조인을 지원할 수 있음을 나타냅니다.
병합이 연산자가 병합 조인을 지원할 수 있음을 나타냅니다.
스키마 한정 연산자 이름을 제공하려면com_op또는 다른 선택적 인수인 경우에는토토 사이트()구문, 예:
COMMUTATOR = OPERATOR(myschema.===) ,
참조PostgreSQL : 문서 : 개발 : 36.14. 사용자 정의 토토 사이트 추천그리고PostgreSQL : 문서 : 개발 : 36.15. 토토 사이트 순위 최적화 정보자세한 정보는.
자체 교환 연산자를 정의할 때 정의하기만 하면 됩니다. 교환 연산자 쌍을 정의할 때 상황은 좀 더 까다롭습니다. 정의할 첫 번째 연산자가 아직 정의하지 않은 다른 연산자를 어떻게 참조할 수 있습니까? 이 문제에는 세 가지 해결 방법이 있습니다.
한 가지 방법은 다음을 생략하는 것입니다.커뮤테이터18719_18832PostgreSQL가환 토토 사이트가 쌍으로 온다는 것을 알고 있습니다. 두 번째 정의를 보면 자동으로 돌아가서 누락된 부분을 채웁니다.커뮤테이터첫 번째 정의의 절.
또 다른 더 간단한 방법은 다음을 포함하는 것입니다.커뮤테이터두 정의 모두에 절이 있습니다. 언제PostgreSQL첫 번째 정의를 처리하고 이를 인식함커뮤테이터이 존재하지 않는 연산자를 참조하는 경우 시스템은 시스템 카탈로그에 해당 연산자에 대한 더미 항목을 만듭니다. 이 더미 항목에는 연산자 이름, 왼쪽 및 오른쪽 피연산자 유형, 소유자에 대해서만 유효한 데이터가 포함됩니다. 그게 전부이기 때문입니다.PostgreSQL이 시점에서 추론할 수 있습니다. 첫 번째 운영자의 카탈로그 항목은 이 더미 항목에 연결됩니다. 나중에 두 번째 연산자를 정의하면 시스템은 두 번째 정의의 추가 정보로 더미 항목을 업데이트합니다. 채워지기 전에 더미 연산자를 사용하려고 하면 오류 메시지가 나타납니다.
또는 두 연산자 모두 없이 정의할 수 있습니다.커뮤테이터절 이후ALTER OPERATOR정류자 링크를 설정하는 데 사용할 수 있습니다. 이면 충분합니다.변경쌍 중 하나.
세 가지 경우 모두 정류자로 표시하려면 두 토토 사이트를 모두 소유해야 합니다.
부정 연산자 쌍은 정류 쌍과 동일한 방법을 사용하여 정의할 수 있습니다.
토토 사이트의 어휘 우선순위를 지정할 수 없습니다.토토 사이트 생성, 파서의 우선 순위 동작이 고정되어 있기 때문입니다. 참조섹션 4.1.6우선순위 세부정보.
더 이상 사용되지 않는 옵션정렬1, SORT2, LTCMP및GTCMP이전에는 병합 조인 가능 연산자와 연관된 정렬 연산자의 이름을 지정하는 데 사용되었습니다. 관련 연산자에 대한 정보는 대신 B-트리 연산자 계열을 살펴봄으로써 찾을 수 있으므로 이는 더 이상 필요하지 않습니다. 이러한 옵션 중 하나가 제공되면 암시적으로 설정하는 경우를 제외하고는 무시됩니다.병합사실입니다.
사용드롭 토토 사이트데이터베이스에서 사용자 정의 연산자를 삭제합니다. 사용변경 연산자데이터베이스의 토토 사이트를 수정합니다.
다음 명령은 데이터 유형에 대한 새로운 연산자인 면적 동등성을 정의합니다.상자:
토토 사이트 생성 === (
LEFTARG = 상자,
RIGHTARG = 상자,
기능 = 면적_동등_함수,
정류자 = ===,
부정자 = !==,
RESTRICT = 지역_제한_기능,
JOIN = Area_join_function,
해시, 병합
);
토토 사이트 생성은PostgreSQL확장. SQL 표준에는 사용자 정의 연산자에 대한 규정이 없습니다.