diff --git a/src/gausskernel/process/threadpool/threadpool_stream.cpp b/src/gausskernel/process/threadpool/threadpool_stream.cpp index 22012f5997d20af0099cfe976167f20e9ceaa8f7..2d8a70116ca19d56a0c07b7203b9676872dfa127 100644 --- a/src/gausskernel/process/threadpool/threadpool_stream.cpp +++ b/src/gausskernel/process/threadpool/threadpool_stream.cpp @@ -137,6 +137,8 @@ void ThreadPoolStream::InitStream() InitializeGUCOptions(); /* Read in remaining GUC variables */ read_nondefault_variables(); + /* Init share memory for this session. */ + init_session_share_memory(); /* Do local initialization of file, storage and buffer managers */ InitFileAccess(); diff --git a/src/gausskernel/process/threadpool/threadpool_worker.cpp b/src/gausskernel/process/threadpool/threadpool_worker.cpp index 8724294fff0ae7abfabdff3de00f629fa43b31b6..bc05d12ac5145d6c00cc7557c8e49692b794034b 100644 --- a/src/gausskernel/process/threadpool/threadpool_worker.cpp +++ b/src/gausskernel/process/threadpool/threadpool_worker.cpp @@ -798,7 +798,7 @@ void ThreadPoolWorker::AddBackend(Backend* bn) DLAddHead(g_instance.backend_list, &bn->elem); } -static void init_session_share_memory() +void init_session_share_memory() { TableSpaceUsageManager::Init(); #ifndef ENABLE_MULTIPLE_NODES diff --git a/src/include/threadpool/threadpool_worker.h b/src/include/threadpool/threadpool_worker.h index a34006fb088b50097bba798dc5cb0d62f151cb1e..10d90fc0c81cb3cffe8b97f8e857f8562836238b 100644 --- a/src/include/threadpool/threadpool_worker.h +++ b/src/include/threadpool/threadpool_worker.h @@ -153,4 +153,6 @@ private: knl_thrd_context *m_thrd; }; +extern void init_session_share_memory(); + #endif /* THREAD_POOL_WORKER_H */ diff --git a/src/test/regress/input/hw_createtbl_llt.source b/src/test/regress/input/hw_createtbl_llt.source index 3e143742034df93100f774a6191cab08ae647fad..d015ed703bb41d4a759d4c0b7c1cd01ba16bb30d 100644 --- a/src/test/regress/input/hw_createtbl_llt.source +++ b/src/test/regress/input/hw_createtbl_llt.source @@ -19,6 +19,9 @@ reset current_schema; show current_schema; +--test for core issue #IBXF6U +set query_dop = 1002; + --test create table tablesapce as select create table ts_t1(id int,info text) tablespace hw_createtbl_llt_tablespace; insert into ts_t1 values(generate_series(1,1000),'sadadsa'); @@ -26,6 +29,7 @@ create table ts_t2 tablespace hw_createtbl_llt_tablespace as select * from ts_t1 select relname,reltablespace from pg_class where relname in('ts_t1','ts_t2') order by 1; select relname,relfilenode,reltablespace from pg_class where relname='ts_t2'; +reset query_dop; drop table ts_t1; drop table ts_t2; diff --git a/src/test/regress/output/hw_createtbl_llt.source b/src/test/regress/output/hw_createtbl_llt.source index 46e67604fe8705ec9969a048f0a0c30c55f791a5..6f637a53f0814e285342cfcecdb45d930681d698 100644 --- a/src/test/regress/output/hw_createtbl_llt.source +++ b/src/test/regress/output/hw_createtbl_llt.source @@ -25,6 +25,8 @@ show current_schema; "$user",public (1 row) +--test for core issue #IBXF6U +set query_dop = 1002; --test create table tablesapce as select create table ts_t1(id int,info text) tablespace hw_createtbl_llt_tablespace; insert into ts_t1 values(generate_series(1,1000),'sadadsa'); @@ -42,6 +44,7 @@ select relname,relfilenode,reltablespace from pg_class where relname='ts_t2'; --? ts_t2 |.* (1 row) +reset query_dop; drop table ts_t1; drop table ts_t2; -- clean enviroment