summaryrefslogtreecommitdiff
path: root/storage/myisam
diff options
context:
space:
mode:
authorunknown <igor@olga.mysql.com>2007-06-30 20:49:28 -0700
committerunknown <igor@olga.mysql.com>2007-06-30 20:49:28 -0700
commit26a2b00498c5da514abe7056032ea37f7115b1e1 (patch)
treeed6bbc6971d75074b67617c9c71dbae1f71a8996 /storage/myisam
parent2ca2b232e3fd7e82c4502f4ebd21a85e01d547a3 (diff)
parent8dcd5fca6977a8aafb0dd874b348e0078eafda94 (diff)
downloadmariadb-git-26a2b00498c5da514abe7056032ea37f7115b1e1.tar.gz
Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into olga.mysql.com:/home/igor/dev-opt/mysql-5.1-opt mysql-test/r/binary.result: Auto merged mysql-test/r/ctype_collate.result: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/t/binary.test: Auto merged mysql-test/t/create.test: Auto merged mysql-test/t/ctype_utf8.test: Auto merged sql/field_conv.cc: Auto merged sql/item.cc: Auto merged sql/item_subselect.cc: Auto merged sql/item_sum.cc: Auto merged sql/item_sum.h: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_select.cc: Auto merged sql-common/client.c: Auto merged sql/sql_select.h: Auto merged sql/table.cc: Auto merged storage/myisam/mi_open.c: Auto merged strings/ctype-simple.c: Auto merged mysql-test/r/create.result: Manual merge. mysql-test/r/subselect.result: Manual merge. mysql-test/r/type_enum.result: Manual merge. mysql-test/t/type_enum.test: Manual merge. mysql-test/include/mix1.inc: Manual merge. mysql-test/r/innodb_mysql.result: Manual merge. mysql-test/t/subselect.test: Manual merge. sql/sql_parse.cc: Manual merge. storage/myisam/mi_key.c: Manual merge.
Diffstat (limited to 'storage/myisam')
-rw-r--r--storage/myisam/mi_key.c12
-rw-r--r--storage/myisam/mi_open.c2
2 files changed, 7 insertions, 7 deletions
diff --git a/storage/myisam/mi_key.c b/storage/myisam/mi_key.c
index 230ebac3bb0..5b3662c4f28 100644
--- a/storage/myisam/mi_key.c
+++ b/storage/myisam/mi_key.c
@@ -254,16 +254,16 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old,
if (keyseg->flag & HA_SPACE_PACK)
{
uchar *end=pos+length;
- if (type != HA_KEYTYPE_NUM)
- {
- while (end > pos && end[-1] == ' ')
- end--;
- }
- else
+ if (type == HA_KEYTYPE_NUM)
{
while (pos < end && pos[0] == ' ')
pos++;
}
+ else if (type != HA_KEYTYPE_BINARY)
+ {
+ while (end > pos && end[-1] == ' ')
+ end--;
+ }
length=(uint) (end-pos);
FIX_LENGTH(cs, pos, length, char_length);
store_key_length_inc(key,char_length);
diff --git a/storage/myisam/mi_open.c b/storage/myisam/mi_open.c
index 9ff8ecdb14d..405dca641d1 100644
--- a/storage/myisam/mi_open.c
+++ b/storage/myisam/mi_open.c
@@ -236,7 +236,7 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
key_parts+=fulltext_keys*FT_SEGS;
if (share->base.max_key_length > MI_MAX_KEY_BUFF || keys > MI_MAX_KEY ||
- key_parts >= MI_MAX_KEY * MI_MAX_KEY_SEG)
+ key_parts > MI_MAX_KEY * MI_MAX_KEY_SEG)
{
DBUG_PRINT("error",("Wrong key info: Max_key_length: %d keys: %d key_parts: %d", share->base.max_key_length, keys, key_parts));
my_errno=HA_ERR_UNSUPPORTED;