Skip to content

Commit 3f3a9f7

Browse files
authored
fix: remove temp table from global when drop m_cte temp tables. (#18354)
1 parent 8ac6d61 commit 3f3a9f7

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

src/query/service/src/servers/http/v1/session/client_session_manager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ impl ClientSessionManager {
157157

158158
if !(remained.is_empty() && num_expired == 0) {
159159
info!(
160-
"[TEMP TABLE] cleanup {num_expired} sessions in {} secs, {} remained: {:?}",
161-
elapsed.as_secs(),
160+
"[TEMP TABLE] cleanup {num_expired} sessions in {} millisecond, {} remained: {:?}",
161+
elapsed.as_millis(),
162162
remained.len(),
163163
remained
164164
);

src/query/service/src/sessions/query_ctx.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ use crate::clusters::ClusterHelper;
143143
use crate::locks::LockManager;
144144
use crate::pipelines::executor::PipelineExecutor;
145145
use crate::servers::flight::v1::exchange::DataExchangeManager;
146+
use crate::servers::http::v1::ClientSessionManager;
146147
use crate::sessions::query_affect::QueryAffect;
147148
use crate::sessions::query_ctx_shared::MemoryUpdater;
148149
use crate::sessions::ProcessInfo;
@@ -1892,6 +1893,11 @@ impl TableContext for QueryContext {
18921893
.await?
18931894
.get_database(&tenant, db_name)
18941895
.await?;
1896+
let temp_prefix = table
1897+
.options()
1898+
.get(OPT_KEY_TEMP_PREFIX)
1899+
.cloned()
1900+
.unwrap_or_default();
18951901
let drop_table_req = DropTableByIdReq {
18961902
if_exists: true,
18971903
tenant: tenant.clone(),
@@ -1900,13 +1906,14 @@ impl TableContext for QueryContext {
19001906
db_id: db.get_db_info().database_id.db_id,
19011907
db_name: db.name().to_string(),
19021908
engine: table.engine().to_string(),
1903-
temp_prefix: table
1904-
.options()
1905-
.get(OPT_KEY_TEMP_PREFIX)
1906-
.cloned()
1907-
.unwrap_or_default(),
1909+
temp_prefix: temp_prefix.clone(),
19081910
};
1909-
drop_table_by_id(temp_tbl_mgr.clone(), drop_table_req).await?;
1911+
if drop_table_by_id(temp_tbl_mgr.clone(), drop_table_req)
1912+
.await?
1913+
.is_some()
1914+
{
1915+
ClientSessionManager::instance().remove_temp_tbl_mgr(temp_prefix, &temp_tbl_mgr);
1916+
}
19101917
}
19111918
let mut m_cte_temp_table = self.m_cte_temp_table.write();
19121919
m_cte_temp_table.clear();

0 commit comments

Comments
 (0)