@@ -214,6 +214,9 @@ impl CreateTableInterpreter {
214
214
if !reply. new_table && self . plan . create_option != CreateOption :: CreateOrReplace {
215
215
return Ok ( PipelineBuildResult :: create ( ) ) ;
216
216
}
217
+ if let Some ( prefix) = req. table_meta . options . get ( OPT_KEY_TEMP_PREFIX ) . cloned ( ) {
218
+ self . register_temp_table ( prefix) . await ?;
219
+ }
217
220
218
221
let table_id = reply. table_id ;
219
222
let prev_table_id = reply. prev_table_id ;
@@ -378,18 +381,7 @@ impl CreateTableInterpreter {
378
381
379
382
let reply = catalog. create_table ( req. clone ( ) ) . await ?;
380
383
if let Some ( prefix) = req. table_meta . options . get ( OPT_KEY_TEMP_PREFIX ) . cloned ( ) {
381
- let session = self . ctx . get_current_session ( ) ;
382
- if let Some ( id) = session. get_client_session_id ( ) {
383
- let client_session_manager = ClientSessionManager :: instance ( ) ;
384
- client_session_manager. add_temp_tbl_mgr ( prefix, session. temp_tbl_mgr ( ) . clone ( ) ) ;
385
- client_session_manager
386
- . refresh_session_handle (
387
- self . ctx . get_tenant ( ) ,
388
- self . ctx . get_current_user ( ) ?. name ,
389
- & id,
390
- )
391
- . await ?;
392
- }
384
+ self . register_temp_table ( prefix) . await ?;
393
385
}
394
386
395
387
if !req. table_meta . options . contains_key ( OPT_KEY_TEMP_PREFIX ) && !catalog. is_external ( ) {
@@ -531,6 +523,22 @@ impl CreateTableInterpreter {
531
523
. build_attach_table_request ( storage_prefix, & self . plan )
532
524
. await
533
525
}
526
+
527
+ async fn register_temp_table ( & self , prefix : String ) -> Result < ( ) > {
528
+ let session = self . ctx . get_current_session ( ) ;
529
+ if let Some ( id) = session. get_client_session_id ( ) {
530
+ let client_session_manager = ClientSessionManager :: instance ( ) ;
531
+ client_session_manager. add_temp_tbl_mgr ( prefix, session. temp_tbl_mgr ( ) . clone ( ) ) ;
532
+ client_session_manager
533
+ . refresh_session_handle (
534
+ self . ctx . get_tenant ( ) ,
535
+ self . ctx . get_current_user ( ) ?. name ,
536
+ & id,
537
+ )
538
+ . await ?;
539
+ }
540
+ Ok ( ( ) )
541
+ }
534
542
}
535
543
536
544
pub fn is_valid_column ( name : & str ) -> Result < ( ) > {
0 commit comments