Skip to content

Commit 9ad8ff6

Browse files
author
Alexander Barkov
committed
MDEV-8415 utf8: compare broken bytes as "greater than any non-broken character"
1 parent 95d07ee commit 9ad8ff6

File tree

5 files changed

+167
-174
lines changed

5 files changed

+167
-174
lines changed

mysql-test/r/ctype_utf8.result

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5594,11 +5594,11 @@ a?z
55945594
ab
55955595
az
55965596
5597+
55975598
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
55985599
PREPARE stmt FROM @query;
55995600
EXECUTE stmt;
56005601
ch
5601-
56025602
z
56035603
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
56045604
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
@@ -5802,11 +5802,11 @@ a?z
58025802
ab
58035803
az
58045804
5805+
58055806
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
58065807
PREPARE stmt FROM @query;
58075808
EXECUTE stmt;
58085809
ch
5809-
58105810
z
58115811
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
58125812
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
@@ -6002,11 +6002,11 @@ a?z
60026002
ab
60036003
az
60046004
6005+
60056006
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
60066007
PREPARE stmt FROM @query;
60076008
EXECUTE stmt;
60086009
ch
6009-
60106010
z
60116011
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
60126012
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');

storage/myisam/myisamdef.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ struct st_myisam_info
394394
#define PACK_TYPE_SELECTED 1 /* Bits in field->pack_type */
395395
#define PACK_TYPE_SPACE_FIELDS 2
396396
#define PACK_TYPE_ZERO_FILL 4
397-
#define MI_FOUND_WRONG_KEY 32738 /* Impossible value from ha_key_cmp */
397+
#define MI_FOUND_WRONG_KEY 0x7FFFFFFF /* Impossible value from ha_key_cmp */
398398

399399
#define MI_MAX_KEY_BLOCK_SIZE (MI_MAX_KEY_BLOCK_LENGTH/MI_MIN_KEY_BLOCK_LENGTH)
400400
#define MI_BLOCK_SIZE(key_length,data_pointer,key_pointer,block_size) (((((key_length)+(data_pointer)+(key_pointer))*4+(key_pointer)+2)/(block_size)+1)*(block_size))

0 commit comments

Comments
 (0)