Re: Composite Index Structure - Mailing list pgsql-hackers

From Nick Raj
Subject Re: Composite Index Structure
Date
Msg-id AANLkTik6dEAtugc0SO3JvssZSFrfmo9+gHkhy52aK7B=@mail.gmail.com
Whole thread Raw
In response to Re: Composite Index Structure  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: Composite Index Structure
List pgsql-hackers
Hi,

Thanks for your suggestion, Heikki. Btree_gist module provides Gist implementation for various different data types, equivalent to btree. Correct me if i wrong?
create index ..... using gist (coordinates,time). It will create index on both but i think there would be no linkage between them.
But i want linkage between location and time tree. I want for each location i have Btree like

                                                        Rtree root
                                                            /     \
                                                     non-leaf .......
                                                      /    \          \
                                                 leaf   ......       leaf
                                                   |                     |
                                             Btree root        Btree root
                                              /         \          /       \
                                        non-leaf
                                          /
                                     leaf

How to create this kind of structure?
What are the modification is required for this?

Thanks
Raj
On Mon, Mar 7, 2011 at 12:33 PM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:
On 07.03.2011 08:07, Nick Raj wrote:
I want to construct an "Composite Index Structure" i.e. a combination of
gist and btree.
What i am thinking is that first creating a Rtree structure that is pointing
to another Btree structure.
For example, Suppose i want to find vehicles between 2 to 4 pm on 14/2/2011
on X road.

I am thinking of creating rtree structure for road network and then btree
for time. For reaching X road i use Rtree, and from there btree begin i.e.
leaf node of rtree contains the pointer to root node of btree ( in this way
i have all time belonging to X road)

My question is that how to implement this composite index structure in
postgres?

Let us suppose, if i create mygist index, then i have to write my own
operator class?
or
can i use gist index as it is and btree tree as it is. I mean their operator
class and their gist methods but how to establish linkage between them?

It sounds like a use case for a multi-column gist index. See btree_gist contrib module. You'll want something like:

CREATE INDEX ... USING gist (coordinates, time)

--
 Heikki Linnakangas
 EnterpriseDB   http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Downtime for commitfest.postgresql.org
Next
From: Fujii Masao
Date:
Subject: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication.