On Fri, Feb 22, 2013 at 9:43 PM, Emmanuel Lécharny <[email protected]>wrote:
> Hi guys, > > as I was playing around the idea of moving the scope index at the end of > the filter, nstead of the beginning, I just got some failures when > running the tests. For instance, a test that searcj for every entries > under ou=system, SUBTREE, with a filter like (ObjectClass=*), it returns 0. > > Why ? > > Very simple : as every entry has an ObjectClass, we don't store the list > of entries assoiated to the ObjectClass value in the presence index. The > direct consequence is that evaluating (&(scope=Subtree)(OjectClass=*)) > wil return everything using the scope index, when > (&(OjectClass=*)(scope=Subtree)) will return nothing as the presence > index will be used (and it does not contain ObjectClass). > > At this point, I realized that we will always use the scope except for a > OneLevel scope, and the number of candidates the scope will find will > always be equal to the candidates matched by (ObjectClass=*). > > We then can get rid of the (ObjectClass=*) node in the filter, > irrespective to the complexity of this filter. > > (replying just for the sake of documenting the conversation happened on IM) this looks like a regression cause we never actually keep this (objectClass=*) node, we drop it before evaluating the filter further -- > Regards, > Cordialement, > Emmanuel Lécharny > www.iktek.com > > -- Kiran Ayyagari http://keydap.com
