From 3f792b04d0e282263aec574b0eb87e077b3b74d1 Mon Sep 17 00:00:00 2001 From: doubleMocha <1085615789@qq.com> Date: Mon, 11 Nov 2024 09:18:05 +0000 Subject: [PATCH] add OB_SUCC after allocating memory in parquet reader --- .../table/ob_parquet_table_row_iter.cpp | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/sql/engine/table/ob_parquet_table_row_iter.cpp b/src/sql/engine/table/ob_parquet_table_row_iter.cpp index 6ecd808e1..1c7b16faf 100644 --- a/src/sql/engine/table/ob_parquet_table_row_iter.cpp +++ b/src/sql/engine/table/ob_parquet_table_row_iter.cpp @@ -766,9 +766,11 @@ int ObParquetTableRowIterator::DataLoader::load_decimal_any_col() if (reader_->descr()->physical_type() == parquet::Type::type::INT32) { ObArrayWrap values; OZ (values.allocate_array(tmp_alloc_g.get_allocator(), batch_size_)); - row_count_ = static_cast(reader_)->ReadBatch( - batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), - values.get_data(), &values_cnt); + if (OB_SUCC(ret)) { + row_count_ = static_cast(reader_)->ReadBatch( + batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), + values.get_data(), &values_cnt); + } int j = 0; for (int i = 0; OB_SUCC(ret) && i < row_count_; i++) { if (IS_PARQUET_COL_VALUE_IS_NULL(def_levels_buf_.at(i))) { @@ -780,9 +782,11 @@ int ObParquetTableRowIterator::DataLoader::load_decimal_any_col() } else if (reader_->descr()->physical_type() == parquet::Type::type::INT64) { ObArrayWrap values; OZ (values.allocate_array(tmp_alloc_g.get_allocator(), batch_size_)); - row_count_ = static_cast(reader_)->ReadBatch( - batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), - values.get_data(), &values_cnt); + if (OB_SUCC(ret)) { + row_count_ = static_cast(reader_)->ReadBatch( + batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), + values.get_data(), &values_cnt); + } int j = 0; for (int i = 0; OB_SUCC(ret) && i < row_count_; i++) { if (IS_PARQUET_COL_VALUE_IS_NULL(def_levels_buf_.at(i))) { @@ -798,9 +802,11 @@ int ObParquetTableRowIterator::DataLoader::load_decimal_any_col() ObArrayWrap buffer; OZ (buffer.allocate_array(tmp_alloc_g.get_allocator(), int_bytes)); OZ (values.allocate_array(tmp_alloc_g.get_allocator(), batch_size_)); - row_count_ = static_cast(reader_)->ReadBatch( - batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), - values.get_data(), &values_cnt); + if (OB_SUCC(ret)) { + row_count_ = static_cast(reader_)->ReadBatch( + batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), + values.get_data(), &values_cnt); + } int j = 0; for (int i = 0; OB_SUCC(ret) && i < row_count_; i++) { if (IS_PARQUET_COL_VALUE_IS_NULL(def_levels_buf_.at(i))) { @@ -817,9 +823,11 @@ int ObParquetTableRowIterator::DataLoader::load_decimal_any_col() ObArrayWrap buffer; OZ (buffer.allocate_array(tmp_alloc_g.get_allocator(), int_bytes)); OZ (values.allocate_array(tmp_alloc_g.get_allocator(), batch_size_)); - row_count_ = static_cast(reader_)->ReadBatch( - batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), - values.get_data(), &values_cnt); + if (OB_SUCC(ret)) { + row_count_ = static_cast(reader_)->ReadBatch( + batch_size_, def_levels_buf_.get_data(), rep_levels_buf_.get_data(), + values.get_data(), &values_cnt); + } int j = 0; for (int i = 0; OB_SUCC(ret) && i < row_count_; i++) { if (IS_PARQUET_COL_VALUE_IS_NULL(def_levels_buf_.at(i))) {