diff options
author | unknown <istruewing@stella.local> | 2008-01-15 09:43:47 +0100 |
---|---|---|
committer | unknown <istruewing@stella.local> | 2008-01-15 09:43:47 +0100 |
commit | 18a7ec307977df75160e071b57355404a09e8e96 (patch) | |
tree | 7f28382d7f8ea5d9439327c802b22968149c953c /myisam | |
parent | 84762ce2cb01d352858dfff14afa9debffd14d8a (diff) | |
parent | 53f762abfd26e432477016f00cd984e2c6c9e2d1 (diff) | |
download | mariadb-git-18a7ec307977df75160e071b57355404a09e8e96.tar.gz |
Merge stella.local:/home2/mydev/mysql-5.0-bug32705
into stella.local:/home2/mydev/mysql-5.0-axmrg
mysql-test/r/myisam.result:
Manual merge from 4.1
mysql-test/t/myisam.test:
Manual merge from 4.1
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_open.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/myisam/mi_open.c b/myisam/mi_open.c index ec169ac8785..5314d6a9a6c 100644 --- a/myisam/mi_open.c +++ b/myisam/mi_open.c @@ -791,8 +791,17 @@ static void setup_key_functions(register MI_KEYDEF *keyinfo) keyinfo->get_key= _mi_get_pack_key; if (keyinfo->seg[0].flag & HA_PACK_KEY) { /* Prefix compression */ + /* + _mi_prefix_search() compares end-space against ASCII blank (' '). + It cannot be used for character sets, that do not encode the + blank character like ASCII does. UCS2 is an example. All + character sets with a fixed width > 1 or a mimimum width > 1 + cannot represent blank like ASCII does. In these cases we have + to use _mi_seq_search() for the search. + */ if (!keyinfo->seg->charset || use_strnxfrm(keyinfo->seg->charset) || - (keyinfo->seg->flag & HA_NULL_PART)) + (keyinfo->seg->flag & HA_NULL_PART) || + (keyinfo->seg->charset->mbminlen > 1)) keyinfo->bin_search=_mi_seq_search; else keyinfo->bin_search=_mi_prefix_search; |