This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch lucene-10
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 6107f4fa70ea763e0cb97a3304fefddf7ffee1f6
Author: Robert Newson <[email protected]>
AuthorDate: Thu Aug 7 11:36:35 2025 +0100

    return index created version major in info
---
 .../java/org/apache/couchdb/nouveau/api/IndexInfo.java   | 16 +++++++++++++---
 .../main/java/org/apache/couchdb/nouveau/core/Index.java |  6 ++++--
 .../org/apache/couchdb/nouveau/core/IndexManager.java    |  2 +-
 .../org/apache/couchdb/nouveau/lucene/LuceneIndex.java   |  3 ++-
 src/nouveau/src/nouveau_fabric_info.erl                  |  2 ++
 5 files changed, 22 insertions(+), 7 deletions(-)

diff --git 
a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java 
b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java
index 9958c7780..12b94beda 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java
@@ -16,6 +16,7 @@ package org.apache.couchdb.nouveau.api;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.PropertyNamingStrategies;
 import com.fasterxml.jackson.databind.annotation.JsonNaming;
+import jakarta.validation.constraints.Positive;
 import jakarta.validation.constraints.PositiveOrZero;
 
 @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
@@ -33,15 +34,24 @@ public final class IndexInfo {
     @PositiveOrZero
     private final long diskSize;
 
+    @Positive
+    private final int version;
+
     public IndexInfo(
             @JsonProperty("update_seq") final long updateSeq,
             @JsonProperty("purge_seq") final long purgeSeq,
             @JsonProperty("num_docs") final int numDocs,
-            @JsonProperty("disk_size") final long diskSize) {
+            @JsonProperty("disk_size") final long diskSize,
+            @JsonProperty("version") final int version) {
         this.updateSeq = updateSeq;
         this.purgeSeq = purgeSeq;
         this.numDocs = numDocs;
         this.diskSize = diskSize;
+        this.version = version;
+    }
+
+    public int getVersion() {
+        return version;
     }
 
     public int getNumDocs() {
@@ -62,7 +72,7 @@ public final class IndexInfo {
 
     @Override
     public String toString() {
-        return "IndexInfo [updateSeq=" + updateSeq + ", purgeSeq=" + purgeSeq 
+ ", numDocs=" + numDocs + ", diskSize="
-                + diskSize + "]";
+        return "IndexInfo [version=" + version + ", updateSeq=" + updateSeq + 
", purgeSeq=" + purgeSeq + ", numDocs="
+                + numDocs + ", diskSize=" + diskSize + "]";
     }
 }
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java 
b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java
index 35013bf8d..7290270aa 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java
@@ -37,17 +37,19 @@ public abstract class Index implements Closeable {
 
     private long updateSeq;
     private long purgeSeq;
+    private int version;
     private boolean deleteOnClose = false;
 
-    protected Index(final long updateSeq, final long purgeSeq) {
+    protected Index(final long updateSeq, final long purgeSeq, final int 
version) {
         this.updateSeq = updateSeq;
         this.purgeSeq = purgeSeq;
+        this.version = version;
     }
 
     public final IndexInfo info() throws IOException {
         final int numDocs = doNumDocs();
         final long diskSize = doDiskSize();
-        return new IndexInfo(updateSeq, purgeSeq, numDocs, diskSize);
+        return new IndexInfo(updateSeq, purgeSeq, numDocs, diskSize, version);
     }
 
     protected abstract int doNumDocs() throws IOException;
diff --git 
a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java 
b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
index 489f871e8..54eacd25b 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java
@@ -391,7 +391,7 @@ public final class IndexManager implements Managed {
         final long updateSeq = getSeq(writer, "update_seq");
         final long purgeSeq = getSeq(writer, "purge_seq");
         final SearcherManager searcherManager = new SearcherManager(writer, 
searcherFactory);
-        return new LuceneIndex(analyzer, writer, updateSeq, purgeSeq, 
searcherManager);
+        return new LuceneIndex(analyzer, writer, updateSeq, purgeSeq, version, 
searcherManager);
     }
 
     /**
diff --git 
a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene/LuceneIndex.java 
b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene/LuceneIndex.java
index e62ffdb5a..2afdac0d6 100644
--- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene/LuceneIndex.java
+++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene/LuceneIndex.java
@@ -113,8 +113,9 @@ public class LuceneIndex extends Index {
             final IndexWriter writer,
             final long updateSeq,
             final long purgeSeq,
+            final int version,
             final SearcherManager searcherManager) {
-        super(updateSeq, purgeSeq);
+        super(updateSeq, purgeSeq, version);
         this.analyzer = Objects.requireNonNull(analyzer);
         this.writer = Objects.requireNonNull(writer);
         this.searcherManager = Objects.requireNonNull(searcherManager);
diff --git a/src/nouveau/src/nouveau_fabric_info.erl 
b/src/nouveau/src/nouveau_fabric_info.erl
index 0fe41af5a..18cc5ee04 100644
--- a/src/nouveau/src/nouveau_fabric_info.erl
+++ b/src/nouveau/src/nouveau_fabric_info.erl
@@ -104,5 +104,7 @@ handle_message({'EXIT', _}, Worker, {Counters, Acc}) ->
 
 merge_info(signature, Val, Val) ->
     Val;
+merge_info(<<"version">>, Val1, Val2) ->
+    min(Val1, Val2);
 merge_info(_Key, Val1, Val2) ->
     Val1 + Val2.

Reply via email to