Bug #65519 Temporary tables for ALTER TABLE are not added to thd->temporary_tables
| Submitted: | 5 Jun 2012 12:55 | Modified: | 8 Jun 2012 15:10 |
|---|---|---|---|
| Reporter: | Laurynas Biveinis (OCA) | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | MySQL Server: DDL | Severity: | S3 (Non-critical) |
| Version: | 5.1 | OS: | Any |
| Assigned to: | CPU Architecture: | Any |
[5 Jun 2012 13:04]
Laurynas Biveinis
It seems that 5.5 fixed it by revision 2875.107.1 (backport from 6.0 WL#3726 "DDL locking for all metadata objects")
[5 Jun 2012 15:46]
Valeriy Kravchuk
Thank you for the problem report. Verified by code review of current mysql-5.1.
[6 Jun 2012 2:24]
Laurynas Biveinis
On further analysis the fix is more involved than s/0/TRUE: care must be taken to close new_table properly too, and the required changes make this doable but IMHO not worthwhile for 5.1.
[8 Jun 2012 15:10]
Dmitry Lenev
Hello Laurynas! Thank you for bringing up this issue! I have checked the code in ALTER TABLE implementation in 5.1 and was not able to find any problem caused by this call to open_temporary_tables(). So technically there is no bug. So I am closing this report as such. The potential issues caused by this "sloppy" code are addressed by changes in 5.5 in any case.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.039 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: In mysql_alter_table() the intermediate temporary table new_table is created by new_table=open_temporary_table(thd, path, new_db, tmp_name,0); Note that the last arg 0, that is, the created temp table won't be added to thd->temporary_tables list. The 5.5 code does add this temp table to thd->temporary_tables. How to repeat: Maybe it's possible to construct a test case that relies on the temp table not being present in thd->temporary_tables, but for now this is purely a source code quality bug report. Suggested fix: s/0/TRUE