@@ -51,12 +51,20 @@ type TimestreamWriteApi interface {
51
51
WriteRecords (ctx context.Context , params * timestreamwrite.WriteRecordsInput , optFns ... func (* timestreamwrite.Options )) (* timestreamwrite.WriteRecordsOutput , error )
52
52
}
53
53
54
+ type NewQueryPaginator func (client TimestreamQueryApi , params * timestreamquery.QueryInput , optFns ... func (* timestreamquery.QueryPaginatorOptions )) PaginatorApi
55
+
56
+ type PaginatorApi interface {
57
+ HasMorePages () bool
58
+ NextPage (ctx context.Context , optFns ... func (* timestreamquery.Options )) (* timestreamquery.QueryOutput , error )
59
+ }
60
+
54
61
type TimeStreamAdapter struct {
55
62
databaseName string
56
63
logger * zap.SugaredLogger
57
64
tableName string
58
65
TimestreamQueryApi
59
66
TimestreamWriteApi
67
+ NewQueryPaginator
60
68
}
61
69
62
70
type queryTask struct {
@@ -69,7 +77,11 @@ type writeTask struct {
69
77
dimensions []writetypes.Dimension
70
78
}
71
79
72
- func newTimeStreamAdapter (logger * zap.SugaredLogger , cfg * adapterCfg , writeSvc * timestreamwrite.Client , querySvc * timestreamquery.Client ) TimeStreamAdapter {
80
+ func newTimestreamQueryPaginator (client TimestreamQueryApi , params * timestreamquery.QueryInput , optFns ... func (* timestreamquery.QueryPaginatorOptions )) PaginatorApi {
81
+ return timestreamquery .NewQueryPaginator (client , params , optFns ... )
82
+ }
83
+
84
+ func newTimeStreamAdapter (logger * zap.SugaredLogger , cfg * adapterCfg , newQueryPaginator NewQueryPaginator , writeSvc * timestreamwrite.Client , querySvc * timestreamquery.Client ) TimeStreamAdapter {
73
85
tr := & http.Transport {
74
86
ResponseHeaderTimeout : 20 * time .Second ,
75
87
// Using DefaultTransport values for other parameters: https://golang.org/pkg/net/http/#RoundTripper
@@ -105,6 +117,7 @@ func newTimeStreamAdapter(logger *zap.SugaredLogger, cfg *adapterCfg, writeSvc *
105
117
return TimeStreamAdapter {
106
118
TimestreamQueryApi : querySvc ,
107
119
TimestreamWriteApi : writeSvc ,
120
+ NewQueryPaginator : newQueryPaginator ,
108
121
databaseName : cfg .databaseName ,
109
122
logger : logger ,
110
123
tableName : cfg .tableName ,
@@ -229,7 +242,7 @@ func (t TimeStreamAdapter) runReadRequestQuery(ctx context.Context, q *prompb.Qu
229
242
}
230
243
231
244
var timeSeries []* prompb.TimeSeries
232
- paginator := timestreamquery .NewQueryPaginator (t , & timestreamquery.QueryInput {
245
+ paginator := t .NewQueryPaginator (t , & timestreamquery.QueryInput {
233
246
QueryString : aws .String (task .query ),
234
247
})
235
248
0 commit comments