소스 검색

Ticket 47411 - Replace substring search with plain search in referint plugin

Bug Description:  RI plugin uses a substring search by default, which is much more
                  expensive than an equality search filter.

Fix Description:  Only use the substring search if the operation is a modrdn.

https://fedorahosted.org/389/ticket/47411

Reveiwed by: richm(Thanks!)
Mark Reynolds 12 년 전
부모
커밋
a5dde495a7
1개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 6 1
      ldap/servers/plugins/referint/referint.c

+ 6 - 1
ldap/servers/plugins/referint/referint.c

@@ -742,7 +742,12 @@ update_integrity(char **argv, Slapi_DN *origSDN,
         search_base = slapi_sdn_get_dn( sdn );
 
         for(i = 3; argv[i] != NULL; i++){
-            filter = slapi_filter_sprintf("(%s=*%s%s)", argv[i], ESC_NEXT_VAL, origDN);
+            if(newrDN){
+                /* we need to check the children of the old dn, so use a wildcard */
+                filter = slapi_filter_sprintf("(%s=*%s%s)", argv[i], ESC_NEXT_VAL, origDN);
+            } else {
+                filter = slapi_filter_sprintf("(%s=%s%s)", argv[i], ESC_NEXT_VAL, origDN);
+            }
             if ( filter ) {
                 /* Need only the current attribute and its subtypes */
                 attrs[0] = argv[i];