return rc;
}
+static int
+dn_equality_candidate(
+ Operation *op,
+ DB_TXN *rtxn,
+ struct berval *ndn,
+ ID *ids )
+{
+ struct bdb_info *bdb = (struct bdb_info *) op->o_bd->be_private;
+ EntryInfo ei = { 0 };
+ DB_LOCK lock;
+ int rc;
+
+ lock.mode = DB_LOCK_NG;
+ rc = bdb_dn2id( op, ndn, &ei, rtxn, &lock );
+ if ( rc == 0 ) {
+ BDB_IDL_RANGE( ids, ei.bei_id, ei.bei_id );
+ bdb_cache_entry_db_unlock( bdb, &lock );
+ }
+
+ return rc;
+}
+
static int
equality_candidates(
Operation *op,
Debug( LDAP_DEBUG_TRACE, "=> bdb_equality_candidates (%s)\n",
ava->aa_desc->ad_cname.bv_val, 0, 0 );
+ if ( ava->aa_desc == slap_schema.si_ad_entryDN ) {
+ return dn_equality_candidate( op, rtxn, &ava->aa_value, ids );
+ }
+
BDB_IDL_ALL( bdb, ids );
rc = bdb_index_param( op->o_bd, ava->aa_desc, LDAP_FILTER_EQUALITY,