Re: Composite Index Structure

From: Nick Raj <nickrajjain(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Composite Index Structure
Date: 2011-03-07 09:11:25
Message-ID: AANLkTik6dEAtugc0SO3JvssZSFrfmo9+gHkhy52aK7B=@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)linnakangas(at)enterprisedb(dot)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
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2011-03-07 09:20:07 Re: pgsql: Efficient transaction-controlled synchronous replication.
Previous Message Magnus Hagander 2011-03-07 09:07:48 Re: Downtime for commitfest.postgresql.org