Skip to content

Commit 978d940

Browse files
committed
add ut
1 parent 900cbbd commit 978d940

File tree

3 files changed

+34
-39
lines changed

3 files changed

+34
-39
lines changed

ydb/core/tx/columnshard/engines/reader/common_reader/iterator/fetching.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ TConclusion<bool> TFetchingScriptCursor::Execute(const std::shared_ptr<IDataSour
7272
return true;
7373
}
7474

75-
TString TFetchingScript::DebugString() const {
75+
TString TFetchingScript::DebugString(const bool onlyLongSteps) const {
7676
TStringBuilder sb;
7777
TStringBuilder sbBranch;
7878
for (auto&& i : Steps) {
79-
if (i->GetSumDuration() > TDuration::MilliSeconds(10)) {
79+
if (!onlyLongSteps || i->GetSumDuration() > TDuration::MilliSeconds(10)) {
8080
sbBranch << "{" << i->DebugString() << "};";
8181
}
8282
}
@@ -128,8 +128,7 @@ TString IFetchingStep::DebugString() const {
128128
}
129129

130130
TFetchingScriptBuilder::TFetchingScriptBuilder(const TSpecialReadContext& context)
131-
: GuaranteeNotOptional(context.GetMergeColumns())
132-
, FullSchema(context.GetReadMetadata()->GetResultSchema()) {
131+
: TFetchingScriptBuilder(context.GetReadMetadata()->GetResultSchema(), context.GetMergeColumns()) {
133132
}
134133

135134
void TFetchingScriptBuilder::AddFetchingStep(const TColumnsSetIds& columns, const EStageFeaturesIndexes stage) {

ydb/core/tx/columnshard/engines/reader/common_reader/iterator/fetching.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ class TFetchingScript {
139139
AtomicCas(&StartInstant, TMonotonic::Now().MicroSeconds(), 0);
140140
}
141141

142-
TString DebugString() const;
142+
TString DebugString(const bool onlyLongSteps = true) const;
143143

144144
const std::shared_ptr<IFetchingStep>& GetStep(const ui32 index) const {
145145
AFL_VERIFY(index < Steps.size());
@@ -222,6 +222,11 @@ class TFetchingScriptBuilder {
222222
YDB_READONLY_DEF(TColumnsSetIds, AddedFetchingColumns);
223223
YDB_READONLY_DEF(TColumnsSetIds, AddedAssembleColumns);
224224

225+
TFetchingScriptBuilder(const ISnapshotSchema::TPtr& schema, const std::shared_ptr<TColumnsSetIds>& guaranteeNotOptional)
226+
: GuaranteeNotOptional(guaranteeNotOptional)
227+
, FullSchema(schema) {
228+
}
229+
225230
private:
226231
void AddAllocation(const std::set<ui32>& entityIds, const EStageFeaturesIndexes stage, const EMemType mType);
227232

@@ -247,6 +252,10 @@ class TFetchingScriptBuilder {
247252

248253
void AddFetchingStep(const TColumnsSetIds& columns, const EStageFeaturesIndexes stage);
249254
void AddAssembleStep(const TColumnsSetIds& columns, const TString& purposeId, const EStageFeaturesIndexes stage, const bool sequential);
255+
256+
static TFetchingScriptBuilder MakeForTests(ISnapshotSchema::TPtr schema, std::shared_ptr<TColumnsSetIds> guaranteeNotOptional = nullptr) {
257+
return TFetchingScriptBuilder(schema, guaranteeNotOptional ? guaranteeNotOptional : std::make_shared<TColumnsSetIds>());
258+
}
250259
};
251260

252261
class TFetchingScriptCursor {
Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,47 @@
11
#include <ydb/core/tx/columnshard/test_helper/helper.h>
22

33
#include <library/cpp/testing/unittest/registar.h>
4-
#include <reader/abstract/read_context.h>
5-
#include <reader/common_reader/iterator/context.h>
64
#include <reader/common_reader/iterator/fetching.h>
7-
#include <reader/simple_reader/iterator/context.h>
8-
9-
/*
10-
TReadContext(const std::shared_ptr<IStoragesManager>& storagesManager,
11-
const std::shared_ptr<NDataAccessorControl::IDataAccessorsManager>& dataAccessorsManager,
12-
const NColumnShard::TConcreteScanCounters& counters, const TReadMetadataBase::TConstPtr& readMetadata, const TActorId& scanActorId,
13-
const TActorId& resourceSubscribeActorId, const TActorId& readCoordinatorActorId, const TComputeShardingPolicy& computeShardingPolicy,
14-
const ui64 scanId);
15-
*/
5+
#include <scheme/versions/snapshot_scheme.h>
166

177
using namespace NKikimr;
188
using namespace NKikimr::NOlap;
199
using namespace NKikimr::NOlap::NReader;
2010

2111
Y_UNIT_TEST_SUITE(TestScript) {
22-
NSimple::TSpecialReadContext MakeTestReadContext(THashMap<ui32, NTable::TColumn> columns, const std::vector<ui32> pkIds = {0}) {
12+
std::shared_ptr<ISnapshotSchema> MakeTestSchema(THashMap<ui32, NTable::TColumn> columns, const std::vector<ui32> pkIds = { 0 }) {
2313
for (ui64 i = 0; i < pkIds.size(); ++i) {
2414
TValidator::CheckNotNull(columns.FindPtr(pkIds[i]))->KeyOrder = i;
2515
}
2616

27-
const auto versionedIndex = std::make_shared<TVersionedIndex>();
2817
auto cache = std::make_shared<TSchemaObjectsCache>();
2918
TIndexInfo info = TIndexInfo::BuildDefault(TTestStoragesManager::GetInstance(), columns, pkIds);
30-
AFL_VERIFY(info.BuildFromProto({}, nullptr, cache));
31-
versionedIndex->AddIndex(TSnapshot::Zero(), cache->UpsertIndexInfo(0, std::move(info)));
32-
33-
const TReadDescription read(TSnapshot::Max(), false);
34-
35-
const auto base = std::make_shared<NKikimr::NOlap::NReader::TReadContext>(TTestStoragesManager::GetInstance(), nullptr,
36-
NKikimr::NColumnShard::TConcreteScanCounters(NKikimr::NColumnShard::TScanCounters()),
37-
std::make_shared<NSimple::TReadMetadata>(versionedIndex, read), NActors::TActorId(), NActors::TActorId(), NActors::TActorId(),
38-
NKikimr::NOlap::NReader::TComputeShardingPolicy(), 0);
39-
return NSimple::TSpecialReadContext(base);
19+
return std::make_shared<TSnapshotSchema>(cache->UpsertIndexInfo(0, std::move(info)), TSnapshot(1, 1));
4020
}
4121

4222
Y_UNIT_TEST(StepMerging) {
43-
NCommon::TFetchingScriptBuilder acc(
44-
MakeTestReadContext({ { 0, NTable::TColumn("c0", 0, NScheme::TTypeInfo(NScheme::NTypeIds::Int32), "") },
23+
NCommon::TFetchingScriptBuilder acc = NCommon::TFetchingScriptBuilder::MakeForTests(
24+
MakeTestSchema({ { 0, NTable::TColumn("c0", 0, NScheme::TTypeInfo(NScheme::NTypeIds::Int32), "") },
4525
{ 1, NTable::TColumn("c1", 0, NScheme::TTypeInfo(NScheme::NTypeIds::Int32), "") },
4626
{ 2, NTable::TColumn("c2", 0, NScheme::TTypeInfo(NScheme::NTypeIds::Int32), "") } }));
4727

48-
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NSimple::EStageFeaturesIndexes::Filter);
49-
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NSimple::EStageFeaturesIndexes::Filter);
50-
acc.AddAssembleStep(std::vector<ui32>({ 0 }), "", NSimple::EStageFeaturesIndexes::Filter, false);
51-
52-
acc.AddFetchingStep(std::vector<ui32>({ 0, 1 }), NSimple::EStageFeaturesIndexes::Filter);
53-
acc.AddFetchingStep(std::vector<ui32>({ 1, 2 }), NSimple::EStageFeaturesIndexes::Fetching);
54-
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NSimple::EStageFeaturesIndexes::Fetching);
55-
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NSimple::EStageFeaturesIndexes::Merge);
28+
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NCommon::EStageFeaturesIndexes::Filter);
29+
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NCommon::EStageFeaturesIndexes::Filter);
30+
acc.AddAssembleStep(std::vector<ui32>({ 0 }), "", NCommon::EStageFeaturesIndexes::Filter, false);
31+
acc.AddFetchingStep(std::vector<ui32>({ 0, 1 }), NCommon::EStageFeaturesIndexes::Filter);
32+
acc.AddFetchingStep(std::vector<ui32>({ 1, 2 }), NCommon::EStageFeaturesIndexes::Fetching);
33+
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NCommon::EStageFeaturesIndexes::Fetching);
34+
acc.AddAssembleStep(std::vector<ui32>({ 0, 1, 2 }), "", NCommon::EStageFeaturesIndexes::Fetching, false);
35+
acc.AddFetchingStep(std::vector<ui32>({ 0 }), NCommon::EStageFeaturesIndexes::Merge);
5636

5737
auto script = std::move(acc).Build();
58-
UNIT_ASSERT_STRINGS_EQUAL(script->DebugString(), "");
38+
UNIT_ASSERT_STRINGS_EQUAL(script->DebugString(false),
39+
"{branch:UNDEFINED;steps_10Ms:["
40+
"{name=ALLOCATE_MEMORY::Filter;duration=0.000000s;size=0;details={stage=Filter;};};"
41+
"{name=ALLOCATE_MEMORY::Fetching;duration=0.000000s;size=0;details={stage=Fetching;};};"
42+
"{name=FETCHING_COLUMNS;duration=0.000000s;size=0;details={columns=0;};};"
43+
"{name=ASSEMBLER;duration=0.000000s;size=0;details={columns=(column_ids=0;column_names=c0;);;};};"
44+
"{name=FETCHING_COLUMNS;duration=0.000000s;size=0;details={columns=1,2;};};"
45+
"{name=ASSEMBLER;duration=0.000000s;size=0;details={columns=(column_ids=1,2;column_names=c1,c2;);;};};]}");
5946
}
6047
}

0 commit comments

Comments
 (0)