summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-05-14 18:31:22 +0300
committerunknown <monty@mysql.com>2005-05-14 18:31:22 +0300
commitf8f714a2fbd821488aa3d8e39d6c3a944c7b1aa1 (patch)
treec08ee86cd9f77c3a7dc13b02b09371ccd19f2b88 /myisam
parentbb2b8120615f48cd17682aa810e54b20a7002c77 (diff)
parent78f2e7b53db62a3bc67dcb5ed20dfe47cf680c66 (diff)
downloadmariadb-git-f8f714a2fbd821488aa3d8e39d6c3a944c7b1aa1.tar.gz
Merge with 4.1
BitKeeper/etc/logging_ok: auto-union BitKeeper/deleted/.del-errmsg.txt~11edc4db89248c16: Auto merged BitKeeper/deleted/.del-errmsg.txt~184eb1f09242dc72: Auto merged BitKeeper/deleted/.del-errmsg.txt~2cdeb8d6f80eba72: Auto merged BitKeeper/deleted/.del-errmsg.txt~4617575065d612b9: Auto merged BitKeeper/deleted/.del-errmsg.txt~587903f9311db2d1: Auto merged BitKeeper/deleted/.del-errmsg.txt~606dfaeb9e81aa4e: Auto merged BitKeeper/deleted/.del-errmsg.txt~6bbd9eac7f0e6b89: Auto merged BitKeeper/deleted/.del-errmsg.txt~7397c423c52c6d2c: Auto merged BitKeeper/deleted/.del-errmsg.txt~898865062c970766: Auto merged BitKeeper/deleted/.del-errmsg.txt~8ed1999cbd481dc4: Auto merged BitKeeper/deleted/.del-errmsg.txt~94a93cc742fca24d: Auto merged BitKeeper/deleted/.del-errmsg.txt~9dab24f7fb11b1e1: Auto merged BitKeeper/deleted/.del-errmsg.txt~b44a85a177954da0: Auto merged BitKeeper/deleted/.del-errmsg.txt~b6181e29d8282b06: Auto merged BitKeeper/deleted/.del-errmsg.txt~ba132dc9bc936c8a: Auto merged BitKeeper/deleted/.del-errmsg.txt~e2609fdf7870795: Auto merged BitKeeper/deleted/.del-errmsg.txt~e3183b99fbba0a9c: Auto merged BitKeeper/deleted/.del-errmsg.txt~eeb2c47537ed9c23: Auto merged BitKeeper/deleted/.del-errmsg.txt~ef28b592c7591b7: Auto merged BitKeeper/deleted/.del-errmsg.txt~ef53c33ac0ff8a84: Auto merged BitKeeper/deleted/.del-errmsg.txt~f19bfd5d4c918964: Auto merged BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e: Auto merged libmysql/libmysql.c: Auto merged myisam/mi_key.c: Auto merged mysql-test/r/alter_table.result: Auto merged mysql-test/r/auto_increment.result: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/select.result: Auto merged mysql-test/t/alter_table.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/select.test: Auto merged sql/handler.h: Auto merged sql/item_func.cc: Auto merged sql/sql_yacc.yy: Auto merged mysql-test/r/insert_update.result: Auto merged strings/ctype-ucs2.c: Auto merged sql/sql_table.cc: merge sql/unireg.cc: merge
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_key.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c
index d7d10e116aa..9fb673483ea 100644
--- a/myisam/mi_key.c
+++ b/myisam/mi_key.c
@@ -329,8 +329,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)
@@ -341,14 +358,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++)
{