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]