이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

52.5. 제한

전체를 지원하지 않습니다 인덱스 스캔. 그 이유는입니다.ExtractValue| 예를 들어 빈 문자열 또는 빈 배열로 발생할 수 있습니다. ~ 안에 그러한 경우 인덱스 값은 인덱스에 표시되지 않습니다. 그러므로 그것은 불가능합니다지수 스캔이 가능하도록 보장합니다 테이블에서 모든 행을 찾으십시오.

이 제한 때문에ExtractQuery반환nkeys = 0모든 값이 쿼리와 일치한다는 것을 나타냅니다.오류가 발생합니다. (만약에 쿼리에는 여러 개의 색인 가능한 연산자가 있습니다. 그들이 모두 0에 대해 0을 반환하는 경우에만 발생합니다nkeys.)

운영자 클래스가 우회 할 수 있습니다. 전체 색인 스캔에 대한 제한. 그렇게하려면ExtractValue최소한 하나를 반환해야합니다 (아마도 더미) 모든 색인 값에 대한 키 및ExtractQuery무제한을 변환해야합니다 전체 인덱스를 스캔하는 부분 매치 쿼리로 검색하십시오. 이것은 비효율적이지만 코너 케이스를 피하기 위해 필요할 수 있습니다. 와 같은 연산자와의 실패Like또는 서브 세트 포함.

색인이 가능하다고 가정합니다 운영자는 엄격합니다. 이것은ExtractValuea NULL 값 (값은 무례한 상태로 진행됩니다) 및ExtractQueryNULL에서 호출되지 않습니다 비교 값 중 하나 (대신 쿼리는 타의 추종을 불허).

아마도 더 심각한 제한은입니다.예를 들어 널 키를 처리 할 수 ​​없습니다 널을 포함하는 배열은 널.