RE: [HACKERS] Indexing for geographic objects?
Michael Ansley (UK) <michael.ansley@intec-telecom-systems.com>
From: Michael Ansley <Michael.Ansley@intec-telecom-systems.com>
To: "'Tom Lane '" <tgl@sss.pgh.pa.us>, "'Franck Martin '" <franck@sopac.org>
Cc: "'pgsql-general '" <pgsql-general@postgresql.org>, "'pgsql-hackers '" <pgsql-hackers@postgresql.org>, "'t.h.p.ansley@durham.co.uk'" <t.h.p.ansley@durham.co.uk>
Date: 2000-11-26T11:34:16Z
Lists: pgsql-hackers, pgsql-general
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 **********************************************************************