This is an automated email from the ASF dual-hosted git repository. yiguolei 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 7b75c2df54 [fix](BE) fix the stream load error when upgrade BE from 1.1.2 to master (#13058) 7b75c2df54 is described below commit 7b75c2df54323e8c280af3ce3d91a094ebb5c62d Author: Lightman <31928846+lchangli...@users.noreply.github.com> AuthorDate: Wed Oct 5 12:13:26 2022 +0800 [fix](BE) fix the stream load error when upgrade BE from 1.1.2 to master (#13058) --- be/src/exec/olap_scanner.cpp | 3 ++- be/src/exec/tablet_info.cpp | 10 ++++++---- be/src/vec/exec/scan/new_olap_scanner.cpp | 2 +- be/src/vec/exec/volap_scanner.cpp | 3 ++- .../src/main/java/org/apache/doris/planner/OlapScanNode.java | 4 ++-- .../src/main/java/org/apache/doris/planner/OlapTableSink.java | 3 ++- gensrc/thrift/Descriptors.thrift | 2 +- gensrc/thrift/PlanNodes.thrift | 2 +- 8 files changed, 17 insertions(+), 12 deletions(-) diff --git a/be/src/exec/olap_scanner.cpp b/be/src/exec/olap_scanner.cpp index 8ff6db2ab6..75a45b9a46 100644 --- a/be/src/exec/olap_scanner.cpp +++ b/be/src/exec/olap_scanner.cpp @@ -81,7 +81,8 @@ Status OlapScanner::prepare( return Status::InternalError(ss.str()); } _tablet_schema->copy_from(*_tablet->tablet_schema()); - if (!_parent->_olap_scan_node.columns_desc.empty() && + if (_parent->_olap_scan_node.__isset.columns_desc && + !_parent->_olap_scan_node.columns_desc.empty() && _parent->_olap_scan_node.columns_desc[0].col_unique_id >= 0) { _tablet_schema->clear_columns(); for (const auto& column_desc : _parent->_olap_scan_node.columns_desc) { diff --git a/be/src/exec/tablet_info.cpp b/be/src/exec/tablet_info.cpp index 08e77d9565..62926e5fa9 100644 --- a/be/src/exec/tablet_info.cpp +++ b/be/src/exec/tablet_info.cpp @@ -98,10 +98,12 @@ Status OlapTableSchemaParam::init(const TOlapTableSchemaParam& tschema) { } index->slots.emplace_back(it->second); } - for (auto& tcolumn_desc : t_index.columns_desc) { - TabletColumn* tc = _obj_pool.add(new TabletColumn()); - tc->init_from_thrift(tcolumn_desc); - index->columns.emplace_back(tc); + if (t_index.__isset.columns_desc) { + for (auto& tcolumn_desc : t_index.columns_desc) { + TabletColumn* tc = _obj_pool.add(new TabletColumn()); + tc->init_from_thrift(tcolumn_desc); + index->columns.emplace_back(tc); + } } _indexes.emplace_back(index); } diff --git a/be/src/vec/exec/scan/new_olap_scanner.cpp b/be/src/vec/exec/scan/new_olap_scanner.cpp index 5d88345cf5..d6fe854e63 100644 --- a/be/src/vec/exec/scan/new_olap_scanner.cpp +++ b/be/src/vec/exec/scan/new_olap_scanner.cpp @@ -67,7 +67,7 @@ Status NewOlapScanner::prepare( _tablet_schema->copy_from(*_tablet->tablet_schema()); TOlapScanNode& olap_scan_node = ((NewOlapScanNode*)_parent)->_olap_scan_node; - if (!olap_scan_node.columns_desc.empty() && + if (olap_scan_node.__isset.columns_desc && !olap_scan_node.columns_desc.empty() && olap_scan_node.columns_desc[0].col_unique_id >= 0) { // Originally scanner get TabletSchema from tablet object in BE. // To support lightweight schema change for adding / dropping columns, diff --git a/be/src/vec/exec/volap_scanner.cpp b/be/src/vec/exec/volap_scanner.cpp index 9258d48611..fc082a6313 100644 --- a/be/src/vec/exec/volap_scanner.cpp +++ b/be/src/vec/exec/volap_scanner.cpp @@ -71,7 +71,8 @@ Status VOlapScanner::prepare( return Status::InternalError(ss.str()); } _tablet_schema->copy_from(*_tablet->tablet_schema()); - if (!_parent->_olap_scan_node.columns_desc.empty() && + if (_parent->_olap_scan_node.__isset.columns_desc && + !_parent->_olap_scan_node.columns_desc.empty() && _parent->_olap_scan_node.columns_desc[0].col_unique_id >= 0) { // Originally scanner get TabletSchema from tablet object in BE. // To support lightweight schema change for adding / dropping columns, diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java index 290e934361..e813bf03e2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java @@ -913,8 +913,8 @@ public class OlapScanNode extends ScanNode { } msg.node_type = TPlanNodeType.OLAP_SCAN_NODE; - msg.olap_scan_node = new TOlapScanNode(desc.getId().asInt(), keyColumnNames, keyColumnTypes, isPreAggregation, - columnsDesc); + msg.olap_scan_node = new TOlapScanNode(desc.getId().asInt(), keyColumnNames, keyColumnTypes, isPreAggregation); + msg.olap_scan_node.setColumnsDesc(columnsDesc); if (null != sortColumn) { msg.olap_scan_node.setSortColumn(sortColumn); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java index 9172d618fe..ef470cf711 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java @@ -215,7 +215,8 @@ public class OlapTableSink extends DataSink { columnsDesc.add(tColumn); } TOlapTableIndexSchema indexSchema = new TOlapTableIndexSchema(pair.getKey(), columns, - indexMeta.getSchemaHash(), columnsDesc); + indexMeta.getSchemaHash()); + indexSchema.setColumnsDesc(columnsDesc); schemaParam.addToIndexes(indexSchema); } return schemaParam; diff --git a/gensrc/thrift/Descriptors.thrift b/gensrc/thrift/Descriptors.thrift index ff365db7c4..f9517e2bfa 100644 --- a/gensrc/thrift/Descriptors.thrift +++ b/gensrc/thrift/Descriptors.thrift @@ -175,7 +175,7 @@ struct TOlapTableIndexSchema { 1: required i64 id 2: required list<string> columns 3: required i32 schema_hash - 4: required list<TColumn> columns_desc + 4: optional list<TColumn> columns_desc } struct TOlapTableSchemaParam { diff --git a/gensrc/thrift/PlanNodes.thrift b/gensrc/thrift/PlanNodes.thrift index 0a4529572b..fe81af746b 100644 --- a/gensrc/thrift/PlanNodes.thrift +++ b/gensrc/thrift/PlanNodes.thrift @@ -479,7 +479,7 @@ struct TOlapScanNode { 5: optional string sort_column 6: optional Types.TKeysType keyType 7: optional string table_name - 8: required list<Descriptors.TColumn> columns_desc + 8: optional list<Descriptors.TColumn> columns_desc 9: optional TSortInfo sort_info // When scan match sort_info, we can push limit into OlapScanNode. // It's limit for scanner instead of scanNode so we add a new limit. --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org