diff options
author | unknown <guilhem@gbichot3.local> | 2006-12-20 18:58:35 +0100 |
---|---|---|
committer | unknown <guilhem@gbichot3.local> | 2006-12-20 18:58:35 +0100 |
commit | 714f3b73e513f2d12fb45e8256fa6299e60cd5a2 (patch) | |
tree | 760f67854bfdcd407feba1aebfc7c9f3ddbccafd /storage/maria/ma_key.c | |
parent | 8b998d1199d53baf002f6ad725fa69e4b2f6813b (diff) | |
download | mariadb-git-714f3b73e513f2d12fb45e8256fa6299e60cd5a2.tar.gz |
merge of recent MyISAM changes into Maria.
Only failure is ndb_restore - could have been worse!!
include/pagecache.h:
LSN->lsn
mysys/mf_keycache.c:
page_status is int
mysys/mf_pagecache.c:
merge of recent key cache changes
sql/mysqld.cc:
post-merge fixes
sql/set_var.cc:
post-merge fixes
storage/maria/ha_maria.cc:
merge of recent MyISAM changes into Maria
storage/maria/ha_maria.h:
merge of recent MyISAM changes into Maria
storage/maria/ma_close.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_create.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_delete.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_dynrec.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_ft_boolean_search.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_key.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_keycache.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_open.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_page.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_rsamepos.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_statrec.c:
merge of recent MyISAM changes into Maria
storage/maria/ma_unique.c:
merge of recent MyISAM changes into Maria
storage/maria/maria_chk.c:
merge of recent MyISAM changes into Maria
storage/maria/maria_pack.c:
merge of recent MyISAM changes into Maria
storage/myisam/myisampack.c:
compiler warning
Diffstat (limited to 'storage/maria/ma_key.c')
-rw-r--r-- | storage/maria/ma_key.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/storage/maria/ma_key.c b/storage/maria/ma_key.c index ecd51f5dc92..78465ca729f 100644 --- a/storage/maria/ma_key.c +++ b/storage/maria/ma_key.c @@ -52,7 +52,7 @@ static int _ma_put_key_in_record(MARIA_HA *info,uint keynr,byte *record); uint _ma_make_key(register MARIA_HA *info, uint keynr, uchar *key, const byte *record, my_off_t filepos) { - byte *pos,*end; + byte *pos; uchar *start; reg1 HA_KEYSEG *keyseg; my_bool is_ft= info->s->keyinfo[keynr].flag & HA_FULLTEXT; @@ -107,18 +107,17 @@ uint _ma_make_key(register MARIA_HA *info, uint keynr, uchar *key, } if (keyseg->flag & HA_SPACE_PACK) { - end= pos + length; if (type != HA_KEYTYPE_NUM) { - while (end > pos && end[-1] == ' ') - end--; + length= cs->cset->lengthsp(cs, pos, length); } else { + byte *end= pos + length; while (pos < end && pos[0] == ' ') pos++; + length=(uint) (end-pos); } - length=(uint) (end-pos); FIX_LENGTH(cs, pos, length, char_length); store_key_length_inc(key,char_length); memcpy((byte*) key,(byte*) pos,(size_t) char_length); @@ -403,8 +402,10 @@ static int _ma_put_key_in_record(register MARIA_HA *info, uint keynr, pos= record+keyseg->start; if (keyseg->type != (int) HA_KEYTYPE_NUM) { - memcpy(pos,key,(size_t) length); - bfill(pos+length,keyseg->length-length,' '); + memcpy(pos,key,(size_t) length); + keyseg->charset->cset->fill(keyseg->charset, + pos + length, keyseg->length - length, + ' '); } else { |