From 682460c1c84d14d402bd6b8fbca66d93ab438536 Mon Sep 17 00:00:00 2001 From: Kevin Wan Date: Wed, 10 Apr 2024 17:28:52 +0800 Subject: [PATCH] fix: fix ignored scanner.Err() (#4063) --- core/stores/sqlx/orm.go | 2 +- core/stores/sqlx/stmt_test.go | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/stores/sqlx/orm.go b/core/stores/sqlx/orm.go index 9924eefc..feeed397 100644 --- a/core/stores/sqlx/orm.go +++ b/core/stores/sqlx/orm.go @@ -248,7 +248,7 @@ func unmarshalRows(v any, scanner rowsScanner, strict bool) error { return ErrUnsupportedValueType } - return nil + return scanner.Err() default: return ErrUnsupportedValueType } diff --git a/core/stores/sqlx/stmt_test.go b/core/stores/sqlx/stmt_test.go index 34f67206..a2b0b1bb 100644 --- a/core/stores/sqlx/stmt_test.go +++ b/core/stores/sqlx/stmt_test.go @@ -291,19 +291,19 @@ func TestStmtBreaker(t *testing.T) { }) } -func TestQueryScanTimeout(t *testing.T) { +func TestQueryRowsScanTimeout(t *testing.T) { dbtest.RunTest(t, func(db *sql.DB, mock sqlmock.Sqlmock) { - ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond) - defer cancel() - row := sqlmock.NewRows([]string{"foo"}) + rows := sqlmock.NewRows([]string{"foo"}) for i := 0; i < 10000; i++ { - row = row.AddRow("bar" + strconv.Itoa(i)) + rows = rows.AddRow("bar" + strconv.Itoa(i)) } + mock.ExpectQuery("any").WillReturnRows(rows) var val []struct { - Foo int - Bar string + Foo string } conn := NewSqlConnFromDB(db) + ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond) + defer cancel() err := conn.QueryRowsCtx(ctx, &val, "any") assert.ErrorIs(t, err, context.DeadlineExceeded) })