Skip to content

Commit deb013c

Browse files
committed
Give Rows a context for fetchNextPage
1 parent e895fca commit deb013c

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

pkg/redshift/driver/db.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ func (d *db) CancelQuery(_ context.Context, queryID string) error {
6565
return d.api.Stop(&sqlAPI.ExecuteQueryOutput{ID: queryID})
6666
}
6767

68-
func (d *db) GetRows(_ context.Context, queryID string) (driver.Rows, error) {
69-
return newRows(d.api.DataClient, queryID)
68+
func (d *db) GetRows(ctx context.Context, queryID string) (driver.Rows, error) {
69+
return newRows(ctx, d.api.DataClient, queryID)
7070
}
7171

7272
func (d *db) Ping(ctx context.Context) error {

pkg/redshift/driver/rows.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@ import (
1919
type Rows struct {
2020
service redshiftdata.GetStatementResultAPIClient
2121
queryID string
22+
context context.Context
2223

2324
done bool
2425
result *redshiftdata.GetStatementResultOutput
2526
}
2627

27-
func newRows(service redshiftdata.GetStatementResultAPIClient, queryId string) (*Rows, error) {
28+
func newRows(ctx context.Context, service redshiftdata.GetStatementResultAPIClient, queryId string) (*Rows, error) {
2829
r := Rows{
2930
service: service,
3031
queryID: queryId,
32+
context: ctx,
3133
}
3234

3335
if err := r.fetchNextPage(nil); err != nil {
@@ -178,7 +180,7 @@ func (r *Rows) Close() error {
178180
func (r *Rows) fetchNextPage(token *string) error {
179181
var err error
180182

181-
r.result, err = r.service.GetStatementResult(context.TODO(), &redshiftdata.GetStatementResultInput{
183+
r.result, err = r.service.GetStatementResult(r.context, &redshiftdata.GetStatementResultInput{
182184
Id: aws.String(r.queryID),
183185
NextToken: token,
184186
})

pkg/redshift/driver/rows_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package driver
22

33
import (
4+
"context"
45
"database/sql/driver"
56
"fmt"
67
"io"
@@ -17,7 +18,7 @@ import (
1718
func TestOnePageSuccess(t *testing.T) {
1819
redshiftServiceMock := &mock.RedshiftService{}
1920
redshiftServiceMock.CalledTimesCountDown = 1
20-
rows, rowErr := newRows(redshiftServiceMock, mock.SinglePageResponseQueryId)
21+
rows, rowErr := newRows(context.Background(), redshiftServiceMock, mock.SinglePageResponseQueryId)
2122
require.NoError(t, rowErr)
2223
cnt := 0
2324
for {
@@ -39,7 +40,7 @@ func TestOnePageSuccess(t *testing.T) {
3940
func TestMultiPageSuccess(t *testing.T) {
4041
redshiftServiceMock := &mock.RedshiftService{}
4142
redshiftServiceMock.CalledTimesCountDown = 5
42-
rows, rowErr := newRows(redshiftServiceMock, mock.MultiPageResponseQueryId)
43+
rows, rowErr := newRows(context.Background(), redshiftServiceMock, mock.MultiPageResponseQueryId)
4344
require.NoError(t, rowErr)
4445
cnt := 0
4546
for {

0 commit comments

Comments
 (0)