141
}
142
144
>
numTasks := 20
145
>
146
>
shardID := rand.Int31()
147
>
minTaskID := int64(1)
148
>
taskID := minTaskID
149
>
maxTaskID := taskID + int64(numTasks)
150
>
151
>
var tasks []sqlplugin.TransferTasksRow
152
>
for range numTasks {
153
>
task := s.newRandomTransferTaskRow(shardID, taskID)
154
>
taskID++
155
>
tasks = append(tasks, task)
156
>
}
157
>
result, err := s.store.InsertIntoTransferTasks(newExecutionContext(), tasks)
158
>
s.NoError(err)
159
>
rowsAffected, err := result.RowsAffected()
160
>
s.NoError(err)
161
>
s.Equal(numTasks, int(rowsAffected))
162
>
163
>
for _, pageSize := range []int{numTasks / 2, numTasks * 2} {
164
>
filter := sqlplugin.TransferTasksRangeFilter{
165
>
ShardID: shardID,
166
>
InclusiveMinTaskID: minTaskID,
167
>
ExclusiveMaxTaskID: maxTaskID,
168
>
PageSize: pageSize,
169
>
}
170
>
rows, err := s.store.RangeSelectFromTransferTasks(newExecutionContext(), filter)
171
>
s.NoError(err)
172
>
s.NotEmpty(rows)
173
>
s.LessOrEqual(len(rows), filter.PageSize)
174
>
for index := range rows {
175
>
rows[index].ShardID = shardID
176
>
}
177
>
s.Equal(tasks[:min(numTasks, pageSize)], rows)
178
}
179
}