summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_extra.c1
-rw-r--r--myisam/mi_rkey.c14
-rw-r--r--myisam/myisamdef.h3
3 files changed, 5 insertions, 13 deletions
diff --git a/myisam/mi_extra.c b/myisam/mi_extra.c
index fe95c60931c..cf075512ac4 100644
--- a/myisam/mi_extra.c
+++ b/myisam/mi_extra.c
@@ -319,6 +319,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function)
{
my_free(info->rec_alloc,MYF(MY_ALLOW_ZERO_PTR));
info->rec_alloc=info->rec_buff=0;
+ mi_fix_rec_buff_for_blob(info,info->s->base.pack_reclength);
}
break;
case HA_EXTRA_NORMAL: /* Theese isn't in use */
diff --git a/myisam/mi_rkey.c b/myisam/mi_rkey.c
index d201694ab05..84612779f5d 100644
--- a/myisam/mi_rkey.c
+++ b/myisam/mi_rkey.c
@@ -22,8 +22,8 @@
/* Read a record using key */
/* Ordinary search_flag is 0 ; Give error if no record with key */
-int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
- enum ha_rkey_function search_flag, bool raw_key)
+int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
+ enum ha_rkey_function search_flag)
{
uchar *key_buff;
MYISAM_SHARE *share=info->s;
@@ -37,7 +37,7 @@ int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED);
- if (raw_key)
+ if (!info->use_packed_key)
{
if (key_len == 0)
key_len=USE_WHOLE_KEY;
@@ -101,11 +101,3 @@ int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
err:
DBUG_RETURN(my_errno);
} /* _mi_rkey */
-
-/* shouldn't forget to do it inline sometime */
-int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
- enum ha_rkey_function search_flag)
-{
- return _mi_rkey(info,buf,inx,key,key_len,search_flag,TRUE);
-}
-
diff --git a/myisam/myisamdef.h b/myisam/myisamdef.h
index dde2651c0c9..33fd1b6946f 100644
--- a/myisam/myisamdef.h
+++ b/myisam/myisamdef.h
@@ -258,6 +258,7 @@ struct st_myisam_info {
my_bool quick_mode;
my_bool page_changed; /* If info->buff can't be used for rnext */
my_bool buff_used; /* If info->buff has to be reread for rnext */
+ my_bool use_packed_key; /* For MYISAMMRG */
myf lock_wait; /* is 0 or MY_DONT_WAIT */
int (*read_record)(struct st_myisam_info*, my_off_t, byte*);
LIST open_list;
@@ -630,8 +631,6 @@ void mi_update_status(void* param);
void mi_copy_status(void* to,void *from);
my_bool mi_check_status(void* param);
void mi_disable_non_unique_index(MI_INFO *info, ha_rows rows);
-int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
- enum ha_rkey_function search_flag, bool raw_key);
my_bool check_table_is_closed(const char *name, const char *where);
int mi_open_datafile(MI_INFO *info, MYISAM_SHARE *share);