iter: ErrNotFound bug fix
This commit is contained in:
@@ -288,6 +288,16 @@ func TestNotFound(t *testing.T) {
|
|||||||
Testtext string
|
Testtext string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t.Run("get cql error", func(t *testing.T) {
|
||||||
|
var v NotFoundTable
|
||||||
|
i := gocqlx.Iter(session.Query(`SELECT * FROM not_found_table WRONG`))
|
||||||
|
|
||||||
|
err := i.Get(&v)
|
||||||
|
if err == nil || !strings.Contains(err.Error(), "WRONG") {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("get", func(t *testing.T) {
|
t.Run("get", func(t *testing.T) {
|
||||||
var v NotFoundTable
|
var v NotFoundTable
|
||||||
i := gocqlx.Iter(session.Query(`SELECT * FROM not_found_table`))
|
i := gocqlx.Iter(session.Query(`SELECT * FROM not_found_table`))
|
||||||
@@ -296,6 +306,16 @@ func TestNotFound(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("select cql error", func(t *testing.T) {
|
||||||
|
var v []NotFoundTable
|
||||||
|
i := gocqlx.Iter(session.Query(`SELECT * FROM not_found_table WRONG`))
|
||||||
|
|
||||||
|
err := i.Select(&v)
|
||||||
|
if err == nil || !strings.Contains(err.Error(), "WRONG") {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("select", func(t *testing.T) {
|
t.Run("select", func(t *testing.T) {
|
||||||
var v []NotFoundTable
|
var v []NotFoundTable
|
||||||
i := gocqlx.Iter(session.Query(`SELECT * FROM not_found_table`))
|
i := gocqlx.Iter(session.Query(`SELECT * FROM not_found_table`))
|
||||||
|
|||||||
14
iterx.go
14
iterx.go
@@ -81,7 +81,7 @@ func (iter *Iterx) scanAny(dest interface{}, structOnly bool) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if iter.Iter.NumRows() == 0 {
|
if iter.Iter.NumRows() == 0 {
|
||||||
iter.err = gocql.ErrNotFound
|
// no results or query error
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ func (iter *Iterx) scanAll(dest interface{}, structOnly bool) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if iter.Iter.NumRows() == 0 {
|
if iter.Iter.NumRows() == 0 {
|
||||||
iter.err = gocql.ErrNotFound
|
// no results or query error
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,7 +220,7 @@ func (iter *Iterx) StructScan(dest interface{}) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if iter.Iter.NumRows() == 0 {
|
if iter.Iter.NumRows() == 0 {
|
||||||
iter.err = gocql.ErrNotFound
|
// no results or query error
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,9 +261,15 @@ func columnNames(ci []gocql.ColumnInfo) []string {
|
|||||||
// the query or the iteration.
|
// the query or the iteration.
|
||||||
func (iter *Iterx) Close() error {
|
func (iter *Iterx) Close() error {
|
||||||
err := iter.Iter.Close()
|
err := iter.Iter.Close()
|
||||||
if err != nil && iter.err == nil {
|
|
||||||
|
if iter.err == nil {
|
||||||
|
if err != nil {
|
||||||
iter.err = err
|
iter.err = err
|
||||||
|
} else if iter.Iter.NumRows() == 0 {
|
||||||
|
iter.err = gocql.ErrNotFound
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return iter.err
|
return iter.err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user