From: Kurt Zeilenga Date: Mon, 5 Nov 2001 17:25:44 +0000 (+0000) Subject: Don't use indices to support not [!] filters. X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~897 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f8611a129626de801949388b0a0b090907b9192b;p=openldap Don't use indices to support not [!] filters. Use pres indices to support LE/GE [<=,>=] filters. --- diff --git a/servers/slapd/back-bdb/filterindex.c b/servers/slapd/back-bdb/filterindex.c index df28e10753..3ea8a06cb1 100644 --- a/servers/slapd/back-bdb/filterindex.c +++ b/servers/slapd/back-bdb/filterindex.c @@ -85,27 +85,24 @@ bdb_filter_candidates( Debug( LDAP_DEBUG_FILTER, "\tSUBSTRINGS\n", 0, 0, 0 ); rc = substring_candidates( be, range, f->f_sub, ids ); break; -#endif case LDAP_FILTER_GE: + /* no GE index, use pres */ Debug( LDAP_DEBUG_FILTER, "\tGE\n", 0, 0, 0 ); - rc = 0; + rc = presence_candidates( be, range, f->f_desc, ids ); break; case LDAP_FILTER_LE: + /* no LE index, use pres */ Debug( LDAP_DEBUG_FILTER, "\tLE\n", 0, 0, 0 ); - rc = 0; + rc = presence_candidates( be, range, f->f_desc, ids ); break; +#endif - case LDAP_FILTER_NOT: { - ID tmp[BDB_IDL_UM_SIZE]; - - Debug( LDAP_DEBUG_FILTER, "\tNOT\n", 0, 0, 0 ); - rc = bdb_filter_candidates( be, range, f->f_not, tmp ); - if( rc == 0 ) { - rc = bdb_idl_notin( range, tmp, ids ); - } - } break; + case LDAP_FILTER_NOT: + /* no indexing to support NOT filters */ + Debug( LDAP_DEBUG_FILTER, "\tNOT\n", 0, 0, 0 ); + break; case LDAP_FILTER_AND: Debug( LDAP_DEBUG_FILTER, "\tAND\n", 0, 0, 0 ); diff --git a/servers/slapd/back-bdb/idl.c b/servers/slapd/back-bdb/idl.c index 4f096e911e..59d311a3aa 100644 --- a/servers/slapd/back-bdb/idl.c +++ b/servers/slapd/back-bdb/idl.c @@ -555,6 +555,7 @@ bdb_idl_union( } +#if 0 /* * bdb_idl_notin - return a intersection ~b (or a minus b) */ @@ -606,6 +607,7 @@ bdb_idl_notin( return 0; } +#endif ID bdb_idl_first( ID *ids, ID *cursor ) {