diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp index 381eeb3340a14c..b3f3343a9c5b12 100644 --- a/be/src/olap/memtable.cpp +++ b/be/src/olap/memtable.cpp @@ -48,7 +48,7 @@ bvar::Adder g_memtable_input_block_allocated_size("memtable_input_block using namespace ErrorCode; -MemTable::MemTable(int64_t tablet_id, const TabletSchema* tablet_schema, +MemTable::MemTable(int64_t tablet_id, std::shared_ptr tablet_schema, const std::vector* slot_descs, TupleDescriptor* tuple_desc, bool enable_unique_key_mow, PartialUpdateInfo* partial_update_info, const std::shared_ptr& insert_mem_tracker, diff --git a/be/src/olap/memtable.h b/be/src/olap/memtable.h index d2dfafd972a20d..916067ba1193d2 100644 --- a/be/src/olap/memtable.h +++ b/be/src/olap/memtable.h @@ -129,7 +129,8 @@ class Tie { class RowInBlockComparator { public: - RowInBlockComparator(const TabletSchema* tablet_schema) : _tablet_schema(tablet_schema) {} + RowInBlockComparator(std::shared_ptr tablet_schema) + : _tablet_schema(tablet_schema) {} // call set_block before operator(). // only first time insert block to create _input_mutable_block, // so can not Comparator of construct to set pblock @@ -137,7 +138,7 @@ class RowInBlockComparator { int operator()(const RowInBlock* left, const RowInBlock* right) const; private: - const TabletSchema* _tablet_schema = nullptr; + std::shared_ptr _tablet_schema; vectorized::MutableBlock* _pblock = nullptr; // corresponds to Memtable::_input_mutable_block }; @@ -168,7 +169,7 @@ class MemTableStat { class MemTable { public: - MemTable(int64_t tablet_id, const TabletSchema* tablet_schema, + MemTable(int64_t tablet_id, std::shared_ptr tablet_schema, const std::vector* slot_descs, TupleDescriptor* tuple_desc, bool enable_unique_key_mow, PartialUpdateInfo* partial_update_info, const std::shared_ptr& insert_mem_tracker, @@ -209,7 +210,7 @@ class MemTable { bool _enable_unique_key_mow = false; bool _is_partial_update = false; const KeysType _keys_type; - const TabletSchema* _tablet_schema = nullptr; + std::shared_ptr _tablet_schema; std::shared_ptr _vec_row_comparator; diff --git a/be/src/olap/memtable_writer.cpp b/be/src/olap/memtable_writer.cpp index da6af4ffb803b3..93499a51cb8f89 100644 --- a/be/src/olap/memtable_writer.cpp +++ b/be/src/olap/memtable_writer.cpp @@ -207,8 +207,8 @@ void MemTableWriter::_reset_mem_table() { } { std::lock_guard l(_mem_table_ptr_lock); - _mem_table.reset(new MemTable(_req.tablet_id, _tablet_schema.get(), _req.slots, - _req.tuple_desc, _unique_key_mow, _partial_update_info.get(), + _mem_table.reset(new MemTable(_req.tablet_id, _tablet_schema, _req.slots, _req.tuple_desc, + _unique_key_mow, _partial_update_info.get(), mem_table_insert_tracker, mem_table_flush_tracker)); } diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp index aa7594f1e10a47..fc72bd568644fb 100644 --- a/be/src/olap/tablet.cpp +++ b/be/src/olap/tablet.cpp @@ -2902,7 +2902,7 @@ Status Tablet::sort_block(vectorized::Block& in_block, vectorized::Block& output vectorized::MutableBlock::build_mutable_block(&output_block); std::shared_ptr vec_row_comparator = - std::make_shared(_tablet_meta->tablet_schema().get()); + std::make_shared(_tablet_meta->tablet_schema()); vec_row_comparator->set_block(&mutable_input_block); std::vector> row_in_blocks;