fix no rows return error when close (#1334)
This commit is contained in:
parent
d0827bfc00
commit
f1b4f83684
14
rows.go
14
rows.go
|
@ -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()
|
||||
}
|
||||
}
|
||||
return rows.rows.Close()
|
||||
}
|
||||
|
||||
return rows.lastError
|
||||
}
|
||||
|
|
16
rows_test.go
16
rows_test.go
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue