> So, the issue is that you have multiple items with the same
> key. This is simply handled by using sets as values ion a BTree.
> There are existing index implementations that do this.
Hmm... no, in fact the problem is that most of the time I will have only
one value per index entry.So, in a relational DB i would do something like:
>> SELECT * FROM table WHERE timestamp>= X AND timestamp<= Y
>> Since I cannot do this with ZODB,
> I don't know what "this" is. Range seaches? SQL? BTrees and various
> index implementations based on the,m support range searches. of
> course, ZODB doesn't support SQL.
Yes, I know ZODB doesn't support SQL, I was just trying to demonstrate
my use case.
What I meant was that in relational DBs a query like the one above can
be performed over an arbitrary table, without the need for having an
extra data structure for indexing.
>> I'd have to have a BTree, indexed by
>> timestamp... however, as you said, if I want "to the second" granularity, I
>> will rarely have two items with the same key (which makes it pretty
> I don't know why it is useless, but it is easily handled.
It's not useless. I'm sorry, I have used the wrong word. I meant that a
range query will normally involve the union of a higher number of sets
as the granularity gets smaller and smaller. If there is only one item
per index entry, the union operation will take longer... I assumed that
the more BTree entries we have, the more buckets we will have to fetch
from the DB, for a given range query. But I am probably wrong...
>> So, I was wondering if there is some data structure I can use for this, as
>> this seems to be a pretty common use case.
> That's why the various indexing(/catalog) schemes already support it.
So, if I need an index where items can be queried by date, and range
queries can be performed efficiently, an IOBTree will do the job? As I
mention above, my only concern is the number of sets that will have to
Thanks, once again,
José Pedro Ferreira
CERN, Geneva, Switzerland
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org