Bug #46734 Catalog diff reports incorrect differences
Submitted: 14 Aug 2009 17:24 Modified: 17 Aug 2009 2:59
Reporter: Johan Natt och Dag Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Workbench Severity:S1 (Critical)
Version:5.1.16 OS:Windows (XP, jre6, mysql 5.0.45)
Assigned to: CPU Architecture:Any
Tags: catalog diff, catalog diff report, diff, difference, schema diff

[14 Aug 2009 17:24] Johan Natt och Dag
Description:
The catalog diff report generates too many differences that are actually no differences at all.

Specifically, these differences are erroneously reported:
1. BOOLEAN in model, TINYINT(1) in live database
   Reported as 
     Table `f`.`album` was modified
       columns:
       - modified column Visible
   (column Visible is BOOLEAN and forward engineered to TINYINT(1) by Workbench)

2. MySQL Engine, and row format
   Model says server default, which is set to MyISAM (InnoDB is disabled).
   Model properties says MyISAM (global, not overridden)
   Forward engineer sets tables to MyISAM.
   Server reports MyISAM for all tables.
   Row format is not altered.
   Catalog diff reports (for many tables):
     Table `f`.`actions` was modified
       attributes:
       - engine: MyISAM --> InnoDB
       - row format:  --> DEFAULT

Why does MySQL Workbench report these differences?

I could not test this in 5.2.2 alpha, but based on the differences identified during synchronization it seems to be the same bug there...

How to repeat:
BOOLEAN <-> TINYINT
1. Create a table with a field of type BOOLEAN
2. Forware engineer
3. Check that live server table column is TINYINT(1)
4. Generate Catalog diff report.

Storage engine
1. Ensure MySQL default storage engine is MyISAM (ini setting default-storage-engine=MYISAM)
2. Set MySQL Workbench default storage engine to MyISAM
3. Use global settings for the model
4. Add a table with a column. The table will have "MyISAM" as storage engine
5. Forward engineer
6. Change table storage engine to "Server default".
7. Generate Catalog Diff report
=>
Diff in storage engines.

Suggested fix:
Correct the difference algorithm
[14 Aug 2009 17:25] Johan Natt och Dag
"Catalog diff" is the name used in the UI.
[17 Aug 2009 2:59] Susanne Ebrecht
Many thanks for writing a feature request.

Please don't put two different issues into one single bug report.

The boolean issue is related to bug #8485.

For the storage engine problem I created a new bug report bug #46752

Will set this bug here as duplicate of bug #8485 and bug #46752