Indexing

goran at krampe.se goran at krampe.se
Fri Feb 17 07:57:10 UTC 2006


Howdy folks!

Ok, I am using indexes and have a question:

My scenario right now (I will probably work around it, but would like to
know how this is meant to work) is that I have two different
MagmaCollections - one holding n objects and the other holding a subset
of those. So the same object occurs in two MagmaCollections.

Now, both collections have indexes. Let's say I navigate using one
collection to object A, call noteOldKeysFor: on it, then change it and
commit.

AFAICT MaTransaction>>markRead:using: calls
monitorLargeCollectionChanges:, but the WeakSet in MaTransaction just
keeps growing, I assume it uses identity instead but perhaps should use
equality?. Looks like a bug, anyway that is not my issue here...

So the code in captureOldHashesFor: seems to only capture the hashes for
the large collections that are "monitored", but in my case this happens
to only include the collection I navigated through (since I then read
it), but not the other! Is this logic really correct? Or do I need to
"trick" the session into reindexing my other collection too somehow?

The current result seems to be that object A is only reindexed in the
collection I navigated through.  I assume there is currently no way for
Magma to know which collections it should re-index on its own.

regards, Göran



More information about the Magma mailing list