Fix pdml insert bug
This commit is contained in:
@ -470,13 +470,7 @@ int ObDelUpdLogPlan::compute_exchange_info_for_pdml_del_upd(const ObShardingInfo
|
|||||||
}
|
}
|
||||||
LOG_TRACE("partition level is one, use pkey reshuffle method");
|
LOG_TRACE("partition level is one, use pkey reshuffle method");
|
||||||
} else if (share::schema::PARTITION_LEVEL_TWO == part_level) {
|
} else if (share::schema::PARTITION_LEVEL_TWO == part_level) {
|
||||||
if (source_sharding.is_partition_single()) {
|
|
||||||
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_ONE_LEVEL_SUB;
|
|
||||||
} else if (source_sharding.is_subpartition_single()) {
|
|
||||||
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_ONE_LEVEL_FIRST;
|
|
||||||
} else {
|
|
||||||
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_TWO_LEVEL;
|
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_TWO_LEVEL;
|
||||||
}
|
|
||||||
if (!get_stmt()->is_merge_stmt() &&
|
if (!get_stmt()->is_merge_stmt() &&
|
||||||
get_optimizer_context().is_pdml_heap_table() && !is_index_maintenance) {
|
get_optimizer_context().is_pdml_heap_table() && !is_index_maintenance) {
|
||||||
exch_info.dist_method_ = ObPQDistributeMethod::PARTITION_RANDOM;
|
exch_info.dist_method_ = ObPQDistributeMethod::PARTITION_RANDOM;
|
||||||
@ -598,13 +592,7 @@ int ObDelUpdLogPlan::compute_exchange_info_for_pdml_insert(const ObShardingInfo
|
|||||||
}
|
}
|
||||||
} else if (share::schema::PARTITION_LEVEL_TWO == part_level) {
|
} else if (share::schema::PARTITION_LEVEL_TWO == part_level) {
|
||||||
// pdml op对应的表是分区表,分区内并行处理,使用pkey random shuffle方式
|
// pdml op对应的表是分区表,分区内并行处理,使用pkey random shuffle方式
|
||||||
if (target_sharding.is_partition_single()) {
|
|
||||||
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_ONE_LEVEL_SUB;
|
|
||||||
} else if (target_sharding.is_subpartition_single()) {
|
|
||||||
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_ONE_LEVEL_FIRST;
|
|
||||||
} else {
|
|
||||||
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_TWO_LEVEL;
|
exch_info.repartition_type_ = OB_REPARTITION_ONE_SIDE_TWO_LEVEL;
|
||||||
}
|
|
||||||
if ((!get_stmt()->is_merge_stmt() ||
|
if ((!get_stmt()->is_merge_stmt() ||
|
||||||
!static_cast<const ObMergeStmt*>(get_stmt())->has_update_clause()) &&
|
!static_cast<const ObMergeStmt*>(get_stmt())->has_update_clause()) &&
|
||||||
((get_optimizer_context().is_online_ddl() && get_optimizer_context().is_heap_table_ddl())
|
((get_optimizer_context().is_online_ddl() && get_optimizer_context().is_heap_table_ddl())
|
||||||
|
|||||||
Reference in New Issue
Block a user