Skip to content

Commit cb13d32

Browse files
fix tests
1 parent 52c6b8e commit cb13d32

File tree

9 files changed

+26
-24
lines changed

9 files changed

+26
-24
lines changed

ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class IConstructor {
2020
YDB_READONLY(EType, Type, EType::Undefined);
2121
IConstructor() = default;
2222
protected:
23-
virtual TConclusion<TOperatorContainer> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const = 0;
23+
virtual TConclusion<std::shared_ptr<IOperator>> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const = 0;
2424
virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) = 0;
2525
virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const = 0;
2626
virtual TConclusionStatus DoDeserializeFromJson(const NJson::TJsonValue& jsonData) = 0;
@@ -39,8 +39,12 @@ class IConstructor {
3939
return DoDeserializeFromJson(jsonData);
4040
}
4141

42-
TConclusion<TOperatorContainer> CreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
43-
return DoCreateOperator(currentSchema);
42+
TConclusion<TOperatorContainer> CreateOperator(const TString& name, const NSchemeShard::TOlapSchema& currentSchema) const {
43+
auto result = DoCreateOperator(currentSchema);
44+
if (!result) {
45+
return result.GetError();
46+
}
47+
return TOperatorContainer(name, result.DetachResult());
4448
}
4549

4650
TString GetClassName() const {

ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,13 @@ class TOperatorContainer: public NBackgroundTasks::TInterfaceProtoContainer<IOpe
7272
std::optional<TPortionStorageCursor> Cursor;
7373
using TBase = NBackgroundTasks::TInterfaceProtoContainer<IOperator>;
7474
public:
75-
using TBase::TBase;
75+
TOperatorContainer() = default;
7676

7777
TOperatorContainer(const TString& name, const std::shared_ptr<IOperator>& object)
7878
: TBase(object)
7979
, Name(name)
8080
{
81-
81+
AFL_VERIFY(Name);
8282
}
8383

8484
const TPortionStorageCursor& GetCursorVerified() const {

ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
namespace NKikimr::NOlap::NStatistics::NMax {
55

6-
NKikimr::TConclusion<TOperatorContainer> TConstructor::DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
6+
NKikimr::TConclusion<std::shared_ptr<IOperator>> TConstructor::DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
77
auto column = currentSchema.GetColumns().GetByName(ColumnName);
88
if (!TOperator::IsAvailableType(column->GetType())) {
99
return TConclusionStatus::Fail("incorrect type for stat calculation");
1010
}
11-
return TOperatorContainer(std::make_shared<TOperator>(column->GetId()));
11+
return std::make_shared<TOperator>(column->GetId());
1212
}
1313

1414
bool TConstructor::DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) {

ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TConstructor: public IConstructor {
1212
static inline const auto Registrator = TFactory::TRegistrator<TConstructor>(::ToString(EType::Max));
1313
YDB_READONLY(TString, ColumnName, 0);
1414
protected:
15-
virtual TConclusion<TOperatorContainer> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const override;
15+
virtual TConclusion<std::shared_ptr<IOperator>> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const override;
1616
virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) override;
1717
virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const override;
1818
virtual TConclusionStatus DoDeserializeFromJson(const NJson::TJsonValue& jsonData) override;

ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
namespace NKikimr::NOlap::NStatistics::NVariability {
55

6-
NKikimr::TConclusion<TOperatorContainer> TConstructor::DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
6+
NKikimr::TConclusion<std::shared_ptr<IOperator>> TConstructor::DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
77
auto column = currentSchema.GetColumns().GetByName(ColumnName);
88
if (!TOperator::IsAvailableType(column->GetType())) {
99
return TConclusionStatus::Fail("incorrect type for stat calculation");
1010
}
11-
return TOperatorContainer(std::make_shared<TOperator>(column->GetId()));
11+
return std::make_shared<TOperator>(column->GetId());
1212
}
1313

1414
bool TConstructor::DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) {

ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TConstructor: public IConstructor {
1212
static inline const auto Registrator = TFactory::TRegistrator<TConstructor>(::ToString(EType::Variability));
1313
YDB_READONLY(TString, ColumnName, 0);
1414
protected:
15-
virtual TConclusion<TOperatorContainer> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const override;
15+
virtual TConclusion<std::shared_ptr<IOperator>> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const override;
1616
virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) override;
1717
virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const override;
1818
virtual TConclusionStatus DoDeserializeFromJson(const NJson::TJsonValue& jsonData) override;

ydb/core/tx/schemeshard/olap/statistics/schema.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,22 @@
44
namespace NKikimr::NSchemeShard {
55

66
void TOlapStatisticsSchema::SerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const {
7-
proto.SetName(Name);
87
Operator.SerializeToProto(proto);
98
}
109

1110
bool TOlapStatisticsSchema::DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) {
12-
Name = proto.GetName();
1311
AFL_VERIFY(Operator.DeserializeFromProto(proto))("incorrect_proto", proto.DebugString());
1412
return true;
1513
}
1614

1715
bool TOlapStatisticsSchema::ApplyUpdate(const TOlapSchema& /*currentSchema*/, const TOlapStatisticsUpsert& upsert, IErrorCollector& errors) {
18-
AFL_VERIFY(upsert.GetName() == GetName());
16+
AFL_VERIFY(upsert.GetName() == Operator.GetName());
1917
AFL_VERIFY(!!upsert.GetConstructor());
2018
if (upsert.GetConstructor().GetClassName() != Operator.GetClassName()) {
2119
errors.AddError("different index classes: " + upsert.GetConstructor().GetClassName() + " vs " + Operator.GetClassName());
2220
return false;
2321
}
24-
errors.AddError("cannot modify statistics calculation for " + GetName() + ". not implemented currently.");
22+
errors.AddError("cannot modify statistics calculation for " + Operator.GetName() + ". not implemented currently.");
2523
return false;
2624
}
2725

@@ -33,12 +31,12 @@ bool TOlapStatisticsDescription::ApplyUpdate(const TOlapSchema& currentSchema, c
3331
return false;
3432
}
3533
} else {
36-
auto meta = stat.GetConstructor()->CreateOperator(currentSchema);
34+
auto meta = stat.GetConstructor()->CreateOperator(stat.GetName(), currentSchema);
3735
if (!meta) {
3836
errors.AddError(meta.GetErrorMessage());
3937
return false;
4038
}
41-
TOlapStatisticsSchema object(stat.GetName(), meta.DetachResult());
39+
TOlapStatisticsSchema object(meta.DetachResult());
4240
Y_ABORT_UNLESS(ObjectsByName.emplace(stat.GetName(), std::move(object)).second);
4341
}
4442
}

ydb/core/tx/schemeshard/olap/statistics/schema.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ class TOlapSchema;
77

88
class TOlapStatisticsSchema {
99
private:
10-
YDB_READONLY_DEF(TString, Name);
1110
YDB_READONLY_DEF(NOlap::NStatistics::TOperatorContainer, Operator);
1211
public:
1312
TOlapStatisticsSchema() = default;
1413

15-
TOlapStatisticsSchema(const TString& name, const NOlap::NStatistics::TOperatorContainer& container)
16-
: Name(name)
17-
, Operator(container)
14+
TOlapStatisticsSchema(const NOlap::NStatistics::TOperatorContainer& container)
15+
: Operator(container)
1816
{
19-
17+
AFL_VERIFY(container.GetName());
2018
}
2119

2220
bool ApplyUpdate(const TOlapSchema& currentSchema, const TOlapStatisticsUpsert& upsert, IErrorCollector& errors);

ydb/library/conclusion/result.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ class TConclusion {
3030
Y_ABORT_UNLESS(IsFail());
3131
}
3232

33-
TConclusion(TResult&& result)
33+
template <class TResultArg>
34+
TConclusion(TResultArg&& result)
3435
: Result(std::move(result)) {
3536
}
3637

37-
TConclusion(const TResult& result)
38+
template <class TResultArg>
39+
TConclusion(const TResultArg& result)
3840
: Result(result) {
3941
}
4042

0 commit comments

Comments
 (0)