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

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 54b5d04ff9d [improve](csv_reader) handle csv reader error (#27892)
54b5d04ff9d is described below

commit 54b5d04ff9d2cac9bc88a37b87ee7b951f348232
Author: HHoflittlefish777 <77738092+hhoflittlefish...@users.noreply.github.com>
AuthorDate: Sat Dec 2 10:05:02 2023 +0800

    [improve](csv_reader) handle csv reader error (#27892)
---
 be/src/vec/exec/format/csv/csv_reader.cpp          | 14 ++++++++------
 be/src/vec/exec/format/csv/csv_reader.h            |  2 +-
 be/src/vec/exec/format/generic_reader.h            |  2 +-
 be/src/vec/exec/format/parquet/vparquet_reader.cpp |  3 ++-
 be/src/vec/exec/format/parquet/vparquet_reader.h   |  2 +-
 be/src/vec/exec/scan/vfile_scanner.cpp             |  4 ++--
 6 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/be/src/vec/exec/format/csv/csv_reader.cpp 
b/be/src/vec/exec/format/csv/csv_reader.cpp
index 5aa155e69eb..94407941673 100644
--- a/be/src/vec/exec/format/csv/csv_reader.cpp
+++ b/be/src/vec/exec/format/csv/csv_reader.cpp
@@ -667,10 +667,10 @@ Status CsvReader::_fill_dest_columns(const Slice& line, 
Block* block,
             // So we use deserialize_nullable_string and stringSerDe to reduce 
virtual function calls.
             switch (_text_serde_type) {
             case TTextSerdeType::JSON_TEXT_SERDE:
-                static_cast<void>(deserialize_nullable_string<true>(*col_ptr, 
slice));
+                RETURN_IF_ERROR(deserialize_nullable_string<true>(*col_ptr, 
slice));
                 break;
             case TTextSerdeType::HIVE_TEXT_SERDE:
-                static_cast<void>(deserialize_nullable_string<false>(*col_ptr, 
slice));
+                RETURN_IF_ERROR(deserialize_nullable_string<false>(*col_ptr, 
slice));
                 break;
             default:
                 break;
@@ -678,11 +678,11 @@ Status CsvReader::_fill_dest_columns(const Slice& line, 
Block* block,
         } else {
             switch (_text_serde_type) {
             case TTextSerdeType::JSON_TEXT_SERDE:
-                static_cast<void>(
+                RETURN_IF_ERROR(
                         _serdes[i]->deserialize_one_cell_from_json(*col_ptr, 
slice, _options));
                 break;
             case TTextSerdeType::HIVE_TEXT_SERDE:
-                static_cast<void>(
+                RETURN_IF_ERROR(
                         
_serdes[i]->deserialize_one_cell_from_hive_text(*col_ptr, slice, _options));
                 break;
             default:
@@ -965,14 +965,16 @@ Status CsvReader::_parse_col_types(size_t col_nums, 
std::vector<TypeDescriptor>*
     return Status::OK();
 }
 
-void CsvReader::close() {
+Status CsvReader::close() {
     if (_line_reader) {
         _line_reader->close();
     }
 
     if (_file_reader) {
-        static_cast<void>(_file_reader->close());
+        RETURN_IF_ERROR(_file_reader->close());
     }
+
+    return Status::OK();
 }
 
 } // namespace doris::vectorized
diff --git a/be/src/vec/exec/format/csv/csv_reader.h 
b/be/src/vec/exec/format/csv/csv_reader.h
index 28d82183d00..19561b39eeb 100644
--- a/be/src/vec/exec/format/csv/csv_reader.h
+++ b/be/src/vec/exec/format/csv/csv_reader.h
@@ -197,7 +197,7 @@ public:
     Status get_parsed_schema(std::vector<std::string>* col_names,
                              std::vector<TypeDescriptor>* col_types) override;
 
-    void close() override;
+    Status close() override;
 
 private:
     // used for stream/broker load of csv file.
diff --git a/be/src/vec/exec/format/generic_reader.h 
b/be/src/vec/exec/format/generic_reader.h
index beac88f1abf..d6dd3ed81b7 100644
--- a/be/src/vec/exec/format/generic_reader.h
+++ b/be/src/vec/exec/format/generic_reader.h
@@ -64,7 +64,7 @@ public:
         return Status::OK();
     }
 
-    virtual void close() {}
+    virtual Status close() { return Status::OK(); }
 
 protected:
     const size_t _MIN_BATCH_SIZE = 4064; // 4094 - 32(padding)
diff --git a/be/src/vec/exec/format/parquet/vparquet_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_reader.cpp
index 9db803789f9..096a7cf484c 100644
--- a/be/src/vec/exec/format/parquet/vparquet_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_reader.cpp
@@ -173,8 +173,9 @@ void ParquetReader::_init_profile() {
     }
 }
 
-void ParquetReader::close() {
+Status ParquetReader::close() {
     _close_internal();
+    return Status::OK();
 }
 
 void ParquetReader::_close_internal() {
diff --git a/be/src/vec/exec/format/parquet/vparquet_reader.h 
b/be/src/vec/exec/format/parquet/vparquet_reader.h
index 25b00c5bfe7..376b3791b07 100644
--- a/be/src/vec/exec/format/parquet/vparquet_reader.h
+++ b/be/src/vec/exec/format/parquet/vparquet_reader.h
@@ -119,7 +119,7 @@ public:
 
     Status get_next_block(Block* block, size_t* read_rows, bool* eof) override;
 
-    void close() override;
+    Status close() override;
 
     RowRange get_whole_range() { return _whole_range; }
 
diff --git a/be/src/vec/exec/scan/vfile_scanner.cpp 
b/be/src/vec/exec/scan/vfile_scanner.cpp
index 149ec75fa4b..80d6518e729 100644
--- a/be/src/vec/exec/scan/vfile_scanner.cpp
+++ b/be/src/vec/exec/scan/vfile_scanner.cpp
@@ -713,7 +713,7 @@ void VFileScanner::_truncate_char_or_varchar_column(Block* 
block, int idx, int l
 Status VFileScanner::_get_next_reader() {
     while (true) {
         if (_cur_reader) {
-            _cur_reader->close();
+            RETURN_IF_ERROR(_cur_reader->close());
         }
         _cur_reader.reset(nullptr);
         _src_block_init = false;
@@ -1096,7 +1096,7 @@ Status VFileScanner::close(RuntimeState* state) {
     }
 
     if (_cur_reader) {
-        _cur_reader->close();
+        RETURN_IF_ERROR(_cur_reader->close());
     }
 
     RETURN_IF_ERROR(VScanner::close(state));


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

Reply via email to