From 8be31cb1aec0459da8a3dacffc0e74514120a4ea Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Fri, 24 Jul 2015 16:45:14 +0000
Subject: [PATCH] OPENDJ-2194 Index range search is equivalent to interval search only for single value attributes
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
index 0cce94a..3ab3628 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
@@ -567,11 +567,11 @@
SearchFilter filter1, SearchFilter filter2, StringBuilder debugBuffer, BackendMonitor monitor)
{
// TODO : this implementation is not optimal
- // as it implies two separate evaluations instead of a single one,
- // thus defeating the purpose of the optimization done
- // in IndexFilter#evaluateLogicalAndFilter method.
- // One solution could be to implement a boundedRangeAssertion that combine
- // the two operations in one.
+ // as it implies two separate evaluations instead of a single one, thus defeating the purpose of
+ // the optimization done in IndexFilter#evaluateLogicalAndFilter method.
+ // One solution could be to implement a boundedRangeAssertion that combine the two operations in one.
+ // Such an optimization can only work for attributes declared as SINGLE-VALUE, though, since multiple
+ // values may match both filters with values outside the range. See OPENDJ-2194.
StringBuilder tmpBuff1 = debugBuffer != null ? new StringBuilder() : null;
StringBuilder tmpBuff2 = debugBuffer != null ? new StringBuilder() : null;
EntryIDSet results1 = evaluate(indexQueryFactory, filter1, tmpBuff1, monitor);
--
Gitblit v1.10.0