Reading multiple indices on MagmaCollections - first code

Brent Pinkney brent.pinkney at aircom.co.za
Fri Apr 7 11:50:18 UTC 2006


Hi Chris,

>   LavaTestResource current people where:
> 	[ : each |
> 	(each familyName equals: 'Man') |
> 	((each familyName equals: 'Pinkney') & (each age between: 0 and: 60))
> ].

Your refinements on the client reader API are great.

> We're off to a fantastic start.  I posted an idea for the backend work,

Yes, I read this and believe it will be a good start on limiting the search 
area. Implementing this functionality will require real computer science - 
simple iterations of the hash indices will not work for very large 
collections.

> how about suggesting your thoughts on some 'enumerating' API on
> MaExpression that I can use to determine the most-restricting index so
> I can do the backend work (#nodesDo: ?  #expressionsDo: ?
> terminatorsDo: ?).

Ok, but remember that disjuctions (OR clauses) are just as important an, imho, 
a lot more challenging.

> I still need to consider is the best way to represent the result.

My current thinking to be somewhat naive - lets just implement MaBitmap index 
with a Set of matching oids. 

We can then experiement with the algorithm which will walk the clause tree and 
the api necessary for each cluase to add/remove oids from the bitmap.

Hopefully, we will then know more about how to implement the real bitmap index 
later.

> This is turning fun!

Brent


More information about the Magma mailing list