code: func (h *Handle) LoadStatsFromJSON(is infoschema.InfoSchema, jsonTbl *JSONTable) error {
  	table, err := is.TableByName(model.NewCIStr(jsonTbl.DatabaseName), model.NewCIStr(jsonTbl.TableName))
  	if err != nil {
  		return errors.Trace(err)
  	}
  	tableInfo := table.Meta()
  	pi := tableInfo.GetPartitionInfo()
  	if pi == nil {
  		err := h.loadStatsFromJSON(tableInfo, tableInfo.ID, jsonTbl)
  		if err != nil {
  			return errors.Trace(err)
  		}
  	} else {
  		if jsonTbl.Partitions == nil {
  			return errors.New("No partition statistics")
  		}
  		for _, def := range pi.Definitions {
  			tbl := jsonTbl.Partitions[def.Name.L]
  			if tbl == nil {
  				continue
  			}
  			err := h.loadStatsFromJSON(tableInfo, def.ID, tbl)
  			if err != nil {
  				return errors.Trace(err)
  			}
  		}
  	}
  	return errors.Trace(h.Update(is))
  }
docs: // LoadStatsFromJSON will load statistic from JSONTable, and save it to the storage.