RE: Indexing for geographic objects? - Mailing list pgsql-hackers

From Michael Ansley
Subject RE: Indexing for geographic objects?
Date
Msg-id 7F124BC48D56D411812500D0B747251406151E@fileserver002.intecsystems.co.uk
Whole thread Raw
In response to Indexing for geographic objects?  (Franck Martin <franck@sopac.org>)
Responses RE: Indexing for geographic objects?  (Oleg Bartunov <oleg@sai.msu.su>)
Re: Indexing for geographic objects?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers

Hi,

Remember also that the GiST library has been integrated into PG, (my brother is doing some thesis workon that at the moment), and you can create new index types relatively quickly (assuming that you understand the indexing theory ;-) using this mechanism.  Run a web search on GiST for more info.

Currently GiST has support for btree and rtree indexes, and possibly r+ or * trees, I can't remember which, if any, and IIRC, at least a couple more.  However, if you have a requirement or 3d indexing, and you have the knowledge available, you should be able to hack a few 3d indexes together quite quickly.

Cheers...
 

-----Original Message-----
From: Tom Lane
To: Franck Martin
Cc: pgsql-general; pgsql-hackers
Sent: 11-26-00 4:35 AM
Subject: Re: [HACKERS] Indexing for geographic objects?

Franck Martin <franck@sopac.org> writes:
> I would greatly appreciate if someone could guide me through the
> methodology to build an index for a custom type or point me to some
> readings where the algorithm is explained (web, book, etc...).

The Programmer's Guide chapter "Interfacing Extensions To Indices"
outlines the procedure for making a new datatype indexable.  It
only discusses the case of adding btree support for a new type,
though.  For other index classes such as R-tree there are different
sets of required operators, which are not as well documented but
you can find out by looking at code for the already-supported
datatypes.

> I plan to use 3D geographical objects...

That's a bit hard since we don't have any indexes suitable for 3-D
coordinates --- the existing R-tree type is for 2-D objects.  What's
more it assumes that coordinates are Euclidean, which is probably
not the model you want for geographical coordinates.

In theory you could build a new index type suitable for indexing
3-D points, using the R-tree code as a starting point.  I wouldn't
class it as a project suitable for a newbie however :-(.

Depending on what your needs are, you might be able to get by with
projecting your objects into a flat 2-D coordinate system and using
an R-tree index in that space.  It'd just be approximate but that
might be close enough for index purposes.

                        regards, tom lane

**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**********************************************************************

pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: Bug in unicode conversion ...
Next
From: Tatsuo Ishii
Date:
Subject: Re: syslog output from explain looks weird...