Skip to content

Commit c1b7652

Browse files
fix filter apply and serializer usage (ydb-platform#1629)
* fix filter apply * fixes
1 parent 07abe4e commit c1b7652

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

ydb/core/formats/arrow/serializer/abstract.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ NKikimr::TConclusionStatus TSerializerContainer::DeserializeFromProto(const NKik
66
NKikimrSchemeOp::TOlapColumn::TSerializer serializerProto;
77
serializerProto.SetClassName(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic());
88
*serializerProto.MutableArrowCompression() = proto;
9-
AFL_VERIFY(Initialize(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic()));
9+
AFL_VERIFY(Initialize(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic(), true));
1010
return GetObjectPtr()->DeserializeFromProto(serializerProto);
1111
}
1212

ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.h

+6-8
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,10 @@ class TFetchedData {
6363
}
6464

6565
void AddFilter(const std::shared_ptr<NArrow::TColumnFilter>& filter) {
66-
if (UseFilter && Table && filter) {
67-
AFL_VERIFY(filter->Apply(Table));
68-
}
69-
if (!Filter) {
70-
Filter = filter;
71-
} else if (filter) {
72-
*Filter = Filter->CombineSequentialAnd(*filter);
66+
if (!filter) {
67+
return;
7368
}
69+
return AddFilter(*filter);
7470
}
7571

7672
void AddFilter(const NArrow::TColumnFilter& filter) {
@@ -79,8 +75,10 @@ class TFetchedData {
7975
}
8076
if (!Filter) {
8177
Filter = std::make_shared<NArrow::TColumnFilter>(filter);
82-
} else {
78+
} else if (UseFilter) {
8379
*Filter = Filter->CombineSequentialAnd(filter);
80+
} else {
81+
*Filter = Filter->And(filter);
8482
}
8583
}
8684

ydb/core/tx/columnshard/engines/scheme/column_features.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ std::optional<NKikimr::NOlap::TColumnFeatures> TColumnFeatures::BuildFromProto(c
3333
AFL_VERIFY(result.Serializer.DeserializeFromProto(columnInfo.GetSerializer()));
3434
} else if (columnInfo.HasCompression()) {
3535
AFL_VERIFY(result.Serializer.DeserializeFromProto(columnInfo.GetCompression()));
36-
} else {
37-
result.Serializer = NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer();
3836
}
3937
if (columnInfo.HasDictionaryEncoding()) {
4038
auto settings = NArrow::NDictionary::TEncodingSettings::BuildFromProto(columnInfo.GetDictionaryEncoding());

ydb/services/bg_tasks/abstract/interface.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ class TCommonInterfaceContainer {
117117
static_assert(std::is_base_of<IInterface, TDerived>::value);
118118
}
119119

120-
bool Initialize(const TString& className) {
121-
AFL_VERIFY(!Object)("problem", "initialize for not-empty-object");
120+
bool Initialize(const TString& className, const bool maybeExists = false) {
121+
AFL_VERIFY(maybeExists || !Object)("problem", "initialize for not-empty-object");
122122
Object.reset(TFactory::Construct(className));
123123
if (!Object) {
124124
ALS_ERROR(NKikimrServices::BG_TASKS) << "incorrect class name: " << className << " for " << typeid(IInterface).name();

0 commit comments

Comments
 (0)