Bug #61273 Synchronize model and reverse engineer get DOUBLE(M,N) as DOUBLE
Submitted: 24 May 2011 9:00 Modified: 24 May 2011 11:31
Reporter: Guislain Duthieuw Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Workbench Severity:S3 (Non-critical)
Version:5.2.23 rev7508 OS:Linux (Ubuntu 11.04)
Assigned to: CPU Architecture:Any
Tags: double, reverse, synchronize, workbench

[24 May 2011 9:00] Guislain Duthieuw
Description:
Workbench doesn't consider the length parameters for double type. Then Synchronize always shows some alter tables while no change has been done. 

How to repeat:
Create a database and synchronize it in order to create it in the server :

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

ALTER SCHEMA `mydb`  DEFAULT CHARACTER SET latin1  DEFAULT COLLATE latin1_swedish_ci ;

USE `mydb`;

CREATE  TABLE IF NOT EXISTS `mydb`.`table1` (
  `idtable1` INT(11) NOT NULL AUTO_INCREMENT ,
  `table1col` DOUBLE(14,3) NULL DEFAULT NULL ,
  PRIMARY KEY (`idtable1`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_swedish_ci;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Then, redo a synchronize model without having changed anything in it. The generated SQL now is (note the ALTER TABLE ...)
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

ALTER TABLE `mydb`.`table1` CHANGE COLUMN `table1col` `table1col` DOUBLE(14,3) NULL DEFAULT NULL  ;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
[24 May 2011 9:06] Valeriy Kravchuk
This is a duplicate of Bug #61165.
[24 May 2011 11:31] Guislain Duthieuw
Oh!

Sorry for the duplicate entry! I found it but didn't realize it was exactly the same.

Thank you Valeriy