[Refactor] Remove meaningless return value of RowBlock::init (#4627)
Simplify some code, mainly remove meaningless return value of RowBlock::init.
This commit is contained in:
@ -48,13 +48,12 @@ RowBlock::~RowBlock() {
|
||||
delete[] _mem_buf;
|
||||
}
|
||||
|
||||
OLAPStatus RowBlock::init(const RowBlockInfo& block_info) {
|
||||
void RowBlock::init(const RowBlockInfo& block_info) {
|
||||
_info = block_info;
|
||||
_null_supported = block_info.null_supported;
|
||||
_capacity = _info.row_num;
|
||||
_compute_layout();
|
||||
_mem_buf = new char[_mem_buf_bytes];
|
||||
return OLAP_SUCCESS;
|
||||
}
|
||||
|
||||
OLAPStatus RowBlock::finalize(uint32_t row_num) {
|
||||
@ -82,7 +81,7 @@ void RowBlock::_compute_layout() {
|
||||
size_t memory_size = 0;
|
||||
for (int col_id = 0; col_id < _schema->num_columns(); ++col_id) {
|
||||
const TabletColumn& column = _schema->column(col_id);
|
||||
if (!column_set.empty() && column_set.find(col_id) == std::end(column_set)) {
|
||||
if (!column_set.empty() && column_set.find(col_id) == column_set.end()) {
|
||||
// which may lead BE crash
|
||||
_field_offset_in_memory.push_back(std::numeric_limits<std::size_t>::max());
|
||||
continue;
|
||||
|
||||
@ -49,7 +49,7 @@ struct RowBlockInfo {
|
||||
// RowBlock的内部buf中;
|
||||
// 2. 给定row_index,读取内部各field的值
|
||||
// 3. 给定查询的key,在RowBlock内做二分查找,返回起点的行偏移;
|
||||
// 4. 向量化的条件过滤下推到RowBlock级别进行,因此增加完成过滤的数据读取借口
|
||||
// 4. 向量化的条件过滤下推到RowBlock级别进行,因此增加完成过滤的数据读取接口
|
||||
class RowBlock {
|
||||
// Please keep these classes as 'friend'. They have to use lots of private fields for
|
||||
// faster operation.
|
||||
@ -65,7 +65,7 @@ public:
|
||||
// row_num是RowBlock的最大行数,fields为了初始化各个field的起始位置。
|
||||
// 在field都为定长的情况下根据这两个值可以确定RowBlock内部buffer的大小,
|
||||
// 目前只考虑定长,因此在函数可以分配内存资源。
|
||||
OLAPStatus init(const RowBlockInfo& block_info);
|
||||
void init(const RowBlockInfo& block_info);
|
||||
|
||||
inline void get_row(uint32_t row_index, RowCursor* cursor) const {
|
||||
cursor->attach(_mem_buf + row_index * _mem_row_bytes);
|
||||
|
||||
@ -359,8 +359,7 @@ OLAPStatus AlphaRowsetReader::_init_merge_ctxs(RowsetReaderContext* read_context
|
||||
if (new_column_data->rowset_pruning_filter()) {
|
||||
_stats->rows_stats_filtered += new_column_data->num_rows();
|
||||
VLOG(3) << "filter segment group in query in condition. version="
|
||||
<< new_column_data->version().first
|
||||
<< "-" << new_column_data->version().second;
|
||||
<< new_column_data->version();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -369,15 +368,15 @@ OLAPStatus AlphaRowsetReader::_init_merge_ctxs(RowsetReaderContext* read_context
|
||||
if (ret == DEL_SATISFIED) {
|
||||
_stats->rows_del_filtered += new_column_data->num_rows();
|
||||
VLOG(3) << "filter segment group in delete predicate:"
|
||||
<< new_column_data->version().first << ", " << new_column_data->version().second;
|
||||
<< new_column_data->version();
|
||||
continue;
|
||||
} else if (ret == DEL_PARTIAL_SATISFIED) {
|
||||
VLOG(3) << "filter segment group partially in delete predicate:"
|
||||
<< new_column_data->version().first << ", " << new_column_data->version().second;
|
||||
<< new_column_data->version();
|
||||
new_column_data->set_delete_status(DEL_PARTIAL_SATISFIED);
|
||||
} else {
|
||||
VLOG(3) << "not filter segment group in delete predicate:"
|
||||
<< new_column_data->version().first << ", " << new_column_data->version().second;
|
||||
<< new_column_data->version();
|
||||
new_column_data->set_delete_status(DEL_NOT_SATISFIED);
|
||||
}
|
||||
AlphaMergeContext merge_ctx;
|
||||
|
||||
@ -107,7 +107,7 @@ OLAPStatus BetaRowsetReader::init(RowsetReaderContext* read_context) {
|
||||
// the output block's schema should be seek_columns to comform to v1
|
||||
// TODO(hkp): this should be optimized to use return_columns
|
||||
output_block_info.column_ids = *(_context->seek_columns);
|
||||
RETURN_NOT_OK(_output_block->init(output_block_info));
|
||||
_output_block->init(output_block_info);
|
||||
_row.reset(new RowCursor());
|
||||
RETURN_NOT_OK(_row->init(*(read_context->tablet_schema), *(_context->seek_columns)));
|
||||
|
||||
|
||||
@ -97,11 +97,7 @@ OLAPStatus ColumnDataWriter::init() {
|
||||
RowBlockInfo block_info(0U, _segment_group->get_num_rows_per_row_block());
|
||||
block_info.null_supported = true;
|
||||
|
||||
res = _row_block->init(block_info);
|
||||
if (OLAP_SUCCESS != res) {
|
||||
LOG(WARNING) << "fail to initiate row block. [res=" << res << "]";
|
||||
return res;
|
||||
}
|
||||
_row_block->init(block_info);
|
||||
return OLAP_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@ -769,18 +769,14 @@ OLAPStatus RowBlockAllocator::allocate(RowBlock** row_block, size_t num_rows, bo
|
||||
|
||||
RowBlockInfo row_block_info(0U, num_rows);
|
||||
row_block_info.null_supported = null_supported;
|
||||
OLAPStatus res = OLAP_SUCCESS;
|
||||
|
||||
if ((res = (*row_block)->init(row_block_info)) != OLAP_SUCCESS) {
|
||||
LOG(WARNING) << "failed to init row block.";
|
||||
SAFE_DELETE(*row_block);
|
||||
return res;
|
||||
}
|
||||
(*row_block)->init(row_block_info);
|
||||
|
||||
_memory_allocated += row_block_size;
|
||||
VLOG(3) << "RowBlockAllocator::allocate() this=" << this << ", num_rows=" << num_rows
|
||||
<< ", m_memory_allocated=" << _memory_allocated << ", row_block_addr=" << *row_block;
|
||||
return res;
|
||||
VLOG(3) << "RowBlockAllocator::allocate() this=" << this
|
||||
<< ", num_rows=" << num_rows
|
||||
<< ", m_memory_allocated=" << _memory_allocated
|
||||
<< ", row_block_addr=" << *row_block;
|
||||
return OLAP_SUCCESS;
|
||||
}
|
||||
|
||||
void RowBlockAllocator::release(RowBlock* row_block) {
|
||||
@ -1766,9 +1762,8 @@ OLAPStatus SchemaChangeHandler::_get_versions_to_be_changed(
|
||||
vector<Version> span_versions;
|
||||
RETURN_NOT_OK(base_tablet->capture_consistent_versions(Version(0, rowset->version().second),
|
||||
&span_versions));
|
||||
for (uint32_t i = 0; i < span_versions.size(); i++) {
|
||||
versions_to_be_changed->push_back(span_versions[i]);
|
||||
}
|
||||
versions_to_be_changed->insert(versions_to_be_changed->end(),
|
||||
span_versions.begin(), span_versions.end());
|
||||
|
||||
return OLAP_SUCCESS;
|
||||
}
|
||||
|
||||
@ -179,9 +179,6 @@ public:
|
||||
SchemaChangeHandler() {}
|
||||
virtual ~SchemaChangeHandler() {}
|
||||
|
||||
OLAPStatus process_alter_tablet(AlterTabletType alter_tablet_type,
|
||||
const TAlterTabletReq& request);
|
||||
|
||||
OLAPStatus schema_version_convert(TabletSharedPtr base_tablet, TabletSharedPtr new_tablet,
|
||||
RowsetSharedPtr* base_rowset, RowsetSharedPtr* new_rowset);
|
||||
|
||||
|
||||
@ -89,8 +89,7 @@ TEST_F(TestRowBlock, init) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
ASSERT_EQ(9 + 17 + 17, block._mem_row_bytes);
|
||||
}
|
||||
{
|
||||
@ -99,8 +98,7 @@ TEST_F(TestRowBlock, init) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = false;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
ASSERT_EQ(9 + 17 + 17, block._mem_row_bytes);
|
||||
}
|
||||
{
|
||||
@ -109,8 +107,7 @@ TEST_F(TestRowBlock, init) {
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
block_info.column_ids.push_back(1);
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
// null + sizeof(Slice)
|
||||
ASSERT_EQ(17, block._mem_row_bytes);
|
||||
ASSERT_EQ(std::numeric_limits<size_t>::max(), block._field_offset_in_memory[0]);
|
||||
@ -126,8 +123,7 @@ TEST_F(TestRowBlock, write_and_read) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
|
||||
RowCursor row;
|
||||
row.init(tablet_schema);
|
||||
@ -168,8 +164,7 @@ TEST_F(TestRowBlock, write_and_read_without_nullbyte) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = false;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
|
||||
RowCursor row;
|
||||
row.init(tablet_schema);
|
||||
@ -210,8 +205,7 @@ TEST_F(TestRowBlock, compress_failed) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
|
||||
RowCursor row;
|
||||
row.init(tablet_schema);
|
||||
@ -249,8 +243,7 @@ TEST_F(TestRowBlock, decompress_failed) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
|
||||
RowCursor row;
|
||||
row.init(tablet_schema);
|
||||
@ -288,8 +281,7 @@ TEST_F(TestRowBlock, clear) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
|
||||
block.finalize(5);
|
||||
ASSERT_EQ(5, block.row_num());
|
||||
@ -305,8 +297,7 @@ TEST_F(TestRowBlock, pos_limit) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
block.init(block_info);
|
||||
|
||||
// assert init value
|
||||
ASSERT_EQ(0, block.pos());
|
||||
|
||||
@ -90,8 +90,7 @@ TEST_F(TestRowBlockV2, test_convert) {
|
||||
RowBlockInfo block_info;
|
||||
block_info.row_num = 1024;
|
||||
block_info.null_supported = true;
|
||||
auto res = output_block.init(block_info);
|
||||
ASSERT_EQ(OLAP_SUCCESS, res);
|
||||
output_block.init(block_info);
|
||||
auto tracker = std::make_shared<MemTracker>();
|
||||
MemPool pool(tracker.get());
|
||||
for (int i = 0; i < input_block.capacity(); ++i) {
|
||||
|
||||
Reference in New Issue
Block a user