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()
|
defer rows.session.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
if rows.lastError == nil {
|
if rows.rows != nil {
|
||||||
if rows.rows != nil {
|
return rows.rows.Close()
|
||||||
rows.lastError = rows.rows.Close()
|
|
||||||
if rows.lastError != nil {
|
|
||||||
return rows.lastError
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if rows.rows != nil {
|
|
||||||
defer rows.rows.Close()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return rows.lastError
|
return rows.lastError
|
||||||
}
|
}
|
||||||
|
|
16
rows_test.go
16
rows_test.go
|
@ -38,6 +38,22 @@ func TestRows(t *testing.T) {
|
||||||
cnt++
|
cnt++
|
||||||
}
|
}
|
||||||
assert.EqualValues(t, 1, 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()
|
sess := testEngine.NewSession()
|
||||||
defer sess.Close()
|
defer sess.Close()
|
||||||
|
|
Loading…
Reference in New Issue