diff --git a/deps/oblib/src/lib/mysqlclient/ob_mysql_proxy.cpp b/deps/oblib/src/lib/mysqlclient/ob_mysql_proxy.cpp index 83c33eb45..b0009cb9a 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_mysql_proxy.cpp +++ b/deps/oblib/src/lib/mysqlclient/ob_mysql_proxy.cpp @@ -536,7 +536,7 @@ int ObDbLinkProxy::execute_init_sql(const sqlclient::dblink_param_ctx ¶m_ctx } else if (OB_FAIL(stmt.execute_update())) { LOG_WARN("execute sql failed", K(ret), K(param_ctx)); } else { - // do nothing + LOG_TRACE("succ to excute initial dblink sql", K(sql_ptr[i]), K(ret)); } } } else if (DBLINK_DRV_OB == param_ctx.link_type_) { @@ -559,6 +559,8 @@ int ObDbLinkProxy::execute_init_sql(const sqlclient::dblink_param_ctx ¶m_ctx LOG_WARN("create statement failed", K(ret), K(param_ctx)); } else if (OB_FAIL(stmt.execute_update())) { LOG_WARN("execute sql failed", K(ret), K(param_ctx)); + } else { + LOG_TRACE("succ to excute initial dblink sql", K(sql_ptr[i]), K(ret)); } } } @@ -584,6 +586,8 @@ int ObDbLinkProxy::execute_init_sql(const sqlclient::dblink_param_ctx ¶m_ctx LOG_WARN("failed to set sql text", K(ret), K(ObString(sql_ptr_ora[i]))); } else if (OB_FAIL(stmt.execute_update(affected_rows))) { LOG_WARN("execute sql failed", K(ret), K(param_ctx)); + } else { + LOG_TRACE("succ to excute initial dblink sql", K(sql_ptr_ora[i]), K(ret)); } int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = stmt.terminate())) { diff --git a/src/sql/dblink/ob_dblink_utils.cpp b/src/sql/dblink/ob_dblink_utils.cpp index 4820b5405..5600a460a 100644 --- a/src/sql/dblink/ob_dblink_utils.cpp +++ b/src/sql/dblink/ob_dblink_utils.cpp @@ -106,7 +106,7 @@ int ObDblinkService::get_charset_id(ObSQLSessionInfo *session_info, } else { charset_id = static_cast(ObCharset::charset_type_to_ora_charset_id(cs_type)); ncharset_id = static_cast(ObCharset::charset_type_to_ora_charset_id(ncs_type)); - LOG_DEBUG("get charset id", K(ret), K(charset_id), K(ncharset_id), + LOG_TRACE("succ to get dblink charset id", K(ret), K(charset_id), K(ncharset_id), K(cs_type), K(ncs_type), K(coll_type), K(ncoll_type)); } } @@ -126,10 +126,10 @@ int ObDblinkService::init_dblink_param_ctx(common::sqlclient::dblink_param_ctx & if (OB_ISNULL(session_info)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null ptr", K(ret)); - } else if (OB_FAIL(get_charset_id(session_info, charset_id, ncharset_id))) { - LOG_WARN("failed to get session charset id", K(ret), K(dblink_id)); } else if (OB_FAIL(get_local_session_vars(session_info, allocator, param_ctx))) { LOG_WARN("failed to get local session vars", K(ret), K(dblink_id)); + } else if (OB_FAIL(get_charset_id(session_info, charset_id, ncharset_id))) { + LOG_WARN("failed to get session charset id", K(ret), K(dblink_id)); } else { param_ctx.charset_id_ = charset_id; param_ctx.ncharset_id_ = ncharset_id; @@ -272,59 +272,29 @@ int ObDblinkService::get_set_names_cstr(sql::ObSQLSessionInfo *session_info, const char *&set_results_charset) { int ret = OB_SUCCESS; - int64_t client = -1; - int64_t connection = -1; - int64_t results = -1; set_client_charset = NULL; set_connection_charset = NULL; - set_results_charset = "set character_set_results = NULL"; + set_results_charset = NULL; if (OB_ISNULL(session_info)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null ptr", K(ret)); - } else if (OB_FAIL(session_info->get_sys_variable(share::SYS_VAR_CHARACTER_SET_CLIENT, client))) { - LOG_WARN("failed to get client characterset", K(ret)); - } else if (OB_FAIL(session_info->get_sys_variable(share::SYS_VAR_CHARACTER_SET_CONNECTION, connection))) { - LOG_WARN("failed to get connection characterset", K(ret)); - } else if (OB_FAIL(session_info->get_sys_variable(share::SYS_VAR_CHARACTER_SET_CLIENT, results))) { - LOG_WARN("failed to get results characterset", K(ret)); } else { - switch(ObCharset::charset_type_by_coll(ObCollationType(client))) { + ObCollationType tenant_collation = is_oracle_mode() ? session_info->get_nls_collation() : ObCollationType::CS_TYPE_UTF8MB4_BIN; + switch(ObCharset::charset_type_by_coll(tenant_collation)) { case ObCharsetType::CHARSET_UTF8MB4: - set_client_charset = ObDblinkService::SET_CLIENT_CHARSET_UTF8MB4; + set_client_charset = "set character_set_client = utf8mb4"; + set_connection_charset = "set character_set_connection = utf8mb4"; + set_results_charset = "set character_set_results = utf8mb4"; break; case ObCharsetType::CHARSET_GBK: - set_client_charset = ObDblinkService::SET_CLIENT_CHARSET_GBK; + set_client_charset = "set character_set_client = gbk"; + set_connection_charset = "set character_set_connection = gbk"; + set_results_charset = "set character_set_results = gbk"; break; case ObCharsetType::CHARSET_BINARY: - set_client_charset = ObDblinkService::SET_CLIENT_CHARSET_BINARY; - break; - default: - // do nothing - break; - } - switch(ObCharset::charset_type_by_coll(ObCollationType(connection))) { - case ObCharsetType::CHARSET_UTF8MB4: - set_connection_charset = ObDblinkService::SET_CONNECTION_CHARSET_UTF8MB4; - break; - case ObCharsetType::CHARSET_GBK: - set_connection_charset = ObDblinkService::SET_CONNECTION_CHARSET_GBK; - break; - case ObCharsetType::CHARSET_BINARY: - set_connection_charset = ObDblinkService::SET_CONNECTION_CHARSET_BINARY; - break; - default: - // do nothing - break; - } - switch(ObCharset::charset_type_by_coll(ObCollationType(results))) { - case ObCharsetType::CHARSET_UTF8MB4: - set_results_charset = ObDblinkService::SET_RESULTS_CHARSET_UTF8MB4; - break; - case ObCharsetType::CHARSET_GBK: - set_results_charset = ObDblinkService::SET_RESULTS_CHARSET_GBK; - break; - case ObCharsetType::CHARSET_BINARY: - set_results_charset = ObDblinkService::SET_RESULTS_CHARSET_BINARY; + set_client_charset = "set character_set_client = binary"; + set_connection_charset = "set character_set_connection = binary"; + set_results_charset = "set character_set_results = binary"; break; default: // do nothing @@ -341,30 +311,35 @@ int ObDblinkService::get_local_session_vars(sql::ObSQLSessionInfo *session_info, int ret = OB_SUCCESS; if (lib::is_mysql_mode() && OB_FAIL(get_set_sql_mode_cstr(session_info, param_ctx.set_sql_mode_cstr_, allocator))) { LOG_WARN("failed to get set_sql_mode_cstr", K(ret)); + } else if (OB_FAIL(get_set_transaction_isolation_cstr(session_info, + param_ctx.set_transaction_isolation_cstr_))) { + LOG_WARN("failed to get set_transaction_isolation_cstr", K(ret)); } else if (OB_FAIL(get_set_names_cstr(session_info, param_ctx.set_client_charset_cstr_, param_ctx.set_connection_charset_cstr_, param_ctx.set_results_charset_cstr_))) { LOG_WARN("failed to get set_names_cstr", K(ret)); - } else if (OB_FAIL(get_set_transaction_isolation_cstr(session_info, - param_ctx.set_transaction_isolation_cstr_))) { - LOG_WARN("failed to get set_transaction_isolation_cstr", K(ret)); + } else { + LOG_TRACE("succ to get local session vars", K(param_ctx.set_client_charset_cstr_), + K(param_ctx.set_connection_charset_cstr_), + K(param_ctx.set_results_charset_cstr_), + K(param_ctx.set_sql_mode_cstr_), + K(param_ctx.dblink_id_), + K(ret)); } return ret; } -int ObDblinkService::get_spell_collation_type(ObSQLSessionInfo *session, ObCollationType &spell_coll) { +int ObDblinkService::get_spell_collation_type(ObSQLSessionInfo *session, ObCollationType &spell_coll) +{ int ret = OB_SUCCESS; - common::ObCharsetType database_cs = ObCharsetType::CHARSET_UTF8MB4; if (OB_ISNULL(session)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null ptr", K(ret)); } else if (lib::is_oracle_mode()) { spell_coll = session->get_nls_collation(); - } else if (OB_FAIL(session->get_character_set_database(database_cs))) { - LOG_WARN("failed to get character_set_database", K(ret)); } else { - spell_coll = ObCharset::get_default_collation_by_mode(database_cs, false); + spell_coll = ObCollationType::CS_TYPE_UTF8MB4_BIN; } return ret; } diff --git a/src/sql/engine/dml/ob_link_op.cpp b/src/sql/engine/dml/ob_link_op.cpp index d25b59bc4..22240e3c8 100644 --- a/src/sql/engine/dml/ob_link_op.cpp +++ b/src/sql/engine/dml/ob_link_op.cpp @@ -321,7 +321,7 @@ int ObLinkOp::combine_link_stmt(const ObString &link_stmt_fmt, if (OB_SUCC(ret)) { stmt_buf_pos_ = link_stmt_pos; } - LOG_WARN("succ to combine link sql", KP(stmt_buf_), K(stmt_buf_pos_), K(ObString(stmt_buf_pos_, stmt_buf_))); + LOG_TRACE("succ to combine dblink sql", KP(stmt_buf_), K(stmt_buf_pos_), K(ObString(stmt_buf_pos_, stmt_buf_))); } return ret; } diff --git a/src/sql/engine/table/ob_link_scan_op.cpp b/src/sql/engine/table/ob_link_scan_op.cpp index ca72a57bc..2d1c8167e 100644 --- a/src/sql/engine/table/ob_link_scan_op.cpp +++ b/src/sql/engine/table/ob_link_scan_op.cpp @@ -162,13 +162,13 @@ int ObLinkScanOp::inner_execute_link_stmt(const ObString &link_stmt) if (OB_FAIL(tm_rm_connection_->execute_read(OB_INVALID_TENANT_ID, link_stmt, res_))) { LOG_WARN("failed to read table data by tm_rm_connection", K(ret), K(link_stmt), K(tm_rm_connection_->get_dblink_driver_proto())); } else { - LOG_DEBUG("succ to read table data by tm_rm_connection", K(link_stmt), K(tm_rm_connection_->get_dblink_driver_proto())); + LOG_TRACE("succ to read table data by tm_rm_connection", K(link_stmt), K(tm_rm_connection_->get_dblink_driver_proto())); } } else if (sql::DblinkGetConnType::TEMP_CONN == conn_type_) { if (OB_FAIL(reverse_link_->read(link_stmt, res_))) { LOG_WARN("failed to read table data by reverse_link", K(ret)); } else { - LOG_DEBUG("succ to read table data by reverse_link"); + LOG_TRACE("succ to read table data by reverse_link"); } } else if (OB_ISNULL(dblink_proxy_) || OB_ISNULL(my_session)) { ret = OB_ERR_UNEXPECTED; @@ -209,7 +209,7 @@ int ObLinkScanOp::inner_execute_link_stmt(const ObString &link_stmt) } else if (OB_FAIL(result_->set_expected_charset_id(charset_id, ncharset_id))) {// for oci dblink set expected result charset, actually useless... LOG_WARN("failed to set result set expected charset", K(ret), K(charset_id), K(ncharset_id)); } else { - LOG_DEBUG("succ to dblink read", K(link_stmt), KP(dblink_conn_)); + LOG_TRACE("succ to dblink read", K(link_stmt), KP(dblink_conn_), K(charset_id), K(ncharset_id)); } return ret; } diff --git a/src/sql/ob_sql_trans_control.cpp b/src/sql/ob_sql_trans_control.cpp index 3cf027e69..6e41a4723 100644 --- a/src/sql/ob_sql_trans_control.cpp +++ b/src/sql/ob_sql_trans_control.cpp @@ -710,8 +710,6 @@ bool print_log = false; int ObSqlTransControl::dblink_xa_prepare(ObExecContext &exec_ctx) { int ret = OB_SUCCESS; - uint16_t charset_id = 0; - uint16_t ncharset_id = 0; uint64_t tenant_id = -1; uint32_t sessid = -1; uint32_t tm_sessid = 0; @@ -728,9 +726,7 @@ int ObSqlTransControl::dblink_xa_prepare(ObExecContext &exec_ctx) } else if (lib::is_oracle_mode() && !plan_ctx->get_dblink_ids().empty() && plan_ctx->get_main_xa_trans_branch()) { - if (OB_FAIL(ObDblinkService::get_charset_id(session, charset_id, ncharset_id))) { - LOG_WARN("failed to get session charset id", K(ret)); - } else if (OB_FAIL(GCTX.schema_service_->get_tenant_schema_guard(session->get_effective_tenant_id(), schema_guard))) { + if (OB_FAIL(GCTX.schema_service_->get_tenant_schema_guard(session->get_effective_tenant_id(), schema_guard))) { LOG_WARN("failed to get schema guard", K(ret), K(session->get_effective_tenant_id())); } else { ObIArray &dblink_ids = plan_ctx->get_dblink_ids(); diff --git a/src/sql/optimizer/ob_log_link.cpp b/src/sql/optimizer/ob_log_link.cpp index 3359b7ccf..409e5da2e 100644 --- a/src/sql/optimizer/ob_log_link.cpp +++ b/src/sql/optimizer/ob_log_link.cpp @@ -209,6 +209,7 @@ int ObLogLink::set_link_stmt(const ObDMLStmt* stmt) ObString sql; ObObjPrintParams print_param; print_param.for_dblink_ = 1; + //print_param.cs_type_ = ObCollationType::CS_TYPE_UTF8MB4_BIN; // only link scan need print flashback query for dblink table ObOptimizerContext *opt_ctx = NULL; ObSQLSessionInfo *session = NULL; @@ -229,7 +230,7 @@ int ObLogLink::set_link_stmt(const ObDMLStmt* stmt) } else { stmt_fmt_buf_ = sql.ptr(); stmt_fmt_len_ = sql.length(); - LOG_DEBUG("loglink succ to reconstruct link sql", K(sql)); + LOG_TRACE("succ to reconstruct dblink sql", K(sql), KP(stmt_fmt_buf_), K(stmt_fmt_len_), K(ret), K(spell_coll)); } return ret; } diff --git a/src/sql/printer/ob_dml_stmt_printer.cpp b/src/sql/printer/ob_dml_stmt_printer.cpp index 5bbf8165b..9b380bf29 100644 --- a/src/sql/printer/ob_dml_stmt_printer.cpp +++ b/src/sql/printer/ob_dml_stmt_printer.cpp @@ -296,8 +296,10 @@ int ObDMLStmtPrinter::print_table(const TableItem *table_item, if (OB_FAIL(print_base_table(table_item))) { LOG_WARN("failed to print base table", K(ret), K(*table_item)); } else if (!no_print_alias && !table_item->alias_name_.empty()) { - DATA_PRINTF(lib::is_oracle_mode() ? " \"%.*s\"" : " `%.*s`", - LEN_AND_PTR(table_item->alias_name_)); + //DATA_PRINTF(lib::is_oracle_mode() ? " \"%.*s\"" : " `%.*s`", + // LEN_AND_PTR(table_item->alias_name_)); + DATA_PRINTF(" "); + PRINT_IDENT_WITH_QUOT(table_item->alias_name_); } break; } @@ -305,8 +307,10 @@ int ObDMLStmtPrinter::print_table(const TableItem *table_item, if (OB_FAIL(print_base_table(table_item))) { LOG_WARN("failed to print base table", K(ret), K(*table_item)); } else if (!no_print_alias && !table_item->alias_name_.empty()) { - DATA_PRINTF(lib::is_oracle_mode() ? " \"%.*s\"" : " `%.*s`", - LEN_AND_PTR(table_item->alias_name_)); + //DATA_PRINTF(lib::is_oracle_mode() ? " \"%.*s\"" : " `%.*s`", + // LEN_AND_PTR(table_item->alias_name_)); + DATA_PRINTF(" "); + PRINT_IDENT_WITH_QUOT(table_item->alias_name_); } break; }