@@ -2974,23 +2974,48 @@ impl SchemaApiTestSuite {
29742974 {
29752975 let table = util. get_table ( ) . await . unwrap ( ) ;
29762976 let table_id = table. ident . table_id ;
2977- let lvt_ident = LeastVisibleTimeIdent :: new ( & tenant , table_id ) ;
2977+ let small_ts = DateTime :: < Utc > :: from_timestamp ( 1_000 , 0 ) . unwrap ( ) ;
29782978 let lvt_time = DateTime :: < Utc > :: from_timestamp ( 2_000 , 0 ) . unwrap ( ) ;
2979+ let big_time = DateTime :: < Utc > :: from_timestamp ( 3_000 , 0 ) . unwrap ( ) ;
2980+
2981+ // LVT no set.
2982+ let mut new_table_meta = table. meta . clone ( ) ;
2983+ new_table_meta. comment = "lvt no set" . to_string ( ) ;
2984+ let req = UpdateTableMetaReq {
2985+ table_id,
2986+ seq : MatchSeq :: Exact ( table. ident . seq ) ,
2987+ new_table_meta : new_table_meta. clone ( ) ,
2988+ base_snapshot_location : None ,
2989+ lvt_check : Some ( TableLvtCheck {
2990+ tenant : tenant. clone ( ) ,
2991+ time : small_ts,
2992+ } ) ,
2993+ } ;
2994+ let result = mt
2995+ . update_multi_table_meta ( UpdateMultiTableMetaReq {
2996+ update_table_metas : vec ! [ ( req, table. as_ref( ) . clone( ) ) ] ,
2997+ ..Default :: default ( )
2998+ } )
2999+ . await ;
3000+ assert ! ( result. is_ok( ) ) ;
3001+ let table = util. get_table ( ) . await . unwrap ( ) ;
3002+ assert_eq ! ( table. meta. comment, "lvt no set" ) ;
3003+
3004+ let lvt_ident = LeastVisibleTimeIdent :: new ( & tenant, table_id) ;
29793005 mt. set_table_lvt ( & lvt_ident, & LeastVisibleTime :: new ( lvt_time) )
29803006 . await ?;
29813007
2982- // LVT was changed .
3008+ // LVT is smaller .
29833009 let mut new_table_meta = table. meta . clone ( ) ;
29843010 new_table_meta. comment = "lvt guard should fail" . to_string ( ) ;
2985- let small_ts = DateTime :: < Utc > :: from_timestamp ( 1_000 , 0 ) . unwrap ( ) ;
29863011 let req = UpdateTableMetaReq {
29873012 table_id,
29883013 seq : MatchSeq :: Exact ( table. ident . seq ) ,
29893014 new_table_meta : new_table_meta. clone ( ) ,
29903015 base_snapshot_location : None ,
29913016 lvt_check : Some ( TableLvtCheck {
29923017 tenant : tenant. clone ( ) ,
2993- lvt : LeastVisibleTime :: new ( small_ts) ,
3018+ time : small_ts,
29943019 } ) ,
29953020 } ;
29963021 let result = mt
@@ -3001,7 +3026,7 @@ impl SchemaApiTestSuite {
30013026 . await ;
30023027 assert ! ( result. is_err( ) ) ;
30033028
3004- // LVT unchanged .
3029+ // LVT is large enough .
30053030 let table = util. get_table ( ) . await . unwrap ( ) ;
30063031 let mut ok_table_meta = table. meta . clone ( ) ;
30073032 ok_table_meta. comment = "lvt guard success" . to_string ( ) ;
@@ -3012,7 +3037,7 @@ impl SchemaApiTestSuite {
30123037 base_snapshot_location : None ,
30133038 lvt_check : Some ( TableLvtCheck {
30143039 tenant : tenant. clone ( ) ,
3015- lvt : LeastVisibleTime :: new ( lvt_time ) ,
3040+ time : big_time ,
30163041 } ) ,
30173042 } ;
30183043 mt. update_multi_table_meta ( UpdateMultiTableMetaReq {
0 commit comments