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 a3a951c71d [Fix](multi-catalog) Fix load string dict issue for 
transactional hive tables. (#23306)
a3a951c71d is described below

commit a3a951c71d6897f74f4b7282efb6b2997317fb47
Author: Qi Chen <kaka11.c...@gmail.com>
AuthorDate: Sat Aug 26 00:09:12 2023 +0800

    [Fix](multi-catalog) Fix load string dict issue for transactional hive 
tables. (#23306)
    
    Fix load string dict issue for transactional hive tables. The column name 
need to pass 'row.column_name'.
    
    apache/doris-thirdparty#112
---
 be/src/apache-orc                                       |  2 +-
 be/src/vec/exec/format/orc/vorc_reader.cpp              | 12 +++++++-----
 be/src/vec/exec/format/orc/vorc_reader.h                |  4 ++--
 regression-test/pipeline/p0/conf/regression-conf.groovy |  4 +---
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/be/src/apache-orc b/be/src/apache-orc
index a4e67d732e..78bbe2e41f 160000
--- a/be/src/apache-orc
+++ b/be/src/apache-orc
@@ -1 +1 @@
-Subproject commit a4e67d732e9acf3acb45e85c4cfe84d630e71ec1
+Subproject commit 78bbe2e41f2140b803855d683fae5e1a4b734a37
diff --git a/be/src/vec/exec/format/orc/vorc_reader.cpp 
b/be/src/vec/exec/format/orc/vorc_reader.cpp
index e1274c1959..362157d41b 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.cpp
+++ b/be/src/vec/exec/format/orc/vorc_reader.cpp
@@ -316,22 +316,24 @@ Status OrcReader::_init_read_columns() {
             _missing_cols.emplace_back(col_name);
         } else {
             int pos = std::distance(orc_cols_lower_case.begin(), iter);
+            std::string read_col;
             if (_is_acid && i < _column_names->size() - 
TransactionalHive::READ_PARAMS.size()) {
-                auto read_col = fmt::format(
+                read_col = fmt::format(
                         "{}.{}",
                         
TransactionalHive::ACID_COLUMN_NAMES[TransactionalHive::ROW_OFFSET],
                         orc_cols[pos]);
                 _read_cols.emplace_back(read_col);
             } else {
-                _read_cols.emplace_back(orc_cols[pos]);
+                read_col = orc_cols[pos];
+                _read_cols.emplace_back(read_col);
             }
             _read_cols_lower_case.emplace_back(col_name);
             // For hive engine, store the orc column name to schema column 
name map.
             // This is for Hive 1.x orc file with internal column name _col0, 
_col1...
             if (_is_hive) {
-                _file_col_to_schema_col[orc_cols[pos]] = col_name;
+                _removed_acid_file_col_name_to_schema_col[orc_cols[pos]] = 
col_name;
             }
-            _col_name_to_file_col_name[col_name] = orc_cols[pos];
+            _col_name_to_file_col_name[col_name] = read_col;
         }
     }
     return Status::OK();
@@ -804,7 +806,7 @@ Status OrcReader::_init_select_types(const orc::Type& type, 
int idx) {
         // For hive engine, translate the column name in orc file to schema 
column name.
         // This is for Hive 1.x which use internal column name _col0, _col1...
         if (_is_hive) {
-            name = _file_col_to_schema_col[type.getFieldName(i)];
+            name = 
_removed_acid_file_col_name_to_schema_col[type.getFieldName(i)];
         } else {
             name = _get_field_name_lower_case(&type, i);
         }
diff --git a/be/src/vec/exec/format/orc/vorc_reader.h 
b/be/src/vec/exec/format/orc/vorc_reader.h
index 9b5c1fe576..4f11eb4de1 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.h
+++ b/be/src/vec/exec/format/orc/vorc_reader.h
@@ -510,10 +510,10 @@ private:
     std::list<std::string> _read_cols_lower_case;
     std::list<std::string> _missing_cols;
     std::unordered_map<std::string, int> _colname_to_idx;
-    // Column name in Orc file to column name to schema.
+    // Column name in Orc file after removed acid(remove row.) to column name 
to schema.
     // This is used for Hive 1.x which use internal column name in Orc file.
     // _col0, _col1...
-    std::unordered_map<std::string, std::string> _file_col_to_schema_col;
+    std::unordered_map<std::string, std::string> 
_removed_acid_file_col_name_to_schema_col;
     // Flag for hive engine. True if the external table engine is Hive.
     bool _is_hive = false;
     std::unordered_map<std::string, std::string> _col_name_to_file_col_name;
diff --git a/regression-test/pipeline/p0/conf/regression-conf.groovy 
b/regression-test/pipeline/p0/conf/regression-conf.groovy
index d26a127c65..7464b28d03 100644
--- a/regression-test/pipeline/p0/conf/regression-conf.groovy
+++ b/regression-test/pipeline/p0/conf/regression-conf.groovy
@@ -54,9 +54,7 @@ testDirectories = ""
 // this groups will not be executed
 excludeGroups = ""
 // this suites will not be executed
-
-excludeSuites = 
"test_full_compaction,test_default_limit,test_profile,test_broker_load,test_spark_load,test_refresh_mtmv,test_bitmap_filter,test_export_parquet,test_doris_jdbc_catalog,test_transactional_hive,nereids_delete_mow_partial_update,test_hdfs_tvf"
-
+excludeSuites = 
"test_full_compaction,test_default_limit,test_profile,test_broker_load,test_spark_load,test_refresh_mtmv,test_bitmap_filter,test_export_parquet,test_doris_jdbc_catalog,nereids_delete_mow_partial_update,test_hdfs_tvf"
 // this directories will not be executed
 excludeDirectories = "workload_manager_p1"
 


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

Reply via email to