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

RE: I-D ACTION:draft-ietf-ldapext-matchedval-01.txt



In general, I think this draft is fine, and provides a useful feature when
simple filters are used.  However, I'm confused as to what should happen
when the filter is rather complex.  (Admittedly, I'm thinking of
pathological cases that should rarely occur in normal use.)

Some questions:
1.  Does the rule of ignoring a NOT filter mean to ignore the entire,
possibly complex filter, the not applies to, even if it is ultimately a
double NOT ?
So this filter "(!(!(mail=sean.mullan@sun.com)))" has no effect of returned
values, whereas "(mail=sean.mullan@sun.com)" does.

2. Consider the "Sean Mullan" example from the draft.  What if the filter
was 
  "(|(mail=sean.mullan@sun.com)(telephoneNumber=47))" ?  
Now the entry is returned because the entire filter is true.  What is
returned for telephoneNumber?  As I read the draft all values of the
telephoneNumber should be returned, since that clause evaluates FALSE.  Is
this right?

3. What about this filter: 
"(|(&(mail=sean.mullan@sun.com) 
     (telephoneNumber=47))
   (cn=Sean*))"
Here the mail clause evaluates TRUE, but does not contribute to the overall
truth of the filter, because the rest of the AND is FALSE.  Is only the one
value of mail returned?

4. One more:
  "(|(mail=sean.mullan@sun.com)(telephoneNumber=555-9999))"  
Here both clauses are TRUE, but the second would normally not need to be
evaluated.  I assume that's irrelevant and only one matched value each of
both mail and telephone number is returned.