diff options
| author | ivanmorozov <[email protected]> | 2023-09-22 09:59:05 +0300 |
|---|---|---|
| committer | ivanmorozov <[email protected]> | 2023-09-22 10:27:08 +0300 |
| commit | c4136bc3ed2fea6f8f2bdcfc8f1329f374fe9082 (patch) | |
| tree | 7d34b62ebbeb7bc1226b4b301df929700cbe6ff2 | |
| parent | de2c63e5d2b10aeaa3f2ff25c861a94906a54de0 (diff) | |
additional verification
| -rw-r--r-- | ydb/core/tx/columnshard/engines/scheme/column_features.cpp | 23 | ||||
| -rw-r--r-- | ydb/core/tx/columnshard/engines/scheme/column_features.h | 5 |
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) |
