2013-02-04 6 views
2
나는에 형 BOX의 열을 포함하는 테이블에서 선택하는 데 문제가

에서 boxcolumn하여 쿼리를 pgsql 9.1주문 PostgreSQL을

create table test (t box); 
CREATE TABLE 
select * from test order by t; 
ERROR: could not identify an ordering operator for type box 
LINE 1: select * from test order by t; 
            ^
TIP: Use an explicit ordering operator or modify the query. 

I 사업자 (box_ops)의 클래스가 있다는 것을 파악해야 순서와 평등을 돌보고 심지어 열의 명시 적 색인을 만들려고했습니다.

create index testx on test using gist (t box_ops); 
CREATE INDEX 

하지만 여전히 문제가 있습니다. 내가 뭘 놓치고 있니? 감사합니다.

+0

어떤 결과 것은 당신이 달성하려고? 성공하면 테이블을 어떻게 만들어야합니까? –

+0

질문에 대한 주문 상자 열 postgresql입니다 – alexdba

답변

1

명시 적으로 연산자를 지정해야합니다. 예 :

SELECT * FROM test ORDER BY t USING &< 

실제로 필요한 순서를 결정하고 해당 비교 연산자를 선택해야합니다. box_ops에 정의

운영자는 http://www.leadum.com/downloads/dbscribe/samples/postgresql/web_modern/opclass/main/1325676015.html

페이지에서 볼 수 있습니다 http://www.postgresql.org/docs/current/interactive/functions-geometry.html

+0

고마워, 문제의 일부를 해결! 이제는 좀 더 자세히 살펴볼 필요가 있습니다. 상자 행이있는 테이블에서 공용체 선택을 수행 할 때 해당 행 중 하나를 사용하여 정렬하거나 그룹화하지 않아도 연산자 오류가 발생합니다. pgsql이 암시 적으로 사용하는 연산자를 지정하는 방법이 있습니까? – alexdba