@@ -849,14 +849,16 @@ public static void compatibleSearchParams(Map<String, Object> searchParams, Sear
849849
850850 @ SuppressWarnings ("unchecked" )
851851 public static SearchRequest convertSearchParam (@ NonNull SearchParam requestParam ) throws ParamException {
852+ String dbName = requestParam .getDatabaseName ();
853+ String collectionName = requestParam .getCollectionName ();
852854 SearchRequest .Builder builder = SearchRequest .newBuilder ()
853- .setCollectionName (requestParam . getCollectionName () );
855+ .setCollectionName (collectionName );
854856
855857 if (!requestParam .getPartitionNames ().isEmpty ()) {
856858 requestParam .getPartitionNames ().forEach (builder ::addPartitionNames );
857859 }
858- if (StringUtils .isNotEmpty (requestParam . getDatabaseName () )) {
859- builder .setDbName (requestParam . getDatabaseName () );
860+ if (StringUtils .isNotEmpty (dbName )) {
861+ builder .setDbName (dbName );
860862 }
861863
862864 // prepare target vectors
@@ -946,7 +948,7 @@ public static SearchRequest convertSearchParam(@NonNull SearchParam requestParam
946948 builder .setDsl (requestParam .getExpr ());
947949 }
948950
949- long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), requestParam . getCollectionName () );
951+ long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), dbName , collectionName );
950952 builder .setTravelTimestamp (requestParam .getTravelTimestamp ()); // deprecated
951953 builder .setGuaranteeTimestamp (guaranteeTimestamp );
952954
@@ -1010,14 +1012,16 @@ public static SearchRequest convertAnnSearchParam(@NonNull AnnSearchParam annSea
10101012 }
10111013
10121014 public static HybridSearchRequest convertHybridSearchParam (@ NonNull HybridSearchParam requestParam ) throws ParamException {
1015+ String dbName = requestParam .getDatabaseName ();
1016+ String collectionName = requestParam .getCollectionName ();
10131017 HybridSearchRequest .Builder builder = HybridSearchRequest .newBuilder ()
1014- .setCollectionName (requestParam . getCollectionName () );
1018+ .setCollectionName (collectionName );
10151019
10161020 if (!requestParam .getPartitionNames ().isEmpty ()) {
10171021 requestParam .getPartitionNames ().forEach (builder ::addPartitionNames );
10181022 }
1019- if (StringUtils .isNotEmpty (requestParam . getDatabaseName () )) {
1020- builder .setDbName (requestParam . getDatabaseName () );
1023+ if (StringUtils .isNotEmpty (dbName )) {
1024+ builder .setDbName (dbName );
10211025 }
10221026
10231027 for (AnnSearchParam req : requestParam .getSearchRequests ()) {
@@ -1063,7 +1067,7 @@ public static HybridSearchRequest convertHybridSearchParam(@NonNull HybridSearch
10631067 requestParam .getOutFields ().forEach (builder ::addOutputFields );
10641068 }
10651069
1066- long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), requestParam . getCollectionName () );
1070+ long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), dbName , collectionName );
10671071 builder .setGuaranteeTimestamp (guaranteeTimestamp );
10681072
10691073 if (requestParam .getConsistencyLevel () == null ) {
@@ -1076,18 +1080,20 @@ public static HybridSearchRequest convertHybridSearchParam(@NonNull HybridSearch
10761080 }
10771081
10781082 public static QueryRequest convertQueryParam (@ NonNull QueryParam requestParam ) {
1083+ String dbName = requestParam .getDatabaseName ();
1084+ String collectionName = requestParam .getCollectionName ();
10791085 boolean useDefaultConsistency = (requestParam .getConsistencyLevel () == null );
1080- long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), requestParam . getCollectionName () );
1086+ long guaranteeTimestamp = getGuaranteeTimestamp (requestParam .getConsistencyLevel (), dbName , collectionName );
10811087 QueryRequest .Builder builder = QueryRequest .newBuilder ()
1082- .setCollectionName (requestParam . getCollectionName () )
1088+ .setCollectionName (collectionName )
10831089 .addAllPartitionNames (requestParam .getPartitionNames ())
10841090 .addAllOutputFields (requestParam .getOutFields ())
10851091 .setExpr (requestParam .getExpr ())
10861092 .setTravelTimestamp (requestParam .getTravelTimestamp ())
10871093 .setGuaranteeTimestamp (guaranteeTimestamp );
10881094
1089- if (StringUtils .isNotEmpty (requestParam . getDatabaseName () )) {
1090- builder .setDbName (requestParam . getDatabaseName () );
1095+ if (StringUtils .isNotEmpty (dbName )) {
1096+ builder .setDbName (dbName );
10911097 }
10921098
10931099 // a new parameter from v2.2.9, if user didn't specify consistency level, set this parameter to true
@@ -1124,17 +1130,20 @@ public static QueryRequest convertQueryParam(@NonNull QueryParam requestParam) {
11241130 return builder .build ();
11251131 }
11261132
1127- private static long getGuaranteeTimestamp (ConsistencyLevelEnum consistencyLevel , String collectionName ){
1133+ private static long getGuaranteeTimestamp (ConsistencyLevelEnum consistencyLevel , String dbName , String collectionName ){
11281134 if (consistencyLevel == null ){
1129- Long ts = GTsDict .getInstance ().getCollectionTs (collectionName );
1135+ String key = GTsDict .CombineCollectionName (dbName , collectionName );
1136+ Long ts = GTsDict .getInstance ().getCollectionTs (key );
11301137 return (ts == null ) ? 1L : ts ;
11311138 }
11321139 switch (consistencyLevel ){
11331140 case STRONG :
11341141 return 0L ;
1135- case SESSION :
1136- Long ts = GTsDict .getInstance ().getCollectionTs (collectionName );
1142+ case SESSION : {
1143+ String key = GTsDict .CombineCollectionName (dbName , collectionName );
1144+ Long ts = GTsDict .getInstance ().getCollectionTs (key );
11371145 return (ts == null ) ? 1L : ts ;
1146+ }
11381147 case BOUNDED :
11391148 return 2L ; // let server side to determine the bounded time
11401149 default :
0 commit comments