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.
