Bug #14529 4.1 to 5.0, TINYINT(1) Column data lost
Submitted: 31 Oct 2005 23:16 Modified: 5 Dec 2005 16:42
Reporter: Jason Schwab Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Migration Toolkit Severity:S3 (Non-critical)
Version:1.0.20 rc OS:Microsoft Windows (Windows XP Pro)
Assigned to: CPU Architecture:Any

[31 Oct 2005 23:16] Jason Schwab
Description:
When using the migration toolkit to migrate from 4.1 to 5.0, any data in a TINYINT(1) column seems to become lost.  The generated inserts do not contain any data for the column, only a zero length string ("").

The migration toolkit reports these errors in the final report:

      `lep`.`lep_lbs_interfaces`
      --------------------------
          Incorrect integer value: '' for column 'active' at row 1
          4 row(s) transfered.

Column 'active' is a TINYINT(1) column.

How to repeat:
Create a test table:

DROP TABLE IF EXISTS `test`.`testtable`;
CREATE TABLE `testtable` (
  `uid` int(10) unsigned NOT NULL auto_increment,
  `testtinyint` tinyint(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Populate with random data, then when the migration toolkit runs and I have it generate code instead of doing it live, the inserts look like:

INSERT INTO `test`.`testtable`(`uid`, `testtinyint`)
VALUES (1, ""),
  (2, ""),
  (3, "");

Using mysqldump seems to generate the correct code.
[21 Nov 2005 18:11] Jorge del Conde
Thanks for your bug report.  I was able to reproduce this problem with 1.0.20
[5 Dec 2005 16:42] Michael G. Zinner
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html