Bug #65376 Changing engine crashes MySQL Workbench
Submitted: 21 May 2012 6:55 Modified: 19 Jul 2012 21:33
Reporter: Steve Fatula Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench: SQL Editor Severity:S3 (Non-critical)
Version:5.2.40 OS:MacOS (10.7.4)
Assigned to: CPU Architecture:Any
Tags: engine

[21 May 2012 6:55] Steve Fatula
Description:
When changing the database engine from myisam to innodb using alter table from mysql workbench editor on Mac OSX, MySQL workbench unexpectedly quits.

How to repeat:
From the table list on the left hand side, pick the table, right click, select alter table. This brings up a alter table form tab. In there, I click the double down errors near the top so I can see what the current engine is (mysaim). I change that to innodb, click apply, and, once the table is in fact altered, it crashes mysql workbench with the message MySQLWorkbench quit ubexpectedly. If you need to do something else (alter another table, etc.), obviously, the workaround is to simply run mysql workbench again.
[21 May 2012 7:16] Valeriy Kravchuk
Can you, please, check if table was really altered on server and now uses InnoDB engine or if there are any error messages in server's error log.
[21 May 2012 7:21] Steve Fatula
Yes, it is changed as I had reported. No, there are no erroros in the servers mysql log file, which is expected since it does in fact change the table. It's a workbench error.
[21 May 2012 14:10] Valeriy Kravchuk
Please, send the output of SHOW CREATE TABLE for the table you tried to ALTER. I can not repeat this with my tables on Mac OS X 10.5.x while working with local MySQL server 5.1.x.
[21 May 2012 14:19] Steve Fatula
I've done more than 20 tables, so, any of them will work. This is with a server of Mac OSX as well. Not sure that if somehow the renaming of the tables to all lower case by MySQL on Mac OSX server (after it's alter) has any part in this or not. I suppose that is possible. Here's the simplest of all tables:

show create table GOOGLE_EXCLUDE;
+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                            |
+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GOOGLE_EXCLUDE | CREATE TABLE `GOOGLE_EXCLUDE` (
  `PRODUCT_ID` varchar(20) COLLATE latin1_general_cs NOT NULL DEFAULT '',
  PRIMARY KEY (`PRODUCT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs |
+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

It was MyISAM before the change. Remember - I am not using the alter table command directory from the SQL window, I am using the right click of the table name and selecting alter table.
[21 May 2012 15:17] Steve Fatula
Curiously, I just used MySQL workbench to alter a table on a linux host (changing the engine), and, it worked just fine. So, my thought that it may be related to MySQL on Mac OSX, the way it changes the case name of the table to lower case during an alter, may be true. This would still be a bug in Workbench though.
[21 May 2012 15:42] Valeriy Kravchuk
Verified just as described while working with local MySQL 5.1.64 on Mac OS X. You are right that this is related to uppercase table name and MySQL server running on Mac OS X, but still is a Workbench bug.
[19 Jul 2012 21:33] Philip Olson
This has been fixed as of the soon-to-be-released Workbench 5.2.41, and 
here's the changelog entry:

On Mac OS X, MySQL Workbench would crash when changing database engines if a
database included a table with uppercase characters.