modify large stack variable to heap variable for pwj compare
This commit is contained in:
@ -593,8 +593,10 @@ int ObDistPlans::check_inner_constraints(const ObIArray<ObPlanPwjConstraint>& st
|
|||||||
if (strict_cons.count() > 0 || non_strict_cons.count() > 0) {
|
if (strict_cons.count() > 0 || non_strict_cons.count() > 0) {
|
||||||
const int64_t tbl_count = phy_tbl_infos.count();
|
const int64_t tbl_count = phy_tbl_infos.count();
|
||||||
ObSEArray<PwjTable, 8> pwj_tables;
|
ObSEArray<PwjTable, 8> pwj_tables;
|
||||||
ObPwjComparer strict_pwj_comparer(true);
|
HEAP_VAR(ObPwjComparer, strict_pwj_comparer, true)
|
||||||
ObPwjComparer non_strict_pwj_comparer(false);
|
{
|
||||||
|
HEAP_VAR(ObPwjComparer, non_strict_pwj_comparer, false)
|
||||||
|
{
|
||||||
if (OB_FAIL(pwj_tables.prepare_allocate(tbl_count))) {
|
if (OB_FAIL(pwj_tables.prepare_allocate(tbl_count))) {
|
||||||
LOG_WARN("failed to prepare allocate pwj tables", K(ret));
|
LOG_WARN("failed to prepare allocate pwj tables", K(ret));
|
||||||
}
|
}
|
||||||
@ -622,8 +624,8 @@ int ObDistPlans::check_inner_constraints(const ObIArray<ObPlanPwjConstraint>& st
|
|||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("get unexpected pwj constraint", K(ret), K(pwj_cons));
|
LOG_WARN("get unexpected pwj constraint", K(ret), K(pwj_cons));
|
||||||
} else if (pwj_cons.at(0) == i) {
|
} else if (pwj_cons.at(0) == i) {
|
||||||
if (OB_FAIL(
|
if (OB_FAIL(check_pwj_cons(
|
||||||
check_pwj_cons(pc_ctx, pwj_cons, phy_tbl_infos, pwj_tables, strict_pwj_comparer, pwj_map, is_same))) {
|
pc_ctx, pwj_cons, phy_tbl_infos, pwj_tables, strict_pwj_comparer, pwj_map, is_same))) {
|
||||||
LOG_WARN("failed to check pwj cons", K(ret));
|
LOG_WARN("failed to check pwj cons", K(ret));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -643,6 +645,8 @@ int ObDistPlans::check_inner_constraints(const ObIArray<ObPlanPwjConstraint>& st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (OB_FAIL(ret)) {
|
if (OB_FAIL(ret)) {
|
||||||
is_same = false;
|
is_same = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user