Skip to content

Commit 78d51a3

Browse files
committed
fix(config.update): guard against null quantizer
1 parent a0dd578 commit 78d51a3

3 files changed

Lines changed: 25 additions & 2 deletions

File tree

src/it/java/io/weaviate/containers/Weaviate.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import io.weaviate.ConcurrentTest;
2020
import io.weaviate.client6.v1.api.Config;
2121
import io.weaviate.client6.v1.api.WeaviateClient;
22+
import io.weaviate.client6.v1.api.collections.Generative;
23+
import io.weaviate.client6.v1.api.collections.Reranker;
2224
import io.weaviate.client6.v1.internal.ObjectBuilder;
2325
import io.weaviate.client6.v1.internal.VersionSupport.SemanticVersion;
2426

@@ -154,6 +156,7 @@ public static class Builder {
154156
private Map<String, String> environment = new HashMap<>();
155157

156158
public Builder() {
159+
addModules(Reranker.Kind.DUMMY.jsonValue(), Generative.Kind.DUMMY.jsonValue());
157160
enableAutoSchema(false);
158161
}
159162

src/it/java/io/weaviate/integration/CollectionsITest.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.weaviate.client6.v1.api.WeaviateClient;
1212
import io.weaviate.client6.v1.api.collections.CollectionConfig;
1313
import io.weaviate.client6.v1.api.collections.DataType;
14+
import io.weaviate.client6.v1.api.collections.Generative;
1415
import io.weaviate.client6.v1.api.collections.InvertedIndex;
1516
import io.weaviate.client6.v1.api.collections.Property;
1617
import io.weaviate.client6.v1.api.collections.Quantization;
@@ -19,6 +20,7 @@
1920
import io.weaviate.client6.v1.api.collections.VectorConfig;
2021
import io.weaviate.client6.v1.api.collections.config.Shard;
2122
import io.weaviate.client6.v1.api.collections.config.ShardStatus;
23+
import io.weaviate.client6.v1.api.collections.generative.DummyGenerative;
2224
import io.weaviate.client6.v1.api.collections.vectorindex.Hnsw;
2325
import io.weaviate.client6.v1.api.collections.vectorizers.SelfProvidedVectorizer;
2426
import io.weaviate.containers.Container;
@@ -234,7 +236,7 @@ public void testNestedProperties() throws IOException {
234236
}
235237

236238
@Test
237-
public void test_updateQuantization() throws IOException {
239+
public void test_updateQuantization_uncompressed() throws IOException {
238240
// Arrange
239241
var nsThings = ns("Things");
240242

@@ -255,4 +257,22 @@ public void test_updateQuantization() throws IOException {
255257
.extracting(VectorConfig::quantization)
256258
.returns(Quantization.Kind.BQ, Quantization::_kind);
257259
}
260+
261+
@Test
262+
public void test_updateGenerative() throws IOException {
263+
// Arrange
264+
var nsThings = ns("Things");
265+
266+
var things = client.collections.create(nsThings,
267+
c -> c.vectorConfig(VectorConfig.selfProvided()));
268+
269+
// Act
270+
things.config.update(c -> c.generativeModule(new DummyGenerative()));
271+
272+
// Assert
273+
var config = things.config.get();
274+
Assertions.assertThat(config).get()
275+
.extracting(CollectionConfig::generativeModule).isNotNull()
276+
.returns(Generative.Kind.DUMMY, Generative::_kind);
277+
}
258278
}

src/main/java/io/weaviate/client6/v1/api/collections/config/UpdateCollectionRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public record UpdateCollectionRequest(CollectionConfig updated, CollectionConfig
4040
for (var origVector : request.original.vectors().entrySet()) {
4141
var vectorName = origVector.getKey();
4242
var origQuantization = origVector.getValue().quantization();
43-
if (vectors.has(vectorName)) {
43+
if (vectors.has(vectorName) && origQuantization != null) {
4444
vectors
4545
.get(vectorName).getAsJsonObject()
4646
.get("vectorIndexConfig").getAsJsonObject()

0 commit comments

Comments
 (0)