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

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

commit ea7d9ec34f9ff611e0e0c0019bf7ac250316bbc6
Author: Yongqiang YANG <98214048+dataroar...@users.noreply.github.com>
AuthorDate: Thu Oct 6 09:56:22 2022 +0800

    [fix](string) allocate memory according to actual size instead of max size 
(#13112)
    
    String column lengh is 2GB, if we allocate memory according to column 
length,
    string would consume a lot of memory. It also misleads memory tracker.
---
 be/src/olap/wrapper_field.cpp | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/be/src/olap/wrapper_field.cpp b/be/src/olap/wrapper_field.cpp
index 887b93b259..ffb4516193 100644
--- a/be/src/olap/wrapper_field.cpp
+++ b/be/src/olap/wrapper_field.cpp
@@ -52,11 +52,7 @@ WrapperField* WrapperField::create(const TabletColumn& 
column, uint32_t len) {
         variable_len =
                 std::max(len, static_cast<uint32_t>(column.length() - 
sizeof(VarcharLengthType)));
     } else if (column.type() == OLAP_FIELD_TYPE_STRING) {
-        // column.length is the serialized varchar length
-        // the first sizeof(StringLengthType) bytes is the length of varchar
-        // variable_len is the real length of varchar
-        variable_len =
-                std::max(len, static_cast<uint32_t>(column.length() - 
sizeof(StringLengthType)));
+        variable_len = len;
     } else {
         variable_len = column.length();
     }


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

Reply via email to