This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 9491b7d4224 [fix](iceberg) prevent coredump if read position delete
file failed (#34802)
9491b7d4224 is described below
commit 9491b7d42240e73f0b148cf3ef75fda1abfec5d1
Author: Ashin Gau <[email protected]>
AuthorDate: Tue May 14 14:03:33 2024 +0800
[fix](iceberg) prevent coredump if read position delete file failed (#34802)
---
be/src/vec/exec/format/table/iceberg_reader.cpp | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/be/src/vec/exec/format/table/iceberg_reader.cpp
b/be/src/vec/exec/format/table/iceberg_reader.cpp
index 12ef77f59d0..f9de386e595 100644
--- a/be/src/vec/exec/format/table/iceberg_reader.cpp
+++ b/be/src/vec/exec/format/table/iceberg_reader.cpp
@@ -529,17 +529,15 @@ Status IcebergParquetReader::init_reader(
_file_col_names = file_col_names;
_colname_to_value_range = colname_to_value_range;
auto parquet_meta_kv = parquet_reader->get_metadata_key_values();
- static_cast<void>(_gen_col_name_maps(parquet_meta_kv));
+ RETURN_IF_ERROR(_gen_col_name_maps(parquet_meta_kv));
_gen_file_col_names();
_gen_new_colname_to_value_range();
parquet_reader->set_table_to_file_col_map(_table_col_to_file_col);
parquet_reader->iceberg_sanitize(_all_required_col_names);
- Status status = parquet_reader->init_reader(
+ return parquet_reader->init_reader(
_all_required_col_names, _not_in_file_col_names,
&_new_colname_to_value_range,
conjuncts, tuple_descriptor, row_descriptor, colname_to_slot_id,
not_single_slot_filter_conjuncts, slot_id_to_filter_conjuncts);
-
- return status;
}
Status IcebergParquetReader ::_read_position_delete_file(const TFileRangeDesc*
delete_range,
@@ -556,7 +554,7 @@ Status IcebergParquetReader
::_read_position_delete_file(const TFileRangeDesc* d
std::unordered_map<std::string, std::tuple<std::string, const
SlotDescriptor*>>
partition_columns;
std::unordered_map<std::string, VExprContextSPtr> missing_columns;
-
static_cast<void>(parquet_delete_reader.set_fill_columns(partition_columns,
missing_columns));
+ RETURN_IF_ERROR(parquet_delete_reader.set_fill_columns(partition_columns,
missing_columns));
const tparquet::FileMetaData* meta_data =
parquet_delete_reader.get_meta_data();
bool dictionary_coded = true;
@@ -608,11 +606,9 @@ Status IcebergOrcReader::init_reader(
_gen_file_col_names();
_gen_new_colname_to_value_range();
orc_reader->set_table_col_to_file_col(_table_col_to_file_col);
- Status status =
- orc_reader->init_reader(&_all_required_col_names,
&_new_colname_to_value_range,
- conjuncts, false, tuple_descriptor,
row_descriptor,
- not_single_slot_filter_conjuncts,
slot_id_to_filter_conjuncts);
- return status;
+ return orc_reader->init_reader(&_all_required_col_names,
&_new_colname_to_value_range,
+ conjuncts, false, tuple_descriptor,
row_descriptor,
+ not_single_slot_filter_conjuncts,
slot_id_to_filter_conjuncts);
}
Status IcebergOrcReader::_read_position_delete_file(const TFileRangeDesc*
delete_range,
@@ -620,13 +616,13 @@ Status IcebergOrcReader::_read_position_delete_file(const
TFileRangeDesc* delete
OrcReader orc_delete_reader(_profile, _state, _params, *delete_range,
READ_DELETE_FILE_BATCH_SIZE,
_state->timezone(), _io_ctx);
std::unordered_map<std::string, ColumnValueRangeType>
colname_to_value_range;
- Status init_status = orc_delete_reader.init_reader(
- &delete_file_col_names, &colname_to_value_range, {}, false, {},
{}, nullptr, nullptr);
+ RETURN_IF_ERROR(orc_delete_reader.init_reader(&delete_file_col_names,
&colname_to_value_range,
+ {}, false, {}, {}, nullptr,
nullptr));
std::unordered_map<std::string, std::tuple<std::string, const
SlotDescriptor*>>
partition_columns;
std::unordered_map<std::string, VExprContextSPtr> missing_columns;
- static_cast<void>(orc_delete_reader.set_fill_columns(partition_columns,
missing_columns));
+ RETURN_IF_ERROR(orc_delete_reader.set_fill_columns(partition_columns,
missing_columns));
bool eof = false;
DataTypePtr data_type_file_path {new DataTypeString};
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]