|
1 | 1 | #include <ydb/core/tx/columnshard/test_helper/helper.h>
|
2 | 2 |
|
3 | 3 | #include <library/cpp/testing/unittest/registar.h>
|
4 |
| -#include <reader/abstract/read_context.h> |
5 |
| -#include <reader/common_reader/iterator/context.h> |
6 | 4 | #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> |
16 | 6 |
|
17 | 7 | using namespace NKikimr;
|
18 | 8 | using namespace NKikimr::NOlap;
|
19 | 9 | using namespace NKikimr::NOlap::NReader;
|
20 | 10 |
|
21 | 11 | 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 }) { |
23 | 13 | for (ui64 i = 0; i < pkIds.size(); ++i) {
|
24 | 14 | TValidator::CheckNotNull(columns.FindPtr(pkIds[i]))->KeyOrder = i;
|
25 | 15 | }
|
26 | 16 |
|
27 |
| - const auto versionedIndex = std::make_shared<TVersionedIndex>(); |
28 | 17 | auto cache = std::make_shared<TSchemaObjectsCache>();
|
29 | 18 | 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)); |
40 | 20 | }
|
41 | 21 |
|
42 | 22 | 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), "") }, |
45 | 25 | { 1, NTable::TColumn("c1", 0, NScheme::TTypeInfo(NScheme::NTypeIds::Int32), "") },
|
46 | 26 | { 2, NTable::TColumn("c2", 0, NScheme::TTypeInfo(NScheme::NTypeIds::Int32), "") } }));
|
47 | 27 |
|
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); |
56 | 36 |
|
57 | 37 | 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;);;};};]}"); |
59 | 46 | }
|
60 | 47 | }
|
0 commit comments