I am working on getting a decent query language for ZCatalog/Catalog and
I have been able to make good progress, however I am running into a bit
of an issue that I thought you might know something about:

In order to implement a "!=" query operator, I am trying to do the

>From the index, return the result set that match the value (easy)
Subtract that from the set of all items in the index (not so easy)

I see that there is the difference method available from IIBTree,
however I seem to be unable to use it on the entire index (Which is an
OOBTree and not really a set I guess). Here is a snippit of my code
which doesn't work:

if op == '!=' or op[:3] == 'not':
        w, rs = difference(index._index, rs) # XXX Not a warm fuzzy...

(where rs is the index result set that matches the value and index is
the Catalog index OOBTree)

What can I supply for the first argument to get a set of all items in
the index, or is there any easier and better approach to this whole

BTW: I realize I could step though _index.items() and create an IISet
but that seems awful inefficient...

Thanks in advance for any ideas you might have...

| Casey Duncan
| Kaivo, Inc.

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to