[Fix](multi-catalog) Fix be crashed when query hive table after schema changed(new column added). (#20537)

Fix be crashed when query hive table after schema changed(new column added).

Regression Test: test_hive_schema_evolution.groovy
This commit is contained in:
Qi Chen
2023-06-08 18:10:36 +08:00
committed by GitHub
parent 41d7c535f2
commit 4faee4d8fd
4 changed files with 150 additions and 5 deletions

View File

@ -273,11 +273,17 @@ Status OrcReader::_init_read_columns() {
for (auto& col_name : _column_names) {
if (_is_hive) {
auto iter = _scan_params.slot_name_to_schema_pos.find(col_name);
int pos = iter->second;
if (_is_acid) {
orc_cols_lower_case[ACID_ROW_OFFSET + 1 + pos] = iter->first;
} else {
orc_cols_lower_case[pos] = iter->first;
if (iter != _scan_params.slot_name_to_schema_pos.end()) {
int pos = iter->second;
if (_is_acid) {
if (ACID_ROW_OFFSET + 1 + pos < orc_cols_lower_case.size()) {
orc_cols_lower_case[ACID_ROW_OFFSET + 1 + pos] = iter->first;
}
} else {
if (pos < orc_cols_lower_case.size()) {
orc_cols_lower_case[pos] = iter->first;
}
}
}
}
auto iter = std::find(orc_cols_lower_case.begin(), orc_cols_lower_case.end(), col_name);