summaryrefslogtreecommitdiff
path: root/heap/hp_hash.c
diff options
context:
space:
mode:
authorbar@bar.mysql.r18.ru <>2003-08-05 11:03:05 +0500
committerbar@bar.mysql.r18.ru <>2003-08-05 11:03:05 +0500
commit85c7a8198a2b15923bc678051f095a356799ba4b (patch)
tree4cc952660aa92af2c01890655eecf3562e2bd7b5 /heap/hp_hash.c
parent544f96f0fe65932a5098feb1f052053a811ccfe2 (diff)
downloadmariadb-git-85c7a8198a2b15923bc678051f095a356799ba4b.tar.gz
Fix:
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
Diffstat (limited to 'heap/hp_hash.c')
-rw-r--r--heap/hp_hash.c10
1 files changed, 6 insertions, 4 deletions
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