fix(mysql): use database-specific catalog switching

This commit is contained in:
jischeng authored and GitHub committed 2026-07-29 20:41:09 +08:00
1 parent 9571519179
commit 2152f8cde8
31 files changed
+818 -182

No files matched your search

+29 -4
View File
@@ -25,6 +25,7 @@ pub async fn execute_query(
database: String,
sql: String,
schema: Option<String>,
catalog: Option<String>,
execution_id: Option<String>,
max_rows: Option<usize>,
fetch_size: Option<usize>,
@@ -54,6 +55,7 @@ pub async fn execute_query(
max_rows,
fetch_size,
page_size,
catalog,
result_session_id,
client_session_id,
timeout_secs,
@@ -74,6 +76,7 @@ pub async fn execute_multi(
database: String,
sql: String,
schema: Option<String>,
catalog: Option<String>,
execution_id: Option<String>,
max_rows: Option<usize>,
fetch_size: Option<usize>,
@@ -125,6 +128,7 @@ pub async fn execute_multi(
max_rows,
fetch_size,
page_size,
catalog,
result_session_id,
client_session_id,
timeout_secs,
@@ -167,9 +171,17 @@ pub async fn close_query_session(
database: String,
session_id: String,
client_session_id: Option<String>,
catalog: Option<String>,
) -> Result<bool, String> {
dbx_core::query::close_query_session(&state, &connection_id, &database, &session_id, client_session_id.as_deref())
.await
dbx_core::query::close_query_session(
&state,
&connection_id,
&database,
&session_id,
client_session_id.as_deref(),
catalog.as_deref(),
)
.await
}
#[tauri::command]
@@ -178,11 +190,20 @@ pub async fn close_client_connection_session(
connection_id: String,
database: String,
client_session_id: String,
catalog: Option<String>,
) -> Result<bool, String> {
let database = if database.trim().is_empty() { None } else { Some(database.as_str()) };
let database = query_session_database(&database, catalog.as_deref());
state.close_client_session_pool(&connection_id, database, &client_session_id).await
}
fn query_session_database<'a>(database: &'a str, catalog: Option<&str>) -> Option<&'a str> {
if database.trim().is_empty() || catalog.is_some() {
None
} else {
Some(database)
}
}
#[tauri::command]
pub async fn execute_batch(
state: State<'_, Arc<AppState>>,
@@ -230,6 +251,7 @@ pub async fn execute_in_transaction(
database: String,
statements: Vec<String>,
schema: Option<String>,
catalog: Option<String>,
) -> Result<db::QueryResult, String> {
dbx_core::query::execute_statements_in_transaction(
&state,
@@ -237,6 +259,7 @@ pub async fn execute_in_transaction(
&database,
&statements,
schema.as_deref(),
catalog.as_deref(),
)
.await
}
@@ -274,8 +297,10 @@ pub async fn begin_manual_transaction(
connection_id: String,
database: String,
schema: Option<String>,
catalog: Option<String>,
) -> Result<String, String> {
dbx_core::query::begin_manual_transaction(&state, &connection_id, &database, schema.as_deref()).await
dbx_core::query::begin_manual_transaction(&state, &connection_id, &database, schema.as_deref(), catalog.as_deref())
.await
}
#[tauri::command]