This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 683262c3c18b836bb21a78a0a7398e9ef0993d9c
Author: Ashin Gau <ashin...@users.noreply.github.com>
AuthorDate: Mon Dec 26 22:49:35 2022 +0800

    [fix](multi-catalog) throw NPE when reading data after EOF (#15358)
    
    1. Fix 1 bug:
    Throw null pointer exception when reading data after the reader reaches the 
end of file, so should return directly when `_do_lazy_read` read no data.
    
    2. Optimize code:
    Remove unused parameters.
    
    3. Fix regression test
---
 be/src/vec/exec/format/parquet/vparquet_column_reader.cpp | 1 -
 be/src/vec/exec/format/parquet/vparquet_column_reader.h   | 4 ++--
 be/src/vec/exec/format/parquet/vparquet_group_reader.cpp  | 3 ++-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
index 75f43b4730..79760f82a6 100644
--- a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
@@ -27,7 +27,6 @@
 namespace doris::vectorized {
 
 Status ParquetColumnReader::create(FileReader* file, FieldSchema* field,
-                                   const ParquetReadColumn& column,
                                    const tparquet::RowGroup& row_group,
                                    const std::vector<RowRange>& row_ranges, 
cctz::time_zone* ctz,
                                    std::unique_ptr<ParquetColumnReader>& 
reader,
diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.h 
b/be/src/vec/exec/format/parquet/vparquet_column_reader.h
index de0ec185b9..f8d8085df8 100644
--- a/be/src/vec/exec/format/parquet/vparquet_column_reader.h
+++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.h
@@ -107,7 +107,7 @@ public:
     virtual Status read_column_data(ColumnPtr& doris_column, DataTypePtr& type,
                                     ColumnSelectVector& select_vector, size_t 
batch_size,
                                     size_t* read_rows, bool* eof) = 0;
-    static Status create(FileReader* file, FieldSchema* field, const 
ParquetReadColumn& column,
+    static Status create(FileReader* file, FieldSchema* field,
                          const tparquet::RowGroup& row_group,
                          const std::vector<RowRange>& row_ranges, 
cctz::time_zone* ctz,
                          std::unique_ptr<ParquetColumnReader>& reader, size_t 
max_buf_size);
@@ -190,4 +190,4 @@ private:
     level_t _EMPTY_ARRAY = -1;
     level_t _NULL_ARRAY = -1;
 };
-}; // namespace doris::vectorized
\ No newline at end of file
+}; // namespace doris::vectorized
diff --git a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp
index 24441896a9..e3f841f1b1 100644
--- a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp
@@ -57,7 +57,7 @@ Status RowGroupReader::init(const FieldDescriptor& schema, 
std::vector<RowRange>
     for (auto& read_col : _read_columns) {
         auto field = 
const_cast<FieldSchema*>(schema.get_column(read_col._file_slot_name));
         std::unique_ptr<ParquetColumnReader> reader;
-        RETURN_IF_ERROR(ParquetColumnReader::create(_file_reader, field, 
read_col, _row_group_meta,
+        RETURN_IF_ERROR(ParquetColumnReader::create(_file_reader, field, 
_row_group_meta,
                                                     _read_ranges, _ctz, 
reader, max_buf_size));
         auto col_iter = col_offsets.find(read_col._parquet_col_id);
         if (col_iter != col_offsets.end()) {
@@ -233,6 +233,7 @@ Status RowGroupReader::_do_lazy_read(Block* block, size_t 
batch_size, size_t* re
         DCHECK_EQ(pre_read_rows + _cached_filtered_rows, 0);
         *read_rows = 0;
         *batch_eof = true;
+        return Status::OK();
     }
 
     ColumnSelectVector& select_vector = *select_vector_ptr;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to