Skip to content

Commit

Permalink
Merge pull request #67 from olachat/yinloo/ensure-rows-close
Browse files Browse the repository at this point in the history
fix bugs.
yinloo-ola authored Dec 13, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents b676fd6 + 55650ee commit 2b5b84b
Showing 4 changed files with 45 additions and 6 deletions.
18 changes: 16 additions & 2 deletions coredb/engine.go
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@ package coredb
import (
"database/sql"
"fmt"
"log"
"reflect"
"strings"
"sync"
@@ -217,7 +218,10 @@ func Query[T any](dbname string, query string, params ...any) (result []*T, err
return
}
defer func() {
err = rows.Close()
errClose := rows.Close()
if errClose != nil {
log.Printf("Gola: Query: failed to close rows: %v", errClose)
}
}()

var u *T
@@ -231,6 +235,10 @@ func Query[T any](dbname string, query string, params ...any) (result []*T, err
result = append(result, u)
}

if rows.Err() != nil {
err = rows.Err()
}

return
}

@@ -245,7 +253,10 @@ func QueryFromMaster[T any](dbname string, query string, params ...any) (result
return
}
defer func() {
err = rows.Close()
errClose := rows.Close()
if errClose != nil {
log.Printf("Gola: QueryFromMaster: failed to close rows: %v", errClose)
}
}()

var u *T
@@ -259,6 +270,9 @@ func QueryFromMaster[T any](dbname string, query string, params ...any) (result
result = append(result, u)
}

if rows.Err() != nil {
err = rows.Err()
}
return
}

19 changes: 17 additions & 2 deletions coredb/engine_ctx.go
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import (
"context"
"database/sql"
"fmt"
"log"
)

// FetchByPKCtx returns a row of T type with given primary key value
@@ -149,7 +150,10 @@ func QueryCtx[T any](ctx context.Context, dbname string, query string, params ..
return
}
defer func() {
err = rows.Close()
errClose := rows.Close()
if errClose != nil {
log.Printf("Gola: QueryCtx: failed to close rows: %v", errClose)
}
}()

var u *T
@@ -163,6 +167,10 @@ func QueryCtx[T any](ctx context.Context, dbname string, query string, params ..
result = append(result, u)
}

if rows.Err() != nil {
err = rows.Err()
}

return
}

@@ -175,7 +183,10 @@ func QueryFromMasterCtx[T any](ctx context.Context, dbname string, query string,
return
}
defer func() {
err = rows.Close()
errClose := rows.Close()
if errClose != nil {
log.Printf("Gola: QueryFromMasterCtx: failed to close rows: %v", errClose)
}
}()

var u *T
@@ -189,5 +200,9 @@ func QueryFromMasterCtx[T any](ctx context.Context, dbname string, query string,
result = append(result, u)
}

if rows.Err() != nil {
err = rows.Err()
}

return
}
5 changes: 4 additions & 1 deletion coredb/tx.go
Original file line number Diff line number Diff line change
@@ -84,7 +84,10 @@ func (t *tx) Query(results any, query string, params ...any) error {
return err
}
defer func(rows *sql.Rows) {
err = rows.Close()
errClose := rows.Close()
if errClose != nil {
log.Printf("Gola: tx.Query: failed to close rows: %v", errClose)
}
}(rows)
return RowsToStructSliceReflect(rows, results)
}
9 changes: 8 additions & 1 deletion coredb/txengine/tx_engine.go
Original file line number Diff line number Diff line change
@@ -182,7 +182,10 @@ func (o *TypedTx[T]) Query(ctx context.Context, query string, params ...any) (re
return
}
defer func() {
err = rows.Close()
errClose := rows.Close()
if errClose != nil {
log.Printf("Gola: TypedTx.Query: failed to close rows: %v", errClose)
}
}()

var u *T
@@ -196,5 +199,9 @@ func (o *TypedTx[T]) Query(ctx context.Context, query string, params ...any) (re
result = append(result, u)
}

if rows.Err() != nil {
err = rows.Err()
}

return
}

0 comments on commit 2b5b84b

Please sign in to comment.