[FEAT MERGE][CP]optimizer stats enhancement
Co-authored-by: 2149 <260391947@qq.com>
This commit is contained in:
@ -1199,7 +1199,7 @@ int ObDelUpdLogPlan::allocate_optimizer_stats_gathering_as_top(ObLogicalOperator
|
||||
LOG_WARN("failed to allocate sequence operator", K(ret));
|
||||
} else {
|
||||
OSG_TYPE type = old_top->need_osg_merge() ? OSG_TYPE::MERGE_OSG :
|
||||
old_top->is_distributed() ? OSG_TYPE::GATHER_OSG : OSG_TYPE::NORMAL_OSG;
|
||||
old_top->is_sharding() ? OSG_TYPE::GATHER_OSG : OSG_TYPE::NORMAL_OSG;
|
||||
osg->set_child(ObLogicalOperator::first_child, old_top);
|
||||
osg->set_osg_type(type);
|
||||
osg->set_table_id(info.table_id_);
|
||||
|
||||
@ -95,7 +95,7 @@ int ObInsertLogPlan::generate_normal_raw_plan()
|
||||
LOG_WARN("failed to compute dml parallel", K(ret));
|
||||
} else if (use_pdml() && OB_FAIL(set_is_direct_insert())) {
|
||||
LOG_WARN("failed to set is direct insert", K(ret));
|
||||
} else if (OB_FAIL(check_need_online_stats_gather(need_osg))) {
|
||||
} else if (!is_direct_insert() && OB_FAIL(check_need_online_stats_gather(need_osg))) {
|
||||
LOG_WARN("fail to check wether we need optimizer stats gathering operator", K(ret));
|
||||
} else if (need_osg && OB_FAIL(generate_osg_share_info(osg_info))) {
|
||||
LOG_WARN("failed to generate osg share info");
|
||||
|
||||
@ -8068,7 +8068,7 @@ int ObOptimizerUtil::generate_pullup_aggr_expr(ObRawExprFactory &expr_factory,
|
||||
LOG_WARN("failed to pullup grouping aggr expr", K(ret));
|
||||
}
|
||||
} else if (T_FUN_TOP_FRE_HIST == origin_expr->get_expr_type()) {
|
||||
if (OB_UNLIKELY(3 != origin_expr->get_real_param_count())) {
|
||||
if (OB_UNLIKELY(4 != origin_expr->get_real_param_count())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("real param count is invalid", K(ret));
|
||||
} else if (OB_FAIL(expr_factory.create_raw_expr(T_FUN_TOP_FRE_HIST, pullup_aggr))) {
|
||||
@ -8082,6 +8082,9 @@ int ObOptimizerUtil::generate_pullup_aggr_expr(ObRawExprFactory &expr_factory,
|
||||
} else if (OB_FAIL(pullup_aggr->add_real_param_expr(
|
||||
origin_expr->get_real_param_exprs_for_update().at(2)))) {
|
||||
LOG_WARN("failed to add real param expr", K(ret));
|
||||
} else if (OB_FAIL(pullup_aggr->add_real_param_expr(
|
||||
origin_expr->get_real_param_exprs_for_update().at(3)))) {
|
||||
LOG_WARN("failed to add real param expr", K(ret));
|
||||
} else if (FALSE_IT(pullup_aggr->set_is_need_deserialize_row(true))) {
|
||||
// do nothing
|
||||
} else if (OB_FAIL(pullup_aggr->formalize(session_info))) {
|
||||
|
||||
Reference in New Issue
Block a user