Skip to content

Commit

Permalink
[enhancement](memory) add exception logic in write page and schema sc…
Browse files Browse the repository at this point in the history
…anner (#40168)

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->

---------

Co-authored-by: yiguolei <[email protected]>
  • Loading branch information
yiguolei and Doris-Extras authored Aug 31, 2024
1 parent 3ff7ad3 commit 352be29
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
6 changes: 5 additions & 1 deletion be/src/exec/schema_scanner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,11 @@ Status SchemaScanner::get_next_block_async(RuntimeState* state) {
_opened = true;
}
bool eos = false;
_scanner_status.update(get_next_block_internal(_data_block.get(), &eos));
auto call_next_block_internal = [&]() -> Status {
RETURN_IF_CATCH_EXCEPTION(
{ return get_next_block_internal(_data_block.get(), &eos); });
};
_scanner_status.update(call_next_block_internal());
_eos = eos;
_async_thread_running = false;
_dependency->set_ready();
Expand Down
3 changes: 2 additions & 1 deletion be/src/olap/rowset/segment_v2/column_writer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,8 @@ Status ScalarColumnWriter::append_data(const uint8_t** ptr, size_t num_rows) {
return Status::OK();
}

Status ScalarColumnWriter::append_data_in_current_page(const uint8_t* data, size_t* num_written) {
Status ScalarColumnWriter::_internal_append_data_in_current_page(const uint8_t* data,
size_t* num_written) {
RETURN_IF_ERROR(_page_builder->add(data, num_written));
if (_opts.need_zone_map) {
_zone_map_index_builder->add_values(data, *num_written);
Expand Down
8 changes: 7 additions & 1 deletion be/src/olap/rowset/segment_v2/column_writer.h
Original file line number Diff line number Diff line change
Expand Up @@ -217,10 +217,16 @@ class ScalarColumnWriter : public ColumnWriter {
// used for append not null data. When page is full, will append data not reach num_rows.
Status append_data_in_current_page(const uint8_t** ptr, size_t* num_written);

Status append_data_in_current_page(const uint8_t* ptr, size_t* num_written);
Status append_data_in_current_page(const uint8_t* ptr, size_t* num_written) {
RETURN_IF_CATCH_EXCEPTION(
{ return _internal_append_data_in_current_page(ptr, num_written); });
}
friend class ArrayColumnWriter;
friend class OffsetColumnWriter;

private:
Status _internal_append_data_in_current_page(const uint8_t* ptr, size_t* num_written);

private:
std::unique_ptr<PageBuilder> _page_builder;

Expand Down

0 comments on commit 352be29

Please sign in to comment.