diff options
author | nsofya <nsofya@yandex-team.com> | 2023-05-26 19:12:11 +0300 |
---|---|---|
committer | nsofya <nsofya@yandex-team.com> | 2023-05-26 19:12:11 +0300 |
commit | e54492a5b591e75a7c69443cce17cbc3881a9e9e (patch) | |
tree | 3376f7408d637fe3d33d998f782c14b085d73fee | |
parent | 08ab69adc6a4958ba226238d3a2f8213bcdbec3d (diff) | |
download | ydb-e54492a5b591e75a7c69443cce17cbc3881a9e9e.tar.gz |
TUpdatesBuilder -> TTableUpdatesBuilder
TUpdatesBuilder -> TTableUpdatesBuilder
-rw-r--r-- | ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp | 54 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/columnshard_ut_common.h | 56 |
2 files changed, 58 insertions, 52 deletions
diff --git a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp index 6b5bb253042..b0bcf7fc2e5 100644 --- a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp +++ b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp @@ -1,6 +1,7 @@ #include <ydb/core/kqp/ut/common/kqp_ut_common.h> #include <ydb/core/formats/arrow/arrow_helpers.h> #include <ydb/core/tx/tx_proxy/proxy.h> +#include <ydb/core/tx/columnshard/columnshard_ut_common.h> #include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h> #include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h> #include <ydb/public/sdk/cpp/client/ydb_topic/topic.h> @@ -4188,58 +4189,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { } }; - class TUpdatesBuilder { - std::vector<std::unique_ptr<arrow::ArrayBuilder>> Builders; - std::shared_ptr<arrow::Schema> Schema; - ui32 RowsCount = 0; - public: - class TRowBuilder { - TUpdatesBuilder& Owner; - YDB_READONLY(ui32, Index, 0); - public: - TRowBuilder(ui32 index, TUpdatesBuilder& owner) - : Owner(owner) - , Index(index) - {} - - template <class T> - TRowBuilder Add(const T& data) { - Y_VERIFY(Index < Owner.Builders.size()); - auto dataScalar = arrow::MakeScalar(data); - auto res = Owner.Builders[Index]->AppendScalar(*dataScalar); - return TRowBuilder(Index + 1, Owner); - } - - TRowBuilder AddNull() { - Y_VERIFY(Index < Owner.Builders.size()); - auto res = Owner.Builders[Index]->AppendNull(); - return TRowBuilder(Index + 1, Owner); - } - }; - - TUpdatesBuilder(std::shared_ptr<arrow::Schema> schema) - : Schema(schema) - { - Builders = NArrow::MakeBuilders(schema); - Y_VERIFY(Builders.size() == schema->fields().size()); - } - - TRowBuilder AddRow() { - ++RowsCount; - return TRowBuilder(0, *this); - } - - std::shared_ptr<arrow::RecordBatch> BuildArrow() { - TVector<std::shared_ptr<arrow::Array>> columns; - columns.reserve(Builders.size()); - for (auto&& builder : Builders) { - auto arrayDataRes = builder->Finish(); - Y_VERIFY(arrayDataRes.ok()); - columns.push_back(*arrayDataRes); - } - return arrow::RecordBatch::Make(Schema, RowsCount, columns); - } - }; + using TUpdatesBuilder = NColumnShard::TTableUpdatesBuilder; class TColumnTableBase { YDB_ACCESSOR_DEF(TString, Name); diff --git a/ydb/core/tx/columnshard/columnshard_ut_common.h b/ydb/core/tx/columnshard/columnshard_ut_common.h index 5c447300298..d257f9e2c40 100644 --- a/ydb/core/tx/columnshard/columnshard_ut_common.h +++ b/ydb/core/tx/columnshard/columnshard_ut_common.h @@ -416,4 +416,60 @@ TString MakeTestBlob(std::pair<ui64, ui64> range, const std::vector<std::pair<TS TSerializedTableRange MakeTestRange(std::pair<ui64, ui64> range, bool inclusiveFrom, bool inclusiveTo, const std::vector<std::pair<TString, NScheme::TTypeInfo>>& columns); + +} + +namespace NKikimr::NColumnShard { + class TTableUpdatesBuilder { + std::vector<std::unique_ptr<arrow::ArrayBuilder>> Builders; + std::shared_ptr<arrow::Schema> Schema; + ui32 RowsCount = 0; + public: + class TRowBuilder { + TTableUpdatesBuilder& Owner; + YDB_READONLY(ui32, Index, 0); + public: + TRowBuilder(ui32 index, TTableUpdatesBuilder& owner) + : Owner(owner) + , Index(index) + {} + + template <class T> + TRowBuilder Add(const T& data) { + Y_VERIFY(Index < Owner.Builders.size()); + auto dataScalar = arrow::MakeScalar(data); + auto res = Owner.Builders[Index]->AppendScalar(*dataScalar); + return TRowBuilder(Index + 1, Owner); + } + + TRowBuilder AddNull() { + Y_VERIFY(Index < Owner.Builders.size()); + auto res = Owner.Builders[Index]->AppendNull(); + return TRowBuilder(Index + 1, Owner); + } + }; + + TTableUpdatesBuilder(std::shared_ptr<arrow::Schema> schema) + : Schema(schema) + { + Builders = NArrow::MakeBuilders(schema); + Y_VERIFY(Builders.size() == schema->fields().size()); + } + + TRowBuilder AddRow() { + ++RowsCount; + return TRowBuilder(0, *this); + } + + std::shared_ptr<arrow::RecordBatch> BuildArrow() { + TVector<std::shared_ptr<arrow::Array>> columns; + columns.reserve(Builders.size()); + for (auto&& builder : Builders) { + auto arrayDataRes = builder->Finish(); + Y_VERIFY(arrayDataRes.ok()); + columns.push_back(*arrayDataRes); + } + return arrow::RecordBatch::Make(Schema, RowsCount, columns); + } + }; } |