Skip to content

Commit a56b602

Browse files
dont validate program result (ydb-platform#16247) (ydb-platform#16602)
Co-authored-by: ivanmorozov333 <ivanmorozov@ydb.tech>
1 parent d8282b4 commit a56b602

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,23 @@ std::optional<NArrow::NMerger::TCursor> TBaseMergeTask::DrainMergerLinearScan(co
2727
return lastResultPosition;
2828
}
2929

30-
void TBaseMergeTask::PrepareResultBatch() {
30+
TConclusionStatus TBaseMergeTask::PrepareResultBatch() {
3131
if (!ResultBatch || ResultBatch->num_rows() == 0) {
3232
AllocationGuard = nullptr;
3333
ResultBatch = nullptr;
3434
LastPK = nullptr;
35-
return;
35+
return TConclusionStatus::Success();
3636
}
3737
const ui64 dataSizeBefore = NArrow::GetTableDataSize(ResultBatch);
3838
const ui64 memorySizeBefore = NArrow::GetTableMemorySize(ResultBatch);
3939
{
4040
ResultBatch = NArrow::TColumnOperator().VerifyIfAbsent().Extract(ResultBatch, Context->GetProgramInputColumns()->GetColumnNamesVector());
4141
AFL_VERIFY((ui32)ResultBatch->num_columns() == Context->GetProgramInputColumns()->GetColumnNamesVector().size());
4242
auto accessors = std::make_shared<NArrow::NAccessor::TAccessorsCollection>(ResultBatch, *Context->GetCommonContext()->GetResolver());
43-
Context->GetReadMetadata()->GetProgram().ApplyProgram(accessors).Validate();
43+
auto conclusion = Context->GetReadMetadata()->GetProgram().ApplyProgram(accessors);
44+
if (conclusion.IsFail()) {
45+
return conclusion;
46+
}
4447
if (accessors->GetRecordsCountOptional().value_or(0) == 0) {
4548
ResultBatch = nullptr;
4649
} else {
@@ -64,6 +67,7 @@ void TBaseMergeTask::PrepareResultBatch() {
6467
ResultBatch = nullptr;
6568
LastPK = nullptr;
6669
}
70+
return TConclusionStatus::Success();
6771
}
6872

6973
bool TBaseMergeTask::DoApply(IDataReader& indexedDataRead) const {
@@ -109,7 +113,10 @@ TConclusionStatus TStartMergeTask::DoExecuteImpl() {
109113
if (Context->GetCommonContext()->IsReverse()) {
110114
ResultBatch = NArrow::ReverseRecords(ResultBatch);
111115
}
112-
PrepareResultBatch();
116+
auto conclusion = PrepareResultBatch();
117+
if (conclusion.IsFail()) {
118+
return conclusion;
119+
}
113120
}
114121
Sources.clear();
115122
AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
@@ -162,8 +169,7 @@ TConclusionStatus TStartMergeTask::DoExecuteImpl() {
162169
LastPK = lastResultPosition->ExtractSortingPosition(MergingContext->GetFinish().GetSortFields());
163170
}
164171
AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
165-
PrepareResultBatch();
166-
return TConclusionStatus::Success();
172+
return PrepareResultBatch();
167173
}
168174

169175
TStartMergeTask::TStartMergeTask(const std::shared_ptr<TMergingContext>& mergingContext, const std::shared_ptr<TSpecialReadContext>& readContext,
@@ -187,8 +193,7 @@ TConclusionStatus TContinueMergeTask::DoExecuteImpl() {
187193
LastPK = lastResultPosition->ExtractSortingPosition(MergingContext->GetFinish().GetSortFields());
188194
}
189195
AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
190-
PrepareResultBatch();
191-
return TConclusionStatus::Success();
196+
return PrepareResultBatch();
192197
}
193198

194199
} // namespace NKikimr::NOlap::NReader::NPlain

ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class TBaseMergeTask: public IDataTasksProcessor::ITask, public NGroupedMemoryMa
7171

7272
[[nodiscard]] std::optional<NArrow::NMerger::TCursor> DrainMergerLinearScan(const std::optional<ui32> resultBufferLimit);
7373

74-
void PrepareResultBatch();
74+
TConclusionStatus PrepareResultBatch();
7575

7676
private:
7777
virtual bool DoApply(IDataReader& indexedDataRead) const override;

0 commit comments

Comments
 (0)