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

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


The following commit(s) were added to refs/heads/dev-1.1.1 by this push:
     new 24fe0fe01e [bugfix 1.1.1] fix use released memory bugs (#10962)
24fe0fe01e is described below

commit 24fe0fe01e6dcaf00b5c0890b29b3e39db398ade
Author: TengJianPing <[email protected]>
AuthorDate: Mon Jul 18 14:28:58 2022 +0800

    [bugfix 1.1.1] fix use released memory bugs (#10962)
    
    Merge fix of #10777 to branch dev-1.1.1.
---
 be/src/vec/data_types/data_type_nullable.cpp | 6 ++++--
 be/src/vec/data_types/data_type_string.cpp   | 8 ++++----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/be/src/vec/data_types/data_type_nullable.cpp 
b/be/src/vec/data_types/data_type_nullable.cpp
index 52a7f0225f..13ea93f5c3 100644
--- a/be/src/vec/data_types/data_type_nullable.cpp
+++ b/be/src/vec/data_types/data_type_nullable.cpp
@@ -43,8 +43,9 @@ bool DataTypeNullable::only_null() const {
 }
 
 std::string DataTypeNullable::to_string(const IColumn& column, size_t row_num) 
const {
+    auto ptr = column.convert_to_full_column_if_const();
     const ColumnNullable& col =
-            assert_cast<const 
ColumnNullable&>(*column.convert_to_full_column_if_const().get());
+            assert_cast<const ColumnNullable&>(*ptr.get());
 
     if (col.is_null_at(row_num)) {
         return "\\N";
@@ -57,10 +58,11 @@ std::string DataTypeNullable::to_string(const IColumn& 
column, size_t row_num) c
 //  <null array>: is_null1 | is_null2 | ...
 //  <values array>: value1 | value2 | ...>
 int64_t DataTypeNullable::get_uncompressed_serialized_bytes(const IColumn& 
column) const {
+    auto ptr = column.convert_to_full_column_if_const();
     int64_t size = sizeof(uint32_t);
     size += sizeof(bool) * column.size();
     size += 
nested_data_type->get_uncompressed_serialized_bytes(assert_cast<const 
ColumnNullable&>(
-            *column.convert_to_full_column_if_const()).get_nested_column());
+            *ptr).get_nested_column());
     return size;
 }
 
diff --git a/be/src/vec/data_types/data_type_string.cpp 
b/be/src/vec/data_types/data_type_string.cpp
index 8a63f9bf30..2b4886697b 100644
--- a/be/src/vec/data_types/data_type_string.cpp
+++ b/be/src/vec/data_types/data_type_string.cpp
@@ -52,17 +52,17 @@ static inline void read(IColumn& column, Reader&& reader) {
 }
 
 std::string DataTypeString::to_string(const IColumn& column, size_t row_num) 
const {
+    auto ptr = column.convert_to_full_column_if_const();
     const StringRef& s =
-            assert_cast<const 
ColumnString&>(*column.convert_to_full_column_if_const().get())
-                    .get_data_at(row_num);
+            assert_cast<const ColumnString&>(*ptr.get()).get_data_at(row_num);
     return s.to_string();
 }
 
 void DataTypeString::to_string(const class doris::vectorized::IColumn & 
column, size_t row_num,
         class doris::vectorized::BufferWritable & ostr) const {
+    auto ptr = column.convert_to_full_column_if_const();
     const StringRef& s =
-            assert_cast<const 
ColumnString&>(*column.convert_to_full_column_if_const().get())
-                    .get_data_at(row_num);
+            assert_cast<const ColumnString&>(*ptr.get()).get_data_at(row_num);
     ostr.write(s.data, s.size);
 }
 


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

Reply via email to