diff options
author | monty@mysql.com <> | 2005-05-14 00:01:40 +0300 |
---|---|---|
committer | monty@mysql.com <> | 2005-05-14 00:01:40 +0300 |
commit | b4e92e6360df30ab8d5e1baaf4d4d5d7cb8bc5f1 (patch) | |
tree | f66bb31f8c3bb3a7c23d82b86abf8f0810f05403 /myisam | |
parent | 59cce601513ac01d19d45120c784572afd9acbec (diff) | |
parent | 9b39f8304ef1e9ca9a10803271125431ed15fc0f (diff) | |
download | mariadb-git-b4e92e6360df30ab8d5e1baaf4d4d5d7cb8bc5f1.tar.gz |
Merge with 4.0
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_key.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c index 3545756779f..b7240f34538 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -301,8 +301,25 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old, } /* _mi_pack_key */ - /* Put a key in record */ - /* Used when only-keyread is wanted */ + +/* + Store found key in record + + SYNOPSIS + _mi_put_key_in_record() + info MyISAM handler + keynr Key number that was used + record Store key here + + Last read key is in info->lastkey + + NOTES + Used when only-keyread is wanted + + RETURN + 0 ok + 1 error +*/ static int _mi_put_key_in_record(register MI_INFO *info, uint keynr, byte *record) @@ -313,14 +330,8 @@ static int _mi_put_key_in_record(register MI_INFO *info, uint keynr, byte *blob_ptr; DBUG_ENTER("_mi_put_key_in_record"); - if (info->s->base.blobs && info->s->keyinfo[keynr].flag & HA_VAR_LENGTH_KEY) - { - if (!(blob_ptr= - mi_alloc_rec_buff(info, info->s->keyinfo[keynr].keylength, - &info->rec_buff))) - goto err; - } - key=(byte*) info->lastkey; + blob_ptr= info->lastkey2; /* Place to put blob parts */ + key=(byte*) info->lastkey; /* KEy that was read */ key_end=key+info->lastkey_length; for (keyseg=info->s->keyinfo[keynr].seg ; keyseg->type ;keyseg++) { |