I have been battling indexes for a few hours now and I am stumped. I have this really marvellously silly result that I just can't understand. I just recreated it as clean as I could:
Thanks Göran. You have indeed found a bug. Magma uses a class called MaHashIndex to support its indexing. This class provides a large Integer mapping, keys to values.
Before multi-attribute query support, the only *values* in the key-value pairs would only ever be oids. The value 3 is a special value reserved in the oid map to indicate an unused entry, it is never a valid oid for any object.
But now, to support multi-attribute querys, we maintain a "reverse" index which has the *oids* as keys and index *keys* as values. So the low-level code in MaHashIndex which considers any value slot with a 3 in it as an empty slot, that is why we are seeing the silly results missing 3. In doing the queries I totally overlooked this special case!
I'll post a fix soon. Sorry for this strange problem!
Regards, Chris