diff --git a/src/sql/ob_result_set.cpp b/src/sql/ob_result_set.cpp index 471611e42a..e48276eef2 100644 --- a/src/sql/ob_result_set.cpp +++ b/src/sql/ob_result_set.cpp @@ -1211,7 +1211,8 @@ bool ObResultSet::need_end_trans_callback() const } else if (is_returning_) { need = false; } else if (my_session_.get_has_temp_table_flag() - || my_session_.has_tx_level_temp_table()) { + || my_session_.has_tx_level_temp_table() + || (OB_NOT_NULL(physical_plan_) && physical_plan_->is_contain_oracle_trx_level_temporary_table())) { need = false; } else if (stmt::T_END_TRANS == get_stmt_type()) { need = true; diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index 0656c18ff9..900a435add 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -859,12 +859,12 @@ int ObSQLSessionInfo::drop_temp_tables(const bool is_disconn, const bool is_xa_t if (OB_ISNULL(common_rpc_proxy)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("rpc proxy is null", K(ret)); - } else if (is_oracle_mode() && OB_FAIL(delete_from_oracle_temp_tables(drop_table_arg))) { + } else if (OB_FAIL(delete_from_oracle_temp_tables(drop_table_arg))) { LOG_WARN("failed to delete from oracle temporary table", K(drop_table_arg), K(ret)); - } else if (!is_oracle_mode() && OB_FALSE_IT(drop_table_arg.compat_mode_ = lib::Worker::CompatMode::MYSQL)) { + }/* else if (!is_oracle_mode() && OB_FALSE_IT(drop_table_arg.compat_mode_ = lib::Worker::CompatMode::MYSQL)) { } else if (!is_oracle_mode() && OB_FAIL(common_rpc_proxy->drop_table(drop_table_arg, res))) { LOG_WARN("failed to drop temporary table", K(drop_table_arg), K(ret)); - } else { + }*/ else { LOG_INFO("temporary tables dropped due to connection disconnected", K(is_sess_disconn), K(drop_table_arg)); } }