From 79cac4b6e2f1b4e808930cb584c20c11b5df903f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 24 Jul 2005 12:38:42 +0000 Subject: r8736: this fixes the ldb speed (raises BENCH-WINS from 15 ops/sec to over 4000) simo, we need to be careful to cope with this sort of direct dn query efficiently (This used to be commit 7b37923b726752101062fa8a92d3f96e41d55602) --- source4/lib/ldb/ldb_tdb/ldb_search.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source4/lib/ldb/ldb_tdb/ldb_search.c b/source4/lib/ldb/ldb_tdb/ldb_search.c index 3ecb2d9b39..8e84cfa681 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_search.c +++ b/source4/lib/ldb/ldb_tdb/ldb_search.c @@ -461,6 +461,13 @@ int ltdb_search_bytree(struct ldb_module *module, const char *base, struct ltdb_private *ltdb = module->private_data; int ret; + /* it is important that we handle dn queries this way, and not + via a full db search, otherwise ldb is horribly slow */ + if (tree->operation == LDB_OP_EQUALITY && + ldb_attr_cmp(tree->u.equality.attr, "dn") == 0) { + return ltdb_search_dn(module, tree->u.equality.value.data, attrs, res); + } + if (ltdb_lock_read(module) != 0) { return -1; } -- cgit