Replace Unsafe with Strict mechanism
Previously by default the presence of a missing field in a udt would result in an error reported. The Unsafe mechanism could be used to ignore these fields. This PR changes the default behavior to ignoring missing fields and only reporting an error if Strict mode is used. This approach is in line with the gocql.
This commit is contained in:
committed by
Sylwia Szunejko
parent
6a60650668
commit
7072863b0c
@@ -345,8 +345,8 @@ func basicReadScyllaVersion(t *testing.T, session gocqlx.Session) {
|
||||
}
|
||||
|
||||
// This examples shows how to bind data from a map using "BindMap" function,
|
||||
// override field name mapping using the "db" tags, and use "Unsafe" function
|
||||
// to handle situations where driver returns more coluns that we are ready to
|
||||
// override field name mapping using the "db" tags, with the default mechanism of
|
||||
// handling situations where driver returns more coluns that we are ready to
|
||||
// consume.
|
||||
func datatypesBlob(t *testing.T, session gocqlx.Session) {
|
||||
t.Helper()
|
||||
@@ -384,9 +384,8 @@ func datatypesBlob(t *testing.T, session gocqlx.Session) {
|
||||
}{}
|
||||
q := qb.Select("examples.blobs").Where(qb.EqLit("k", "1")).Query(session)
|
||||
|
||||
// Unsafe is used here to override validation error that check if all
|
||||
// requested columns are consumed `failed: missing destination name "k" in struct` error
|
||||
if err := q.Iter().Unsafe().Get(row); err != nil {
|
||||
// By default missing UDT fields are treated as null instead of failing
|
||||
if err := q.Iter().Get(row); err != nil {
|
||||
t.Fatal("Get() failed:", err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user