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

morningman 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 a813ad56ad [fix](multi-catalog) key and value columns of map are 
normal column type (#18160)
a813ad56ad is described below

commit a813ad56ad0fbf7d8388df25b0cb12efc52bff49
Author: Ashin Gau <[email protected]>
AuthorDate: Tue Mar 28 23:11:40 2023 +0800

    [fix](multi-catalog) key and value columns of map are normal column type 
(#18160)
    
    PR(#17330) has changed the column type of kay and value from array to 
normal column, but orc&parquet reader still cast to array column, resulting in 
cast error.
---
 be/src/vec/exec/format/orc/vorc_reader.cpp                | 6 ++----
 be/src/vec/exec/format/parquet/vparquet_column_reader.cpp | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/be/src/vec/exec/format/orc/vorc_reader.cpp 
b/be/src/vec/exec/format/orc/vorc_reader.cpp
index a0c2e04768..bde965f3b1 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.cpp
+++ b/be/src/vec/exec/format/orc/vorc_reader.cpp
@@ -805,10 +805,8 @@ Status OrcReader::_orc_column_to_doris_column(const 
std::string& col_name,
                         ->get_value_type());
         const orc::Type* orc_key_type = orc_column_type->getSubtype(0);
         const orc::Type* orc_value_type = orc_column_type->getSubtype(1);
-        const ColumnPtr& doris_key_column =
-                typeid_cast<const 
ColumnArray*>(doris_map.get_keys_ptr().get())->get_data_ptr();
-        const ColumnPtr& doris_value_column =
-                typeid_cast<const 
ColumnArray*>(doris_map.get_values_ptr().get())->get_data_ptr();
+        const ColumnPtr& doris_key_column = doris_map.get_keys_ptr();
+        const ColumnPtr& doris_value_column = doris_map.get_values_ptr();
         RETURN_IF_ERROR(_orc_column_to_doris_column(col_name, 
doris_key_column, doris_key_type,
                                                     orc_key_type, 
orc_map->keys.get(),
                                                     element_size));
diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
index 86ce6e30e4..02bb4e1d70 100644
--- a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
@@ -580,10 +580,8 @@ Status MapColumnReader::read_column_data(ColumnPtr& 
doris_column, DataTypePtr& t
             reinterpret_cast<const 
DataTypeMap*>(remove_nullable(type).get())->get_key_type());
     DataTypePtr& value_type = const_cast<DataTypePtr&>(
             reinterpret_cast<const 
DataTypeMap*>(remove_nullable(type).get())->get_value_type());
-    ColumnPtr& key_column =
-            
typeid_cast<ColumnArray*>(map.get_keys_ptr()->assume_mutable().get())->get_data_ptr();
-    ColumnPtr& value_column =
-            
typeid_cast<ColumnArray*>(map.get_values_ptr()->assume_mutable().get())->get_data_ptr();
+    ColumnPtr& key_column = map.get_keys_ptr();
+    ColumnPtr& value_column = map.get_values_ptr();
 
     size_t key_rows = 0;
     size_t value_rows = 0;


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

Reply via email to