Skip to content

Commit

Permalink
fix filter apply and serializer usage (ydb-platform#1629)
Browse files Browse the repository at this point in the history
* fix filter apply

* fixes
  • Loading branch information
ivanmorozov333 committed Apr 16, 2024
1 parent bdeff62 commit 3a63236
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 13 deletions.
2 changes: 1 addition & 1 deletion ydb/core/formats/arrow/serializer/abstract.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ NKikimr::TConclusionStatus TSerializerContainer::DeserializeFromProto(const NKik
NKikimrSchemeOp::TOlapColumn::TSerializer serializerProto;
serializerProto.SetClassName(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic());
*serializerProto.MutableArrowCompression() = proto;
AFL_VERIFY(Initialize(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic()));
AFL_VERIFY(Initialize(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic(), true));
return GetObjectPtr()->DeserializeFromProto(serializerProto);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,10 @@ class TFetchedData {
}

void AddFilter(const std::shared_ptr<NArrow::TColumnFilter>& filter) {
if (UseFilter && Table && filter) {
AFL_VERIFY(filter->Apply(Table));
}
if (!Filter) {
Filter = filter;
} else if (filter) {
*Filter = Filter->CombineSequentialAnd(*filter);
if (!filter) {
return;
}
return AddFilter(*filter);
}

void AddFilter(const NArrow::TColumnFilter& filter) {
Expand All @@ -79,8 +75,10 @@ class TFetchedData {
}
if (!Filter) {
Filter = std::make_shared<NArrow::TColumnFilter>(filter);
} else {
} else if (UseFilter) {
*Filter = Filter->CombineSequentialAnd(filter);
} else {
*Filter = Filter->And(filter);
}
}

Expand Down
2 changes: 0 additions & 2 deletions ydb/core/tx/columnshard/engines/scheme/column_features.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ std::optional<NKikimr::NOlap::TColumnFeatures> TColumnFeatures::BuildFromProto(c
AFL_VERIFY(result.Serializer.DeserializeFromProto(columnInfo.GetSerializer()));
} else if (columnInfo.HasCompression()) {
AFL_VERIFY(result.Serializer.DeserializeFromProto(columnInfo.GetCompression()));
} else {
result.Serializer = NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer();
}
if (columnInfo.HasDictionaryEncoding()) {
auto settings = NArrow::NDictionary::TEncodingSettings::BuildFromProto(columnInfo.GetDictionaryEncoding());
Expand Down
4 changes: 2 additions & 2 deletions ydb/services/bg_tasks/abstract/interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ class TCommonInterfaceContainer {
static_assert(std::is_base_of<IInterface, TDerived>::value);
}

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

0 comments on commit 3a63236

Please sign in to comment.