Re: Universal B-tree - Mailing list pgsql-hackers

From Daniel Oliveira
Subject Re: Universal B-tree
Date
Msg-id AANLkTikYj-6BS5VxC_QqShbj29gHMrzG2reBFdPVk7zu@mail.gmail.com
Whole thread Raw
In response to Re: Universal B-tree  (Daniel Oliveira <danielmarquesoliveira@gmail.com>)
Responses Re: Universal B-tree
List pgsql-hackers
There is a way to acess a index inside a c function without using a sql statement ?

Best regards,

Daniel Oliveira

2010/8/9 Daniel Oliveira <danielmarquesoliveira@gmail.com>
For research purpose, I think that expression index is a good idea. I just want to do a proof of concept.

The other issue is that my algorithm break a z-order interval into several intervals that represents the query box. How should I create it without creating any overhead?

Best regards,

daniel

2010/8/9 Greg Stark <gsstark@mit.edu>

On Mon, Aug 9, 2010 at 5:31 PM, Daniel Oliveira
<danielmarquesoliveira@gmail.com> wrote:
> I don't need to change B-tree estructure. I just need integrate my encode
> function that transforms multiple keys into one key by bit-interleaving and
> to acess elements given several intervals (range search).

You could build a "expression" index on the function which will build
a regular btree. Then any range clause on a similar expression in the
query would be able to use the index. Postgres is capable of detecting
multiple range clauses that can use one or more indexes and combine
the results.  It might not be perfect for your use case, being a
general purpose tool.

I'm not sure how feasible it would be to implement a special purpose
case that matches your needs. Perhaps a special index type and index
access method similar to gist "tsquery" data type. But that's a lot
more work and a lot more C coding.

--
greg


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: 1-byte id for SharedInvalidationMessages
Next
From: Joshua Tolley
Date:
Subject: Re: grouping sets - updated patch