[SCN REFACTOR] replace flash back snapshot and remove read snapshot session
This commit is contained in:
		| @ -424,6 +424,8 @@ int ObDDLUtil::generate_build_replica_sql( | ||||
|     const int64_t dest_table_id, | ||||
|     const int64_t schema_version, | ||||
|     const int64_t snapshot_version, | ||||
|     const int64_t execution_id, | ||||
|     const int64_t task_id, | ||||
|     const int64_t parallelism, | ||||
|     const bool use_heap_table_ddl_plan, | ||||
|     const bool use_schema_version_hint_for_src_table, | ||||
| @ -435,9 +437,11 @@ int ObDDLUtil::generate_build_replica_sql( | ||||
|   const ObTableSchema *source_table_schema = nullptr; | ||||
|   const ObTableSchema *dest_table_schema = nullptr; | ||||
|   bool oracle_mode = false; | ||||
|   if (OB_UNLIKELY(OB_INVALID_ID == tenant_id || OB_INVALID_ID == data_table_id || OB_INVALID_ID == dest_table_id || schema_version <= 0 || snapshot_version <= 0)) { | ||||
|   if (OB_UNLIKELY(OB_INVALID_ID == tenant_id || OB_INVALID_ID == data_table_id || OB_INVALID_ID == dest_table_id | ||||
|       || schema_version <= 0 || snapshot_version <= 0 || execution_id <= 0 || task_id <= 0)) { | ||||
|     ret = OB_INVALID_ARGUMENT; | ||||
|     LOG_WARN("invalid arguments", K(ret), K(tenant_id), K(data_table_id), K(dest_table_id), K(schema_version), K(snapshot_version)); | ||||
|     LOG_WARN("invalid arguments", K(ret), K(tenant_id), K(data_table_id), K(dest_table_id), K(schema_version), | ||||
|                                   K(snapshot_version), K(execution_id), K(task_id)); | ||||
|   } else if (OB_FAIL(ObMultiVersionSchemaService::get_instance().get_tenant_schema_guard( | ||||
|       tenant_id, schema_guard, schema_version))) { | ||||
|     LOG_WARN("fail to get tenant schema guard", K(ret), K(data_table_id)); | ||||
| @ -636,8 +640,8 @@ int ObDDLUtil::generate_build_replica_sql( | ||||
|  | ||||
|       if (OB_FAIL(ret)) { | ||||
|       } else if (oracle_mode) { | ||||
|         if (OB_FAIL(sql_string.assign_fmt("INSERT /*+ monitor enable_parallel_dml parallel(%ld) use_px */INTO \"%.*s\".\"%.*s\"(%.*s) SELECT /*+ index(\"%.*s\" primary) %.*s */ %.*s from \"%.*s\".\"%.*s\" as of scn %ld %.*s", | ||||
|             real_parallelism, | ||||
|         if (OB_FAIL(sql_string.assign_fmt("INSERT /*+ monitor enable_parallel_dml parallel(%ld) opt_param('ddl_execution_id', %ld) opt_param('ddl_task_id', %ld) use_px */INTO \"%.*s\".\"%.*s\"(%.*s) SELECT /*+ index(\"%.*s\" primary) %.*s */ %.*s from \"%.*s\".\"%.*s\" as of scn %ld %.*s", | ||||
|             real_parallelism, execution_id, task_id, | ||||
|             static_cast<int>(dest_database_name.length()), dest_database_name.ptr(), static_cast<int>(dest_table_name.length()), dest_table_name.ptr(), | ||||
|             static_cast<int>(insert_column_sql_string.length()), insert_column_sql_string.ptr(), | ||||
|             static_cast<int>(source_table_name.length()), source_table_name.ptr(), | ||||
| @ -648,8 +652,8 @@ int ObDDLUtil::generate_build_replica_sql( | ||||
|           LOG_WARN("fail to assign sql string", K(ret)); | ||||
|         } | ||||
|       } else { | ||||
|         if (OB_FAIL(sql_string.assign_fmt("INSERT /*+ monitor enable_parallel_dml parallel(%ld) use_px */INTO `%.*s`.`%.*s`(%.*s) SELECT /*+ index(`%.*s` primary) %.*s */ %.*s from `%.*s`.`%.*s` as of snapshot %ld %.*s", | ||||
|             real_parallelism, | ||||
|         if (OB_FAIL(sql_string.assign_fmt("INSERT /*+ monitor enable_parallel_dml parallel(%ld) opt_param('ddl_execution_id', %ld) opt_param('ddl_task_id', %ld) use_px */INTO `%.*s`.`%.*s`(%.*s) SELECT /*+ index(`%.*s` primary) %.*s */ %.*s from `%.*s`.`%.*s` as of snapshot %ld %.*s", | ||||
|             real_parallelism, execution_id, task_id, | ||||
|             static_cast<int>(dest_database_name.length()), dest_database_name.ptr(), static_cast<int>(dest_table_name.length()), dest_table_name.ptr(), | ||||
|             static_cast<int>(insert_column_sql_string.length()), insert_column_sql_string.ptr(), | ||||
|             static_cast<int>(source_table_name.length()), source_table_name.ptr(), | ||||
| @ -716,6 +720,7 @@ int ObDDLUtil::clear_ddl_checksum(ObPhysicalPlan *phy_plan) | ||||
|                                                               execution_id, | ||||
|                                                               table_scan_table_id, | ||||
|                                                               phy_plan->get_ddl_table_id(), | ||||
|                                                               phy_plan->get_ddl_task_id(), | ||||
|                                                               *GCTX.sql_proxy_))) { | ||||
|       LOG_WARN("failed to delete checksum", K(ret)); | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 wangt1xiuyi
					wangt1xiuyi