mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-5535: Cannot reopen temporary table
mysqld maintains a list of TABLE objects for all temporary tables created within a session in THD. Here each table is represented by a TABLE object. A query referencing a particular temporary table for more than once, however, failed with ER_CANT_REOPEN_TABLE error because a TABLE_SHARE was allocate together with the TABLE, so temporary tables always had only one TABLE per TABLE_SHARE. This patch lift this restriction by separating TABLE and TABLE_SHARE objects and storing TABLE_SHAREs for temporary tables in a list in THD, and TABLEs in a list within their respective TABLE_SHAREs.
This commit is contained in:
@ -1736,7 +1736,8 @@ drop view t1;
|
||||
create table t1 (a int) select 1 as a;
|
||||
create temporary table if not exists t1 (a int) select * from t1;
|
||||
create temporary table if not exists t1 (a int) select * from t1;
|
||||
ERROR HY000: Can't reopen table: 't1'
|
||||
Warnings:
|
||||
Note 1050 Table 't1' already exists
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
|
Reference in New Issue
Block a user