@@ -143,6 +143,7 @@ use crate::clusters::ClusterHelper;
143
143
use crate :: locks:: LockManager ;
144
144
use crate :: pipelines:: executor:: PipelineExecutor ;
145
145
use crate :: servers:: flight:: v1:: exchange:: DataExchangeManager ;
146
+ use crate :: servers:: http:: v1:: ClientSessionManager ;
146
147
use crate :: sessions:: query_affect:: QueryAffect ;
147
148
use crate :: sessions:: query_ctx_shared:: MemoryUpdater ;
148
149
use crate :: sessions:: ProcessInfo ;
@@ -1892,6 +1893,11 @@ impl TableContext for QueryContext {
1892
1893
. await ?
1893
1894
. get_database ( & tenant, db_name)
1894
1895
. await ?;
1896
+ let temp_prefix = table
1897
+ . options ( )
1898
+ . get ( OPT_KEY_TEMP_PREFIX )
1899
+ . cloned ( )
1900
+ . unwrap_or_default ( ) ;
1895
1901
let drop_table_req = DropTableByIdReq {
1896
1902
if_exists : true ,
1897
1903
tenant : tenant. clone ( ) ,
@@ -1900,13 +1906,14 @@ impl TableContext for QueryContext {
1900
1906
db_id : db. get_db_info ( ) . database_id . db_id ,
1901
1907
db_name : db. name ( ) . to_string ( ) ,
1902
1908
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 ( ) ,
1908
1910
} ;
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
+ }
1910
1917
}
1911
1918
let mut m_cte_temp_table = self . m_cte_temp_table . write ( ) ;
1912
1919
m_cte_temp_table. clear ( ) ;
0 commit comments