aboutsummaryrefslogtreecommitdiff
path: root/select.go
diff options
context:
space:
mode:
Diffstat (limited to 'select.go')
-rw-r--r--select.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/select.go b/select.go
index 6616434..d839c13 100644
--- a/select.go
+++ b/select.go
@@ -25,7 +25,7 @@ func (s Store[R]) Select(db Handle, query string, args ...any) (result []R, retu
return nil, err
}
defer func() {
- returnedError = mergeRowsCloseError(returnedError, rows.Close())
+ returnedError = mergeCloseError("Rows", returnedError, rows.Close())
}()
slots := make([]any, len(indexes))
@@ -63,7 +63,7 @@ func (s Store[R]) SelectWhere(db Handle, partialQuery string, args ...any) (resu
return nil, err
}
defer func() {
- returnedError = mergeRowsCloseError(returnedError, rows.Close())
+ returnedError = mergeCloseError("Rows", returnedError, rows.Close())
}()
slots := make([]any, len(indexes))
@@ -114,11 +114,11 @@ func startSelectQuery(db Handle, plan internal.Plan, query string, args ...any)
func startSelectWhereQuery(db Handle, plan internal.Plan, partialQuery string, args ...any) (rows *sql.Rows, indexes [][]int, err error) {
if plan.Select.Query == "" {
- return nil, nil, errors.New("cannot execute SelectWhere() because SELECT query could not be autogenerated")
+ return nil, nil, errors.New("cannot execute SelectWhere() because query could not be autogenerated")
}
query := plan.Select.Query + partialQuery
rows, err = db.Query(query, args...)
- return rows, plan.Select.ArgumentIndexes, err
+ return rows, plan.Select.ScanIndexes, err
}
func collectRow(rows *sql.Rows, v reflect.Value, slots []any, indexes [][]int) error {
@@ -132,14 +132,14 @@ func collectRow(rows *sql.Rows, v reflect.Value, slots []any, indexes [][]int) e
return nil
}
-func mergeRowsCloseError(err, closeErr error) error {
+func mergeCloseError(typeName string, err, closeErr error) error {
switch {
case closeErr == nil:
return err
case err == nil:
- return fmt.Errorf("during rows.Close(): %w", closeErr)
+ return fmt.Errorf("during %s.Close(): %w", typeName, closeErr)
default:
- return fmt.Errorf("%w (additional error during rows.Close(): %s)", err, closeErr.Error())
+ return fmt.Errorf("%w (additional error during %s.Close(): %s)", err, typeName, closeErr.Error())
}
}
@@ -184,11 +184,11 @@ func (s Store[R]) SelectOneWhere(db Handle, partialQuery string, args ...any) (r
func selectOneWhere(db Handle, plan internal.Plan, v reflect.Value, partialQuery string, args []any) error {
if plan.Select.Query == "" {
- return errors.New("cannot execute SelectOneWhere() because SELECT query could not be autogenerated")
+ return errors.New("cannot execute SelectOneWhere() because query could not be autogenerated")
}
query := plan.Select.Query + partialQuery
- slots := make([]any, len(plan.Select.ArgumentIndexes))
- for idx, index := range plan.Select.ArgumentIndexes {
+ slots := make([]any, len(plan.Select.ScanIndexes))
+ for idx, index := range plan.Select.ScanIndexes {
slots[idx] = v.FieldByIndex(index).Addr().Interface()
}
return db.QueryRow(query, args...).Scan(slots...)