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/replication/common/ChangelogBaseDNVirtualAttributeProvider.java | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/common/ChangelogBaseDNVirtualAttributeProvider.java b/opends/src/server/org/opends/server/replication/common/ChangelogBaseDNVirtualAttributeProvider.java
index 1129459..3e52f48 100644
--- a/opends/src/server/org/opends/server/replication/common/ChangelogBaseDNVirtualAttributeProvider.java
+++ b/opends/src/server/org/opends/server/replication/common/ChangelogBaseDNVirtualAttributeProvider.java
@@ -23,7 +23,7 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
- * Portions Copyright 2011 ForgeRock AS
+ * Portions Copyright 2011-2012 ForgeRock AS
*/
package org.opends.server.replication.common;
@@ -31,6 +31,7 @@
import java.util.List;
import java.util.Set;
+import static org.opends.messages.ExtensionMessages.*;
import org.opends.messages.Message;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.UserDefinedVirtualAttributeCfg;
@@ -133,9 +134,10 @@
*/
@Override()
public boolean isSearchable(VirtualAttributeRule rule,
- SearchOperation searchOperation)
+ SearchOperation searchOperation,
+ boolean isPreIndexed)
{
- // We will not allow searches based only on user-defined virtual attributes.
+ // We do not allow search as it may be present is too many entries.
return false;
}
@@ -149,7 +151,9 @@
SearchOperation searchOperation)
{
searchOperation.setResultCode(ResultCode.UNWILLING_TO_PERFORM);
- return;
+ final Message message = ERR_CHANGELOGBASEDN_VATTR_NOT_SEARCHABLE.get(
+ rule.getAttributeType().getNameOrOID());
+ searchOperation.appendErrorMessage(message);
}
--
Gitblit v1.10.0