[FEAT MERGE] enhance_ddl_quality
Co-authored-by: renju96 <fcbrenju@163.com>
This commit is contained in:
@ -23,6 +23,7 @@
|
||||
#include "share/ob_common_rpc_proxy.h"
|
||||
#include "lib/worker.h"
|
||||
#include "rootserver/ob_root_utils.h"
|
||||
#include "observer/ob_server_event_history_table_operator.h"
|
||||
|
||||
namespace oceanbase
|
||||
{
|
||||
@ -45,6 +46,7 @@ int ObCreateDatabaseExecutor::execute(ObExecContext &ctx, ObCreateDatabaseStmt &
|
||||
const obrpc::ObCreateDatabaseArg &create_database_arg = stmt.get_create_database_arg();
|
||||
obrpc::ObCreateDatabaseArg &tmp_arg = const_cast<obrpc::ObCreateDatabaseArg&>(create_database_arg);
|
||||
ObString first_stmt;
|
||||
obrpc::UInt64 database_id(0);
|
||||
if (OB_FAIL(stmt.get_first_stmt(first_stmt))) {
|
||||
SQL_ENG_LOG(WARN, "fail to get first stmt" , K(ret));
|
||||
} else {
|
||||
@ -63,14 +65,22 @@ int ObCreateDatabaseExecutor::execute(ObExecContext &ctx, ObCreateDatabaseStmt &
|
||||
SQL_ENG_LOG(WARN, "fail to get physical plan ctx", K(ret), K(ctx), K(common_rpc_proxy));
|
||||
} else {
|
||||
//为什么create database的协议需要返回database_id,暂时没有用上。
|
||||
obrpc::UInt64 database_id(0);
|
||||
if (OB_FAIL(common_rpc_proxy->create_database(create_database_arg, database_id))) {
|
||||
SQL_ENG_LOG(WARN, "rpc proxy create table failed", K(ret));
|
||||
} else {
|
||||
ctx.get_physical_plan_ctx()->set_affected_rows(1);
|
||||
}
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish execute create database.", K(ret), K(stmt));
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "create database execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"database_info", database_id,
|
||||
"schema_version", create_database_arg.database_schema_.get_schema_version());
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish execute create database.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(create_database_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -167,6 +177,16 @@ int ObAlterDatabaseExecutor::execute(ObExecContext &ctx, ObAlterDatabaseStmt &st
|
||||
SQL_ENG_LOG(WARN, "failed to update sys variable", K(ret));
|
||||
}
|
||||
}
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "alter database execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"database_info", alter_database_arg.database_schema_.get_database_id(),
|
||||
"schema_version", alter_database_arg.database_schema_.get_schema_version());
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish execute alter database", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(alter_database_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -238,7 +258,15 @@ int ObDropDatabaseExecutor::execute(ObExecContext &ctx, ObDropDatabaseStmt &stmt
|
||||
ctx.get_physical_plan_ctx()->set_affected_rows(drop_database_res.affected_row_);
|
||||
}
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish execute drop database.", K(ret), K(stmt));
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "drop database execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"database_info", database_id);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish execute drop database.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(drop_database_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -268,6 +296,17 @@ int ObFlashBackDatabaseExecutor::execute(ObExecContext &ctx, ObFlashBackDatabase
|
||||
} else if (OB_FAIL(common_rpc_proxy->flashback_database(flashback_database_arg))) {
|
||||
SQL_ENG_LOG(WARN, "rpc proxy flashback database failed", K(ret));
|
||||
}
|
||||
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "flashback database execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"origin_db_name", flashback_database_arg.origin_db_name_,
|
||||
"new_db_name", flashback_database_arg.new_db_name_);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish execute flashback database.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(flashback_database_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -297,6 +336,16 @@ int ObPurgeDatabaseExecutor::execute(ObExecContext &ctx, ObPurgeDatabaseStmt &st
|
||||
} else if (OB_FAIL(common_rpc_proxy->purge_database(purge_database_arg))) {
|
||||
SQL_ENG_LOG(WARN, "rpc proxy purge database failed", K(ret));
|
||||
}
|
||||
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "purge database execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"database_info", purge_database_arg.db_name_);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish purge database.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(purge_database_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#include "share/ob_srv_rpc_proxy.h" //ObSrvRpcProxy
|
||||
#include "share/ob_ddl_error_message_table_operator.h"
|
||||
#include "sql/session/ob_sql_session_info.h"
|
||||
#include "observer/ob_server_event_history_table_operator.h"
|
||||
|
||||
namespace oceanbase
|
||||
{
|
||||
@ -62,6 +63,14 @@ int ObDDLExecutorUtil::wait_ddl_finish(
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid argument", K(ret), K(tenant_id), K(task_id), KP(common_rpc_proxy));
|
||||
} else {
|
||||
SERVER_EVENT_ADD("ddl", "start wait ddl finish",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", task_id,
|
||||
"rpc_dest", common_rpc_proxy->get_server());
|
||||
LOG_INFO("start wait ddl finsih", K(task_id), "ddl_event_info", ObDDLEventInfo());
|
||||
|
||||
int tmp_ret = OB_SUCCESS;
|
||||
bool is_tenant_dropped = false;
|
||||
bool is_tenant_standby = false;
|
||||
@ -107,6 +116,14 @@ int ObDDLExecutorUtil::wait_ddl_finish(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SERVER_EVENT_ADD("ddl", "end wait ddl finish",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", error_message.ret_code_,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", task_id,
|
||||
"rpc_dest", common_rpc_proxy->get_server());
|
||||
LOG_INFO("finish wait ddl", K(ret), K(task_id), "ddl_event_info", ObDDLEventInfo(), K(error_message));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -122,7 +139,14 @@ int ObDDLExecutorUtil::wait_build_index_finish(const uint64_t tenant_id, const i
|
||||
THIS_WORKER.set_timeout_ts(ObTimeUtility::current_time() + OB_MAX_USER_SPECIFIED_TIMEOUT);
|
||||
share::ObDDLErrorMessageTableOperator::ObBuildDDLErrorMessage error_message;
|
||||
is_finish = false;
|
||||
LOG_INFO("wait build index finish", K(task_id));
|
||||
SERVER_EVENT_ADD("ddl", "start wait build index finish",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", task_id,
|
||||
"is_tenant_standby", is_tenant_standby);
|
||||
LOG_INFO("start wait build index finish", K(task_id), "ddl_event_info", ObDDLEventInfo());
|
||||
|
||||
if (OB_UNLIKELY(OB_INVALID_ID == tenant_id || task_id <= 0)) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid arguments", K(ret), K(tenant_id), K(task_id));
|
||||
@ -153,6 +177,14 @@ int ObDDLExecutorUtil::wait_build_index_finish(const uint64_t tenant_id, const i
|
||||
LOG_WARN("server is stopping, check whether the ddl task finish successfully or not", K(ret), K(tenant_id), K(task_id));
|
||||
}
|
||||
}
|
||||
|
||||
SERVER_EVENT_ADD("ddl", "end wait build index finish",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", error_message.ret_code_,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", task_id,
|
||||
"is_tenant_standby", is_tenant_standby);
|
||||
LOG_INFO("finish wait build index", K(ret), "ddl_event_info", ObDDLEventInfo(), K(error_message));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -175,6 +207,14 @@ int ObDDLExecutorUtil::wait_ddl_retry_task_finish(
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("invalid argument", K(ret), K(tenant_id), K(task_id), KP(common_rpc_proxy));
|
||||
} else {
|
||||
SERVER_EVENT_ADD("ddl", "start wait ddl retry task finish",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", task_id,
|
||||
"rpc_dest", common_rpc_proxy->get_server());
|
||||
LOG_INFO("start wait ddl retry task finish", K(task_id), "ddl_event_info", ObDDLEventInfo(), K(error_message));
|
||||
|
||||
bool is_tenant_dropped = false;
|
||||
bool is_tenant_standby = false;
|
||||
int tmp_ret = OB_SUCCESS;
|
||||
@ -254,6 +294,14 @@ int ObDDLExecutorUtil::wait_ddl_retry_task_finish(
|
||||
}
|
||||
}
|
||||
affected_rows = error_message.affected_rows_;
|
||||
|
||||
SERVER_EVENT_ADD("ddl", "end wait ddl retry task finish",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", error_message.ret_code_,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", task_id,
|
||||
"rpc_dest", common_rpc_proxy->get_server());
|
||||
LOG_INFO("fnish wait ddl retry task", K(ret), K(task_id), "ddl_event_info", ObDDLEventInfo(), K(error_message));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -273,9 +321,13 @@ int ObDDLExecutorUtil::cancel_ddl_task(const int64_t tenant_id, obrpc::ObCommonR
|
||||
} else {
|
||||
LOG_WARN("failed to cancel remote sys task", K(ret), K(rpc_arg), K(rs_leader_addr));
|
||||
}
|
||||
} else {
|
||||
LOG_INFO("succeed to cancel sys task", K(rpc_arg), K(rs_leader_addr));
|
||||
}
|
||||
SERVER_EVENT_ADD("ddl", "finish cancel ddl task",
|
||||
"tenant_id", tenant_id,
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dest", rs_leader_addr);
|
||||
LOG_INFO("finish cancel ddl task", K(ret), K(rpc_arg), K(rs_leader_addr), "ddl_event_info", ObDDLEventInfo());
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#include "sql/engine/cmd/ob_partition_executor_utils.h"
|
||||
#include "sql/resolver/ddl/ob_flashback_stmt.h"
|
||||
#include "observer/ob_server.h"
|
||||
#include "observer/ob_server_event_history_table_operator.h"
|
||||
|
||||
using namespace oceanbase::common;
|
||||
namespace oceanbase
|
||||
@ -102,6 +103,14 @@ int ObCreateIndexExecutor::execute(ObExecContext &ctx, ObCreateIndexStmt &stmt)
|
||||
LOG_WARN("failed to wait ddl finish", K(ret));
|
||||
}
|
||||
}
|
||||
SERVER_EVENT_ADD("ddl", "create index execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", res.task_id_,
|
||||
"table_id", res.index_table_id_,
|
||||
"schema_version", res.schema_version_);
|
||||
SQL_ENG_LOG(INFO, "finish create index execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(create_index_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -369,6 +378,14 @@ int ObDropIndexExecutor::execute(ObExecContext &ctx, ObDropIndexStmt &stmt)
|
||||
} else if (OB_FAIL(wait_drop_index_finish(res.tenant_id_, res.task_id_, *my_session))) {
|
||||
LOG_WARN("wait drop index finish failed", K(ret));
|
||||
}
|
||||
SERVER_EVENT_ADD("ddl", "drop index execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", res.task_id_,
|
||||
"table_id", res.index_table_id_,
|
||||
"schema_version", res.schema_version_);
|
||||
SQL_ENG_LOG(INFO, "finish drop index execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(drop_index_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -395,6 +412,17 @@ int ObFlashBackIndexExecutor::execute(ObExecContext &ctx, ObFlashBackIndexStmt &
|
||||
} else if (OB_FAIL(common_rpc_proxy->flashback_index(flashback_index_arg))) {
|
||||
LOG_WARN("rpc proxy flashback index failed", "dst", common_rpc_proxy->get_server(), K(ret));
|
||||
}
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "flashback index execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"origin_table_name", flashback_index_arg.origin_table_name_,
|
||||
"new_table_name", flashback_index_arg.new_table_name_,
|
||||
flashback_index_arg.new_db_name_);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish flashback index execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(flashback_index_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -421,6 +449,17 @@ int ObPurgeIndexExecutor::execute(ObExecContext &ctx, ObPurgeIndexStmt &stmt) {
|
||||
} else if (OB_FAIL(common_rpc_proxy->purge_index(purge_index_arg))) {
|
||||
LOG_WARN("rpc proxy purge index failed", "dst", common_rpc_proxy->get_server(), K(ret));
|
||||
}
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "purge index execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"table_id", purge_index_arg.table_id_,
|
||||
"database_id", purge_index_arg.database_id_,
|
||||
purge_index_arg.table_name_);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish purge database.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(purge_index_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -43,6 +43,7 @@
|
||||
#include "sql/ob_select_stmt_printer.h"
|
||||
#include "observer/ob_server_struct.h"
|
||||
#include "observer/ob_server.h"
|
||||
#include "observer/ob_server_event_history_table_operator.h"
|
||||
#include "lib/worker.h"
|
||||
#include "share/external_table/ob_external_table_file_mgr.h"
|
||||
#include "share/external_table/ob_external_table_file_task.h"
|
||||
@ -483,6 +484,19 @@ int ObCreateTableExecutor::execute_ctas(ObExecContext &ctx,
|
||||
} else {
|
||||
LOG_DEBUG("table exists, no need to CTAS", K(create_table_res.table_id_));
|
||||
}
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
char table_info_buffer[256];
|
||||
snprintf(table_info_buffer, sizeof(table_info_buffer), "table_id:%ld, hidden_table_id:%ld",
|
||||
alter_table_arg.table_id_, alter_table_arg.hidden_table_id_);
|
||||
SERVER_EVENT_ADD("ddl", "create table as select execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"table_info", table_info_buffer,
|
||||
"schema_version", create_table_res.schema_version_);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish create table execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(create_table_arg), K(alter_table_arg));
|
||||
}
|
||||
OZ(my_session->store_query_string(cur_query));
|
||||
}
|
||||
@ -597,6 +611,16 @@ int ObCreateTableExecutor::execute(ObExecContext &ctx, ObCreateTableStmt &stmt)
|
||||
LOG_WARN("execute create table as select failed", KR(ret));
|
||||
}
|
||||
}
|
||||
if (OB_NOT_NULL(common_rpc_proxy)) {
|
||||
SERVER_EVENT_ADD("ddl", "create table execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"rpc_dst", common_rpc_proxy->get_server(),
|
||||
"table_info", res.table_id_,
|
||||
"schema_version", res.schema_version_);
|
||||
}
|
||||
SQL_ENG_LOG(INFO, "finish create table execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(create_table_arg));
|
||||
|
||||
// only CTAS or create temporary table will make session_id != 0. If such table detected, set
|
||||
// need ctas cleanup task anyway to do some cleanup jobs
|
||||
@ -1284,6 +1308,19 @@ int ObAlterTableExecutor::execute(ObExecContext &ctx, ObAlterTableStmt &stmt)
|
||||
}
|
||||
}
|
||||
}
|
||||
char table_info_buffer[256];
|
||||
snprintf(table_info_buffer, sizeof(table_info_buffer), "table_id:%ld, hidden_table_id:%ld",
|
||||
alter_table_arg.table_id_, alter_table_arg.hidden_table_id_);
|
||||
|
||||
SERVER_EVENT_ADD("ddl", "alter table execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", res.task_id_,
|
||||
"table_info", table_info_buffer,
|
||||
"schema_version", res.schema_version_,
|
||||
alter_table_arg.inner_sql_exec_addr_);
|
||||
SQL_ENG_LOG(INFO, "finish alter table execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(alter_table_arg), K(first_stmt));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -2056,6 +2093,13 @@ int ObDropTableExecutor::execute(ObExecContext &ctx, ObDropTableStmt &stmt)
|
||||
//do nothing
|
||||
}
|
||||
}
|
||||
SERVER_EVENT_ADD("ddl", "drop table execute finish",
|
||||
"tenant_id", res.tenant_id_,
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", res.task_id_,
|
||||
"schema_id", res.schema_id_);
|
||||
SQL_ENG_LOG(INFO, "finish drop table execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(drop_table_arg));
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2248,6 +2292,14 @@ int ObTruncateTableExecutor::execute(ObExecContext &ctx, ObTruncateTableStmt &st
|
||||
K(query_timeout), K(THIS_WORKER.get_timeout_remain()));
|
||||
}
|
||||
}
|
||||
SERVER_EVENT_ADD("ddl", "truncate table execute finish",
|
||||
"tenant_id", MTL_ID(),
|
||||
"ret", ret,
|
||||
"trace_id", *ObCurTraceId::get_trace_id(),
|
||||
"task_id", res.task_id_,
|
||||
"table_info", truncate_table_arg.table_name_,
|
||||
"schema_id", res.schema_id_);
|
||||
SQL_ENG_LOG(INFO, "finish truncate table execute.", K(ret), "ddl_event_info", ObDDLEventInfo(), K(stmt), K(truncate_table_arg));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -340,7 +340,9 @@ int ObPxSubCoord::setup_op_input(ObExecContext &ctx,
|
||||
LOG_WARN("start ddl failed", K(ret));
|
||||
}
|
||||
#ifdef ERRSIM
|
||||
ret = OB_E(EventTable::EN_DDL_START_FAIL) OB_SUCCESS;
|
||||
if (OB_SUCC(ret)) {
|
||||
ret = OB_E(EventTable::EN_DDL_START_FAIL) OB_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
} else if (IS_PX_GI(root.get_type())) {
|
||||
|
||||
Reference in New Issue
Block a user