@@ -845,14 +845,16 @@ public static void compatibleSearchParams(Map<String, Object> searchParams, Sear
845845
846846 @ SuppressWarnings ("unchecked" )
847847 public static SearchRequest convertSearchParam (@ NonNull SearchParam requestParam ) throws ParamException {
848+ String dbName = requestParam .getDatabaseName ();
849+ String collectionName = requestParam .getCollectionName ();
848850 SearchRequest .Builder builder = SearchRequest .newBuilder ()
849- .setCollectionName (requestParam . getCollectionName () );
851+ .setCollectionName (collectionName );
850852
851853 if (!requestParam .getPartitionNames ().isEmpty ()) {
852854 requestParam .getPartitionNames ().forEach (builder ::addPartitionNames );
853855 }
854- if (StringUtils .isNotEmpty (requestParam . getDatabaseName () )) {
855- builder .setDbName (requestParam . getDatabaseName () );
856+ if (StringUtils .isNotEmpty (dbName )) {
857+ builder .setDbName (dbName );
856858 }
857859
858860 // prepare target vectors
@@ -942,7 +944,7 @@ public static SearchRequest convertSearchParam(@NonNull SearchParam requestParam
942944 builder .setDsl (requestParam .getExpr ());
943945 }
944946
945- long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), requestParam . getCollectionName () );
947+ long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), dbName , collectionName );
946948 builder .setTravelTimestamp (requestParam .getTravelTimestamp ()); // deprecated
947949 builder .setGuaranteeTimestamp (guaranteeTimestamp );
948950
@@ -1006,14 +1008,16 @@ public static SearchRequest convertAnnSearchParam(@NonNull AnnSearchParam annSea
10061008 }
10071009
10081010 public static HybridSearchRequest convertHybridSearchParam (@ NonNull HybridSearchParam requestParam ) throws ParamException {
1011+ String dbName = requestParam .getDatabaseName ();
1012+ String collectionName = requestParam .getCollectionName ();
10091013 HybridSearchRequest .Builder builder = HybridSearchRequest .newBuilder ()
1010- .setCollectionName (requestParam . getCollectionName () );
1014+ .setCollectionName (collectionName );
10111015
10121016 if (!requestParam .getPartitionNames ().isEmpty ()) {
10131017 requestParam .getPartitionNames ().forEach (builder ::addPartitionNames );
10141018 }
1015- if (StringUtils .isNotEmpty (requestParam . getDatabaseName () )) {
1016- builder .setDbName (requestParam . getDatabaseName () );
1019+ if (StringUtils .isNotEmpty (dbName )) {
1020+ builder .setDbName (dbName );
10171021 }
10181022
10191023 for (AnnSearchParam req : requestParam .getSearchRequests ()) {
@@ -1059,7 +1063,7 @@ public static HybridSearchRequest convertHybridSearchParam(@NonNull HybridSearch
10591063 requestParam .getOutFields ().forEach (builder ::addOutputFields );
10601064 }
10611065
1062- long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), requestParam . getCollectionName () );
1066+ long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), dbName , collectionName );
10631067 builder .setGuaranteeTimestamp (guaranteeTimestamp );
10641068
10651069 if (requestParam .getConsistencyLevel () == null ) {
@@ -1072,18 +1076,20 @@ public static HybridSearchRequest convertHybridSearchParam(@NonNull HybridSearch
10721076 }
10731077
10741078 public static QueryRequest convertQueryParam (@ NonNull QueryParam requestParam ) {
1079+ String dbName = requestParam .getDatabaseName ();
1080+ String collectionName = requestParam .getCollectionName ();
10751081 boolean useDefaultConsistency = (requestParam .getConsistencyLevel () == null );
1076- long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), requestParam . getCollectionName () );
1082+ long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), dbName , collectionName );
10771083 QueryRequest .Builder builder = QueryRequest .newBuilder ()
1078- .setCollectionName (requestParam . getCollectionName () )
1084+ .setCollectionName (collectionName )
10791085 .addAllPartitionNames (requestParam .getPartitionNames ())
10801086 .addAllOutputFields (requestParam .getOutFields ())
10811087 .setExpr (requestParam .getExpr ())
10821088 .setTravelTimestamp (requestParam .getTravelTimestamp ())
10831089 .setGuaranteeTimestamp (guaranteeTimestamp );
10841090
1085- if (StringUtils .isNotEmpty (requestParam . getDatabaseName () )) {
1086- builder .setDbName (requestParam . getDatabaseName () );
1091+ if (StringUtils .isNotEmpty (dbName )) {
1092+ builder .setDbName (dbName );
10871093 }
10881094
10891095 // a new parameter from v2.2.9, if user didn't specify consistency level, set this parameter to true
@@ -1120,17 +1126,20 @@ public static QueryRequest convertQueryParam(@NonNull QueryParam requestParam) {
11201126 return builder .build ();
11211127 }
11221128
1123- private static long getGuaranteeTimestamp (ConsistencyLevelEnum consistencyLevel , String collectionName ){
1129+ private static long getGuaranteeTimestamp (ConsistencyLevelEnum consistencyLevel , String dbName , String collectionName ){
11241130 if (consistencyLevel == null ){
1125- Long ts = GTsDict .getInstance ().getCollectionTs (collectionName );
1131+ String key = GTsDict .CombineCollectionName (dbName , collectionName );
1132+ Long ts = GTsDict .getInstance ().getCollectionTs (key );
11261133 return (ts == null ) ? 1L : ts ;
11271134 }
11281135 switch (consistencyLevel ){
11291136 case STRONG :
11301137 return 0L ;
1131- case SESSION :
1132- Long ts = GTsDict .getInstance ().getCollectionTs (collectionName );
1138+ case SESSION : {
1139+ String key = GTsDict .CombineCollectionName (dbName , collectionName );
1140+ Long ts = GTsDict .getInstance ().getCollectionTs (key );
11331141 return (ts == null ) ? 1L : ts ;
1142+ }
11341143 case BOUNDED :
11351144 return 2L ; // let server side to determine the bounded time
11361145 default :
0 commit comments