code: func (cc *clientConn) handleLoadStats(ctx context.Context, loadStatsInfo *executor.LoadStatsInfo) error {
  	// If the server handles the load data request, the client has to set the ClientLocalFiles capability.
  	if cc.capability&mysql.ClientLocalFiles == 0 {
  		return errNotAllowedCommand
  	}
  	if loadStatsInfo == nil {
  		return errors.New("load stats: info is empty")
  	}
  	err := cc.writeReq(loadStatsInfo.Path)
  	if err != nil {
  		return err
  	}
  	var prevData, curData []byte
  	for {
  		curData, err = cc.readPacket()
  		if err != nil && terror.ErrorNotEqual(err, io.EOF) {
  			return err
  		}
  		if len(curData) == 0 {
  			break
  		}
  		prevData = append(prevData, curData...)
  	}
  	if len(prevData) == 0 {
  		return nil
  	}
  	return loadStatsInfo.Update(prevData)
  }
docs: // handleLoadStats does the additional work after processing the 'load stats' query.
  // It sends client a file path, then reads the file content from client, loads it into the storage.