From: Howard Chu Date: Wed, 28 Jan 2004 05:00:56 +0000 (+0000) Subject: Use Btree instead of Hash for indexing X-Git-Tag: OPENLDAP_REL_ENG_2_2_BP~443 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e0e3560cf53126460945337c0f1569c5f35667f4;p=openldap Use Btree instead of Hash for indexing --- diff --git a/servers/slapd/back-bdb/dbcache.c b/servers/slapd/back-bdb/dbcache.c index 65cb28d23f..23d964deaa 100644 --- a/servers/slapd/back-bdb/dbcache.c +++ b/servers/slapd/back-bdb/dbcache.c @@ -28,6 +28,7 @@ #include "back-bdb.h" #include "lutil_hash.h" +#ifdef BDB_INDEX_USE_HASH /* Pass-thru hash function. Since the indexer is already giving us hash * values as keys, we don't need BDB to re-hash them. */ @@ -51,6 +52,10 @@ bdb_db_hash( } return ret; } +#define BDB_INDEXTYPE DB_HASH +#else +#define BDB_INDEXTYPE DB_BTREE +#endif int bdb_db_cache( @@ -109,7 +114,9 @@ bdb_db_cache( } rc = db->bdi_db->set_pagesize( db->bdi_db, BDB_PAGESIZE ); +#ifdef BDB_INDEX_USE_HASH rc = db->bdi_db->set_h_hash( db->bdi_db, bdb_db_hash ); +#endif rc = db->bdi_db->set_flags( db->bdi_db, DB_DUP | DB_DUPSORT ); rc = db->bdi_db->set_dup_compare( db->bdi_db, bdb_bt_compare ); @@ -121,7 +128,7 @@ bdb_db_cache( #endif rc = DB_OPEN( db->bdi_db, file, NULL /* name */, - DB_HASH, bdb->bi_db_opflags | DB_CREATE | DB_THREAD, + BDB_INDEXTYPE, bdb->bi_db_opflags | DB_CREATE | DB_THREAD, bdb->bi_dbenv_mode ); ch_free( file );