code: func FindCols(cols []*Column, names []string, pkIsHandle bool) ([]*Column, error) {
  	var rcols []*Column
  	for _, name := range names {
  		col := FindCol(cols, name)
  		if col != nil {
  			rcols = append(rcols, col)
  		} else if name == model.ExtraHandleName.L && !pkIsHandle {
  			col := &Column{}
  			col.ColumnInfo = model.NewExtraHandleColInfo()
  			col.ColumnInfo.Offset = len(cols)
  			rcols = append(rcols, col)
  		} else {
  			return nil, errUnknownColumn.GenWithStack("unknown column %s", name)
  		}
  	}
  
  	return rcols, nil
  }
docs: // FindCols finds columns in cols by names.
  // If pkIsHandle is false and name is ExtraHandleName, the extra handle column will be added.