From: Kurt Zeilenga Date: Tue, 29 Apr 2003 01:19:35 +0000 (+0000) Subject: computed and undefined filter indexing fixes X-Git-Tag: OPENLDAP_REL_ENG_2_1_18~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dbfe6b8fe958a1142f006fc7efd01a8ce26a274e;p=thirdparty%2Fopenldap.git computed and undefined filter indexing fixes --- diff --git a/servers/slapd/back-bdb/filterindex.c b/servers/slapd/back-bdb/filterindex.c index ae75380ab9..d4536831f7 100644 --- a/servers/slapd/back-bdb/filterindex.c +++ b/servers/slapd/back-bdb/filterindex.c @@ -58,6 +58,20 @@ bdb_filter_candidates( #endif switch ( f->f_choice ) { + case SLAPD_FILTER_COMPUTED: + switch( f->f_result ) { + case LDAP_COMPARE_FALSE: + BDB_IDL_ZERO( ids ); + break; + case LDAP_COMPARE_TRUE: { + struct bdb_info *bdb = (struct bdb_info *)op->o_bd->be_private; + BDB_IDL_ALL( bdb, ids ); + } break; + case SLAPD_COMPARE_UNDEFINED: + break; + } + break; + case SLAPD_FILTER_DN_ONE: #ifdef NEW_LOGGING LDAP_LOG ( INDEX, ARGS, "=> bdb_filter_candidates: \tDN ONE\n", 0, 0, 0 ); @@ -483,6 +497,7 @@ equality_candidates( if( rc == DB_NOTFOUND ) { BDB_IDL_ZERO( ids ); rc = 0; + break; } else if( rc != LDAP_SUCCESS ) { #ifdef NEW_LOGGING LDAP_LOG ( INDEX, RESULTS,