Bug #11816 Truncate table doesn't work with temporary innodb tables
| Submitted: | 8 Jul 2005 13:57 | Modified: | 1 Sep 2005 0:25 |
|---|---|---|---|
| Reporter: | [ name withheld ] | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S2 (Serious) |
| Version: | 4.0, 4.1, 5.0 | OS: | Windows (Win XP PRO SP2/Linux) |
| Assigned to: | Ingo Strüwing | CPU Architecture: | Any |
[8 Jul 2005 13:57]
[ name withheld ]
[8 Jul 2005 13:58]
[ name withheld ]
Edit: I wrote client, should be server
[8 Jul 2005 14:46]
MySQL Verification Team
c:\mysql\bin>mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.12a-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> drop table if exists test; Query OK, 0 rows affected, 1 warning (0.03 sec) mysql> create temporary table test (a int) engine innodb; Query OK, 0 rows affected (0.09 sec) mysql> insert into test values (4711); Query OK, 1 row affected (0.05 sec) mysql> truncate test; Query OK, 0 rows affected (0.02 sec) mysql> insert into test values (42); Query OK, 1 row affected (0.02 sec) mysql> select * from test; +------+ | a | +------+ | 4711 | | 42 | +------+ 2 rows in set (0.03 sec) mysql> drop table if exists test; Query OK, 0 rows affected (0.06 sec) mysql> create table test (a int) engine innodb; Query OK, 0 rows affected (0.08 sec) mysql> insert into test values (4711); Query OK, 1 row affected (0.02 sec) mysql> truncate test; Query OK, 1 row affected (0.02 sec) mysql> insert into test values (42); Query OK, 1 row affected (0.03 sec) mysql> select * from test; +------+ | a | +------+ | 42 | +------+ 1 row in set (0.00 sec) miguel@hegel:/share/dbs/4.1$ bin/mysql -uroot test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.13-debug-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> drop table if exists test; Query OK, 0 rows affected, 1 warning (0.02 sec) mysql> create temporary table test (a int) engine innodb; Query OK, 0 rows affected (0.04 sec) mysql> insert into test values (4711); Query OK, 1 row affected (0.02 sec) mysql> truncate test; Query OK, 0 rows affected (0.02 sec) mysql> insert into test values (42); Query OK, 1 row affected (0.00 sec) mysql> select * from test; +------+ | a | +------+ | 4711 | | 42 | +------+ 2 rows in set (0.03 sec) mysql>
[11 Jul 2005 11:24]
Heikki Tuuri
Assigning this to Marko, as he has improved TRUNCATE in 5.0. This may be a bug on the MySQL side of the code, too. Regards, Heikki
[11 Jul 2005 13:50]
Marko Mäkelä
This bug is in 5.0 as well, so it's unaffected by the fast TRUNCATE TABLE implemented in 5.0.
[12 Jul 2005 8:54]
Marko Mäkelä
The problem is that mysql_truncate() in sql_delete.cc tries to re-generate temporary tables without checking ha_supports_generate(). This bug is not specific to InnoDB, but it should manifest itself also for BDB and NDB.
[12 Jul 2005 8:59]
Marko Mäkelä
Unassigning from myself, as it's not an InnoDB bug.
[9 Aug 2005 17:54]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/28079
[15 Aug 2005 13:57]
Frederick Aubert
Just to add a short comment, this bug seems to take place on Windows systems, but not on MacOs systems.
[29 Aug 2005 15:01]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/28981
[30 Aug 2005 12:38]
Ingo Strüwing
Pushed to 4.1.15 and 5.0.12.
[1 Sep 2005 0:25]
Paul DuBois
Noted in 4.1.15, 5.0.12 changelogs.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.042 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.