Skip to content

Commit f9ca328

Browse files
committed
Support cross-database ability for more interfaces
Signed-off-by: yhmo <yihua.mo@zilliz.com>
1 parent cb162d6 commit f9ca328

31 files changed

Lines changed: 860 additions & 396 deletions

sdk-core/src/main/java/io/milvus/v2/client/MilvusClientV2.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,12 +306,22 @@ public static CreateCollectionReq.CollectionSchema CreateSchema() {
306306
}
307307

308308
/**
309-
* list milvus collections
309+
* List milvus collections in the current database of the connection
310310
*
311311
* @return List of String collection names
312312
*/
313313
public ListCollectionsResp listCollections() {
314-
return rpcUtils.retry(()-> collectionService.listCollections(this.getRpcStub()));
314+
return rpcUtils.retry(()-> collectionService.listCollections(this.getRpcStub(), ""));
315+
}
316+
/**
317+
* List milvus collections, can specify the target database
318+
* Note: the old API listCollections() doesn't have a ListCollectionsReq argument, we have to create
319+
* this new V2 API to avoid incompatible issue.
320+
*
321+
* @return List of String collection names
322+
*/
323+
public ListCollectionsResp listCollectionsV2(ListCollectionsReq request) {
324+
return rpcUtils.retry(()-> collectionService.listCollections(this.getRpcStub(), request.getDatabaseName()));
315325
}
316326
/**
317327
* Drops a collection in Milvus.

sdk-core/src/main/java/io/milvus/v2/service/collection/CollectionService.java

Lines changed: 160 additions & 100 deletions
Large diffs are not rendered by default.

sdk-core/src/main/java/io/milvus/v2/service/collection/request/GetCollectionStatsReq.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@
2525
@Data
2626
@SuperBuilder
2727
public class GetCollectionStatsReq {
28+
private String databaseName;
2829
private String collectionName;
2930
}

sdk-core/src/main/java/io/milvus/v2/service/collection/request/GetLoadStateReq.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
@Data
2626
@SuperBuilder
2727
public class GetLoadStateReq {
28+
private String databaseName;
2829
private String collectionName;
2930
private String partitionName;
3031
}

sdk-core/src/main/java/io/milvus/v2/service/collection/request/HasCollectionReq.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@
2525
@Data
2626
@SuperBuilder
2727
public class HasCollectionReq {
28+
private String databaseName;
2829
private String collectionName;
2930
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package io.milvus.v2.service.collection.request;
21+
22+
import org.apache.commons.lang3.builder.EqualsBuilder;
23+
24+
import java.util.Objects;
25+
26+
public class ListCollectionsReq {
27+
private String databaseName;
28+
29+
private ListCollectionsReq(Builder builder) {
30+
this.databaseName = builder.databaseName;
31+
}
32+
33+
public static Builder builder() {
34+
return new Builder();
35+
}
36+
37+
// Getters
38+
public String getDatabaseName() {
39+
return databaseName;
40+
}
41+
42+
// Setters
43+
public void setDatabaseName(String databaseName) {
44+
this.databaseName = databaseName;
45+
}
46+
47+
@Override
48+
public boolean equals(Object obj) {
49+
if (this == obj) return true;
50+
if (obj == null || getClass() != obj.getClass()) return false;
51+
52+
ListCollectionsReq that = (ListCollectionsReq) obj;
53+
54+
return new EqualsBuilder()
55+
.append(databaseName, that.databaseName)
56+
.isEquals();
57+
}
58+
59+
@Override
60+
public int hashCode() {
61+
return Objects.hash(databaseName);
62+
}
63+
64+
@Override
65+
public String toString() {
66+
return "ListCollectionsReq{" +
67+
"databaseName='" + databaseName +
68+
'}';
69+
}
70+
71+
public static class Builder {
72+
private String databaseName;
73+
74+
private Builder() {}
75+
76+
public Builder databaseName(String databaseName) {
77+
this.databaseName = databaseName;
78+
return this;
79+
}
80+
81+
public ListCollectionsReq build() {
82+
return new ListCollectionsReq(this);
83+
}
84+
}
85+
}

sdk-core/src/main/java/io/milvus/v2/service/collection/request/ReleaseCollectionReq.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
@Data
2727
@SuperBuilder
2828
public class ReleaseCollectionReq {
29+
private String databaseName;
2930
private String collectionName;
3031
@Deprecated
3132
@Builder.Default

sdk-core/src/main/java/io/milvus/v2/service/collection/request/RenameCollectionReq.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
@Data
2626
@SuperBuilder
2727
public class RenameCollectionReq {
28+
private String databaseName;
2829
private String collectionName;
2930
private String newCollectionName;
3031
}

sdk-core/src/main/java/io/milvus/v2/service/database/DatabaseService.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
public class DatabaseService extends BaseService {
3434
public Void createDatabase(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, CreateDatabaseReq request) {
35-
String title = String.format("CreateDatabaseRequest databaseName:%s", request.getDatabaseName());
35+
String title = String.format("Create database: '%s'", request.getDatabaseName());
3636
CreateDatabaseRequest.Builder builder = CreateDatabaseRequest.newBuilder()
3737
.setDbName(request.getDatabaseName());
3838
List<KeyValuePair> propertiesList = ParamUtils.AssembleKvPair(request.getProperties());
@@ -46,7 +46,7 @@ public Void createDatabase(MilvusServiceGrpc.MilvusServiceBlockingStub blockingS
4646
}
4747

4848
public Void dropDatabase(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, DropDatabaseReq request) {
49-
String title = String.format("DropDatabaseRequest databaseName:%s", request.getDatabaseName());
49+
String title = String.format("Drop database: '%s'", request.getDatabaseName());
5050
DropDatabaseRequest rpcRequest = DropDatabaseRequest.newBuilder()
5151
.setDbName(request.getDatabaseName())
5252
.build();
@@ -58,6 +58,7 @@ public Void dropDatabase(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStu
5858

5959
public ListDatabasesResp listDatabases(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub) {
6060
ListDatabasesResponse response = blockingStub.listDatabases(ListDatabasesRequest.newBuilder().build());
61+
rpcUtils.handleResponse("List databases", response.getStatus());
6162
ListDatabasesResp listDatabasesResp = ListDatabasesResp.builder()
6263
.databaseNames(response.getDbNamesList())
6364
.build();
@@ -66,7 +67,7 @@ public ListDatabasesResp listDatabases(MilvusServiceGrpc.MilvusServiceBlockingSt
6667
}
6768

6869
public Void alterDatabaseProperties(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, AlterDatabasePropertiesReq request) {
69-
String title = String.format("AlterDatabasePropertiesReq databaseName:%s", request.getDatabaseName());
70+
String title = String.format("Alter properties of database: '%s'", request.getDatabaseName());
7071
AlterDatabaseRequest.Builder builder = AlterDatabaseRequest.newBuilder()
7172
.setDbName(request.getDatabaseName());
7273
List<KeyValuePair> propertiesList = ParamUtils.AssembleKvPair(request.getProperties());
@@ -80,7 +81,7 @@ public Void alterDatabaseProperties(MilvusServiceGrpc.MilvusServiceBlockingStub
8081
}
8182

8283
public Void dropDatabaseProperties(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, DropDatabasePropertiesReq request) {
83-
String title = String.format("DropDatabasePropertiesReq databaseName:%s", request.getDatabaseName());
84+
String title = String.format("Drop properties of database: '%s'", request.getDatabaseName());
8485
AlterDatabaseRequest.Builder builder = AlterDatabaseRequest.newBuilder()
8586
.setDbName(request.getDatabaseName())
8687
.addAllDeleteKeys(request.getPropertyKeys());
@@ -91,7 +92,7 @@ public Void dropDatabaseProperties(MilvusServiceGrpc.MilvusServiceBlockingStub b
9192
}
9293

9394
public DescribeDatabaseResp describeDatabase(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, DescribeDatabaseReq request) {
94-
String title = String.format("DescribeDatabaseRequest databaseName:%s", request.getDatabaseName());
95+
String title = String.format("Describe database: '%s'", request.getDatabaseName());
9596
DescribeDatabaseRequest rpcRequest = DescribeDatabaseRequest.newBuilder()
9697
.setDbName(request.getDatabaseName())
9798
.build();

0 commit comments

Comments
 (0)