[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: function 'test_filter' cant handle 'begins with' filters



At 12:49 PM 5/8/00 +0200, Mikael Grehn wrote:
>Hi!
>I have implemented openLdap to work with a Btrieve database. To speed up
>the search functionality I interpret the filterstring (example:
>"(!(uid=12345)(cn=mikael)...)").

Interpretting the filterstring is a bad idea.  It's only provided
to backend for logging purposes.  Backend search routines should
rely/interpret the Filter * passed to them.

>Everything work fine except when I want
>to get f.e. all entries that begin with "uid=123".

Don't you mean all entries which contain a uid attribute with
a value starting with "123".

>i.e. I get
>filterstring uid=123*.

>When I use "equal to" the testfilter accepts my resulting entry but when
>getting the exact same entry with filter "begins with" I get mismatch???

No clue.

>I am not able to test with "ends with" or "contains" filters since my
>database doesnt support wildcard search in the beginning (I have to do a
>linear search instead).
>
>Is it very important in what order I place the resulting attributes?

No. order of attributes and order of values of an attribute is not
important.

>(not that it really matters here but...) Is test_filter(...) case
>sensitive?

test_filter is syntax/matching rule sensitive.

>Can anyone see why this is not working when testing the resulting entry
>with (f.e.)
>&(uid=123*)(....all objectclass stuff....)?

You might try a proper filter: ie:
 (&(uid=123*)(....all objectclass stuff....))