Author: chetanm
Date: Thu Dec  8 05:17:43 2016
New Revision: 1773177

URL: http://svn.apache.org/viewvc?rev=1773177&view=rev
Log:
OAK-4400 - Correlate index with the index definition used to build it

Add system property to disable this feature

Modified:
    
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java

Modified: 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java?rev=1773177&r1=1773176&r2=1773177&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
 Thu Dec  8 05:17:43 2016
@@ -58,6 +58,16 @@ public class LuceneIndexEditorContext {
     private static final PerfLogger PERF_LOGGER =
             new 
PerfLogger(LoggerFactory.getLogger(LuceneIndexEditorContext.class.getName() + 
".perf"));
 
+    private static final boolean disableStoredIndexDefinition =
+            Boolean.getBoolean("oak.lucene.disableStoredIndexDefinition");
+
+    static {
+        if (disableStoredIndexDefinition){
+            log.info("Feature to ensure that index definition match the index 
state is set to be disabled. Change in " +
+                    "index definition would now effect query plans and might 
lead to inconsistent results");
+        }
+    }
+
     private FacetsConfig facetsConfig;
 
     private static final Parser defaultParser = createDefaultParser();
@@ -191,7 +201,9 @@ public class LuceneIndexEditorContext {
         //as index definition does not get modified as part of IndexUpdate run 
in most case we rely on base state
         //For case where index definition is rewritten there we get fresh state
         NodeState defnState = indexDefnRewritten ? 
definitionBuilder.getNodeState() : definitionBuilder.getBaseState();
-        definitionBuilder.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE, 
NodeStateCloner.cloneVisibleState(defnState));
+        if (!disableStoredIndexDefinition) {
+            
definitionBuilder.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE, 
NodeStateCloner.cloneVisibleState(defnState));
+        }
         String uid = configureUniqueId(definitionBuilder);
 
         //Refresh the index definition based on update builder state


Reply via email to