Drizzledump not preserving FLOAT precisions during MySQL migration if no decimal value given

Bug #685701 reported by Patrick Crews
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Drizzle
Fix Released
High
Andrew Hutchings
7.0
Fix Released
High
Andrew Hutchings

Bug Description

For this MySQL table:
NOTE the columns float2 and float2_1:

CREATE TABLE float_table(description TEXT,
col_float_unsigned float unsigned,
col_float0 float(0),
col_float1 float(1),
col_float2 float(2,0),
col_float2_1 float(2),
col_float float,
col_float_5_2 float(5,2),
col_float_23 float(23,1),
col_float_not_null float NOT NULL,
col_float_default_null float DEFAULT NULL,
col_float_default float(5,2) DEFAULT 999.99
) ENGINE=MyISAM;

We get this Drizzledump output:
NOTE how we lost precision information for float0,float1, and float2_1.

CREATE TABLE `float_table` (
  `description` TEXT COLLATE utf8_general_ci DEFAULT NULL,
  `col_float_unsigned` FLOAT UNSIGNED DEFAULT NULL,
  `col_float0` DOUBLE DEFAULT NULL,
  `col_float1` DOUBLE DEFAULT NULL,
  `col_float2` DOUBLE(2,0) DEFAULT NULL,
  `col_float2_1` DOUBLE DEFAULT NULL,
  `col_float` DOUBLE DEFAULT NULL,
  `col_float_5_2` DOUBLE(5,2) DEFAULT NULL,
  `col_float_23` DOUBLE(23,1) DEFAULT NULL,
  `col_float_not_null` DOUBLE NOT NULL,
  `col_float_default_null` DOUBLE DEFAULT NULL,
  `col_float_default` DOUBLE(5,2) DEFAULT '999.99'
) ENGINE='InnoDB' COLLATE='utf8_general_ci';

Related branches

Changed in drizzle:
status: New → Confirmed
assignee: nobody → Andrew Hutchings (linuxjedi)
description: updated
Revision history for this message
Andrew Hutchings (linuxjedi) wrote :

Precision on its own is invalid in Drizzle without a scale. So I developed drizzledump to ignore the values if one is missing. In MySQL the scale defaults to 0. Correct behaviour should be to change FLOAT(2) to DOUBLE(2,0)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.