표 37.2, Btree 사설 토토 클래스는 5 개의 비교 연산자를 제공해야합니다.<
, <=
, =
, > =
and. 하나는 그것을 기대할 수 있습니다
<
또한 운영자 클래스의 일부 여야하지만 A를 사용하는 것이 거의 유용하지 않기 때문에 그렇지 않습니다.<
인덱스 검색의 위치. (어떤 목적으로, 플래너는 취급<
btree 연산자 클래스와 관련된; 그러나 그것은를 통해 그 사설 토토를 발견합니다.=
사설 토토의 부정 자 링크가 아니라pg_amop
.)
몇 가지 데이터 유형이 거의 동일한 정렬 시맨틱을 공유하면 운영자 클래스를 운영자 제품군으로 그룹화 할 수 있습니다. 플래너가 교차 유형 비교에 대한 공제를 할 수 있기 때문에 그렇게하는 것은 유리합니다.“느슨한”가족. 전체 교차 유형 사설 토토 세트가 가족에 포함될 것을 권장합니다. 따라서 플래너가 전환으로부터 추론하는 비교 조건을 나타낼 수 있도록하는 것이 좋습니다..
Btree 사설 토토 가족이 만족해야한다는 몇 가지 기본 가정이 있습니다.
an=
사설 토토는 동등한 관계 여야합니다. 즉, 모든 널이 아닌 값에 대해A
, B
, C
데이터 유형의 :
A
=
A
is true (반사법)
ifA
=
B
,B
=
A
(대칭 법)
ifA
=
B
andB
=
C
,A
=
C
(전이법)
A <
사설 토토는 강력한 순서 관계 여야합니다. 즉, 모든 널이 아닌 값에 대해A
, B
, C
:
A
<
A
is false (Irreflexive Law)
ifA
<
B
andB
<
C
,A
<
C
(전이법)
또한 순서는 총입니다. 즉, 모든 널이 아닌 값에 대해A
, B
:
정확히 하나의A
<
B
, A
=
B
및B
<
A
is true (Trichotomy Law)
(Trichotomy 법은 비교 지원 기능의 정의를 정당화합니다.)
다른 세 연산자는의 관점에서 정의됩니다.=
and<
명백한 방식으로, 그들과 일관되게 행동해야합니다.
여러 데이터 유형을 지원하는 운영자 패밀리의 경우 위의 법률은 |A
, B
, C
가족의 모든 데이터 유형에서 가져옵니다. 교차 유형 상황에서 2 ~ 3 개의 다른 연산자의 행동이 일관성이 있다는 진술을 나타내는 전이 법률은 가장 까다로워집니다.float8
and숫자
동일한 운영자 제품군으로, 적어도 현재의 의미론은숫자
값은로 변환됩니다.float8
A와 비교하려면float8
. 제한된 정확도 때문에float8
, 이것은 뚜렷한 것이 있음을 의미합니다숫자
동일한 것과 동일하게 비교할 값float8
가치, 따라서 전이 법은 실패 할 것입니다.
다중 데이터 유형 패밀리에 대한 또 다른 요구 사항은 사설 토토 제품군에 포함 된 데이터 유형 사이에 정의 된 암시 적 또는 이진적 계산 캐스트가 관련 정렬 순서를 변경해서는 안된다는 것입니다..
BTREE 지수가 단일 데이터 유형 내에서 이러한 법률을 요구하는 이유는 상당히 명확해야합니다. 또한 다른 데이터 유형의 비교 키를 사용한 인덱스 검색은 두 가지 데이터 유형에서 SANELY를 작동시키기 위해 비교해야합니다.