code: func (h *Handle) insertTableStats2KV(info *model.TableInfo, physicalID int64) (err error) {
  	h.mu.Lock()
  	defer h.mu.Unlock()
  	exec := h.mu.ctx.(sqlexec.SQLExecutor)
  	_, err = exec.Execute(context.Background(), "begin")
  	if err != nil {
  		return errors.Trace(err)
  	}
  	defer func() {
  		err = finishTransaction(context.Background(), exec, err)
  	}()
  	txn, err := h.mu.ctx.Txn(true)
  	if err != nil {
  		return errors.Trace(err)
  	}
  	startTS := txn.StartTS()
  	_, err = exec.Execute(context.Background(), fmt.Sprintf("insert into mysql.stats_meta (version, table_id) values(%d, %d)", startTS, physicalID))
  	if err != nil {
  		return
  	}
  	for _, col := range info.Columns {
  		_, err = exec.Execute(context.Background(), fmt.Sprintf("insert into mysql.stats_histograms (table_id, is_index, hist_id, distinct_count, version) values(%d, 0, %d, 0, %d)", physicalID, col.ID, startTS))
  		if err != nil {
  			return
  		}
  	}
  	for _, idx := range info.Indices {
  		_, err = exec.Execute(context.Background(), fmt.Sprintf("insert into mysql.stats_histograms (table_id, is_index, hist_id, distinct_count, version) values(%d, 1, %d, 0, %d)", physicalID, idx.ID, startTS))
  		if err != nil {
  			return
  		}
  	}
  	return
  }
docs: // insertTableStats2KV inserts a record standing for a new table to stats_meta and inserts some records standing for the
  // new columns and indices which belong to this table.