Skip to content

Commit 7b55ad8

Browse files
Merge 48c4e6b into 46db233
2 parents 46db233 + 48c4e6b commit 7b55ad8

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

ydb/core/formats/arrow/reader/position.h

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -458,21 +458,41 @@ class TIntervalPositions {
458458
return Positions.end();
459459
}
460460

461-
void AddPosition(TSortableBatchPosition&& position, const bool includeLeftInterval) {
462-
TIntervalPosition intervalPosition(std::move(position), includeLeftInterval);
463-
if (Positions.size()) {
464-
AFL_VERIFY(Positions.back() < intervalPosition)("back", Positions.back().DebugJson())("pos", intervalPosition.DebugJson());
465-
}
461+
void InsertPosition(TIntervalPosition&& intervalPosition) {
466462
Positions.emplace_back(std::move(intervalPosition));
463+
ui32 index = Positions.size() - 1;
464+
while (index >= 1 && Positions[index] < Positions[index - 1]) {
465+
std::swap(Positions[index], Positions[index - 1]);
466+
index = index - 1;
467+
}
468+
}
469+
470+
void InsertPosition(TSortableBatchPosition&& position, const bool includePositionToLeftInterval) {
471+
TIntervalPosition intervalPosition(std::move(position), includePositionToLeftInterval);
472+
InsertPosition(std::move(intervalPosition));
467473
}
468474

469-
void AddPosition(const TSortableBatchPosition& position, const bool includeLeftInterval) {
470-
TIntervalPosition intervalPosition(position, includeLeftInterval);
475+
void InsertPosition(const TSortableBatchPosition& position, const bool includePositionToLeftInterval) {
476+
TIntervalPosition intervalPosition(position, includePositionToLeftInterval);
477+
InsertPosition(std::move(intervalPosition));
478+
}
479+
480+
void AddPosition(TIntervalPosition&& intervalPosition) {
471481
if (Positions.size()) {
472482
AFL_VERIFY(Positions.back() < intervalPosition)("back", Positions.back().DebugJson())("pos", intervalPosition.DebugJson());
473483
}
474484
Positions.emplace_back(std::move(intervalPosition));
475485
}
486+
487+
void AddPosition(TSortableBatchPosition&& position, const bool includePositionToLeftInterval) {
488+
TIntervalPosition intervalPosition(std::move(position), includePositionToLeftInterval);
489+
AddPosition(std::move(intervalPosition));
490+
}
491+
492+
void AddPosition(const TSortableBatchPosition& position, const bool includePositionToLeftInterval) {
493+
TIntervalPosition intervalPosition(position, includePositionToLeftInterval);
494+
AddPosition(std::move(intervalPosition));
495+
}
476496
};
477497

478498
class TRWSortableBatchPosition: public TSortableBatchPosition, public TMoveOnly {

ydb/core/tx/columnshard/engines/changes/general_compaction.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ NColumnShard::ECumulativeCounters TGeneralCompactColumnEngineChanges::GetCounter
212212

213213
void TGeneralCompactColumnEngineChanges::AddCheckPoint(
214214
const NArrow::NMerger::TSortableBatchPosition& position, const bool include) {
215-
CheckPoints.AddPosition(position, include);
215+
CheckPoints.InsertPosition(position, include);
216216
}
217217

218218
std::shared_ptr<TGeneralCompactColumnEngineChanges::IMemoryPredictor> TGeneralCompactColumnEngineChanges::BuildMemoryPredictor() {

0 commit comments

Comments
 (0)