diff --git a/src/sql/engine/px/ob_px_sub_coord.cpp b/src/sql/engine/px/ob_px_sub_coord.cpp index 60a51dbd3..285838402 100644 --- a/src/sql/engine/px/ob_px_sub_coord.cpp +++ b/src/sql/engine/px/ob_px_sub_coord.cpp @@ -910,9 +910,12 @@ int ObPxSubCoord::start_ddl() const int64_t ref_table_id = location_keys.at(0).ref_table_id_; const int64_t ddl_table_id = phy_plan->get_ddl_table_id(); const int64_t ddl_task_id = phy_plan->get_ddl_task_id(); - const int64_t schema_version = phy_plan->get_ddl_schema_version(); const int64_t ddl_execution_id = phy_plan->get_ddl_execution_id(); - if (OB_FAIL(ObDDLUtil::get_data_information(tenant_id, ddl_task_id, data_format_version, snapshot_version, unused_task_status))) { + + uint64_t unused_taget_object_id = OB_INVALID_ID; + int64_t schema_version = OB_INVALID_VERSION; + + if (OB_FAIL(ObDDLUtil::get_data_information(tenant_id, ddl_task_id, data_format_version, snapshot_version, unused_task_status, unused_taget_object_id, schema_version))) { LOG_WARN("get ddl cluster version failed", K(ret)); } else if (OB_UNLIKELY(snapshot_version <= 0)) { ret = OB_NEED_RETRY; @@ -932,7 +935,7 @@ int ObPxSubCoord::start_ddl() direct_load_param.runtime_only_param_.exec_ctx_ = exec_ctx; direct_load_param.runtime_only_param_.task_id_ = ddl_task_id; direct_load_param.runtime_only_param_.table_id_ = ddl_table_id; - direct_load_param.runtime_only_param_.schema_version_ = schema_version; + direct_load_param.runtime_only_param_.schema_version_ = schema_version; /* set schema version as get from ddl record which is a fixed val */ direct_load_param.runtime_only_param_.task_cnt_ = sqc_arg_.sqc_.get_task_count(); if (OB_FAIL(tenant_direct_load_mgr->alloc_execution_context_id(ddl_ctrl_.context_id_))) { LOG_WARN("alloc execution context id failed", K(ret)); diff --git a/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp b/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp index e47d4039c..fbe62ab0c 100644 --- a/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp +++ b/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp @@ -2283,6 +2283,8 @@ int ObTabletDirectLoadMgr::prepare_index_builder_if_need(const ObTableSchema &ta data_format_version_, get_micro_index_clustered(), is_full_direct_load(direct_load_type_) ? SCN::invalid_scn() : table_key_.get_end_scn()))) { LOG_WARN("fail to init data desc", K(ret)); + } else if (FALSE_IT(index_block_desc.get_static_desc().schema_version_ = sqc_build_ctx_.build_param_.runtime_only_param_.schema_version_)) { + /* set as a fixed schema version */ } else { if (GCTX.is_shared_storage_mode() && !is_incremental_direct_load(direct_load_type_)) { index_block_desc.get_static_desc().exec_mode_ = compaction::EXEC_MODE_OUTPUT; @@ -2306,6 +2308,7 @@ int ObTabletDirectLoadMgr::prepare_index_builder_if_need(const ObTableSchema &ta is_full_direct_load(direct_load_type_) ? SCN::invalid_scn() : table_key_.get_end_scn()))) { LOG_WARN("fail to init data block desc", K(ret)); } else { + sqc_build_ctx_.data_block_desc_.get_static_desc().schema_version_ = sqc_build_ctx_.build_param_.runtime_only_param_.schema_version_; sqc_build_ctx_.data_block_desc_.get_desc().sstable_index_builder_ = sqc_build_ctx_.index_builder_; // for build the tail index block in macro block if (GCTX.is_shared_storage_mode() && !is_incremental_direct_load(direct_load_type_)) { sqc_build_ctx_.data_block_desc_.get_static_desc().exec_mode_ = compaction::EXEC_MODE_OUTPUT;