Hi
If I run a query against my directory with this filter:
"(myDeviceId=ZZZ-07430.08.12345678*)"
it returns a match showing precisely that myDeviceId = "ZZZ-07430.08.12345678"
If I use this filter, without the wildcard and just the actual value
"(myDeviceId=ZZZ-07430.08.12345678)"
it returns no match.
Even if I change the attribute value to something very simple like "x" I still need to include a wildcard in my filter to get any match.
This works however:
"(myDeviceId:caseExactMatch:=ZZZ-07430.08.12345678)"
What gives here?
The specific attribute is defined in the schema file as follows:
attributetype ( 1.3.6.1.4.1.36200.255.0.17 NAME 'myDeviceId' DESC 'Identifies a device' SUP uid EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
I am no expert, but this makes no sense to me? I feel I am missing something, but what?
I am using openldap on CentOS 6 and workign via command-line tools (e.g. ldapsearch). The backend is mdb if that matters.
# rpm -qa | grep openldap openldap-clients-2.4.39-8.el6.x86_64 openldap-2.4.39-8.el6.x86_64 openldap-servers-2.4.39-8.el6.x86_64
Thanks for any ideas/suggestions.
Best, GH
Gregory House wrote:
If I run a query against my directory with this filter:
"(myDeviceId=ZZZ-07430.08.12345678*)"
it returns a match showing precisely that myDeviceId = "ZZZ-07430.08.12345678"
If I use this filter, without the wildcard and just the actual value
"(myDeviceId=ZZZ-07430.08.12345678)"
it returns no match.
Wild guess: You've added eq-only index for 'myDeviceId' *after* adding the entry.
See also:
"How do I add an index after populating the database?" http://www.openldap.org/faq/data/cache/136.html
Ciao, Michael.
Hi
Michael: Thanks for tip. As it happens there was no index at all for myDeviceId. I created one via:
dn: olcDatabase={2}mdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: myDeviceId
and it seemed to work OK after that.
GH
On Thu, Jul 30, 2015 at 9:27 PM, Michael Ströder michael@stroeder.com wrote:
Gregory House wrote:
If I run a query against my directory with this filter:
"(myDeviceId=ZZZ-07430.08.12345678*)"
it returns a match showing precisely that myDeviceId = "ZZZ-07430.08.12345678"
If I use this filter, without the wildcard and just the actual value
"(myDeviceId=ZZZ-07430.08.12345678)"
it returns no match.
Wild guess: You've added eq-only index for 'myDeviceId' *after* adding the entry.
See also:
"How do I add an index after populating the database?" http://www.openldap.org/faq/data/cache/136.html
Ciao, Michael.
openldap-technical@openldap.org