fix issue<46240158><46141201><46115703><46107852>:record error information to warning buf
This commit is contained in:
@ -403,14 +403,14 @@ int ObGetDiagnosticsExecutor::execute(ObExecContext &ctx, ObGetDiagnosticsStmt &
|
||||
LOG_TRACE("condition num is invalid");
|
||||
LOG_USER_WARN(OB_ERR_INVALID_CONDITION_NUMBER);
|
||||
} else {
|
||||
int err_ret;
|
||||
ObString err_msg, err_msg_c, sqlstate, sqlstate_c;
|
||||
ObSqlString query_virtual;
|
||||
if (OB_FAIL(query_virtual.assign_fmt(
|
||||
"select message, ori_code, sql_state from %s.%s limit %ld, 1",
|
||||
OB_SYS_DATABASE_NAME, OB_TENANT_VIRTUAL_WARNING_TNAME, restored_arg - 1))) {
|
||||
LOG_WARN("assign fmt failed", K(ret));
|
||||
} else {
|
||||
int err_ret;
|
||||
ObString err_msg, err_msg_c, sqlstate, sqlstate_c;
|
||||
SMART_VAR(ObISQLClient::ReadResult, res) {
|
||||
common::sqlclient::ObMySQLResult *result = NULL;
|
||||
if (OB_FAIL(conn->execute_read(tenant_id, query_virtual.ptr(), res))) {
|
||||
@ -423,7 +423,7 @@ int ObGetDiagnosticsExecutor::execute(ObExecContext &ctx, ObGetDiagnosticsStmt &
|
||||
EXTRACT_INT_FIELD_MYSQL(*result, "ori_code", err_ret, int);
|
||||
EXTRACT_VARCHAR_FIELD_MYSQL(*result, "sql_state", sqlstate);
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_FAIL(ob_write_string(ctx.get_allocator(), err_msg, err_msg_c, true))) {
|
||||
} else if (OB_FAIL(ob_write_string(ctx.get_allocator(), err_msg, err_msg_c, true))) {
|
||||
//when using ptr(), char *'s end should be '\0'
|
||||
LOG_WARN("ob write string failed", K(ret));
|
||||
} else if (OB_FAIL(ob_write_string(ctx.get_allocator(), sqlstate, sqlstate_c, true))) {
|
||||
@ -432,8 +432,8 @@ int ObGetDiagnosticsExecutor::execute(ObExecContext &ctx, ObGetDiagnosticsStmt &
|
||||
}
|
||||
}
|
||||
}
|
||||
OZ (assign_condition_val(ctx, stmt, session_info, conn, err_ret, err_msg_c, sqlstate_c));
|
||||
}
|
||||
OZ (assign_condition_val(ctx, stmt, session_info, conn, err_ret, err_msg_c, sqlstate_c));
|
||||
}
|
||||
} else if (stmt.get_diagnostics_type() == DiagnosticsType::GET_STACKED_COND) {
|
||||
int64_t restored_arg = 0;
|
||||
|
||||
Reference in New Issue
Block a user