summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <[email protected]>2023-09-22 09:59:05 +0300
committerivanmorozov <[email protected]>2023-09-22 10:27:08 +0300
commitc4136bc3ed2fea6f8f2bdcfc8f1329f374fe9082 (patch)
tree7d34b62ebbeb7bc1226b4b301df929700cbe6ff2
parentde2c63e5d2b10aeaa3f2ff25c861a94906a54de0 (diff)
additional verification
-rw-r--r--ydb/core/tx/columnshard/engines/scheme/column_features.cpp23
-rw-r--r--ydb/core/tx/columnshard/engines/scheme/column_features.h5
2 files changed, 13 insertions, 15 deletions
diff --git a/ydb/core/tx/columnshard/engines/scheme/column_features.cpp b/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
index dd6341ec7a2..f039fb78147 100644
--- a/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
@@ -23,20 +23,17 @@ NArrow::NTransformation::ITransformer::TPtr TColumnFeatures::GetLoadTransformer(
}
std::shared_ptr<NKikimr::NOlap::TColumnLoader> TColumnFeatures::GetLoader(const TIndexInfo& info) const {
- if (!LoaderCache) {
- NArrow::NTransformation::ITransformer::TPtr transformer = GetLoadTransformer();
- auto schema = info.GetColumnSchema(ColumnId);
- if (!transformer) {
- LoaderCache = std::make_shared<TColumnLoader>(transformer,
- std::make_shared<NArrow::NSerialization::TBatchPayloadDeserializer>(schema),
- schema, ColumnId);
- } else {
- LoaderCache = std::make_shared<TColumnLoader>(transformer,
- std::make_shared<NArrow::NSerialization::TFullDataDeserializer>(),
- schema, ColumnId);
- }
+ NArrow::NTransformation::ITransformer::TPtr transformer = GetLoadTransformer();
+ auto schema = info.GetColumnSchema(ColumnId);
+ if (!transformer) {
+ return std::make_shared<TColumnLoader>(transformer,
+ std::make_shared<NArrow::NSerialization::TBatchPayloadDeserializer>(schema),
+ schema, ColumnId);
+ } else {
+ return std::make_shared<TColumnLoader>(transformer,
+ std::make_shared<NArrow::NSerialization::TFullDataDeserializer>(),
+ schema, ColumnId);
}
- return LoaderCache;
}
std::optional<NKikimr::NOlap::TColumnFeatures> TColumnFeatures::BuildFromProto(const NKikimrSchemeOp::TOlapColumnDescription& columnInfo, const ui32 columnId) {
diff --git a/ydb/core/tx/columnshard/engines/scheme/column_features.h b/ydb/core/tx/columnshard/engines/scheme/column_features.h
index 24e07ac7c61..d974810a9cc 100644
--- a/ydb/core/tx/columnshard/engines/scheme/column_features.h
+++ b/ydb/core/tx/columnshard/engines/scheme/column_features.h
@@ -89,6 +89,8 @@ public:
, ColumnId(columnId)
{
Y_VERIFY(ExpectedSchema);
+ auto fieldsCountStr = ::ToString(ExpectedSchema->num_fields());
+ Y_VERIFY(ExpectedSchema->num_fields() == 1, "%s", fieldsCountStr.data());
Y_VERIFY(Deserializer);
}
@@ -96,7 +98,7 @@ public:
return ColumnId;
}
- std::shared_ptr<arrow::Schema> GetExpectedSchema() const {
+ const std::shared_ptr<arrow::Schema>& GetExpectedSchema() const {
return ExpectedSchema;
}
@@ -121,7 +123,6 @@ private:
const ui32 ColumnId;
std::optional<NArrow::TCompression> Compression;
std::optional<NArrow::NDictionary::TEncodingSettings> DictionaryEncoding;
- mutable std::shared_ptr<TColumnLoader> LoaderCache;
public:
TColumnFeatures(const ui32 columnId)
: ColumnId(columnId)