From fc8b138544c6edb34a1bc26b8cc8b69630bb81b5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 5 Aug 2003 11:03:05 +0500 Subject: Fix: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CREATE TABLE t1 (s1 CHAR(5) CHARACTER SET latin1 COLLATE latin1_german2_ci); INSERT INTO t1 VALUES ('Ü'); INSERT INTO t1 VALUES ('ue'); SELECT DISTINCT s1 FROM t1; The above returned two rows in error. Now it returns one row, in latin1_german2_ci: Ü == ue --- heap/hp_hash.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'heap') diff --git a/heap/hp_hash.c b/heap/hp_hash.c index 2a946dcd7b9..2843407f3fe 100644 --- a/heap/hp_hash.c +++ b/heap/hp_hash.c @@ -371,8 +371,9 @@ int hp_rec_key_cmp(HP_KEYDEF *keydef, const byte *rec1, const byte *rec2) } if (seg->type == HA_KEYTYPE_TEXT) { - if (my_strnncoll(seg->charset,(uchar*) rec1+seg->start,seg->length, - (uchar*) rec2+seg->start,seg->length)) + if (seg->charset->coll->strnncollsp(seg->charset, + (uchar*) rec1+seg->start,seg->length, + (uchar*) rec2+seg->start,seg->length)) return 1; } else @@ -404,8 +405,9 @@ int hp_key_cmp(HP_KEYDEF *keydef, const byte *rec, const byte *key) } if (seg->type == HA_KEYTYPE_TEXT) { - if (my_strnncoll(seg->charset,(uchar*) rec+seg->start, seg->length, - (uchar*) key, seg->length)) + if (seg->charset->coll->strnncollsp(seg->charset, + (uchar*) rec+seg->start, seg->length, + (uchar*) key, seg->length)) return 1; } else -- cgit v1.2.1