@@ -2691,20 +2691,42 @@ func TestFillMissingStatsMeta(t *testing.T) {
2691
2691
}
2692
2692
2693
2693
tk .MustExec ("insert into t1 values (1, 2), (3, 4)" )
2694
- require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpAll ))
2694
+ require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpDelta ))
2695
+ require .NoError (t , h .Update (is ))
2695
2696
ver1 := checkStatsMeta (tbl1ID , "2" , "2" )
2696
2697
tk .MustExec ("delete from t1 where a = 1" )
2697
- require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpAll ))
2698
+ require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpDelta ))
2699
+ require .NoError (t , h .Update (is ))
2698
2700
ver2 := checkStatsMeta (tbl1ID , "3" , "1" )
2699
2701
require .Greater (t , ver2 , ver1 )
2700
2702
2701
2703
tk .MustExec ("insert into t2 values (1, 2), (3, 4)" )
2702
- require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpAll ))
2704
+ require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpDelta ))
2705
+ require .NoError (t , h .Update (is ))
2703
2706
checkStatsMeta (p0ID , "2" , "2" )
2704
2707
globalVer1 := checkStatsMeta (tbl2ID , "2" , "2" )
2705
2708
tk .MustExec ("insert into t2 values (11, 12)" )
2706
- require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpAll ))
2709
+ require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpDelta ))
2710
+ require .NoError (t , h .Update (is ))
2707
2711
checkStatsMeta (p1ID , "1" , "1" )
2708
2712
globalVer2 := checkStatsMeta (tbl2ID , "3" , "3" )
2709
2713
require .Greater (t , globalVer2 , globalVer1 )
2710
2714
}
2715
+
2716
+ func TestNotDumpSysTable (t * testing.T ) {
2717
+ store , dom := testkit .CreateMockStoreAndDomain (t )
2718
+ tk := testkit .NewTestKit (t , store )
2719
+ tk .MustExec ("use test" )
2720
+ tk .MustExec ("create table t1 (a int, b int)" )
2721
+ h := dom .StatsHandle ()
2722
+ require .NoError (t , h .HandleDDLEvent (<- h .DDLEventCh ()))
2723
+ tk .MustQuery ("select count(1) from mysql.stats_meta" ).Check (testkit .Rows ("1" ))
2724
+ // After executing `delete from mysql.stats_meta`, a delta for mysql.stats_meta is created but it would not be dumped.
2725
+ tk .MustExec ("delete from mysql.stats_meta" )
2726
+ require .NoError (t , h .DumpStatsDeltaToKV (handle .DumpAll ))
2727
+ is := dom .InfoSchema ()
2728
+ tbl , err := is .TableByName (model .NewCIStr ("mysql" ), model .NewCIStr ("stats_meta" ))
2729
+ require .NoError (t , err )
2730
+ tblID := tbl .Meta ().ID
2731
+ tk .MustQuery (fmt .Sprintf ("select * from mysql.stats_meta where table_id = %v" , tblID )).Check (testkit .Rows ())
2732
+ }
0 commit comments