From 55c3444911a89ffdb85c7da6e0d933dcbfdc5a74 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 16 Aug 2023 15:10:42 +0200 Subject: [PATCH] sql.QueryDatat(): minor improvements, better tests --- storage/sql/sql.go | 6 +++--- tests/storage_test.go | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/storage/sql/sql.go b/storage/sql/sql.go index 3491070..9fcf436 100644 --- a/storage/sql/sql.go +++ b/storage/sql/sql.go @@ -13,7 +13,7 @@ type Cfg struct { type Rows = sql.Rows type rowsProc = func(*sql.Rows) error -type Scanner[T any] interface{ Scan(*Rows) (T, error) } +type scanner[T any] interface{ Scan(*Rows) (T, error) } type Storage struct { *sql.DB @@ -28,10 +28,10 @@ func Open(cfg *Cfg) *Storage { return &Storage{db} } -func QueryData[T Scanner[T]](db *Storage, q string, args ...interface{}) []T { +func QueryData[T scanner[T]](db *Storage, q string, args ...interface{}) []T { var data []T + var rec T proc := func(r *sql.Rows) error { - var rec T rec, err := rec.Scan(r) data = append(data, rec) return err diff --git a/tests/storage_test.go b/tests/storage_test.go index 1f4bb8f..ee0f937 100644 --- a/tests/storage_test.go +++ b/tests/storage_test.go @@ -41,12 +41,12 @@ func (g greet) Scan(rows *sql.Rows) (greet, error) { } func BaseTest(t *testing.T, cfg *sql.Cfg, db *sql.Storage) { - //fmt.Println(cfg.Connstr) db.Exec(insert) //data := sql.QueryCol[string](db, query, 2) - data := sql.QueryData[greet](db, query, 2) - t.AssertEqual(len(data), 1) - t.AssertEqual(data[0].label, "Good Afternoon") + data := sql.QueryData[greet](db, query) + t.AssertEqual(len(data), 2) + t.AssertEqual(data[0].label, "Hello World") + t.AssertEqual(data[1].label, "Good Afternoon") } func resetSqlite(db *sql.Storage) { @@ -67,8 +67,9 @@ var insert = `insert into test (label) values ('Hello World'), ('Good Afternoon')` -var query = `select id, label from test - where id = $1` +var query = `select id, label from test ` + +//where id = $1` // database-specific SQL statements