Indexing a field of type point

Поиск
Список
Период
Сортировка
От David Cottingham
Тема Indexing a field of type point
Дата
Msg-id Pine.LNX.4.64.0708091356030.10805@hermes-1.csi.cam.ac.uk
обсуждение исходный текст
Список pgsql-sql
Hi,

I realise this isn't strictly an SQL question, but I figured this list 
might be better suited than the general one. Please let me know if not.

I have a table containing a field named location, of type point, i.e. a 
position in two dimensions. The table has several million records in, and 
I need to extract those records whose location value is contained within a 
certain bounding box.

To do this efficiently (rather than as a linear scan), I would like to 
create an index over this field. However, using GIST under Postgresql 
8.2.4 I can't do this:

test=# create index points_location_index on points using gist 
(location);
ERROR:  data type point has no default operator class for access method 
"gist"
HINT:  You must specify an operator class for the index or define a 
default operator class for the data type.

Looking through the available classes, there are none defined for points 
:-(.

I have seen a post saying that one could use
create index points_location_index on points using gist (location 
box_ops);
but that comes back with the error that (rightly) box_ops doesn't have 
operators for data of type point.

Is anyone aware of a way of creating a suitable index? I am aware of 
PostGIS, but would prefer not to have to rework a whole load of code to 
use the different geometrical field types it provides.

Thanks for any help!

David.

-- 
David Cottingham
Computer Laboratory, University of Cambridge

http://www.cl.cam.ac.uk/users/dnc25/


В списке pgsql-sql по дате отправления:

Предыдущее
От: Ranieri Mazili
Дата:
Сообщение: Using function like where clause
Следующее
От: "Arindam Hore"
Дата:
Сообщение: pg_trgm installation