perf(query): optimize result loading and connection reuse
This commit is contained in:
1 parent
24c63b6012
commit
16e879e40e
27 files changed
+476
-56
No files matched your search
@@ -24,6 +24,10 @@ pub async fn export_database_sql(
|
||||
})
|
||||
.await;
|
||||
|
||||
let client_session_id = dbx_core::database_export::database_export_client_session_id(&export_id);
|
||||
let _ =
|
||||
state.close_client_session_pool(&request.connection_id, Some(&request.database), &client_session_id).await;
|
||||
|
||||
if let Err(e) = result {
|
||||
emit_progress(
|
||||
&app,
|
||||
|
||||
@@ -23,6 +23,10 @@ pub async fn start_table_export(
|
||||
dbx_core::table_export::export_table_data_core(&state, &request, |progress| emit_progress(&app, progress))
|
||||
.await;
|
||||
|
||||
let client_session_id = dbx_core::table_export::table_export_client_session_id(&export_id);
|
||||
let _ =
|
||||
state.close_client_session_pool(&request.connection_id, Some(&request.database), &client_session_id).await;
|
||||
|
||||
if let Err(e) = result {
|
||||
emit_progress(
|
||||
&app,
|
||||
|
||||
@@ -45,11 +45,10 @@ pub async fn import_table_file(
|
||||
// Reject import early if the connection is read-only — importing is inherently a write operation
|
||||
ensure_connection_writable(&state, &request.connection_id, "Import").await?;
|
||||
let db_type = get_db_type(&state, &request.connection_id).await?;
|
||||
let pool_key = if request.database.is_empty() {
|
||||
request.connection_id.clone()
|
||||
} else {
|
||||
state.get_or_create_pool(&request.connection_id, Some(&request.database)).await?
|
||||
};
|
||||
let database = (!request.database.trim().is_empty()).then_some(request.database.as_str());
|
||||
let client_session_id = dbx_core::table_import::table_import_client_session_id(&request.import_id);
|
||||
let pool_key =
|
||||
state.get_or_create_pool_for_session(&request.connection_id, database, Some(&client_session_id)).await?;
|
||||
|
||||
let result = dbx_core::table_import::import_table_file_core(
|
||||
&state,
|
||||
@@ -61,6 +60,7 @@ pub async fn import_table_file(
|
||||
)
|
||||
.await;
|
||||
|
||||
let _ = state.close_client_session_pool(&request.connection_id, database, &client_session_id).await;
|
||||
clear_cancelled(&request.import_id).await;
|
||||
result
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user