code: func composeColumnPrivUpdateForGrant(ctx sessionctx.Context, priv mysql.PrivilegeType, name string, host string, db string, tbl string, col string) (string, error) {
  	newColumnPriv := ""
  	if priv == mysql.AllPriv {
  		for _, p := range mysql.AllColumnPrivs {
  			v, ok := mysql.Priv2SetStr[p]
  			if !ok {
  				return "", errors.Errorf("Unknown column privilege %v", p)
  			}
  			newColumnPriv = addToSet(newColumnPriv, v)
  		}
  	} else {
  		currColumnPriv, err := getColumnPriv(ctx, name, host, db, tbl, col)
  		if err != nil {
  			return "", err
  		}
  		p, ok := mysql.Priv2SetStr[priv]
  		if !ok {
  			return "", errors.Errorf("Unknown priv: %v", priv)
  		}
  		newColumnPriv = addToSet(currColumnPriv, p)
  	}
  	return fmt.Sprintf(`Column_priv='%s'`, newColumnPriv), nil
  }
docs: // composeColumnPrivUpdateForGrant composes update stmt assignment list for column scope privilege update.