Bug #26803 | unique constraints on VARCHAR columns behave different in MyISAM and Falcon | ||
---|---|---|---|
Submitted: | 2 Mar 2007 19:15 | Modified: | 13 Apr 2007 9:04 |
Reporter: | Matthias Leich | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S3 (Non-critical) |
Version: | 5.1 | OS: | Any |
Assigned to: | Kevin Lewis | CPU Architecture: | Any |
[2 Mar 2007 19:15]
Matthias Leich
[2 Mar 2007 19:23]
Matthias Leich
test script
Attachment: ml_falcon1.test (application/octet-stream, text), 638 bytes.
[26 Mar 2007 22:51]
Peter Gulutzan
Subsequently, if I update to get rid of the trailing spaces, I end up with two rows that are exactly identifical, but there's still no error. And searches fail. mysql> create table tg (s1 varchar(5),s2 varchar(5)) engine=falcon; Query OK, 0 rows affected (0.01 sec) mysql> create unique index itg on tg (s1,s2); Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> insert into tg values ('y','y'),('y','y'); ERROR 1582 (23000): Duplicate entry 'y-y' for key 'itg' mysql> insert into tg values ('y ','y'),('y','y'); Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> update tg set s1='y',s2='y'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select hex(s1),hex(s2) from tg; +---------+---------+ | hex(s1) | hex(s2) | +---------+---------+ | 79 | 79 | | 79 | 79 | +---------+---------+ 2 rows in set (0.00 sec) mysql> select * from tg where s1 = 'y' and s2 = 'y'; +------+------+ | s1 | s2 | +------+------+ | y | y | +------+------+ 1 row in set (0.01 sec)
[4 Apr 2007 15:33]
Kevin Lewis
Falcon is providing charset->coll->strnncoll with two strings that are not equally padded with space to the same length.
[5 Apr 2007 3:57]
Kevin Lewis
MySQLCollation::compare() is used for two Value objects, which are values from records that have not gone through MySQLCollation::makeKey(). If either value has trailing spaces, they need to be stripped in order to make sure that duplicate values are identified. This is NOT to be done if the collation is a binary collation.
[7 Apr 2007 14:54]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/24021 ChangeSet@1.2569, 2007-04-07 16:54:31+02:00, hakank@lu0011.wdf.sap.corp +2 -0 Test for fixed BUG#26803.
[7 Apr 2007 14:55]
Hakan Küçükyılmaz
Confirming fix. Added test case falcon_bug_26803.test. Regards, Hakan
[13 Apr 2007 9:04]
MC Brown
A note has been added to the 5.2.4 changelog.
[10 Jul 2007 19:09]
MC Brown
This bug report entry has been moved to the 6.0.0 Falcon changelog.