R-Trees.

From: Michael Wray <mwray(at)hecomm(dot)org>
To: pgsql-admin(at)postgresql(dot)org
Subject: R-Trees.
Date: 2005-02-11 05:35:25
Message-ID: 200502102335.25262.mwray@hecomm.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

(Please CC me, if you reply as I am out of pocket now and not able to be on
mailing lists at this time...);

I'm not sure which list I was reading, but I've been looking for info about
R-Trees, and stumbled across my favourite DB backend's mailing lists...

I've used RTREE based db engines before (Informix) but was unaware of PostGres
and MySQL implementing RTREE capability until tonight.

While I understand the basic concept of an RTREE. I would like to be pointed
someplace to get more info on the algorithms of RTREES and how they work, as
I'd like to implement something that uses RTREE algorithms, and be able to
represent a whole record w/ items with values,subvalues,subsubvalues,
etc...in an object type format.

(Something that can get a whole record for a customer and break it out into
all the pieces automagically.. as an example.)

I'm used to doing code like this for parsing data for a customer from an
RTREE:
(Mixed Pseudocode and perl):
$customer=GETDATA;
$MultivalueMarker="~";
$SubvalueMarker=0007;
$valuemarker=0008;

foreach $customer (@recordlist) {
@carray=split ($ValueMarker,$customer,10);
@phonearray=split($SubValueMarker,@carray[7]);
foreach $phoneitem (@phonearray) {
my ($phone,$number)= split($MultiValueMarker,$phoneitem);
$phonehash{$phone}=$number;
}
@domainarray=split ($SubValueMarker,@carray[8]);
@emailarray=split ($MultiValueMarker,@domainarray[2]);

}

And at some point the data is packed and unpacked....
I'd like to hide all that using objects and make it so one could say read in a
template, and then make access to the data based on names defined in the
template.

As for an SQL database using Rtrees:
This doesn't seem like good practice for use if one is using SQL to do queries
with as it isn't structured around this kind of datatype, is there black
magic going on here that autoguesses joins, etc based on relationship of data
in the tree?

(When PG first announced Multidimensional support for the db, I didn't believe
it to be an rtree because of the slowness at which queries occurred, when
using multivalued data, even in a small database.) I would hope that pgsql
would have other ways of handling queries on an rtree. And it may well do
that now.)

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Sabio - PSQL 2005-02-11 14:35:35 Cluster???
Previous Message Tom Lane 2005-02-10 22:25:18 Re: automating remote pg_dump