fix plan cache memleak for add local plan route

This commit is contained in:
jh 2021-06-22 20:29:47 +08:00 committed by MizuhaHimuraki
parent 524427c455
commit 00672c3c73

View File

@ -901,14 +901,18 @@ int ObSqlPlanSet::add_plan(ObPhysicalPlan& plan, ObPlanCacheCtx& pc_ctx, int64_t
array_binding_plan_ = &plan;
}
} else {
local_plan_ = &plan;
local_phy_locations_.reset();
if (OB_FAIL(init_phy_location(phy_locations.count()))) {
SQL_PC_LOG(WARN, "init phy location failed");
} else if (OB_FAIL(local_phy_locations_.assign(phy_locations))) {
SQL_PC_LOG(WARN, "fail to assign phy locations");
if (NULL != local_plan_) {
ret = OB_SQL_PC_PLAN_DUPLICATE;
} else {
local_plan_ = &plan;
local_phy_locations_.reset();
if (OB_FAIL(init_phy_location(phy_locations.count()))) {
SQL_PC_LOG(WARN, "init phy location failed");
} else if (OB_FAIL(local_phy_locations_.assign(phy_locations))) {
SQL_PC_LOG(WARN, "fail to assign phy locations");
}
LOG_DEBUG("local phy locations", K(local_phy_locations_));
}
LOG_DEBUG("local phy locations", K(local_phy_locations_));
}
} break;
case OB_PHY_PLAN_REMOTE: {