diff --git a/telemetry/data_feature_usage.go b/telemetry/data_feature_usage.go index 47245ad3bff7f..3766945536d9c 100644 --- a/telemetry/data_feature_usage.go +++ b/telemetry/data_feature_usage.go @@ -57,6 +57,7 @@ type featureUsage struct { EnableCostModelVer2 bool `json:"enableCostModelVer2"` DDLUsageCounter *m.DDLUsageCounter `json:"DDLUsageCounter"` EnableGlobalMemoryControl bool `json:"enableGlobalMemoryControl"` + AutoIDNoCache bool `json:"autoIDNoCache"` } type placementPolicyUsage struct { @@ -131,6 +132,9 @@ func collectFeatureUsageFromInfoschema(ctx sessionctx.Context, usage *featureUsa if tbInfo.Meta().PlacementPolicyRef != nil { usage.PlacementPolicyUsage.NumTableWithPolicies++ } + if tbInfo.Meta().AutoIdCache == 1 { + usage.AutoIDNoCache = true + } partitions := tbInfo.Meta().GetPartitionInfo() if partitions == nil { continue diff --git a/telemetry/data_feature_usage_test.go b/telemetry/data_feature_usage_test.go index d6ae0911bcbea..12b682b571b39 100644 --- a/telemetry/data_feature_usage_test.go +++ b/telemetry/data_feature_usage_test.go @@ -129,6 +129,26 @@ func TestCachedTable(t *testing.T) { require.False(t, usage.CachedTable) } +func TestAutoIDNoCache(t *testing.T) { + store := testkit.CreateMockStore(t) + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + + usage, err := telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.False(t, usage.CachedTable) + tk.MustExec("drop table if exists tele_autoid") + tk.MustExec("create table tele_autoid (id int) auto_id_cache 1") + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.True(t, usage.AutoIDNoCache) + tk.MustExec("alter table tele_autoid auto_id_cache=0") + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.False(t, usage.AutoIDNoCache) +} + func TestAccountLock(t *testing.T) { store := testkit.CreateMockStore(t)