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

yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new d9e2948d5c7 branch-4.1: [fix](be) Skip CHAR payload checks for NULL 
rows #67043 (#67054)
d9e2948d5c7 is described below

commit d9e2948d5c717afb0b86513a02ff20debbe3bec8
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Aug 25 09:44:21 2026 +0800

    branch-4.1: [fix](be) Skip CHAR payload checks for NULL rows #67043 (#67054)
    
    Cherry-picked from #67043
    
    Co-authored-by: Mryange <[email protected]>
---
 be/src/storage/iterator/olap_data_convertor.cpp | 2 +-
 be/src/storage/iterator/olap_data_convertor.h   | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/be/src/storage/iterator/olap_data_convertor.cpp 
b/be/src/storage/iterator/olap_data_convertor.cpp
index a62b97cfafb..c9e4aca59c5 100644
--- a/be/src/storage/iterator/olap_data_convertor.cpp
+++ b/be/src/storage/iterator/olap_data_convertor.cpp
@@ -549,7 +549,7 @@ Status 
OlapBlockDataConvertor::OlapColumnDataConvertorChar::convert_to_olap() {
 
     // If column_string is not padded to full, we should do padding here.
     if (should_padding(column_string, _length)) {
-        _column = clone_and_padding(column_string, _length);
+        _column = clone_and_padding(column_string, _length, _nullmap);
         column_string = assert_cast<const ColumnString*>(_column.get());
     }
 
diff --git a/be/src/storage/iterator/olap_data_convertor.h 
b/be/src/storage/iterator/olap_data_convertor.h
index 7f89a7c1b98..35d147e8151 100644
--- a/be/src/storage/iterator/olap_data_convertor.h
+++ b/be/src/storage/iterator/olap_data_convertor.h
@@ -180,7 +180,8 @@ private:
             return column->size() * padding_length != column->chars.size();
         }
 
-        static ColumnPtr clone_and_padding(const ColumnString* input, size_t 
padding_length) {
+        static ColumnPtr clone_and_padding(const ColumnString* input, size_t 
padding_length,
+                                           const UInt8* null_map = nullptr) {
             auto column = ColumnString::create();
 
             column->offsets.resize(input->size());
@@ -192,6 +193,10 @@ private:
 
                 auto str = input->get_data_at(i);
 
+                if (null_map && null_map[i]) {
+                    continue;
+                }
+
                 DCHECK(str.size <= padding_length)
                         << "char type data length over limit, padding_length=" 
<< padding_length
                         << ", real=" << str.size;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to