You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <di...@incubator.apache.org> on 2006/01/16 12:49:20 UTC

[jira] Created: (DIRLDAP-85) Filtered searches failing

Filtered searches failing
-------------------------

         Key: DIRLDAP-85
         URL: http://issues.apache.org/jira/browse/DIRLDAP-85
     Project: Directory LDAP
        Type: Bug
    Reporter: Emmanuel Lecharny
    Priority: Blocker


If we are trying to do a search with substring filters, we don't get the expected results :
(ou=*tem) is ok, but (ou=sys*) does not return any value. 

The StringTools method getRegexp() does not create a correct regexp, if we have a null final value (which is the case when we have a * at the end of the filter.

I think that the regexp should be constructed like this :
init any  final
 A   null  null -> ^A.*   [ current : ^A (incorrect) ]
null  A    null -> .*A.*   [ current : .*A (incorrect) ]
null null   A   -> .*A   [ current : .*A  (correct) ]
 A     B    null -> ^A(.*B)+.*   [ current : ^A(.*B)+ (incorrect)]
 A    null   B   -> ^A.*B   [ current : ^A.*B  (correct) ]
null  A      B   -> (.*A)+.*B   [ current : (.*A)+.*B  (correct) ]
 A     B      C   -> ^A(.*B)+.*C   [ current : ^A(.*B)+.*C (correct) ]

Any comment, before I change it ?


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (DIRLDAP-85) Filtered searches failing

Posted by "Alex Karasulu (JIRA)" <di...@incubator.apache.org>.
    [ http://issues.apache.org/jira/browse/DIRLDAP-85?page=comments#action_12362856 ] 

Alex Karasulu commented on DIRLDAP-85:
--------------------------------------

Wow good catch.  If you definately confirm incorrect substring search and have correected it please commit at will.  If you could please add some tests that hit permutation categories for the substring regex i.e.:

a*
*a
*a*
*a*b*
a*b
a*b*c 
etc...

Thanks!!!

> Filtered searches failing
> -------------------------
>
>          Key: DIRLDAP-85
>          URL: http://issues.apache.org/jira/browse/DIRLDAP-85
>      Project: Directory LDAP
>         Type: Bug
>     Reporter: Emmanuel Lecharny
>     Priority: Blocker

>
> If we are trying to do a search with substring filters, we don't get the expected results :
> (ou=*tem) is ok, but (ou=sys*) does not return any value. 
> The StringTools method getRegexp() does not create a correct regexp, if we have a null final value (which is the case when we have a * at the end of the filter.
> I think that the regexp should be constructed like this :
> init any  final
>  A   null  null -> ^A.*   [ current : ^A (incorrect) ]
> null  A    null -> .*A.*   [ current : .*A (incorrect) ]
> null null   A   -> .*A   [ current : .*A  (correct) ]
>  A     B    null -> ^A(.*B)+.*   [ current : ^A(.*B)+ (incorrect)]
>  A    null   B   -> ^A.*B   [ current : ^A.*B  (correct) ]
> null  A      B   -> (.*A)+.*B   [ current : (.*A)+.*B  (correct) ]
>  A     B      C   -> ^A(.*B)+.*C   [ current : ^A(.*B)+.*C (correct) ]
> Any comment, before I change it ?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (DIRLDAP-85) Filtered searches failing

Posted by "Emmanuel Lecharny (JIRA)" <di...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/DIRLDAP-85?page=all ]
     
Emmanuel Lecharny closed DIRLDAP-85:
------------------------------------


fixed -> closed

> Filtered searches failing
> -------------------------
>
>          Key: DIRLDAP-85
>          URL: http://issues.apache.org/jira/browse/DIRLDAP-85
>      Project: Directory LDAP
>         Type: Bug
>     Reporter: Emmanuel Lecharny
>     Priority: Blocker

>
> If we are trying to do a search with substring filters, we don't get the expected results :
> (ou=*tem) is ok, but (ou=sys*) does not return any value. 
> The StringTools method getRegexp() does not create a correct regexp, if we have a null final value (which is the case when we have a * at the end of the filter.
> I think that the regexp should be constructed like this :
> init any  final
>  A   null  null -> ^A.*   [ current : ^A (incorrect) ]
> null  A    null -> .*A.*   [ current : .*A (incorrect) ]
> null null   A   -> .*A   [ current : .*A  (correct) ]
>  A     B    null -> ^A(.*B)+.*   [ current : ^A(.*B)+ (incorrect)]
>  A    null   B   -> ^A.*B   [ current : ^A.*B  (correct) ]
> null  A      B   -> (.*A)+.*B   [ current : (.*A)+.*B  (correct) ]
>  A     B      C   -> ^A(.*B)+.*C   [ current : ^A(.*B)+.*C (correct) ]
> Any comment, before I change it ?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (DIRLDAP-85) Filtered searches failing

Posted by "Emmanuel Lecharny (JIRA)" <di...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/DIRLDAP-85?page=all ]
     
Emmanuel Lecharny resolved DIRLDAP-85:
--------------------------------------

    Resolution: Fixed

Fixed, and a test has been added with all the different cases.

> Filtered searches failing
> -------------------------
>
>          Key: DIRLDAP-85
>          URL: http://issues.apache.org/jira/browse/DIRLDAP-85
>      Project: Directory LDAP
>         Type: Bug
>     Reporter: Emmanuel Lecharny
>     Priority: Blocker

>
> If we are trying to do a search with substring filters, we don't get the expected results :
> (ou=*tem) is ok, but (ou=sys*) does not return any value. 
> The StringTools method getRegexp() does not create a correct regexp, if we have a null final value (which is the case when we have a * at the end of the filter.
> I think that the regexp should be constructed like this :
> init any  final
>  A   null  null -> ^A.*   [ current : ^A (incorrect) ]
> null  A    null -> .*A.*   [ current : .*A (incorrect) ]
> null null   A   -> .*A   [ current : .*A  (correct) ]
>  A     B    null -> ^A(.*B)+.*   [ current : ^A(.*B)+ (incorrect)]
>  A    null   B   -> ^A.*B   [ current : ^A.*B  (correct) ]
> null  A      B   -> (.*A)+.*B   [ current : (.*A)+.*B  (correct) ]
>  A     B      C   -> ^A(.*B)+.*C   [ current : ^A(.*B)+.*C (correct) ]
> Any comment, before I change it ?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira