Skip to content

Commit a2d636e

Browse files
authored
Fix overflow case in stream index lookup join (#11818) (#11823)
1 parent 5c4676c commit a2d636e

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ class TKqpLookupRows : public TKqpStreamLookupWorker {
243243
}
244244
}
245245

246-
std::vector<THolder<TEvDataShard::TEvRead>> RebuildRequest(const ui64& prevReadId, ui32 firstUnprocessedQuery,
246+
std::vector<THolder<TEvDataShard::TEvRead>> RebuildRequest(const ui64& prevReadId, ui32 firstUnprocessedQuery,
247247
TMaybe<TOwnedCellVec> lastProcessedKey, ui64& newReadId) final {
248248

249249
auto it = PendingKeysByReadId.find(prevReadId);
@@ -292,7 +292,7 @@ class TKqpLookupRows : public TKqpStreamLookupWorker {
292292
requests.emplace_back(std::move(request));
293293
PendingKeysByReadId.insert({newReadId, std::move(unprocessedRanges)});
294294
}
295-
295+
296296
return requests;
297297
}
298298

@@ -507,7 +507,7 @@ class TKqpJoinRows : public TKqpStreamLookupWorker {
507507
UnprocessedRows.emplace_back(std::make_pair(TOwnedCellVec(joinKeyCells), std::move(inputRow.GetElement(1))));
508508
}
509509

510-
std::vector<THolder<TEvDataShard::TEvRead>> RebuildRequest(const ui64& prevReadId, ui32 firstUnprocessedQuery,
510+
std::vector<THolder<TEvDataShard::TEvRead>> RebuildRequest(const ui64& prevReadId, ui32 firstUnprocessedQuery,
511511
TMaybe<TOwnedCellVec> lastProcessedKey, ui64& newReadId) final {
512512

513513
auto readIt = PendingKeysByReadId.find(prevReadId);
@@ -946,6 +946,7 @@ class TKqpJoinRows : public TKqpStreamLookupWorker {
946946
if (rowStats.ResultBytesCount > (ui64)freeSpace) {
947947
resultRow.DeleteUnreferenced();
948948
rowStats.Clear();
949+
return NUdf::TUnboxedValuePod();
949950
}
950951

951952
return resultRow;

0 commit comments

Comments
 (0)