func (p *PostgresDataSource) AggregateType(q straumur.Query, s string) (map[string]int, error) { if !q.IsValidArrayType(s) { return nil, errors.New("Invalid type") } query, args := buildAggregateQuery(q, s) m := make(map[string]int) err := p.wrapTransaction(func(tx *sql.Tx) error { rows, err := tx.Query(query, args...) defer rows.Close() for rows.Next() { var cStr string var cInt int rows.Scan(&cStr, &cInt) m[cStr] = cInt } return err }) return m, err }