From 015971fb068a6dccafd0042ebcf26c5b649e8fae Mon Sep 17 00:00:00 2001 From: ICHINOSE Shogo Date: Wed, 13 Dec 2023 02:35:53 +0900 Subject: [PATCH] Fix sql.RawBytes corruption issue --- driver_test.go | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/driver_test.go b/driver_test.go index 97fd5a17a..d7359085d 100644 --- a/driver_test.go +++ b/driver_test.go @@ -3183,25 +3183,26 @@ func TestRawBytesAreNotModified(t *testing.T) { if err != nil { dbt.Fatal(err) } + defer rows.Close() var b int var raw sql.RawBytes - for rows.Next() { - if err := rows.Scan(&b, &raw); err != nil { - dbt.Fatal(err) - } + if !rows.Next() { + dbt.Fatal("expected at least one row") + } + if err := rows.Scan(&b, &raw); err != nil { + dbt.Fatal(err) + } - before := string(raw) - // Ensure cancelling the query does not corrupt the contents of `raw` - cancel() - time.Sleep(time.Microsecond * 100) - after := string(raw) + before := string(raw) + // Ensure cancelling the query does not corrupt the contents of `raw` + cancel() + time.Sleep(time.Microsecond * 100) + after := string(raw) - if before != after { - dbt.Fatalf("the backing storage for sql.RawBytes has been modified (i=%v)", i) - } + if before != after { + dbt.Fatalf("the backing storage for sql.RawBytes has been modified (i=%v)", i) } - rows.Close() }() } })