fix dblink bugs
This commit is contained in:
@ -84,6 +84,7 @@
|
||||
#include "sql/ob_optimizer_trace_impl.h"
|
||||
#include "sql/monitor/ob_sql_plan.h"
|
||||
#include "sql/optimizer/ob_explain_log_plan.h"
|
||||
#include "sql/dblink/ob_dblink_utils.h"
|
||||
|
||||
namespace oceanbase
|
||||
{
|
||||
@ -4752,6 +4753,8 @@ int ObSql::check_batched_multi_stmt_after_resolver(ObPlanCacheCtx &pc_ctx,
|
||||
int ret = OB_SUCCESS;
|
||||
ObPhysicalPlanCtx *plan_ctx = NULL;
|
||||
is_valid = true;
|
||||
bool has_dblink = false;
|
||||
bool has_any_dblink = false;
|
||||
bool is_ps_ab_opt = pc_ctx.sql_ctx_.multi_stmt_item_.is_ab_batch_opt();
|
||||
if (OB_ISNULL(plan_ctx = pc_ctx.exec_ctx_.get_physical_plan_ctx())
|
||||
|| OB_ISNULL(pc_ctx.sql_ctx_.session_info_)) {
|
||||
@ -4774,6 +4777,12 @@ int ObSql::check_batched_multi_stmt_after_resolver(ObPlanCacheCtx &pc_ctx,
|
||||
is_valid = false;
|
||||
}
|
||||
|
||||
if (OB_FAIL(ObDblinkUtils::has_reverse_link_or_any_dblink(&delupd_stmt, has_dblink, has_any_dblink))) {
|
||||
LOG_WARN("failed to check dblink in stmt", K(delupd_stmt), K(ret));
|
||||
} else if (has_any_dblink) {
|
||||
is_valid = false;
|
||||
}
|
||||
|
||||
// make sure type of all the parameters are the same
|
||||
if (OB_SUCC(ret) && is_valid) {
|
||||
if (!is_ps_ab_opt) {
|
||||
|
||||
Reference in New Issue
Block a user