From 2fe585593bd3b3ca68064e5df4e6ee6eb210a66a Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Tue, 29 May 2012 12:05:52 +0000
Subject: [PATCH] Fix OPENDJ-508 - Searches that rely on searchable virtual attribute may be slow. For those searchable virtual attributes that can be faster than indexing (like when always matching a single entry), we process them before indexes. For the others, we fall back to them when indexes are not enough. Changes include a little bit of tidy up of comments and IDE warnings.
---
opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java b/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
index 23a522a..3558603 100644
--- a/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
+++ b/opends/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
@@ -23,7 +23,7 @@
*
*
* Copyright 2008-2009 Sun Microsystems, Inc.
- * Portions copyright 2011 ForgeRock AS
+ * Portions copyright 2011-2012 ForgeRock AS
*/
package org.opends.server.extensions;
@@ -304,11 +304,18 @@
* <LI>It is an AND filter in which at least one of the components is an
* equality filter targeting the associated attribute type.</LI>
* </UL>
+ * Searching for this virtual attribute cannot be pre-indexed and thus,
+ * it should not be searchable when pre-indexed is required.
*/
@Override()
public boolean isSearchable(VirtualAttributeRule rule,
- SearchOperation searchOperation)
+ SearchOperation searchOperation,
+ boolean isPreIndexed)
{
+ if (isPreIndexed)
+ {
+ return false;
+ }
return isSearchable(rule.getAttributeType(), searchOperation.getFilter(),
0);
}
--
Gitblit v1.10.0