Bug #27149 mysql_convert_table_format: Not sufficiently careful
Submitted: 14 Mar 2007 19:59 Modified: 18 Jun 16:31
Reporter: Paul DuBois
Status: Closed
Category:Client Severity:S3 (Non-critical)
Version:all OS:Linux (Linux)
Assigned to: Jim Winstead Target Version:5.0+
Triage: Triaged: D3 (Medium)

[14 Mar 2007 19:59] Paul DuBois
Description:
mysql_convert_table_format has a --type=engine_name
option that enables you to specify the desired storage
engine to convert your tables to. There is a check in
the code on the value of this option:

if (uc($opt_type) eq "HEAP")
{
  print "Converting to type HEAP would delete your tables; aborting\n";
  exit(1);
}

However, HEAP is now called MEMORY. If it's important to
prevent conversion of tables to HEAP, the same should apply
to MEMORY.

How to repeat:
Examine the source code.

Suggested fix:
Test not just for HEAP, but for MEMORY as well.
[15 Mar 2007 0:04] Miguel Solorzano
Thank you for the bug report.
[28 Apr 20:14] 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/commits/72934

2876 Jim Winstead	2009-04-28
      Check for MEMORY, HEAP, and BLACKHOLE in mysql_convert_table_format when
      preventing a change that would result in table data loss. (Bug #27149)
      
      Also updated mysql_convert_table_format to use --engine as the documentation
      claimed, and use the engine terminology throughout instead of the obsolete
      'table type'.
      modified:
        scripts/mysql_convert_table_format.sh
[5 May 20:01] Jim Winstead
Queued to 5.1-bugteam and 6.0-bugteam.
[28 May 10:14] Bugs System
Pushed into 5.1.36 (revid:joro@sun.com-20090528073639-yohsb4q1jzg7ycws) (version source
revid:mats@sun.com-20090511132802-nnkiyb2huih1tklz) (merge vers: 5.1.35) (pib:6)
[29 May 3:57] Paul DuBois
Noted in 5.1.36 changelog.

mysql_convert_table_format did not prevent converting tables to 
MEMORY or BLACKHOLE tables, which could result in data loss.

Setting report to NDI pending push into 6.0.x.
[17 Jun 21:22] Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090616183122-chjzbaa30qopdra9) (version
source revid:jimw@mysql.com-20090505173706-9ze3q4qzngw8kt2b) (merge vers: 6.0.12-alpha)
(pib:11)
[18 Jun 16:31] Paul DuBois
Noted in 5.4.4 changelog.
[13 Aug 1:02] Paul DuBois
Noted in 5.4.2 changelog because next 5.4 version will be 5.4.2 and not 5.4.4.
[15 Aug 4:19] Paul DuBois
Ignore previous comment about 5.4.2.
[26 Aug 15:46] Bugs System
Pushed into 5.1.37-ndb-7.0.8 (revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l)
(version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers:
5.1.37-ndb-7.0.8) (pib:11)
[26 Aug 15:46] Bugs System
Pushed into 5.1.37-ndb-6.3.27 (revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc)
(version source revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (merge vers:
5.1.37-ndb-6.3.27) (pib:11)
[26 Aug 15:48] Bugs System
Pushed into 5.1.37-ndb-6.2.19 (revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4)
(version source revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (merge vers:
5.1.37-ndb-6.2.19) (pib:11)
[27 Aug 18:32] Bugs System
Pushed into 5.1.35-ndb-7.1.0 (revid:magnus.blaudd@sun.com-20090827163030-6o3kk6r2oua159hr)
(version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers:
5.1.37-ndb-7.0.8) (pib:11)
[9 Oct 3:30] Paul DuBois
The 5.4 fix has been pushed to 5.4.2.