@@ -50,8 +50,8 @@ use databend_common_meta_app::schema::CreateTableIndexReq;
50
50
use databend_common_meta_app:: schema:: CreateTableReq ;
51
51
use databend_common_meta_app:: schema:: CreateVirtualColumnReq ;
52
52
use databend_common_meta_app:: schema:: DBIdTableName ;
53
- use databend_common_meta_app:: schema:: DatabaseId ;
54
53
use databend_common_meta_app:: schema:: DatabaseIdHistoryIdent ;
54
+ use databend_common_meta_app:: schema:: DatabaseIdIdent ;
55
55
use databend_common_meta_app:: schema:: DatabaseIdToName ;
56
56
use databend_common_meta_app:: schema:: DatabaseInfo ;
57
57
use databend_common_meta_app:: schema:: DatabaseMeta ;
@@ -130,13 +130,14 @@ use databend_common_meta_types::MatchSeq;
130
130
use databend_common_meta_types:: MetaError ;
131
131
use databend_common_meta_types:: Operation ;
132
132
use databend_common_meta_types:: UpsertKV ;
133
+ use databend_common_proto_conv:: FromToProto ;
133
134
use log:: debug;
134
135
use log:: info;
135
136
use minitrace:: func_name;
136
137
137
138
use crate :: deserialize_struct;
138
139
use crate :: kv_app_error:: KVAppError ;
139
- use crate :: serialize_struct ;
140
+ use crate :: kv_pb_api :: KVPbApi ;
140
141
use crate :: testing:: get_kv_data;
141
142
use crate :: testing:: get_kv_u64_data;
142
143
use crate :: DatamaskApi ;
@@ -232,20 +233,16 @@ fn calc_and_compare_drop_on_table_result(result: Vec<Arc<TableInfo>>, expected:
232
233
assert_eq ! ( get, expected_map) ;
233
234
}
234
235
235
- async fn upsert_test_data (
236
+ async fn upsert_test_data < K : kvapi :: Key + Send > (
236
237
kv_api : & ( impl kvapi:: KVApi < Error = MetaError > + ?Sized ) ,
237
- key : & impl kvapi:: Key ,
238
- value : Vec < u8 > ,
239
- ) -> Result < u64 , KVAppError > {
240
- let res = kv_api
241
- . upsert_kv ( UpsertKVReq {
242
- key : key. to_string_key ( ) ,
243
- seq : MatchSeq :: GE ( 0 ) ,
244
- value : Operation :: Update ( value) ,
245
- value_meta : None ,
246
- } )
247
- . await ?;
248
-
238
+ key : K ,
239
+ value : K :: ValueType ,
240
+ ) -> Result < u64 , KVAppError >
241
+ where
242
+ K : kvapi:: Key + Send + ' static ,
243
+ K :: ValueType : FromToProto + Send ,
244
+ {
245
+ let res = kv_api. update_pb ( key, value) . await ?;
249
246
let seq_v = res. result . unwrap ( ) ;
250
247
Ok ( seq_v. seq )
251
248
}
@@ -1918,7 +1915,7 @@ impl SchemaApiTestSuite {
1918
1915
{
1919
1916
let undrop_table_req = UndropTableByIdReq {
1920
1917
name_ident : create_table_req. name_ident . clone ( ) ,
1921
- db_id : create_table_as_dropped_resp. db_id ,
1918
+ db_id_ident : create_table_as_dropped_resp. database_id_ident . clone ( ) ,
1922
1919
table_id : create_table_as_dropped_resp. table_id ,
1923
1920
table_id_seq : create_table_as_dropped_resp. table_id_seq . unwrap ( ) ,
1924
1921
force_replace : true ,
@@ -1937,7 +1934,7 @@ impl SchemaApiTestSuite {
1937
1934
// undrop-table-by-id with force_replace set to false should fail.
1938
1935
let undrop_table_req = UndropTableByIdReq {
1939
1936
name_ident : create_table_req. name_ident . clone ( ) ,
1940
- db_id : create_table_as_dropped_resp. db_id ,
1937
+ db_id_ident : create_table_as_dropped_resp. database_id_ident . clone ( ) ,
1941
1938
table_id : create_table_as_dropped_resp. table_id ,
1942
1939
table_id_seq : create_table_as_dropped_resp. table_id_seq . unwrap ( ) ,
1943
1940
force_replace : false ,
@@ -3263,9 +3260,9 @@ impl SchemaApiTestSuite {
3263
3260
drop_on,
3264
3261
..Default :: default ( )
3265
3262
} ;
3266
- let id_key = DatabaseId { db_id } ;
3267
- let data = serialize_struct ( & drop_data ) ? ;
3268
- upsert_test_data ( mt. as_kv_api ( ) , & id_key , data ) . await ?;
3263
+
3264
+ let db_id_ident = DatabaseIdIdent :: new ( & tenant , db_id ) ;
3265
+ upsert_test_data ( mt. as_kv_api ( ) , db_id_ident , drop_data ) . await ?;
3269
3266
3270
3267
let res = mt
3271
3268
. get_database_history ( ListDatabaseReq {
@@ -3309,9 +3306,8 @@ impl SchemaApiTestSuite {
3309
3306
drop_on,
3310
3307
..Default :: default ( )
3311
3308
} ;
3312
- let id_key = DatabaseId { db_id } ;
3313
- let data = serialize_struct ( & drop_data) ?;
3314
- upsert_test_data ( mt. as_kv_api ( ) , & id_key, data) . await ?;
3309
+ let id_key = DatabaseIdIdent :: new ( db_name. tenant ( ) , db_id) ;
3310
+ upsert_test_data ( mt. as_kv_api ( ) , id_key, drop_data) . await ?;
3315
3311
3316
3312
if delete {
3317
3313
delete_test_data ( mt. as_kv_api ( ) , & db_name) . await ?;
@@ -3387,7 +3383,7 @@ impl SchemaApiTestSuite {
3387
3383
3388
3384
// assert old db meta and id to name mapping has been removed
3389
3385
for db_id in old_id_list. iter ( ) {
3390
- let id_key = DatabaseId { db_id : * db_id } ;
3386
+ let id_key = DatabaseIdIdent :: new ( & tenant , * db_id) ;
3391
3387
let id_mapping = DatabaseIdToName { db_id : * db_id } ;
3392
3388
3393
3389
let meta_res: Result < DatabaseMeta , KVAppError > =
@@ -3452,8 +3448,7 @@ impl SchemaApiTestSuite {
3452
3448
} ;
3453
3449
3454
3450
let id_key = TableId { table_id } ;
3455
- let data = serialize_struct ( & drop_data) ?;
3456
- upsert_test_data ( mt. as_kv_api ( ) , & id_key, data) . await ?;
3451
+ upsert_test_data ( mt. as_kv_api ( ) , id_key, drop_data. clone ( ) ) . await ?;
3457
3452
3458
3453
if delete {
3459
3454
delete_test_data ( mt. as_kv_api ( ) , & dbid_tbname) . await ?;
@@ -3731,9 +3726,8 @@ impl SchemaApiTestSuite {
3731
3726
drop_on,
3732
3727
..Default :: default ( )
3733
3728
} ;
3734
- let id_key = DatabaseId { db_id } ;
3735
- let data = serialize_struct ( & drop_data) ?;
3736
- upsert_test_data ( mt. as_kv_api ( ) , & id_key, data) . await ?;
3729
+ let id_key = DatabaseIdIdent :: new ( & tenant, db_id) ;
3730
+ upsert_test_data ( mt. as_kv_api ( ) , id_key, drop_data) . await ?;
3737
3731
3738
3732
let dbid_idlist1 = DatabaseIdHistoryIdent :: new ( & tenant, db1_name) ;
3739
3733
let old_id_list: DbIdList = get_kv_data ( mt. as_kv_api ( ) , & dbid_idlist1) . await ?;
@@ -3772,7 +3766,7 @@ impl SchemaApiTestSuite {
3772
3766
3773
3767
// assert old db meta and id to name mapping has been removed
3774
3768
for db_id in old_id_list. id_list . iter ( ) {
3775
- let id_key = DatabaseId { db_id : * db_id } ;
3769
+ let id_key = DatabaseIdIdent :: new ( & tenant , * db_id) ;
3776
3770
let id_mapping = DatabaseIdToName { db_id : * db_id } ;
3777
3771
3778
3772
let meta_res: Result < DatabaseMeta , KVAppError > =
@@ -3914,9 +3908,8 @@ impl SchemaApiTestSuite {
3914
3908
drop_on : Some ( created_on - Duration :: days ( 1 ) ) ,
3915
3909
..TableMeta :: default ( )
3916
3910
} ;
3917
- let data = serialize_struct ( & create_drop_table_meta) ?;
3918
3911
3919
- upsert_test_data ( mt. as_kv_api ( ) , & tbid, data ) . await ?;
3912
+ upsert_test_data ( mt. as_kv_api ( ) , tbid, create_drop_table_meta ) . await ?;
3920
3913
// assert not return out of retention time data
3921
3914
let res = mt
3922
3915
. get_table_history ( ListTableReq :: new ( & tenant, db_name) )
@@ -4070,8 +4063,7 @@ impl SchemaApiTestSuite {
4070
4063
let table_id = resp. table_id ;
4071
4064
let id_key = TableId { table_id } ;
4072
4065
table_meta. drop_on = Some ( created_on + Duration :: seconds ( 100 ) ) ;
4073
- let data = serialize_struct ( & table_meta) ?;
4074
- upsert_test_data ( mt. as_kv_api ( ) , & id_key, data) . await ?;
4066
+ upsert_test_data ( mt. as_kv_api ( ) , id_key, table_meta) . await ?;
4075
4067
}
4076
4068
4077
4069
info ! ( "--- create db2.tb3" ) ;
@@ -4098,9 +4090,8 @@ impl SchemaApiTestSuite {
4098
4090
// change db meta to make this db drop time outof filter time
4099
4091
let mut drop_db_meta = create_db_req. meta . clone ( ) ;
4100
4092
drop_db_meta. drop_on = Some ( created_on + Duration :: seconds ( 100 ) ) ;
4101
- let id_key = DatabaseId { db_id } ;
4102
- let data = serialize_struct ( & drop_db_meta) ?;
4103
- upsert_test_data ( mt. as_kv_api ( ) , & id_key, data) . await ?;
4093
+ let id_key = DatabaseIdIdent :: new ( & tenant, db_id) ;
4094
+ upsert_test_data ( mt. as_kv_api ( ) , id_key, drop_db_meta) . await ?;
4104
4095
}
4105
4096
4106
4097
// third create a database not dropped, but has a table drop within filter time
@@ -4170,8 +4161,7 @@ impl SchemaApiTestSuite {
4170
4161
let table_id = resp. table_id ;
4171
4162
let id_key = TableId { table_id } ;
4172
4163
table_meta. drop_on = Some ( created_on + Duration :: seconds ( 100 ) ) ;
4173
- let data = serialize_struct ( & table_meta) ?;
4174
- upsert_test_data ( mt. as_kv_api ( ) , & id_key, data) . await ?;
4164
+ upsert_test_data ( mt. as_kv_api ( ) , id_key, table_meta) . await ?;
4175
4165
}
4176
4166
4177
4167
info ! ( "--- create db3.tb3" ) ;
0 commit comments