Bug #7350 | Error in UCS2 comparisons of InnoDB tables | ||
---|---|---|---|
Submitted: | 16 Dec 2004 11:08 | Modified: | 14 Jan 2005 13:24 |
Reporter: | Marko Mäkelä | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 4.1.8, 5.0.3 | OS: | Any (all) |
Assigned to: | Marko Mäkelä | CPU Architecture: | Any |
[16 Dec 2004 11:08]
Marko Mäkelä
[16 Dec 2004 14:45]
Marko Mäkelä
There are related errors in the MySQL->InnoDB and InnoDB->MySQL row format conversions that affect VARCHAR columns. When UCS2 VARCHARs are converted to MySQL, they are padded with 0x2020 instead of spaces. I'm working on fixes.
[16 Dec 2004 21:50]
Hartmut Holzgraefe
I've been able to verify this using the create statement given above and the following two INSERT statements on InnoDB, MyISAM and HEAP so it seems to be a more general problem and not neccesarily InnoDB specific INSERT INTO foo6 VALUES(0x0120); INSERT INTO foo6 VALUES(0x0121);
[17 Dec 2004 22:18]
Marko Mäkelä
I've committed a fix to the 4.1 tree. Hartmut, are you sure that U+0120 and U+0121 are unequal in the collation you're using? In the default UCS2 collation, both characters correspond to 'g'. Instead of U+0121, try something completely different, such as U+01ff. I didn't find any error in MyISAM, but I didn't try very hard.
[22 Dec 2004 0:46]
Hartmut Holzgraefe
ok, my fault ... i just tested 0x0121, 0x0122 and 0x0123, should have tried one more ... :o
[14 Jan 2005 13:24]
Marko Mäkelä
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 Additional info: I have now pushed the fix to the 4.1 tree. It'll be included in 4.1.10 and 5.0.4.