Skip to content

Commit a950903

Browse files
fetch additional fields in special corner case (#2116)
1 parent 9683aeb commit a950903

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

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

+9
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,15 @@ class TColumnsSet {
106106
return true;
107107
}
108108

109+
bool Cross(const TColumnsSet& columnsSet) const {
110+
for (auto&& i : columnsSet.ColumnIds) {
111+
if (ColumnIds.contains(i)) {
112+
return true;
113+
}
114+
}
115+
return false;
116+
}
117+
109118
bool IsEqual(const TColumnsSet& columnsSet) const {
110119
if (columnsSet.GetColumnIds().size() != ColumnIds.size()) {
111120
return false;

ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ std::shared_ptr<NKikimr::NOlap::NPlainReader::IFetchingStep> TSpecialReadContext
5151
}
5252
} else if (exclusiveSource) {
5353
TColumnsSet columnsFetch = *EFColumns;
54-
if (needSnapshots || FFColumns->Contains(SpecColumns)) {
54+
if (needSnapshots || FFColumns->Cross(*SpecColumns)) {
5555
columnsFetch = columnsFetch + *SpecColumns;
5656
}
5757
if (partialUsageByPredicate) {
@@ -60,7 +60,7 @@ std::shared_ptr<NKikimr::NOlap::NPlainReader::IFetchingStep> TSpecialReadContext
6060
AFL_VERIFY(columnsFetch.GetColumnsCount());
6161
current = current->AttachNext(std::make_shared<TBlobsFetchingStep>(std::make_shared<TColumnsSet>(columnsFetch), "ef"));
6262

63-
if (needSnapshots || FFColumns->Contains(SpecColumns)) {
63+
if (needSnapshots || FFColumns->Cross(*SpecColumns)) {
6464
current = current->AttachNext(std::make_shared<TAssemblerStep>(SpecColumns));
6565
current = current->AttachNext(std::make_shared<TSnapshotFilter>());
6666
columnsFetch = columnsFetch - *SpecColumns;

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

-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ class TSpecialReadContext {
2323
NIndexes::TIndexCheckerContainer IndexChecker;
2424
TReadMetadata::TConstPtr ReadMetadata;
2525
std::shared_ptr<TColumnsSet> EmptyColumns = std::make_shared<TColumnsSet>();
26-
std::shared_ptr<TColumnsSet> PKFFColumns;
27-
std::shared_ptr<TColumnsSet> EFPKColumns;
28-
std::shared_ptr<TColumnsSet> FFMinusEFColumns;
2926
std::shared_ptr<IFetchingStep> BuildColumnsFetchingPlan(const bool needSnapshotsFilter, const bool exclusiveSource, const bool partialUsageByPredicate) const;
3027
std::array<std::array<std::array<std::shared_ptr<IFetchingStep>, 2>, 2>, 2> CacheFetchingScripts;
3128
public:

0 commit comments

Comments
 (0)