git.samba.org
/
abartlet
/
samba.git
/
.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
126c673
)
r8736: this fixes the ldb speed (raises BENCH-WINS from 15 ops/sec to over 4000)
author
Andrew Tridgell
<tridge@samba.org>
Sun, 24 Jul 2005 12:38:42 +0000
(12:38 +0000)
committer
Gerald (Jerry) Carter
<jerry@samba.org>
Wed, 10 Oct 2007 18:30:00 +0000
(13:30 -0500)
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
patch
|
blob
|
history
diff --git
a/source4/lib/ldb/ldb_tdb/ldb_search.c
b/source4/lib/ldb/ldb_tdb/ldb_search.c
index 3ecb2d9b39d4d16405ba851676d3be55848d62c0..8e84cfa681dd996339c53d75e7a6564563bbe51d 100644
(file)
--- 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;
}