Hi Alex,
We need both the entries that don't pass the specified filter for the
attribute, and those that don't have the attribute at all. We would
need a way to get all entries that are not contained in the index for
the attribute and a way to join that enumeration to the one we had in
the old code (which should be easy enough with a JoinedEnumeration class).
I think the current attribute indices need to be modified to store a
list of entries that do not have the attribute. Each index will then
take up a bit more space. All existing ApacheDS installations would
also need their attribute indices rebuilding too.
What do you think?
Martin
Alex Karasulu wrote:
Is there no way to use indices with searches that use a negation operator in
the filter? I'm feeling
like perhaps we're nixing out the whole thing to solve the problem. Then
again what's the performance
impact of a full master scan verses a full index scan.
Alex
On 8/18/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Author: malderson
Date: Sat Aug 18 11:24:21 2007
New Revision: 567310
URL: http://svn.apache.org/viewvc?view=rev&rev=567310
Log:
Fix for DIRSERVER-951, where a search with a negated filter on an indexed
attribute won't find entries without the attribute.
Modified:
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/DefaultOptimizer.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java
directory/apacheds/trunk/server-unit/src/test/java/org/apache/directory/server/DIRSERVER951ITest.java