You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2023/01/30 05:03:24 UTC
[doris] branch master updated: [refactor](remove unused code) Remove unused mempool declare or function params (#16222)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 4b6a4b3cf7 [refactor](remove unused code) Remove unused mempool declare or function params (#16222)
4b6a4b3cf7 is described below
commit 4b6a4b3cf76de146bcdec34f3e6e7d65cfe72fdb
Author: yiguolei <67...@qq.com>
AuthorDate: Mon Jan 30 13:03:18 2023 +0800
[refactor](remove unused code) Remove unused mempool declare or function params (#16222)
* Remove unused mempool declare or function params
---------
Co-authored-by: yiguolei <yi...@gmail.com>
---
be/src/exec/arrow/arrow_reader.h | 1 -
be/src/exec/arrow/parquet_reader.h | 1 -
be/src/exec/es/es_scroll_parser.cpp | 2 +-
be/src/exec/es/es_scroll_parser.h | 4 +-
be/src/exec/tablet_info.h | 2 -
be/src/exec/text_converter.cpp | 29 -----
be/src/exec/text_converter.h | 9 --
be/src/olap/base_tablet.h | 5 -
be/src/olap/field.h | 15 ---
be/src/olap/memtable.cpp | 2 -
be/src/olap/memtable.h | 3 -
be/src/olap/merger.cpp | 4 +-
be/src/olap/olap_common.h | 22 ----
be/src/olap/push_handler.cpp | 1 -
be/src/olap/push_handler.h | 1 -
be/src/olap/reader.h | 3 +-
.../olap/rowset/segment_v2/binary_prefix_page.cpp | 35 ------
be/src/olap/rowset/segment_v2/binary_prefix_page.h | 6 -
.../olap/rowset/segment_v2/bitmap_index_reader.cpp | 1 -
.../olap/rowset/segment_v2/bitmap_index_reader.h | 5 +-
be/src/olap/task/engine_checksum_task.cpp | 2 +-
be/src/olap/types.h | 51 +-------
be/src/olap/utils.cpp | 137 ---------------------
be/src/olap/utils.h | 13 --
be/src/runtime/collection_value.h | 1 -
be/src/runtime/fold_constant_executor.cpp | 1 -
be/src/runtime/fold_constant_executor.h | 1 -
be/src/runtime/raw_value.h | 1 -
be/src/runtime/runtime_state.cpp | 11 --
be/src/runtime/runtime_state.h | 27 ----
be/src/udf/udf.cpp | 8 --
be/src/udf/udf.h | 6 -
be/src/util/dummy_runtime_profile.h | 37 ------
be/src/vec/core/block.h | 1 -
be/src/vec/exec/data_gen_functions/vnumbers_tvf.h | 1 -
be/src/vec/exec/scan/new_es_scanner.cpp | 6 +-
be/src/vec/exec/scan/new_es_scanner.h | 2 -
be/src/vec/exec/scan/new_olap_scanner.cpp | 2 +-
be/src/vec/exec/scan/vfile_scanner.cpp | 1 -
be/src/vec/exec/scan/vfile_scanner.h | 3 -
be/src/vec/exec/vdata_gen_scan_node.h | 1 -
be/src/vec/exec/vmysql_scan_node.cpp | 8 --
be/src/vec/exec/vmysql_scan_node.h | 2 -
be/src/vec/exec/vschema_scan_node.cpp | 10 --
be/src/vec/exec/vschema_scan_node.h | 2 -
be/src/vec/olap/block_reader.cpp | 13 +-
be/src/vec/olap/block_reader.h | 17 ++-
be/src/vec/olap/vertical_block_reader.cpp | 10 +-
be/src/vec/olap/vertical_block_reader.h | 14 +--
be/test/olap/storage_types_test.cpp | 9 --
50 files changed, 32 insertions(+), 517 deletions(-)
diff --git a/be/src/exec/arrow/arrow_reader.h b/be/src/exec/arrow/arrow_reader.h
index b5e5aa22d6..ac16202eb9 100644
--- a/be/src/exec/arrow/arrow_reader.h
+++ b/be/src/exec/arrow/arrow_reader.h
@@ -45,7 +45,6 @@ class TBrokerRangeDesc;
class TNetworkAddress;
class RuntimeState;
class SlotDescriptor;
-class MemPool;
class FileReader;
struct Statistics {
diff --git a/be/src/exec/arrow/parquet_reader.h b/be/src/exec/arrow/parquet_reader.h
index 4de5b5167c..ac47a496cb 100644
--- a/be/src/exec/arrow/parquet_reader.h
+++ b/be/src/exec/arrow/parquet_reader.h
@@ -52,7 +52,6 @@ class TBrokerRangeDesc;
class TNetworkAddress;
class RuntimeState;
class SlotDescriptor;
-class MemPool;
class FileReader;
class RowGroupReader;
diff --git a/be/src/exec/es/es_scroll_parser.cpp b/be/src/exec/es/es_scroll_parser.cpp
index 6c6a5240f5..2b8ab5c079 100644
--- a/be/src/exec/es/es_scroll_parser.cpp
+++ b/be/src/exec/es/es_scroll_parser.cpp
@@ -304,7 +304,7 @@ const std::string& ScrollParser::get_scroll_id() {
Status ScrollParser::fill_columns(const TupleDescriptor* tuple_desc,
std::vector<vectorized::MutableColumnPtr>& columns,
- MemPool* tuple_pool, bool* line_eof,
+ bool* line_eof,
const std::map<std::string, std::string>& docvalue_context) {
*line_eof = true;
diff --git a/be/src/exec/es/es_scroll_parser.h b/be/src/exec/es/es_scroll_parser.h
index 40d421a924..3a4fe2c9c3 100644
--- a/be/src/exec/es/es_scroll_parser.h
+++ b/be/src/exec/es/es_scroll_parser.h
@@ -35,8 +35,8 @@ public:
Status parse(const std::string& scroll_result, bool exactly_once = false);
Status fill_columns(const TupleDescriptor* _tuple_desc,
- std::vector<vectorized::MutableColumnPtr>& columns, MemPool* mem_pool,
- bool* line_eof, const std::map<std::string, std::string>& docvalue_context);
+ std::vector<vectorized::MutableColumnPtr>& columns, bool* line_eof,
+ const std::map<std::string, std::string>& docvalue_context);
const std::string& get_scroll_id();
int get_size() const;
diff --git a/be/src/exec/tablet_info.h b/be/src/exec/tablet_info.h
index 76d4fa8094..869db83ec9 100644
--- a/be/src/exec/tablet_info.h
+++ b/be/src/exec/tablet_info.h
@@ -34,8 +34,6 @@
namespace doris {
-class MemPool;
-
struct OlapTableIndexSchema {
int64_t index_id;
std::vector<SlotDescriptor*> slots;
diff --git a/be/src/exec/text_converter.cpp b/be/src/exec/text_converter.cpp
index 0839578098..4d85ccdb8b 100644
--- a/be/src/exec/text_converter.cpp
+++ b/be/src/exec/text_converter.cpp
@@ -188,35 +188,6 @@ bool TextConverter::write_vec_column(const SlotDescriptor* slot_desc,
return true;
}
-void TextConverter::unescape_string(StringRef* value, MemPool* pool) {
- char* new_data = reinterpret_cast<char*>(pool->allocate(value->size));
- unescape_string(value->data, new_data, &value->size);
- value->data = new_data;
-}
-
-void TextConverter::unescape_string(const char* src, char* dest, size_t* len) {
- char* dest_ptr = dest;
- const char* end = src + *len;
- bool escape_next_char = false;
-
- while (src < end) {
- if (*src == _escape_char) {
- escape_next_char = !escape_next_char;
- } else {
- escape_next_char = false;
- }
-
- if (escape_next_char) {
- ++src;
- } else {
- *dest_ptr++ = *src++;
- }
- }
-
- char* dest_start = reinterpret_cast<char*>(dest);
- *len = dest_ptr - dest_start;
-}
-
void TextConverter::unescape_string_on_spot(const char* src, size_t* len) {
char* dest_ptr = const_cast<char*>(src);
const char* end = src + *len;
diff --git a/be/src/exec/text_converter.h b/be/src/exec/text_converter.h
index b8aa8fb5ba..d1b32a094e 100644
--- a/be/src/exec/text_converter.h
+++ b/be/src/exec/text_converter.h
@@ -20,7 +20,6 @@
#include "vec/columns/column.h"
namespace doris {
-class MemPool;
class SlotDescriptor;
class Status;
struct StringRef;
@@ -46,15 +45,7 @@ public:
bool write_vec_column(const SlotDescriptor* slot_desc, vectorized::IColumn* nullable_col_ptr,
const char* data, size_t len, bool copy_string, bool need_escape,
size_t rows);
-
- // Removes escape characters from len characters of the null-terminated string src,
- // and copies the unescaped string into dest, changing *len to the unescaped length.
- // No null-terminator is added to dest.
- void unescape_string(const char* src, char* dest, size_t* len);
void unescape_string_on_spot(const char* src, size_t* len);
- // Removes escape characters from 'str', allocating a new string from pool.
- // 'str' is updated with the new ptr and length.
- void unescape_string(StringRef* str, MemPool* pool);
private:
char _escape_char;
diff --git a/be/src/olap/base_tablet.h b/be/src/olap/base_tablet.h
index 52a2ca2be9..bf04460f31 100644
--- a/be/src/olap/base_tablet.h
+++ b/be/src/olap/base_tablet.h
@@ -58,7 +58,6 @@ public:
int64_t replica_id() const;
int32_t schema_hash() const;
int16_t shard_id() const;
- bool equal(int64_t tablet_id, int32_t schema_hash) const;
const std::string& storage_policy() const { return _tablet_meta->storage_policy(); }
@@ -142,10 +141,6 @@ inline int16_t BaseTablet::shard_id() const {
return _tablet_meta->shard_id();
}
-inline bool BaseTablet::equal(int64_t id, int32_t hash) const {
- return (tablet_id() == id) && (schema_hash() == hash);
-}
-
inline TabletSchemaSPtr BaseTablet::tablet_schema() const {
return _schema;
}
diff --git a/be/src/olap/field.h b/be/src/olap/field.h
index 3a2dd48d56..dc527720f7 100644
--- a/be/src/olap/field.h
+++ b/be/src/olap/field.h
@@ -86,21 +86,6 @@ public:
return local;
}
- // Test if these two cell is equal with each other
- template <typename LhsCellType, typename RhsCellType>
- bool equal(const LhsCellType& lhs, const RhsCellType& rhs) const {
- bool l_null = lhs.is_null();
- bool r_null = rhs.is_null();
-
- if (l_null != r_null) {
- return false;
- } else if (l_null) {
- return true;
- } else {
- return _type_info->equal(lhs.cell_ptr(), rhs.cell_ptr());
- }
- }
-
// Only compare column content, without considering nullptr condition.
// RETURNS:
// 0 means equal,
diff --git a/be/src/olap/memtable.cpp b/be/src/olap/memtable.cpp
index cb9dac3b98..731559e5e4 100644
--- a/be/src/olap/memtable.cpp
+++ b/be/src/olap/memtable.cpp
@@ -62,7 +62,6 @@ MemTable::MemTable(TabletSharedPtr tablet, Schema* schema, const TabletSchema* t
_insert_mem_tracker_use_hook = std::make_unique<MemTracker>(
fmt::format("MemTableHookInsert:TabletId={}", std::to_string(tablet_id())));
#endif
- _buffer_mem_pool = std::make_unique<MemPool>(_insert_mem_tracker.get());
_table_mem_pool = std::make_unique<MemPool>(_insert_mem_tracker.get());
_vec_row_comparator = std::make_shared<RowInBlockComparator>(_schema);
// TODO: Support ZOrderComparator in the future
@@ -134,7 +133,6 @@ MemTable::~MemTable() {
}
std::for_each(_row_in_blocks.begin(), _row_in_blocks.end(), std::default_delete<RowInBlock>());
_insert_mem_tracker->release(_mem_usage);
- _buffer_mem_pool->free_all();
_table_mem_pool->free_all();
_flush_mem_tracker->set_consumption(0);
DCHECK_EQ(_insert_mem_tracker->consumption(), 0)
diff --git a/be/src/olap/memtable.h b/be/src/olap/memtable.h
index 0cd504ca3f..0135b99247 100644
--- a/be/src/olap/memtable.h
+++ b/be/src/olap/memtable.h
@@ -128,9 +128,6 @@ private:
// The memory value automatically tracked by the mem hook is 20% less than the manually recorded
// value in the memtable, because some freed memory is not allocated in the DeltaWriter.
std::unique_ptr<MemTracker> _insert_mem_tracker_use_hook;
- // This is a buffer, to hold the memory referenced by the rows that have not
- // been inserted into the SkipList
- std::unique_ptr<MemPool> _buffer_mem_pool;
// Only the rows will be inserted into SkipList can allocate memory from _table_mem_pool.
// In this way, we can make MemTable::memory_usage() to be more accurate, and eventually
// reduce the number of segment files that are generated by current load
diff --git a/be/src/olap/merger.cpp b/be/src/olap/merger.cpp
index 83fc250e85..306a6e6047 100644
--- a/be/src/olap/merger.cpp
+++ b/be/src/olap/merger.cpp
@@ -87,7 +87,7 @@ Status Merger::vmerge_rowsets(TabletSharedPtr tablet, ReaderType reader_type,
while (!eof && !StorageEngine::instance()->stopped()) {
// Read one block from block reader
RETURN_NOT_OK_LOG(
- reader.next_block_with_aggregation(&block, nullptr, nullptr, &eof),
+ reader.next_block_with_aggregation(&block, &eof),
"failed to read next block when merging rowsets of tablet " + tablet->full_name());
RETURN_NOT_OK_LOG(
dst_rowset_writer->add_block(&block),
@@ -214,7 +214,7 @@ Status Merger::vertical_compact_one_group(
while (!eof && !StorageEngine::instance()->stopped()) {
// Read one block from block reader
RETURN_NOT_OK_LOG(
- reader.next_block_with_aggregation(&block, nullptr, nullptr, &eof),
+ reader.next_block_with_aggregation(&block, &eof),
"failed to read next block when merging rowsets of tablet " + tablet->full_name());
RETURN_NOT_OK_LOG(
dst_rowset_writer->add_columns(&block, column_group, is_key, max_rows_per_segment),
diff --git a/be/src/olap/olap_common.h b/be/src/olap/olap_common.h
index e62c23a3e8..dfc01b8508 100644
--- a/be/src/olap/olap_common.h
+++ b/be/src/olap/olap_common.h
@@ -102,18 +102,6 @@ struct TabletSize {
size_t tablet_size;
};
-enum RangeCondition {
- GT = 0, // greater than
- GE = 1, // greater or equal
- LT = 2, // less than
- LE = 3, // less or equal
-};
-
-enum DelCondSatisfied {
- DEL_SATISFIED = 0, //satisfy delete condition
- DEL_NOT_SATISFIED = 1, //not satisfy delete condition
- DEL_PARTIAL_SATISFIED = 2, //partially satisfy delete condition
-};
// Define all data types supported by Field.
// If new filed_type is defined, not only new TypeInfo may need be defined,
// but also some functions like get_type_info in types.cpp need to be changed.
@@ -173,16 +161,6 @@ enum FieldAggregationMethod {
OLAP_FIELD_AGGREGATION_QUANTILE_UNION = 9
};
-// Compression algorithm type
-enum OLAPCompressionType {
- // Compression algorithm used for network transmission, low compression rate, low cpu overhead
- OLAP_COMP_TRANSPORT = 1,
- // Compression algorithm used for hard disk data, with high compression rate and high CPU overhead
- OLAP_COMP_STORAGE = 2,
- // The compression algorithm used for storage, the compression rate is low, and the cpu overhead is low
- OLAP_COMP_LZ4 = 3,
-};
-
enum PushType {
PUSH_NORMAL = 1, // for broker/hadoop load, not used any more
PUSH_FOR_DELETE = 2, // for delete
diff --git a/be/src/olap/push_handler.cpp b/be/src/olap/push_handler.cpp
index 731911570b..56c202a300 100644
--- a/be/src/olap/push_handler.cpp
+++ b/be/src/olap/push_handler.cpp
@@ -320,7 +320,6 @@ Status PushBrokerReader::init(const Schema* schema, const TBrokerScanRange& t_sc
}
_runtime_profile = _runtime_state->runtime_profile();
_runtime_profile->set_name("PushBrokerReader");
- _tuple_buffer_pool.reset(new MemPool());
_counter.reset(new ScannerCounter());
diff --git a/be/src/olap/push_handler.h b/be/src/olap/push_handler.h
index 63e4374e72..ae6c67431d 100644
--- a/be/src/olap/push_handler.h
+++ b/be/src/olap/push_handler.h
@@ -95,7 +95,6 @@ private:
bool _eof;
std::unique_ptr<RuntimeState> _runtime_state;
RuntimeProfile* _runtime_profile;
- std::unique_ptr<MemPool> _tuple_buffer_pool;
std::unique_ptr<ScannerCounter> _counter;
std::unique_ptr<BaseScanner> _scanner;
// Not used, just for placeholding
diff --git a/be/src/olap/reader.h b/be/src/olap/reader.h
index 9bb10b69d3..ea74256e1e 100644
--- a/be/src/olap/reader.h
+++ b/be/src/olap/reader.h
@@ -144,8 +144,7 @@ public:
// Return OK and set `*eof` to true when no more rows can be read.
// Return others when unexpected error happens.
// TODO: Rethink here we still need mem_pool and agg_pool?
- virtual Status next_block_with_aggregation(vectorized::Block* block, MemPool* mem_pool,
- ObjectPool* agg_pool, bool* eof) {
+ virtual Status next_block_with_aggregation(vectorized::Block* block, bool* eof) {
return Status::Error<ErrorCode::READER_INITIALIZE_ERROR>();
}
diff --git a/be/src/olap/rowset/segment_v2/binary_prefix_page.cpp b/be/src/olap/rowset/segment_v2/binary_prefix_page.cpp
index 41314bf155..cdedbf3240 100644
--- a/be/src/olap/rowset/segment_v2/binary_prefix_page.cpp
+++ b/be/src/olap/rowset/segment_v2/binary_prefix_page.cpp
@@ -207,41 +207,6 @@ Status BinaryPrefixPageDecoder::seek_at_or_after_value(const void* value, bool*
}
}
-Status BinaryPrefixPageDecoder::_read_next_value_to_output(Slice prev, MemPool* mem_pool,
- Slice* output) {
- if (_cur_pos >= _num_values) {
- return Status::NotFound("no more value to read");
- }
- uint32_t shared_len;
- uint32_t non_shared_len;
- auto data_ptr = _decode_value_lengths(_next_ptr, &shared_len, &non_shared_len);
- if (data_ptr == nullptr) {
- return Status::Corruption("Failed to decode value at position {}", _cur_pos);
- }
-
- output->size = shared_len + non_shared_len;
- if (output->size > 0) {
- output->data = (char*)mem_pool->allocate(output->size);
- memcpy(output->data, prev.data, shared_len);
- memcpy(output->data + shared_len, data_ptr, non_shared_len);
- }
-
- _next_ptr = data_ptr + non_shared_len;
- return Status::OK();
-}
-
-Status BinaryPrefixPageDecoder::_copy_current_to_output(MemPool* mem_pool, Slice* output) {
- output->size = _current_value.size();
- if (output->size > 0) {
- output->data = (char*)mem_pool->allocate(output->size);
- if (output->data == nullptr) {
- return Status::MemoryAllocFailed("failed to allocate {} bytes", output->size);
- }
- memcpy(output->data, _current_value.data(), output->size);
- }
- return Status::OK();
-}
-
Status BinaryPrefixPageDecoder::next_batch(size_t* n, vectorized::MutableColumnPtr& dst) {
DCHECK(_parsed);
if (PREDICT_FALSE(*n == 0 || _cur_pos >= _num_values)) {
diff --git a/be/src/olap/rowset/segment_v2/binary_prefix_page.h b/be/src/olap/rowset/segment_v2/binary_prefix_page.h
index 97d992d1e9..a3be62bbf9 100644
--- a/be/src/olap/rowset/segment_v2/binary_prefix_page.h
+++ b/be/src/olap/rowset/segment_v2/binary_prefix_page.h
@@ -145,12 +145,6 @@ private:
// seek to the first value at the given restart point
Status _seek_to_restart_point(size_t restart_point_index);
- // like _read_next_value, but directly copy next value to output, not _current_value
- Status _read_next_value_to_output(Slice prev, MemPool* mem_pool, Slice* output);
-
- // copy `_current_value` into `output`.
- Status _copy_current_to_output(MemPool* mem_pool, Slice* output);
-
Slice _data;
bool _parsed = false;
size_t _num_values = 0;
diff --git a/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp b/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp
index 072c12b02d..c101e3e7da 100644
--- a/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp
@@ -60,7 +60,6 @@ Status BitmapIndexIterator::read_bitmap(rowid_t ordinal, roaring::Roaring* resul
DCHECK(num_to_read == num_read);
*result = roaring::Roaring::read(column->get_data_at(0).data, false);
- _pool->clear();
return Status::OK();
}
diff --git a/be/src/olap/rowset/segment_v2/bitmap_index_reader.h b/be/src/olap/rowset/segment_v2/bitmap_index_reader.h
index 15eef46aa5..c515e6452b 100644
--- a/be/src/olap/rowset/segment_v2/bitmap_index_reader.h
+++ b/be/src/olap/rowset/segment_v2/bitmap_index_reader.h
@@ -24,7 +24,6 @@
#include "io/fs/file_reader.h"
#include "olap/rowset/segment_v2/common.h"
#include "olap/rowset/segment_v2/indexed_column_reader.h"
-#include "runtime/mem_pool.h"
namespace doris {
@@ -70,8 +69,7 @@ public:
: _reader(reader),
_dict_column_iter(reader->_dict_column_reader.get()),
_bitmap_column_iter(reader->_bitmap_column_reader.get()),
- _current_rowid(0),
- _pool(new MemPool()) {}
+ _current_rowid(0) {}
bool has_null_bitmap() const { return _reader->_has_null; }
@@ -108,7 +106,6 @@ private:
IndexedColumnIterator _dict_column_iter;
IndexedColumnIterator _bitmap_column_iter;
rowid_t _current_rowid;
- std::unique_ptr<MemPool> _pool;
};
} // namespace segment_v2
diff --git a/be/src/olap/task/engine_checksum_task.cpp b/be/src/olap/task/engine_checksum_task.cpp
index c298b104c5..1d6c3e52a3 100644
--- a/be/src/olap/task/engine_checksum_task.cpp
+++ b/be/src/olap/task/engine_checksum_task.cpp
@@ -78,7 +78,7 @@ Status EngineChecksumTask::_compute_checksum() {
SipHash block_hash;
uint64_t rows = 0;
while (!eof) {
- RETURN_IF_ERROR(reader.next_block_with_aggregation(&block, nullptr, nullptr, &eof));
+ RETURN_IF_ERROR(reader.next_block_with_aggregation(&block, &eof));
rows += block.rows();
block.update_hash(block_hash);
diff --git a/be/src/olap/types.h b/be/src/olap/types.h
index 3fcf6e4b48..cdd3e9bf1b 100644
--- a/be/src/olap/types.h
+++ b/be/src/olap/types.h
@@ -62,7 +62,6 @@ TypeInfoPtr create_dynamic_type_info_ptr(const TypeInfo* type_info);
class TypeInfo {
public:
virtual ~TypeInfo() = default;
- virtual bool equal(const void* left, const void* right) const = 0;
virtual int cmp(const void* left, const void* right) const = 0;
virtual void deep_copy(void* dest, const void* src, MemPool* mem_pool) const = 0;
@@ -87,8 +86,6 @@ public:
class ScalarTypeInfo : public TypeInfo {
public:
- bool equal(const void* left, const void* right) const override { return _equal(left, right); }
-
int cmp(const void* left, const void* right) const override { return _cmp(left, right); }
void deep_copy(void* dest, const void* src, MemPool* mem_pool) const override {
@@ -116,8 +113,7 @@ public:
template <typename TypeTraitsClass>
ScalarTypeInfo(TypeTraitsClass t)
- : _equal(TypeTraitsClass::equal),
- _cmp(TypeTraitsClass::cmp),
+ : _cmp(TypeTraitsClass::cmp),
_deep_copy(TypeTraitsClass::deep_copy),
_direct_copy(TypeTraitsClass::direct_copy),
_direct_copy_may_cut(TypeTraitsClass::direct_copy_may_cut),
@@ -129,7 +125,6 @@ public:
_field_type(TypeTraitsClass::type) {}
private:
- bool (*_equal)(const void* left, const void* right);
int (*_cmp)(const void* left, const void* right);
void (*_shallow_copy)(void* dest, const void* src);
@@ -156,41 +151,6 @@ public:
: _item_type_info(std::move(item_type_info)), _item_size(_item_type_info->size()) {}
~ArrayTypeInfo() override = default;
- inline bool equal(const void* left, const void* right) const override {
- auto l_value = reinterpret_cast<const CollectionValue*>(left);
- auto r_value = reinterpret_cast<const CollectionValue*>(right);
- if (l_value->length() != r_value->length()) {
- return false;
- }
- size_t len = l_value->length();
-
- if (!l_value->has_null() && !r_value->has_null()) {
- for (size_t i = 0; i < len; ++i) {
- if (!_item_type_info->equal((uint8_t*)(l_value->data()) + i * _item_size,
- (uint8_t*)(r_value->data()) + i * _item_size)) {
- return false;
- }
- }
- } else {
- for (size_t i = 0; i < len; ++i) {
- if (l_value->is_null_at(i)) {
- if (r_value->is_null_at(i)) { // both are null
- continue;
- } else { // left is null & right is not null
- return false;
- }
- } else if (r_value->is_null_at(i)) { // left is not null & right is null
- return false;
- }
- if (!_item_type_info->equal((uint8_t*)(l_value->data()) + i * _item_size,
- (uint8_t*)(r_value->data()) + i * _item_size)) {
- return false;
- }
- }
- }
- return true;
- }
-
int cmp(const void* left, const void* right) const override {
auto l_value = reinterpret_cast<const CollectionValue*>(left);
auto r_value = reinterpret_cast<const CollectionValue*>(right);
@@ -522,10 +482,6 @@ struct BaseFieldtypeTraits : public CppTypeTraits<field_type> {
memcpy(address, &value, sizeof(CppType));
}
- static inline bool equal(const void* left, const void* right) {
- return get_cpp_type_value(left) == get_cpp_type_value(right);
- }
-
static inline int cmp(const void* left, const void* right) {
CppType left_value = get_cpp_type_value(left);
CppType right_value = get_cpp_type_value(right);
@@ -1014,11 +970,6 @@ struct FieldTypeTraits<OLAP_FIELD_TYPE_DATETIME>
template <>
struct FieldTypeTraits<OLAP_FIELD_TYPE_CHAR> : public BaseFieldtypeTraits<OLAP_FIELD_TYPE_CHAR> {
- static bool equal(const void* left, const void* right) {
- auto l_slice = reinterpret_cast<const Slice*>(left);
- auto r_slice = reinterpret_cast<const Slice*>(right);
- return *l_slice == *r_slice;
- }
static int cmp(const void* left, const void* right) {
auto l_slice = reinterpret_cast<const Slice*>(left);
auto r_slice = reinterpret_cast<const Slice*>(right);
diff --git a/be/src/olap/utils.cpp b/be/src/olap/utils.cpp
index 58abdeb62b..46919b789d 100644
--- a/be/src/olap/utils.cpp
+++ b/be/src/olap/utils.cpp
@@ -59,143 +59,6 @@ using std::vector;
namespace doris {
using namespace ErrorCode;
-Status olap_compress(const char* src_buf, size_t src_len, char* dest_buf, size_t dest_len,
- size_t* written_len, OLAPCompressionType compression_type) {
- if (nullptr == src_buf || nullptr == dest_buf || nullptr == written_len) {
- LOG(WARNING) << "input param with nullptr pointer. src_buf is nullptr: "
- << (src_buf == nullptr ? "true" : "false") << " src_buf=["
- << (src_buf == nullptr ? "nullptr" : src_buf)
- << "], dest_buf is nullptr: " << (dest_buf == nullptr ? "true" : "false")
- << " dest_buf=[" << (dest_buf == nullptr ? "nullptr" : dest_buf)
- << "], written_len is nullptr: "
- << (written_len == nullptr ? "true" : " false") << " written_len=["
- << (dest_buf == nullptr ? -1 : *dest_buf) << "]";
-
- return Status::Error<INVALID_ARGUMENT>();
- }
-
- *written_len = dest_len;
- switch (compression_type) {
-#ifdef DORIS_WITH_LZO
- case OLAP_COMP_TRANSPORT: {
- // A small buffer(hundreds of bytes) for LZO1X
- unsigned char mem[LZO1X_1_MEM_COMPRESS];
- int lzo_res = 0;
- if (LZO_E_OK != (lzo_res = lzo1x_1_compress(
- reinterpret_cast<const lzo_byte*>(src_buf), src_len,
- reinterpret_cast<unsigned char*>(dest_buf), written_len, mem))) {
- LOG(WARNING) << "compress failed. src_len=" << src_len << "; dest_len= " << dest_len
- << "; written_len=" << *written_len << "; lzo_res=" << lzo_res;
-
- return Status::Error<COMPRESS_ERROR>();
- } else if (*written_len > dest_len) {
- VLOG_NOTICE << "buffer overflow when compressing. "
- << "dest_len=" << dest_len << ", written_len=" << *written_len;
-
- return Status::Error<BUFFER_OVERFLOW>();
- }
- break;
- }
- case OLAP_COMP_STORAGE: {
- // data for LZO1C_99
- unsigned char mem[LZO1C_99_MEM_COMPRESS];
- int lzo_res = 0;
- if (LZO_E_OK != (lzo_res = lzo1c_99_compress(
- reinterpret_cast<const lzo_byte*>(src_buf), src_len,
- reinterpret_cast<unsigned char*>(dest_buf), written_len, mem))) {
- LOG(WARNING) << "compress failed. src_len=" << src_len << "; dest_len= " << dest_len
- << "; written_len=" << *written_len << "; lzo_res=" << lzo_res;
-
- return Status::Error<COMPRESS_ERROR>();
- } else if (*written_len > dest_len) {
- VLOG_NOTICE << "buffer overflow when compressing. "
- << ", dest_len=" << dest_len << ", written_len=" << *written_len;
-
- return Status::Error<BUFFER_OVERFLOW>();
- }
- break;
- }
-#endif
-
- case OLAP_COMP_LZ4: {
- // int lz4_res = LZ4_compress_limitedOutput(src_buf, dest_buf, src_len, dest_len);
- int lz4_res = LZ4_compress_default(src_buf, dest_buf, src_len, dest_len);
- *written_len = lz4_res;
- if (0 == lz4_res) {
- VLOG_TRACE << "compress failed. src_len=" << src_len << ", dest_len=" << dest_len
- << ", written_len=" << *written_len << ", lz4_res=" << lz4_res;
- return Status::Error<BUFFER_OVERFLOW>();
- }
- break;
- }
- default:
- LOG(WARNING) << "unknown compression type. [type=" << compression_type << "]";
- break;
- }
- return Status::OK();
-}
-
-Status olap_decompress(const char* src_buf, size_t src_len, char* dest_buf, size_t dest_len,
- size_t* written_len, OLAPCompressionType compression_type) {
- if (nullptr == src_buf || nullptr == dest_buf || nullptr == written_len) {
- LOG(WARNING) << "input param with nullptr pointer. [src_buf=" << src_buf
- << " dest_buf=" << dest_buf << " written_len=" << written_len << "]";
-
- return Status::Error<INVALID_ARGUMENT>();
- }
-
- *written_len = dest_len;
- switch (compression_type) {
-#ifdef DORIS_WITH_LZO
- case OLAP_COMP_TRANSPORT: {
- int lzo_res = lzo1x_decompress_safe(reinterpret_cast<const lzo_byte*>(src_buf), src_len,
- reinterpret_cast<unsigned char*>(dest_buf), written_len,
- nullptr);
- if (LZO_E_OK != lzo_res) {
- LOG(WARNING) << "decompress failed. src_len=" << src_len << "; dest_len= " << dest_len
- << "; written_len=" << *written_len << "; lzo_res=" << lzo_res;
- return Status::Error<DECOMPRESS_ERROR>();
- } else if (*written_len > dest_len) {
- LOG(WARNING) << "buffer overflow when decompressing. [dest_len=" << dest_len
- << " written_len=" << *written_len << "]";
- return Status::Error<BUFFER_OVERFLOW>();
- }
- break;
- }
- case OLAP_COMP_STORAGE: {
- int lzo_res = lzo1c_decompress_safe(reinterpret_cast<const lzo_byte*>(src_buf), src_len,
- reinterpret_cast<unsigned char*>(dest_buf), written_len,
- nullptr);
- if (LZO_E_OK != lzo_res) {
- LOG(WARNING) << "compress failed. src_len=" << src_len << "; dest_len= " << dest_len
- << "; written_len=" << *written_len << "; lzo_res=" << lzo_res;
- return Status::Error<DECOMPRESS_ERROR>();
- } else if (*written_len > dest_len) {
- LOG(WARNING) << "buffer overflow when decompressing. [dest_len=" << dest_len
- << " written_len=" << *written_len << "]";
- return Status::Error<BUFFER_OVERFLOW>();
- }
- break;
- }
-#endif
-
- case OLAP_COMP_LZ4: {
- int lz4_res = LZ4_decompress_safe(src_buf, dest_buf, src_len, dest_len);
- *written_len = lz4_res;
- if (lz4_res < 0) {
- LOG(WARNING) << "decompress failed. src_len=" << src_len << "; dest_len= " << dest_len
- << "; written_len=" << *written_len << "; lzo_res=" << lz4_res;
- return Status::Error<BUFFER_OVERFLOW>();
- }
- break;
- }
- default:
- LOG(FATAL) << "unknown compress kind. kind=" << compression_type;
- break;
- }
- return Status::OK();
-}
-
uint32_t olap_adler32(uint32_t adler, const char* buf, size_t len) {
return adler32(adler, reinterpret_cast<const Bytef*>(buf), len);
}
diff --git a/be/src/olap/utils.h b/be/src/olap/utils.h
index e9a542eb8e..fdf6a7564b 100644
--- a/be/src/olap/utils.h
+++ b/be/src/olap/utils.h
@@ -105,19 +105,6 @@ void _destruct_object(const void* obj, void*) {
delete ((const T*)obj);
}
-template <typename T>
-void _destruct_array(const void* array, void*) {
- delete[] ((const T*)array);
-}
-
-// 根据压缩类型的不同,执行压缩。dest_buf_len是dest_buf的最大长度,
-// 通过指针返回的written_len是实际写入的长度。
-Status olap_compress(const char* src_buf, size_t src_len, char* dest_buf, size_t dest_len,
- size_t* written_len, OLAPCompressionType compression_type);
-
-Status olap_decompress(const char* src_buf, size_t src_len, char* dest_buf, size_t dest_len,
- size_t* written_len, OLAPCompressionType compression_type);
-
// 计算adler32的包装函数
// 第一次使用的时候第一个参数传宏ADLER32_INIT, 之后的调用传上次计算的结果
#define ADLER32_INIT adler32(0L, Z_NULL, 0)
diff --git a/be/src/runtime/collection_value.h b/be/src/runtime/collection_value.h
index fe54b37f6d..15e29b88f8 100644
--- a/be/src/runtime/collection_value.h
+++ b/be/src/runtime/collection_value.h
@@ -36,7 +36,6 @@ struct ArrayIteratorFunctionsBase;
class ArrayIterator;
class Status;
class ObjectPool;
-class MemPool;
struct TypeDescriptor;
template <PrimitiveType type>
diff --git a/be/src/runtime/fold_constant_executor.cpp b/be/src/runtime/fold_constant_executor.cpp
index b98f4f4411..dbfbacf0b2 100644
--- a/be/src/runtime/fold_constant_executor.cpp
+++ b/be/src/runtime/fold_constant_executor.cpp
@@ -125,7 +125,6 @@ Status FoldConstantExecutor::_init(const TQueryGlobals& query_globals) {
_runtime_profile = _runtime_state->runtime_profile();
_runtime_profile->set_name("FoldConstantExpr");
_mem_tracker = std::make_unique<MemTracker>("FoldConstantExpr");
- _mem_pool.reset(new MemPool(_mem_tracker.get()));
return Status::OK();
}
diff --git a/be/src/runtime/fold_constant_executor.h b/be/src/runtime/fold_constant_executor.h
index 47d334bacd..90ace19a32 100644
--- a/be/src/runtime/fold_constant_executor.h
+++ b/be/src/runtime/fold_constant_executor.h
@@ -51,7 +51,6 @@ private:
std::unique_ptr<RuntimeState> _runtime_state;
std::unique_ptr<MemTracker> _mem_tracker;
RuntimeProfile* _runtime_profile = nullptr;
- std::unique_ptr<MemPool> _mem_pool;
ObjectPool _pool;
static TUniqueId _dummy_id;
};
diff --git a/be/src/runtime/raw_value.h b/be/src/runtime/raw_value.h
index 74dbedf246..6315566830 100644
--- a/be/src/runtime/raw_value.h
+++ b/be/src/runtime/raw_value.h
@@ -31,7 +31,6 @@
namespace doris {
-class MemPool;
class SlotDescriptor;
class Tuple;
diff --git a/be/src/runtime/runtime_state.cpp b/be/src/runtime/runtime_state.cpp
index 03e2b51797..c2e0700678 100644
--- a/be/src/runtime/runtime_state.cpp
+++ b/be/src/runtime/runtime_state.cpp
@@ -147,7 +147,6 @@ RuntimeState::RuntimeState()
}
RuntimeState::~RuntimeState() {
- _block_mgr2.reset();
// close error log file
if (_error_log_file != nullptr && _error_log_file->is_open()) {
_error_log_file->close();
@@ -219,16 +218,6 @@ Status RuntimeState::init_mem_trackers(const TUniqueId& query_id) {
return Status::OK();
}
-bool RuntimeState::error_log_is_empty() {
- std::lock_guard<std::mutex> l(_error_log_lock);
- return (_error_log.size() > 0);
-}
-
-std::string RuntimeState::error_log() {
- std::lock_guard<std::mutex> l(_error_log_lock);
- return boost::algorithm::join(_error_log, "\n");
-}
-
bool RuntimeState::log_error(const std::string& error) {
std::lock_guard<std::mutex> l(_error_log_lock);
diff --git a/be/src/runtime/runtime_state.h b/be/src/runtime/runtime_state.h
index 30608333ae..8004373a08 100644
--- a/be/src/runtime/runtime_state.h
+++ b/be/src/runtime/runtime_state.h
@@ -43,7 +43,6 @@ class DataStreamRecvr;
class ResultBufferMgr;
class TmpFileMgr;
class BufferedBlockMgr;
-class BufferedBlockMgr2;
class LoadErrorHub;
class RowDescriptor;
class RuntimeFilterMgr;
@@ -99,7 +98,6 @@ public:
const std::string& timezone() const { return _timezone; }
const cctz::time_zone& timezone_obj() const { return _timezone_obj; }
const std::string& user() const { return _user; }
- const std::vector<std::string>& error_log() const { return _error_log; }
const TUniqueId& query_id() const { return _query_id; }
const TUniqueId& fragment_instance_id() const { return _fragment_instance_id; }
ExecEnv* exec_env() { return _exec_env; }
@@ -136,11 +134,6 @@ public:
// on first use.
Status create_codegen();
- BufferedBlockMgr2* block_mgr2() {
- DCHECK(_block_mgr2.get() != nullptr);
- return _block_mgr2.get();
- }
-
Status query_status() {
std::lock_guard<std::mutex> l(_process_status_lock);
return _process_status;
@@ -155,12 +148,6 @@ public:
return _error_log.size() < _query_options.max_errors;
}
- // Return true if error log is empty.
- bool error_log_is_empty();
-
- // Returns the error log lines as a string joined with '\n'.
- std::string error_log();
-
// Append all _error_log[_unreported_error_idx+] to new_errors and set
// _unreported_error_idx to _errors_log.size()
void get_unreported_errors(std::vector<std::string>* new_errors);
@@ -365,9 +352,6 @@ public:
std::vector<TErrorTabletInfo>& error_tablet_infos() { return _error_tablet_infos; }
- /// Helper to call QueryState::StartSpilling().
- Status StartSpilling(MemTracker* mem_tracker);
-
// get mem limit for load channel
// if load mem limit is not set, or is zero, using query mem limit instead.
int64_t get_load_mem_limit();
@@ -412,11 +396,6 @@ public:
}
private:
- // Use a custom block manager for the query for testing purposes.
- void set_block_mgr2(const std::shared_ptr<BufferedBlockMgr2>& block_mgr) {
- _block_mgr2 = block_mgr;
- }
-
Status create_error_log_file();
static const int DEFAULT_BATCH_SIZE = 2048;
@@ -483,12 +462,6 @@ private:
// will not necessarily be set in all error cases.
std::mutex _process_status_lock;
Status _process_status;
- //std::unique_ptr<MemPool> _udf_pool;
-
- // BufferedBlockMgr object used to allocate and manage blocks of input data in memory
- // with a fixed memory budget.
- // The block mgr is shared by all fragments for this query.
- std::shared_ptr<BufferedBlockMgr2> _block_mgr2;
// This is the node id of the root node for this plan fragment. This is used as the
// hash seed and has two useful properties:
diff --git a/be/src/udf/udf.cpp b/be/src/udf/udf.cpp
index 93af2a7e49..cf7345122f 100644
--- a/be/src/udf/udf.cpp
+++ b/be/src/udf/udf.cpp
@@ -205,14 +205,6 @@ FunctionContext* FunctionContextImpl::clone(MemPool* pool) {
namespace doris_udf {
static const int MAX_WARNINGS = 1000;
-FunctionContext* FunctionContext::create_test_context(doris::MemPool* mem_pool = nullptr) {
- FunctionContext* context = new FunctionContext();
- context->impl()->_debug = true;
- context->impl()->_state = nullptr;
- context->impl()->_pool = new doris::FreePool(mem_pool);
- return context;
-}
-
FunctionContext::FunctionContext() : _impl(new doris::FunctionContextImpl(this)) {}
FunctionContext::~FunctionContext() {
diff --git a/be/src/udf/udf.h b/be/src/udf/udf.h
index 8da98a8f30..7de1667241 100644
--- a/be/src/udf/udf.h
+++ b/be/src/udf/udf.h
@@ -38,7 +38,6 @@ class BitmapValue;
class DecimalV2Value;
class DateTimeValue;
class CollectionValue;
-class MemPool;
} // namespace doris
namespace doris_udf {
@@ -247,11 +246,6 @@ public:
doris::ColumnPtrWrapper* get_constant_col(int arg_idx) const;
- // Create a test FunctionContext object. The caller is responsible for calling delete
- // on it. This context has additional debugging validation enabled.
- // And the default value of mem_pool is nullprt.
- static FunctionContext* create_test_context(doris::MemPool* mem_pool);
-
~FunctionContext();
private:
diff --git a/be/src/util/dummy_runtime_profile.h b/be/src/util/dummy_runtime_profile.h
deleted file mode 100644
index 0f79d9f1fd..0000000000
--- a/be/src/util/dummy_runtime_profile.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-// This file is copied from
-// https://github.com/apache/impala/blob/branch-2.9.0/be/src/util/dummy-runtime-profile.h
-// and modified by Doris
-
-#pragma once
-
-#include "common/object_pool.h"
-#include "util/runtime_profile.h"
-
-namespace doris {
-class DummyProfile {
-public:
- DummyProfile() : _pool(), _profile(new RuntimeProfile("dummy", false)) {}
- RuntimeProfile* profile() { return _profile; }
- virtual ~DummyProfile() { delete _profile; }
-
-private:
- ObjectPool _pool;
- RuntimeProfile* const _profile;
-};
-} // namespace doris
diff --git a/be/src/vec/core/block.h b/be/src/vec/core/block.h
index 905551a2fc..959480f479 100644
--- a/be/src/vec/core/block.h
+++ b/be/src/vec/core/block.h
@@ -39,7 +39,6 @@
namespace doris {
-class MemPool;
class RowDescriptor;
class Status;
class TupleDescriptor;
diff --git a/be/src/vec/exec/data_gen_functions/vnumbers_tvf.h b/be/src/vec/exec/data_gen_functions/vnumbers_tvf.h
index 708ed87050..382263f33f 100644
--- a/be/src/vec/exec/data_gen_functions/vnumbers_tvf.h
+++ b/be/src/vec/exec/data_gen_functions/vnumbers_tvf.h
@@ -27,7 +27,6 @@ namespace doris {
class TextConverter;
class TupleDescriptor;
class RuntimeState;
-class MemPool;
class Status;
namespace vectorized {
diff --git a/be/src/vec/exec/scan/new_es_scanner.cpp b/be/src/vec/exec/scan/new_es_scanner.cpp
index bae49801a0..6e5a9a266b 100644
--- a/be/src/vec/exec/scan/new_es_scanner.cpp
+++ b/be/src/vec/exec/scan/new_es_scanner.cpp
@@ -35,7 +35,6 @@ NewEsScanner::NewEsScanner(RuntimeState* state, NewEsScanNode* parent, int64_t l
_batch_eof(false),
_tuple_id(tuple_id),
_tuple_desc(nullptr),
- _mem_pool(nullptr),
_es_reader(nullptr),
_es_scroll_parser(nullptr),
_docvalue_context(docvalue_context),
@@ -86,7 +85,6 @@ Status NewEsScanner::open(RuntimeState* state) {
RETURN_IF_ERROR(VScanner::open(state));
RETURN_IF_ERROR(_es_reader->open());
- _mem_pool.reset(new MemPool());
return Status::OK();
}
@@ -175,8 +173,8 @@ Status NewEsScanner::_get_next(std::vector<vectorized::MutableColumnPtr>& column
COUNTER_UPDATE(new_es_scan_node->_rows_read_counter, 1);
SCOPED_TIMER(new_es_scan_node->_materialize_timer);
- RETURN_IF_ERROR(_es_scroll_parser->fill_columns(_tuple_desc, columns, _mem_pool.get(),
- &_line_eof, _docvalue_context));
+ RETURN_IF_ERROR(_es_scroll_parser->fill_columns(_tuple_desc, columns, &_line_eof,
+ _docvalue_context));
if (!_line_eof) {
break;
}
diff --git a/be/src/vec/exec/scan/new_es_scanner.h b/be/src/vec/exec/scan/new_es_scanner.h
index 4b97237340..77276d9ae1 100644
--- a/be/src/vec/exec/scan/new_es_scanner.h
+++ b/be/src/vec/exec/scan/new_es_scanner.h
@@ -57,8 +57,6 @@ private:
TupleId _tuple_id;
const TupleDescriptor* _tuple_desc;
- std::unique_ptr<MemPool> _mem_pool;
-
std::unique_ptr<ESScanReader> _es_reader;
std::unique_ptr<ScrollParser> _es_scroll_parser;
diff --git a/be/src/vec/exec/scan/new_olap_scanner.cpp b/be/src/vec/exec/scan/new_olap_scanner.cpp
index 31991e3999..a6410d85de 100644
--- a/be/src/vec/exec/scan/new_olap_scanner.cpp
+++ b/be/src/vec/exec/scan/new_olap_scanner.cpp
@@ -383,7 +383,7 @@ Status NewOlapScanner::_get_block_impl(RuntimeState* state, Block* block, bool*
// Read one block from block reader
// ATTN: Here we need to let the _get_block_impl method guarantee the semantics of the interface,
// that is, eof can be set to true only when the returned block is empty.
- RETURN_IF_ERROR(_tablet_reader->next_block_with_aggregation(block, nullptr, nullptr, eof));
+ RETURN_IF_ERROR(_tablet_reader->next_block_with_aggregation(block, eof));
if (!_profile_updated) {
_profile_updated = _tablet_reader->update_profile(_profile);
}
diff --git a/be/src/vec/exec/scan/vfile_scanner.cpp b/be/src/vec/exec/scan/vfile_scanner.cpp
index abebb723ab..90975686fb 100644
--- a/be/src/vec/exec/scan/vfile_scanner.cpp
+++ b/be/src/vec/exec/scan/vfile_scanner.cpp
@@ -50,7 +50,6 @@ VFileScanner::VFileScanner(RuntimeState* state, NewFileScanNode* parent, int64_t
_next_range(0),
_cur_reader(nullptr),
_cur_reader_eof(false),
- _mem_pool(std::make_unique<MemPool>()),
_kv_cache(kv_cache),
_strict_mode(false) {
if (scan_range.params.__isset.strict_mode) {
diff --git a/be/src/vec/exec/scan/vfile_scanner.h b/be/src/vec/exec/scan/vfile_scanner.h
index c69ac585d0..7947f7c44b 100644
--- a/be/src/vec/exec/scan/vfile_scanner.h
+++ b/be/src/vec/exec/scan/vfile_scanner.h
@@ -104,9 +104,6 @@ protected:
// row desc for default exprs
std::unique_ptr<RowDescriptor> _default_val_row_desc;
- // Mem pool used to allocate _src_tuple and _src_tuple_row
- std::unique_ptr<MemPool> _mem_pool;
-
KVCache<std::string>& _kv_cache;
bool _scanner_eof = false;
diff --git a/be/src/vec/exec/vdata_gen_scan_node.h b/be/src/vec/exec/vdata_gen_scan_node.h
index 7993fe1511..4c699cc293 100644
--- a/be/src/vec/exec/vdata_gen_scan_node.h
+++ b/be/src/vec/exec/vdata_gen_scan_node.h
@@ -28,7 +28,6 @@ namespace doris {
class TextConverter;
class TupleDescriptor;
class RuntimeState;
-class MemPool;
class Status;
namespace vectorized {
diff --git a/be/src/vec/exec/vmysql_scan_node.cpp b/be/src/vec/exec/vmysql_scan_node.cpp
index cda26efd48..51419dca0a 100644
--- a/be/src/vec/exec/vmysql_scan_node.cpp
+++ b/be/src/vec/exec/vmysql_scan_node.cpp
@@ -77,12 +77,6 @@ Status VMysqlScanNode::prepare(RuntimeState* state) {
return Status::InternalError("new a mysql scanner failed.");
}
- _tuple_pool.reset(new (std::nothrow) MemPool());
-
- if (_tuple_pool.get() == nullptr) {
- return Status::InternalError("new a mem pool failed.");
- }
-
_text_converter.reset(new (std::nothrow) TextConverter('\\'));
if (_text_converter.get() == nullptr) {
@@ -227,8 +221,6 @@ Status VMysqlScanNode::close(RuntimeState* state) {
START_AND_SCOPE_SPAN(state->get_tracer(), span, "VMysqlScanNode::close");
SCOPED_TIMER(_runtime_profile->total_time_counter());
- _tuple_pool.reset();
-
return ExecNode::close(state);
}
diff --git a/be/src/vec/exec/vmysql_scan_node.h b/be/src/vec/exec/vmysql_scan_node.h
index bd431f6b8a..67f4084548 100644
--- a/be/src/vec/exec/vmysql_scan_node.h
+++ b/be/src/vec/exec/vmysql_scan_node.h
@@ -76,8 +76,6 @@ private:
const TupleDescriptor* _tuple_desc;
// Tuple index in tuple row.
int _slot_num;
- // Pool for allocating tuple data, including all varying-length slots.
- std::unique_ptr<MemPool> _tuple_pool;
// Jni helper for scanning an HBase table.
std::unique_ptr<MysqlScanner> _mysql_scanner;
// Helper class for converting text to other types;
diff --git a/be/src/vec/exec/vschema_scan_node.cpp b/be/src/vec/exec/vschema_scan_node.cpp
index 4b6eda4ba9..60fe1d7720 100644
--- a/be/src/vec/exec/vschema_scan_node.cpp
+++ b/be/src/vec/exec/vschema_scan_node.cpp
@@ -43,7 +43,6 @@ VSchemaScanNode::VSchemaScanNode(ObjectPool* pool, const TPlanNode& tnode,
_dest_tuple_desc(nullptr),
_tuple_idx(0),
_slot_num(0),
- _tuple_pool(nullptr),
_schema_scanner(nullptr) {}
VSchemaScanNode::~VSchemaScanNode() {}
@@ -138,13 +137,6 @@ Status VSchemaScanNode::prepare(RuntimeState* state) {
START_AND_SCOPE_SPAN(state->get_tracer(), span, "VSchemaScanNode::prepare");
RETURN_IF_ERROR(ScanNode::prepare(state));
- // new one mem pool
- _tuple_pool.reset(new (std::nothrow) MemPool());
-
- if (nullptr == _tuple_pool) {
- return Status::InternalError("Allocate MemPool failed.");
- }
-
// get dest tuple desc
_dest_tuple_desc = state->desc_tbl().get_tuple_descriptor(_tuple_id);
@@ -284,8 +276,6 @@ Status VSchemaScanNode::close(RuntimeState* state) {
}
START_AND_SCOPE_SPAN(state->get_tracer(), span, "VSchemaScanNode::close");
SCOPED_TIMER(_runtime_profile->total_time_counter());
-
- _tuple_pool.reset();
return ExecNode::close(state);
}
diff --git a/be/src/vec/exec/vschema_scan_node.h b/be/src/vec/exec/vschema_scan_node.h
index 92df6279a8..10db793d8a 100644
--- a/be/src/vec/exec/vschema_scan_node.h
+++ b/be/src/vec/exec/vschema_scan_node.h
@@ -66,8 +66,6 @@ private:
int _tuple_idx;
// slot num need to fill in and return
int _slot_num;
- // Pool for allocating tuple data, including all varying-length slots.
- std::unique_ptr<MemPool> _tuple_pool;
// Jni helper for scanning an schema table.
std::unique_ptr<SchemaScanner> _schema_scanner;
};
diff --git a/be/src/vec/olap/block_reader.cpp b/be/src/vec/olap/block_reader.cpp
index 111b817cac..51a4457ce5 100644
--- a/be/src/vec/olap/block_reader.cpp
+++ b/be/src/vec/olap/block_reader.cpp
@@ -20,7 +20,6 @@
#include "common/status.h"
#include "olap/like_column_predicate.h"
#include "olap/olap_common.h"
-#include "runtime/mem_pool.h"
#include "vec/aggregate_functions/aggregate_function_reader.h"
#include "vec/olap/vcollect_iterator.h"
@@ -189,8 +188,7 @@ Status BlockReader::init(const ReaderParams& read_params) {
return Status::OK();
}
-Status BlockReader::_direct_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof) {
+Status BlockReader::_direct_next_block(Block* block, bool* eof) {
auto res = _vcollect_iter.next(block);
if (UNLIKELY(!res.ok() && !res.is<END_OF_FILE>())) {
return res;
@@ -207,13 +205,11 @@ Status BlockReader::_direct_next_block(Block* block, MemPool* mem_pool, ObjectPo
return Status::OK();
}
-Status BlockReader::_direct_agg_key_next_block(Block* block, MemPool* mem_pool,
- ObjectPool* agg_pool, bool* eof) {
+Status BlockReader::_direct_agg_key_next_block(Block* block, bool* eof) {
return Status::OK();
}
-Status BlockReader::_agg_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof) {
+Status BlockReader::_agg_key_next_block(Block* block, bool* eof) {
if (UNLIKELY(_eof)) {
*eof = true;
return Status::OK();
@@ -263,8 +259,7 @@ Status BlockReader::_agg_key_next_block(Block* block, MemPool* mem_pool, ObjectP
return Status::OK();
}
-Status BlockReader::_unique_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof) {
+Status BlockReader::_unique_key_next_block(Block* block, bool* eof) {
if (UNLIKELY(_eof)) {
*eof = true;
return Status::OK();
diff --git a/be/src/vec/olap/block_reader.h b/be/src/vec/olap/block_reader.h
index 757cff5a2a..5b374f9859 100644
--- a/be/src/vec/olap/block_reader.h
+++ b/be/src/vec/olap/block_reader.h
@@ -35,9 +35,8 @@ public:
// Initialize BlockReader with tablet, data version and fetch range.
Status init(const ReaderParams& read_params) override;
- Status next_block_with_aggregation(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof) override {
- return (this->*_next_block_func)(block, mem_pool, agg_pool, eof);
+ Status next_block_with_aggregation(Block* block, bool* eof) override {
+ return (this->*_next_block_func)(block, eof);
}
std::vector<RowLocation> current_block_row_locations() { return _block_row_locations; }
@@ -51,18 +50,17 @@ public:
private:
// Directly read row from rowset and pass to upper caller. No need to do aggregation.
// This is usually used for DUPLICATE KEY tables
- Status _direct_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool, bool* eof);
+ Status _direct_next_block(Block* block, bool* eof);
// Just same as _direct_next_block, but this is only for AGGREGATE KEY tables.
// And this is an optimization for AGGR tables.
// When there is only one rowset and is not overlapping, we can read it directly without aggregation.
- Status _direct_agg_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof);
+ Status _direct_agg_key_next_block(Block* block, bool* eof);
// For normal AGGREGATE KEY tables, read data by a merge heap.
- Status _agg_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool, bool* eof);
+ Status _agg_key_next_block(Block* block, bool* eof);
// For UNIQUE KEY tables, read data by a merge heap.
// The difference from _agg_key_next_block is that it will read the data from high version to low version,
// to minimize the comparison time in merge heap.
- Status _unique_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool, bool* eof);
+ Status _unique_key_next_block(Block* block, bool* eof);
Status _init_collect_iter(const ReaderParams& read_params,
std::vector<RowsetReaderSharedPtr>* valid_rs_readers);
@@ -106,8 +104,7 @@ private:
bool _eof = false;
- Status (BlockReader::*_next_block_func)(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof) = nullptr;
+ Status (BlockReader::*_next_block_func)(Block* block, bool* eof) = nullptr;
std::vector<RowLocation> _block_row_locations;
diff --git a/be/src/vec/olap/vertical_block_reader.cpp b/be/src/vec/olap/vertical_block_reader.cpp
index 897d001c0d..c4848708c6 100644
--- a/be/src/vec/olap/vertical_block_reader.cpp
+++ b/be/src/vec/olap/vertical_block_reader.cpp
@@ -20,7 +20,6 @@
#include "common/status.h"
#include "olap/like_column_predicate.h"
#include "olap/olap_common.h"
-#include "runtime/mem_pool.h"
#include "vec/aggregate_functions/aggregate_function_reader.h"
#include "vec/olap/block_reader.h"
#include "vec/olap/vcollect_iterator.h"
@@ -187,8 +186,7 @@ Status VerticalBlockReader::init(const ReaderParams& read_params) {
return Status::OK();
}
-Status VerticalBlockReader::_direct_next_block(Block* block, MemPool* mem_pool,
- ObjectPool* agg_pool, bool* eof) {
+Status VerticalBlockReader::_direct_next_block(Block* block, bool* eof) {
auto res = _vcollect_iter->next_batch(block);
if (UNLIKELY(!res.ok() && !res.is<END_OF_FILE>())) {
return res;
@@ -298,8 +296,7 @@ size_t VerticalBlockReader::_copy_agg_data() {
return copy_size;
}
-Status VerticalBlockReader::_agg_key_next_block(Block* block, MemPool* mem_pool,
- ObjectPool* agg_pool, bool* eof) {
+Status VerticalBlockReader::_agg_key_next_block(Block* block, bool* eof) {
if (_reader_context.is_key_column_group) {
// collect_iter will filter agg keys
auto res = _vcollect_iter->next_batch(block);
@@ -352,8 +349,7 @@ Status VerticalBlockReader::_agg_key_next_block(Block* block, MemPool* mem_pool,
return Status::OK();
}
-Status VerticalBlockReader::_unique_key_next_block(Block* block, MemPool* mem_pool,
- ObjectPool* agg_pool, bool* eof) {
+Status VerticalBlockReader::_unique_key_next_block(Block* block, bool* eof) {
if (_reader_context.is_key_column_group) {
// Record row_source_buffer current size for key column agg flag
// _vcollect_iter->next_batch(block) will fill row_source_buffer but delete sign is ignored
diff --git a/be/src/vec/olap/vertical_block_reader.h b/be/src/vec/olap/vertical_block_reader.h
index cc81898b7f..b259e5bebe 100644
--- a/be/src/vec/olap/vertical_block_reader.h
+++ b/be/src/vec/olap/vertical_block_reader.h
@@ -41,9 +41,8 @@ public:
// Initialize VerticalBlockReader with tablet, data version and fetch range.
Status init(const ReaderParams& read_params) override;
- Status next_block_with_aggregation(Block* block, MemPool* mem_pool, ObjectPool* agg_pool,
- bool* eof) override {
- return (this->*_next_block_func)(block, mem_pool, agg_pool, eof);
+ Status next_block_with_aggregation(Block* block, bool* eof) override {
+ return (this->*_next_block_func)(block, eof);
}
uint64_t merged_rows() const override {
@@ -55,13 +54,13 @@ public:
private:
// Directly read row from rowset and pass to upper caller. No need to do aggregation.
// This is usually used for DUPLICATE KEY tables
- Status _direct_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool, bool* eof);
+ Status _direct_next_block(Block* block, bool* eof);
// For normal AGGREGATE KEY tables, read data by a merge heap.
- Status _agg_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool, bool* eof);
+ Status _agg_key_next_block(Block* block, bool* eof);
// For UNIQUE KEY tables, read data by a merge heap.
// The difference from _agg_key_next_block is that it will read the data from high version to low version,
// to minimize the comparison time in merge heap.
- Status _unique_key_next_block(Block* block, MemPool* mem_pool, ObjectPool* agg_pool, bool* eof);
+ Status _unique_key_next_block(Block* block, bool* eof);
Status _init_collect_iter(const ReaderParams& read_params);
@@ -82,8 +81,7 @@ private:
bool _eof = false;
- Status (VerticalBlockReader::*_next_block_func)(Block* block, MemPool* mem_pool,
- ObjectPool* agg_pool, bool* eof) = nullptr;
+ Status (VerticalBlockReader::*_next_block_func)(Block* block, bool* eof) = nullptr;
RowSourcesBuffer* _row_sources_buffer;
ColumnPtr _delete_filter_column;
diff --git a/be/test/olap/storage_types_test.cpp b/be/test/olap/storage_types_test.cpp
index 0319326d4d..cf96976d03 100644
--- a/be/test/olap/storage_types_test.cpp
+++ b/be/test/olap/storage_types_test.cpp
@@ -40,13 +40,11 @@ void common_test(typename TypeTraits<field_type>::CppType src_val) {
typename TypeTraits<field_type>::CppType dst_val;
MemPool pool;
type->deep_copy((char*)&dst_val, (char*)&src_val, &pool);
- EXPECT_TRUE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_EQ(0, type->cmp((char*)&src_val, (char*)&dst_val));
}
{
typename TypeTraits<field_type>::CppType dst_val;
type->direct_copy((char*)&dst_val, (char*)&src_val);
- EXPECT_TRUE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_EQ(0, type->cmp((char*)&src_val, (char*)&dst_val));
}
// test min
@@ -54,7 +52,6 @@ void common_test(typename TypeTraits<field_type>::CppType src_val) {
typename TypeTraits<field_type>::CppType dst_val;
type->set_to_min((char*)&dst_val);
- EXPECT_FALSE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_TRUE(type->cmp((char*)&src_val, (char*)&dst_val) > 0);
}
// test max
@@ -79,14 +76,12 @@ void test_char(Slice src_val) {
Slice dst_val(buf, sizeof(buf));
MemPool pool;
type->deep_copy((char*)&dst_val, (char*)&src_val, &pool);
- EXPECT_TRUE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_EQ(0, type->cmp((char*)&src_val, (char*)&dst_val));
}
{
char buf[64];
Slice dst_val(buf, sizeof(buf));
type->direct_copy((char*)&dst_val, (char*)&src_val);
- EXPECT_TRUE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_EQ(0, type->cmp((char*)&src_val, (char*)&dst_val));
}
// test min
@@ -95,7 +90,6 @@ void test_char(Slice src_val) {
Slice dst_val(buf, sizeof(buf));
field->set_to_min((char*)&dst_val);
- EXPECT_FALSE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_TRUE(type->cmp((char*)&src_val, (char*)&dst_val) > 0);
}
// test max
@@ -104,7 +98,6 @@ void test_char(Slice src_val) {
Slice dst_val(buf, sizeof(buf));
field->set_to_max((char*)&dst_val);
- EXPECT_FALSE(type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_TRUE(type->cmp((char*)&src_val, (char*)&dst_val) < 0);
}
delete field;
@@ -162,7 +155,6 @@ void common_test_array(CollectionValue src_val) {
CollectionValue dst_val;
MemPool pool;
array_type->deep_copy((char*)&dst_val, (char*)&src_val, &pool);
- EXPECT_TRUE(array_type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_EQ(0, array_type->cmp((char*)&src_val, (char*)&dst_val));
}
{ // test direct copy
@@ -170,7 +162,6 @@ void common_test_array(CollectionValue src_val) {
uint8_t data[50];
CollectionValue dst_val(data, sizeof(null_signs), null_signs);
array_type->direct_copy((char*)&dst_val, (char*)&src_val);
- EXPECT_TRUE(array_type->equal((char*)&src_val, (char*)&dst_val));
EXPECT_EQ(0, array_type->cmp((char*)&src_val, (char*)&dst_val));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org