fix no rows return error when close

This commit is contained in:
Lunny Xiao 2019-06-20 23:01:30 +08:00
parent d0827bfc00
commit 7e685977f2
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
2 changed files with 19 additions and 11 deletions

14
rows.go
View File

@ -113,17 +113,9 @@ func (rows *Rows) Close() error {
defer rows.session.Close()
}
if rows.lastError == nil {
if rows.rows != nil {
rows.lastError = rows.rows.Close()
if rows.lastError != nil {
return rows.lastError
}
}
} else {
if rows.rows != nil {
defer rows.rows.Close()
}
if rows.rows != nil {
return rows.rows.Close()
}
return rows.lastError
}

View File

@ -38,6 +38,22 @@ func TestRows(t *testing.T) {
cnt++
}
assert.EqualValues(t, 1, cnt)
assert.False(t, rows.Next())
assert.NoError(t, rows.Close())
rows0, err := testEngine.Where("1>1").Rows(new(UserRows))
assert.NoError(t, err)
defer rows0.Close()
cnt = 0
user0 := new(UserRows)
for rows0.Next() {
err = rows0.Scan(user0)
assert.NoError(t, err)
cnt++
}
assert.EqualValues(t, 0, cnt)
assert.NoError(t, rows0.Close())
sess := testEngine.NewSession()
defer sess.Close()