summaryrefslogtreecommitdiff
path: root/storage/maria
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-03-15 20:00:28 +0100
committerSergei Golubchik <serg@mariadb.org>2019-03-15 21:00:41 +0100
commit0508d327aef520d3131ff8a85ed610337149fffc (patch)
tree7e04769f49b4aded9053adcad442fe00eb487d98 /storage/maria
parentbb8c82c66abddf796e8d44f817518e5ab38ae6e4 (diff)
parent34db9958e28c325b0f708f78b7ff029de810d5ea (diff)
downloadmariadb-git-0508d327aef520d3131ff8a85ed610337149fffc.tar.gz
Merge branch '10.1' into 10.2
Diffstat (limited to 'storage/maria')
-rw-r--r--storage/maria/ma_write.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/storage/maria/ma_write.c b/storage/maria/ma_write.c
index 47d2a5d7f9d..702ec92867f 100644
--- a/storage/maria/ma_write.c
+++ b/storage/maria/ma_write.c
@@ -1676,14 +1676,15 @@ static int keys_compare(bulk_insert_param *param, uchar *key1, uchar *key2)
}
-static int keys_free(uchar *key, TREE_FREE mode, bulk_insert_param *param)
+static void keys_free(void* key_arg, TREE_FREE mode, void *param_arg)
{
/*
Probably I can use info->lastkey here, but I'm not sure,
and to be safe I'd better use local lastkey.
*/
+ bulk_insert_param *param= (bulk_insert_param*)param_arg;
MARIA_SHARE *share= param->info->s;
- uchar lastkey[MARIA_MAX_KEY_BUFF];
+ uchar lastkey[MARIA_MAX_KEY_BUFF], *key= (uchar*)key_arg;
uint keylen;
MARIA_KEYDEF *keyinfo= share->keyinfo + param->keynr;
MARIA_KEY tmp_key;
@@ -1695,7 +1696,7 @@ static int keys_free(uchar *key, TREE_FREE mode, bulk_insert_param *param)
mysql_rwlock_wrlock(&keyinfo->root_lock);
keyinfo->version++;
}
- return 0;
+ return;
case free_free:
/* Note: keylen doesn't contain transid lengths */
keylen= _ma_keylength(keyinfo, key);
@@ -1710,13 +1711,14 @@ static int keys_free(uchar *key, TREE_FREE mode, bulk_insert_param *param)
copying middle key up if tree is growing
*/
memcpy(lastkey, key, tmp_key.data_length + tmp_key.ref_length);
- return _ma_ck_write_btree(param->info, &tmp_key);
+ _ma_ck_write_btree(param->info, &tmp_key);
+ return;
case free_end:
if (share->lock_key_trees)
mysql_rwlock_unlock(&keyinfo->root_lock);
- return 0;
+ return;
}
- return 1;
+ return;
}
@@ -1772,8 +1774,7 @@ int maria_init_bulk_insert(MARIA_HA *info, size_t cache_size, ha_rows rows)
init_tree(&info->bulk_insert[i],
cache_size * key[i].maxlength,
cache_size * key[i].maxlength, 0,
- (qsort_cmp2)keys_compare,
- (tree_element_free) keys_free, (void *)params++, MYF(0));
+ (qsort_cmp2) keys_compare, keys_free, (void *)params++, MYF(0));
}
else
info->bulk_insert[i].root=0;