| 200 | } |
| 201 | |
| 202 | func (s *SQL) Keys() ([]string, error) { |
| 203 | if s.list == nil { |
| 204 | return nil, fmt.Errorf("%s: table is not mutable (no 'list' query)", s.modName) |
| 205 | } |
| 206 | |
| 207 | rows, err := s.list.Query() |
| 208 | if err != nil { |
| 209 | return nil, fmt.Errorf("%s: list: %w", s.modName, err) |
| 210 | } |
| 211 | defer func() { |
| 212 | _ = rows.Close() |
| 213 | }() |
| 214 | var list []string |
| 215 | for rows.Next() { |
| 216 | var key string |
| 217 | if err := rows.Scan(&key); err != nil { |
| 218 | return nil, fmt.Errorf("%s: list: %w", s.modName, err) |
| 219 | } |
| 220 | list = append(list, key) |
| 221 | } |
| 222 | if err := rows.Err(); err != nil { |
| 223 | return nil, fmt.Errorf("%s: list: %w", s.modName, err) |
| 224 | } |
| 225 | return list, nil |
| 226 | } |
| 227 | |
| 228 | func (s *SQL) RemoveKey(k string) error { |
| 229 | if s.del == nil { |