[Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm ldbm_search.c, 1.9, 1.10

Nathan Kinder (nkinder) fedora-directory-commits at redhat.com
Mon Sep 17 19:18:33 UTC 2007


Author: nkinder

Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19325/slapd/back-ldbm

Modified Files:
	ldbm_search.c 
Log Message:
Resolves: 242551
Summary: Performance cleanup of sync code.  Improve tombstone search performance.



Index: ldbm_search.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/ldbm_search.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ldbm_search.c	10 Nov 2006 23:45:39 -0000	1.9
+++ ldbm_search.c	17 Sep 2007 19:18:31 -0000	1.10
@@ -818,21 +818,6 @@
 }
 
 
-static int
-nscpentrydn_check_filter(Slapi_Filter *f)
-{
-	if (!f || (f->f_choice != LDAP_FILTER_AND))
-		return 0; /* Not nscpEntryDN filter */
-	
-	if ( 0 == strcasecmp ( f->f_and->f_avtype, SLAPI_ATTR_NSCP_ENTRYDN)) {
-		return 1; /* Contains a nscpEntryDN filter */
-	} else if ( 0 == strcasecmp ( f->f_and->f_next->f_avtype, SLAPI_ATTR_NSCP_ENTRYDN)) {
-		return 1; 
-	}
-	return 0; /* Not nscpEntryDN filter */
-}
-
-
 /*
  * Build a candidate list for a SUBTREE scope search.
  */
@@ -886,41 +871,6 @@
         idl_free(tmp);
         idl_free(descendants);
     }
-    /*
-     * If the search is initiated by the Directory Manager,
-     * and the filter includes objectclass=nsTombstone,
-     * then we union the candidate list with all the tombstone
-     * entries in this backend instance.
-     */
-    if (has_tombstone_filter && isroot && !nscpentrydn_check_filter(filter))
-    {
-        IDList *idl;
-        IDList *tmp= candidates;
-        struct slapi_filter     f = {0};
-        f.f_choice = LDAP_FILTER_EQUALITY;
-        f.f_avtype = "objectclass";
-        f.f_avvalue.bv_val = SLAPI_ATTR_VALUE_TOMBSTONE;
-        f.f_avvalue.bv_len = strlen(SLAPI_ATTR_VALUE_TOMBSTONE);
-        f.f_next= NULL;
-        idl = filter_candidates( pb, be, NULL, &f, NULL, 0, err );
-
-        /*
-         * If that gave allids then try (nscpentrydn=*) instead.
-         * The nscpentrydn equality index contains all the tombstones
-         * and can be used to resolve a presence filter without
-         * hitting allids.
-         */
-        if (idl && ALLIDS(idl)) {
-            idl_free(idl);
-            f.f_choice = LDAP_FILTER_PRESENT;
-            f.f_avtype = SLAPI_ATTR_NSCP_ENTRYDN;
-            idl = filter_candidates( pb, be, NULL, &f, NULL, 0, err );
-        }
-
-        candidates = idl_union( be, idl, tmp );
-        idl_free( idl );
-        idl_free( tmp );
-    }
 
     return( candidates );
 }




More information about the Fedora-directory-commits mailing list