From 8357e1ce980525089d6e1d21d8cc4c2505d69a34 Mon Sep 17 00:00:00 2001 From: ivanmorozov333 Date: Wed, 20 Nov 2024 11:34:10 +0300 Subject: [PATCH] fix reading logic in case memory control (#11768) --- .../engines/reader/plain_reader/iterator/source.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h index 3647bb52a378..563dab447720 100644 --- a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h +++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h @@ -75,6 +75,7 @@ class IDataSource { virtual bool DoStartFetchingAccessor(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step) = 0; public: + virtual bool NeedAccessorsForRead() const = 0; virtual bool NeedAccessorsFetching() const = 0; bool StartFetchingAccessor(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step) { @@ -110,7 +111,7 @@ class IDataSource { void SetSourceInMemory(const bool value) { AFL_VERIFY(!IsSourceInMemoryFlag); IsSourceInMemoryFlag = value; - if (NeedAccessorsFetching()) { + if (NeedAccessorsForRead()) { AFL_VERIFY(StageData); if (!value) { StageData->SetUseFilter(value); @@ -317,6 +318,10 @@ class TPortionDataSource: public IDataSource { virtual bool DoStartFetchingAccessor(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step) override; public: + virtual bool NeedAccessorsForRead() const override { + return true; + } + virtual bool NeedAccessorsFetching() const override { return !StageData || !StageData->HasPortionAccessor(); } @@ -425,6 +430,10 @@ class TCommittedDataSource: public IDataSource { } public: + virtual bool NeedAccessorsForRead() const override { + return false; + } + virtual bool NeedAccessorsFetching() const override { return false; }