Commit 13b5f718 authored by serg@serg.mylan's avatar serg@serg.mylan

post-merge fixes

parent b1f5a036
...@@ -324,8 +324,8 @@ uint _mi_ft_convert_to_ft2(MI_INFO *info, uint keynr, uchar *key) ...@@ -324,8 +324,8 @@ uint _mi_ft_convert_to_ft2(MI_INFO *info, uint keynr, uchar *key)
mi_putint(info->buff,length+2,0); mi_putint(info->buff,length+2,0);
memcpy(info->buff+2, key_ptr, length); memcpy(info->buff+2, key_ptr, length);
info->buff_used=info->page_changed=1; /* info->buff is used */ info->buff_used=info->page_changed=1; /* info->buff is used */
if ((root= _mi_new(info,keyinfo)) == HA_OFFSET_ERROR || if ((root= _mi_new(info,keyinfo,DFLT_INIT_HITS)) == HA_OFFSET_ERROR ||
_mi_write_keypage(info,keyinfo,root,info->buff)) _mi_write_keypage(info,keyinfo,root,DFLT_INIT_HITS,info->buff))
DBUG_RETURN(-1); DBUG_RETURN(-1);
/* inserting the rest of key values */ /* inserting the rest of key values */
......
...@@ -705,7 +705,7 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -705,7 +705,7 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt)
{ {
uint len; uint len;
KEY_CACHE_VAR *old_key_cache; KEY_CACHE_VAR *old_key_cache;
KEY_CACHE_VAR *new_key_cache; KEY_CACHE_VAR *new_key_cache;
const char *errmsg=0; const char *errmsg=0;
int error= HA_ADMIN_OK; int error= HA_ADMIN_OK;
ulonglong map= ~(ulonglong) 0; ulonglong map= ~(ulonglong) 0;
...@@ -714,26 +714,27 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -714,26 +714,27 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt)
(const char *) table_list->option : (const char *) table_list->option :
DEFAULT_KEY_CACHE_NAME; DEFAULT_KEY_CACHE_NAME;
KEY_CACHE_ASMT *key_cache_asmt= table->key_cache_asmt; KEY_CACHE_ASMT *key_cache_asmt= table->key_cache_asmt;
bool triggered= key_cache_asmt->triggered; bool triggered= key_cache_asmt->triggered;
DBUG_ENTER("ha_myisam::assign_to_keycache"); DBUG_ENTER("ha_myisam::assign_to_keycache");
VOID(pthread_mutex_lock(&LOCK_assign)); VOID(pthread_mutex_lock(&LOCK_assign));
old_key_cache= key_cache_asmt->key_cache; old_key_cache= key_cache_asmt->key_cache;
/* Check validity of the index references */ /* Check validity of the index references */
if (!triggered && table_list->use_index) if (!triggered && table_list->use_index)
{ {
key_map kmap= get_key_map_from_key_list(table, table_list->use_index); key_map kmap;
if (kmap == ~(key_map) 0) get_key_map_from_key_list(&kmap, table, table_list->use_index);
if (kmap.is_set_all())
{ {
errmsg= thd->net.last_error; errmsg= thd->net.last_error;
error= HA_ADMIN_FAILED; error= HA_ADMIN_FAILED;
goto err; goto err;
} }
if (kmap) if (!kmap.is_clear_all())
map= kmap; map= kmap.to_ulonglong();
} }
len= strlen(new_key_cache_name); len= strlen(new_key_cache_name);
...@@ -743,14 +744,14 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -743,14 +744,14 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt)
/* Nothing to do: table is assigned to the same key cache */ /* Nothing to do: table is assigned to the same key cache */
goto ok; goto ok;
} }
if (!new_key_cache || if (!new_key_cache ||
(!new_key_cache->cache && ha_key_cache(new_key_cache))) (!new_key_cache->cache && ha_key_cache(new_key_cache)))
{ {
if (key_cache_asmt->triggered) if (key_cache_asmt->triggered)
error= HA_ERR_OUT_OF_MEM; error= HA_ERR_OUT_OF_MEM;
else else
{ {
char buf[ERRMSGSIZE]; char buf[ERRMSGSIZE];
my_snprintf(buf, ERRMSGSIZE, my_snprintf(buf, ERRMSGSIZE,
"Failed to create key cache %s", new_key_cache_name); "Failed to create key cache %s", new_key_cache_name);
...@@ -761,7 +762,7 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt) ...@@ -761,7 +762,7 @@ int ha_myisam::assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt)
} }
reassign_key_cache(key_cache_asmt, new_key_cache); reassign_key_cache(key_cache_asmt, new_key_cache);
VOID(pthread_mutex_unlock(&LOCK_assign)); VOID(pthread_mutex_unlock(&LOCK_assign));
error= mi_assign_to_keycache(file, map, new_key_cache, &LOCK_assign); error= mi_assign_to_keycache(file, map, new_key_cache, &LOCK_assign);
VOID(pthread_mutex_lock(&LOCK_assign)); VOID(pthread_mutex_lock(&LOCK_assign));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment