summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_tdb
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-11-23 20:19:49 +1100
committerAndrew Tridgell <tridge@samba.org>2010-11-23 22:14:58 +1100
commit3a8b67d06cf631f4d883ce40859401eb760bb0f3 (patch)
treee83e5260f822d464075a224baf701e40bbcdf33b /source4/lib/ldb/ldb_tdb
parent439ff8717d41fb641f2a2cf2b14665edf375433d (diff)
downloadsamba-3a8b67d06cf631f4d883ce40859401eb760bb0f3.tar.gz
samba-3a8b67d06cf631f4d883ce40859401eb760bb0f3.tar.bz2
samba-3a8b67d06cf631f4d883ce40859401eb760bb0f3.zip
s4-ldb: added an environment varibale LDB_WARN_UNINDEXED
when LDB_WARN_UNINDEXED is set, we produce warnings about unindexed searches. This makes it easier to find performance problems caused by unindexed searches.
Diffstat (limited to 'source4/lib/ldb/ldb_tdb')
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_search.c14
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_tdb.c4
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_tdb.h2
3 files changed, 13 insertions, 7 deletions
diff --git a/source4/lib/ldb/ldb_tdb/ldb_search.c b/source4/lib/ldb/ldb_tdb/ldb_search.c
index 5df1e4d59e..b58243c26c 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_search.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_search.c
@@ -578,13 +578,13 @@ int ltdb_search(struct ltdb_context *ctx)
* callback error */
if ( ! ctx->request_terminated && ret != LDB_SUCCESS) {
/* Not indexed, so we need to do a full scan */
-#if 0
- /* useful for debugging when slow performance
- * is caused by unindexed searches */
- char *expression = ldb_filter_from_tree(ctx, ctx->tree);
- printf("FULL SEARCH: %s\n", expression);
- talloc_free(expression);
-#endif
+ if (ltdb->warn_unindexed) {
+ /* useful for debugging when slow performance
+ * is caused by unindexed searches */
+ char *expression = ldb_filter_from_tree(ctx, ctx->tree);
+ ldb_debug(ldb, LDB_DEBUG_WARNING, "ldb FULL SEARCH: %s\n", expression);
+ talloc_free(expression);
+ }
if (match_count != 0) {
/* the indexing code gave an error
* after having returned at least one
diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
index 2e88989d57..066d4085bb 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
@@ -1463,6 +1463,10 @@ static int ltdb_connect(struct ldb_context *ldb, const char *url,
return LDB_ERR_OPERATIONS_ERROR;
}
+ if (getenv("LDB_WARN_UNINDEXED")) {
+ ltdb->warn_unindexed = true;
+ }
+
ltdb->sequence_number = 0;
module = ldb_module_new(ldb, ldb, "ldb_tdb backend", &ltdb_ops);
diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.h b/source4/lib/ldb/ldb_tdb/ldb_tdb.h
index 493c276b13..33313b00da 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_tdb.h
+++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.h
@@ -34,6 +34,8 @@ struct ltdb_private {
struct ltdb_idxptr *idxptr;
bool prepared_commit;
int read_lock_count;
+
+ bool warn_unindexed;
};
/*