code: func (d *Database) Columns(src interface{}, includePk bool) ([]string, error) {
  	data, err := getFields(reflect.TypeOf(src))
  	if err != nil {
  		return nil, err
  	}
  
  	var names []string
  	for _, elt := range data.columns {
  		if !includePk && elt == data.pk {
  			continue
  		}
  		names = append(names, elt)
  	}
  
  	return names, nil
  }
docs: // Columns returns a list of column names for its input struct.