[AI assisted] MM-62755: Refactor scanning to map to a util (#30780)
With some neat generics, I was able to refactor the scanning to a util function. I used it to refactor 3 places and also removed an unnecessary method. Claude was quite good here. https://mattermost.atlassian.net/browse/MM-62755 ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
cd5523f5fb
Коммит
efde5e2717
@@ -196,3 +196,27 @@ func quoteColumnName(driver string, columnName string) string {
|
||||
|
||||
return columnName
|
||||
}
|
||||
|
||||
// scanRowsIntoMap scans SQL rows into a map, using a provided scanner function to extract key-value pairs
|
||||
func scanRowsIntoMap[K comparable, V any](rows *sql.Rows, scanner func(rows *sql.Rows) (K, V, error), defaults map[K]V) (map[K]V, error) {
|
||||
results := make(map[K]V, len(defaults))
|
||||
|
||||
// Initialize with default values if provided
|
||||
for k, v := range defaults {
|
||||
results[k] = v
|
||||
}
|
||||
|
||||
for rows.Next() {
|
||||
key, value, err := scanner(rows)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
results[key] = value
|
||||
}
|
||||
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, fmt.Errorf("error while iterating rows: %w", err)
|
||||
}
|
||||
|
||||
return results, nil
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user