Skip to content

Commit cc84759

Browse files
authored
scan compilation has been fixed (#15097)
1 parent 72bad57 commit cc84759

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

ydb/core/tx/program/program.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const THashSet<ui32>& TProgramContainer::GetEarlyFilterColumns() const {
2424
return Program->GetFilterColumns();
2525
}
2626

27-
TConclusionStatus TProgramContainer::Init(const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TProgram& programProto) {
27+
TConclusionStatus TProgramContainer::Init(const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TProgram& programProto) noexcept {
2828
ProgramProto = programProto;
2929
if (IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD)) {
3030
TString out;
@@ -33,20 +33,26 @@ TConclusionStatus TProgramContainer::Init(const NArrow::NSSA::IColumnResolver& c
3333
}
3434

3535
if (programProto.HasKernels()) {
36-
KernelsRegistry.Parse(programProto.GetKernels());
36+
try {
37+
if (!KernelsRegistry.Parse(programProto.GetKernels())) {
38+
return TConclusionStatus::Fail("Can't parse kernels");
39+
}
40+
} catch (...) {
41+
AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "program_parsed_error")("result", CurrentExceptionMessage());
42+
return TConclusionStatus::Fail(TStringBuilder() << "Can't initialize program, exception thrown: " << CurrentExceptionMessage());
43+
}
3744
}
3845

3946
auto parseStatus = ParseProgram(columnResolver, programProto);
4047
if (parseStatus.IsFail()) {
4148
return parseStatus;
4249
}
4350
AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "program_parsed")("result", DebugString());
44-
4551
return TConclusionStatus::Success();
4652
}
4753

4854
TConclusionStatus TProgramContainer::Init(
49-
const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TOlapProgram& olapProgramProto) {
55+
const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TOlapProgram& olapProgramProto) noexcept {
5056
NKikimrSSA::TProgram programProto;
5157
if (!programProto.ParseFromString(olapProgramProto.GetProgram())) {
5258
return TConclusionStatus::Fail("Can't parse TProgram protobuf");
@@ -76,7 +82,7 @@ TConclusionStatus TProgramContainer::Init(
7682
}
7783

7884
TConclusionStatus TProgramContainer::Init(
79-
const NArrow::NSSA::IColumnResolver& columnResolver, NKikimrSchemeOp::EOlapProgramType programType, TString serializedProgram) {
85+
const NArrow::NSSA::IColumnResolver& columnResolver, NKikimrSchemeOp::EOlapProgramType programType, TString serializedProgram) noexcept {
8086
Y_ABORT_UNLESS(serializedProgram);
8187
Y_ABORT_UNLESS(!OverrideProcessingColumnsVector);
8288

ydb/core/tx/program/program.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ class TProgramContainer {
7474
}
7575

7676
[[nodiscard]] TConclusionStatus Init(
77-
const NArrow::NSSA::IColumnResolver& columnResolver, NKikimrSchemeOp::EOlapProgramType programType, TString serializedProgram);
78-
[[nodiscard]] TConclusionStatus Init(const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TOlapProgram& olapProgramProto);
79-
[[nodiscard]] TConclusionStatus Init(const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TProgram& programProto);
77+
const NArrow::NSSA::IColumnResolver& columnResolver, NKikimrSchemeOp::EOlapProgramType programType, TString serializedProgram) noexcept;
78+
[[nodiscard]] TConclusionStatus Init(const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TOlapProgram& olapProgramProto) noexcept;
79+
[[nodiscard]] TConclusionStatus Init(const NArrow::NSSA::IColumnResolver& columnResolver, const NKikimrSSA::TProgram& programProto) noexcept;
8080

8181
const std::shared_ptr<NArrow::NSSA::TProgramChain>& GetChainVerified() const {
8282
AFL_VERIFY(!!Program);

0 commit comments

Comments
 (0)