Fix missing error and add test

This commit is contained in:
Sebastiaan de Schaetzen 2025-03-24 11:52:28 +01:00
parent 850e4a27d8
commit 58d63b6cf3
2 changed files with 28 additions and 0 deletions

View File

@ -138,6 +138,9 @@ type Rows struct {
}
func (q *Query) ScanMulti() (*Rows, error) {
if q.err != nil {
return nil, q.err
}
return &Rows{
query: q,
}, nil

View File

@ -133,3 +133,28 @@ func TestTransactionRollback(t *testing.T) {
db.Query("select value from mytable where key = 'foo'").MustScanSingle(&value)
require.Equal(t, "bar", value, "expected original value after rollback")
}
func TestQueryWithInClause(t *testing.T) {
db := openTestDb(t)
// Insert additional test rows
db.Query("insert into mytable(key, value) values ('key1', 'value1')").MustExec()
db.Query("insert into mytable(key, value) values ('key2', 'value2')").MustExec()
// Execute query with IN clause
rows, err := db.Query("select key, value from mytable where key in (?, ?)").Bind("foo", "key2").ScanMulti()
require.NoError(t, err)
defer rows.MustFinish()
// Check results
results := make(map[string]string)
for rows.MustNext() {
var key, value string
rows.MustScan(&key, &value)
results[key] = value
}
// Verify we got exactly the expected results
require.Equal(t, 2, len(results), "expected 2 matching rows")
require.Equal(t, "bar", results["foo"], "unexpected value for key 'foo'")
require.Equal(t, "value2", results["key2"], "unexpected value for key 'key2'")
}