From 8ac57ee1cd50fcc3d02b36bea4ab1335924f1d7a Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Mon, 18 May 2015 13:52:40 +0000
Subject: [PATCH] OPENDJ-1864: Ordering matching rules should reuse equality indexes where possible

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java |   28 +++++++++++-----------------
 1 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
index 0e4f9ef..92d24dd 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
@@ -93,7 +93,6 @@
 import org.forgerock.opendj.ldap.ByteSequenceReader;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.forgerock.opendj.ldap.spi.IndexingOptions;
 import org.forgerock.util.Utils;
 import org.opends.server.admin.std.meta.BackendIndexCfgDefn.IndexType;
 import org.opends.server.admin.std.server.BackendIndexCfg;
@@ -1436,20 +1435,20 @@
     }
 
     @Override
-    void processAttribute(MatchingRuleIndex index, Entry entry, EntryID entryID, IndexingOptions options,
-        IndexKey indexKey) throws StorageRuntimeException, InterruptedException
+    void processAttribute(MatchingRuleIndex index, Entry entry, EntryID entryID, IndexKey indexKey)
+        throws StorageRuntimeException, InterruptedException
     {
       if (oldEntry != null)
       {
         deleteKeySet.clear();
-        index.indexEntry(oldEntry, deleteKeySet, options);
+        index.indexEntry(oldEntry, deleteKeySet);
         for (ByteString delKey : deleteKeySet)
         {
           processKey(index, delKey, entryID, indexKey, false);
         }
       }
       insertKeySet.clear();
-      index.indexEntry(entry, insertKeySet, options);
+      index.indexEntry(entry, insertKeySet);
       for (ByteString key : insertKeySet)
       {
         processKey(index, key, entryID, indexKey, true);
@@ -1581,11 +1580,9 @@
     void fillIndexKey(AttributeIndex attrIndex, Entry entry, AttributeType attrType, EntryID entryID)
         throws InterruptedException, StorageRuntimeException
     {
-      final IndexingOptions options = attrIndex.getIndexingOptions();
-
       for (Map.Entry<String, MatchingRuleIndex> mapEntry : attrIndex.getNameToIndexes().entrySet())
       {
-        processAttribute(mapEntry.getValue(), mapEntry.getKey(), entry, attrType, entryID, options);
+        processAttribute(mapEntry.getValue(), mapEntry.getKey(), entry, attrType, entryID);
       }
     }
 
@@ -1602,20 +1599,20 @@
     }
 
     private void processAttribute(MatchingRuleIndex index, String indexID, Entry entry,
-        AttributeType attributeType, EntryID entryID, IndexingOptions options) throws InterruptedException
+        AttributeType attributeType, EntryID entryID) throws InterruptedException
     {
       if (index != null)
       {
         IndexKey indexKey = new IndexKey(attributeType, indexID, index.getIndexEntryLimit());
-        processAttribute(index, entry, entryID, options, indexKey);
+        processAttribute(index, entry, entryID, indexKey);
       }
     }
 
-    void processAttribute(MatchingRuleIndex index, Entry entry, EntryID entryID, IndexingOptions options,
-        IndexKey indexKey) throws StorageRuntimeException, InterruptedException
+    void processAttribute(MatchingRuleIndex index, Entry entry, EntryID entryID, IndexKey indexKey)
+        throws StorageRuntimeException, InterruptedException
     {
       insertKeySet.clear();
-      index.indexEntry(entry, insertKeySet, options);
+      index.indexEntry(entry, insertKeySet);
       for (ByteString key : insertKeySet)
       {
         processKey(index, key, entryID, indexKey, true);
@@ -3167,10 +3164,7 @@
         AttributeType attrType = indexKey.getAttributeType();
         if (entry.hasAttribute(attrType))
         {
-          AttributeIndex attributeIndex = entryContainer.getAttributeIndex(attrType);
-          IndexingOptions options = attributeIndex.getIndexingOptions();
-          MatchingRuleIndex index = mapEntry.getValue();
-          processAttribute(index, entry, entryID, options, indexKey);
+          processAttribute(mapEntry.getValue(), entry, entryID, indexKey);
         }
       }
     }

--
Gitblit v1.10.0