summaryrefslogtreecommitdiff
path: root/sql/uniques.cc
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2017-05-17 00:34:48 +0300
committerMonty <monty@mariadb.org>2017-05-17 00:34:48 +0300
commit6378c95ee07cccc2f2187b2caddc4496e14827d9 (patch)
tree1e7b9066e15288e3471f0c800e5dda820d3d0daf /sql/uniques.cc
parent314350a722e65081472113c53657ad239f3bef72 (diff)
downloadmariadb-git-6378c95ee07cccc2f2187b2caddc4496e14827d9.tar.gz
Fix that end_bulk_insert() doesn't write to to-be-deleted files
This affected mainly MyISAM and Aria engines. Also fixed that end_bulk_insert() detects errors from internal mi_end_bulk_insert() and ma_end_bulk_insert() - delete_tree() and delete_tree_element() now has an extra argument that marks if future calls to tree->free should be ignored. - tree->free changed to function returning int, to be able to signal errors. - Restored deleting flag in MyISAM that was accidently disabled in mi_extra(PREPARE_FOR_DROP)
Diffstat (limited to 'sql/uniques.cc')
-rw-r--r--sql/uniques.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/uniques.cc b/sql/uniques.cc
index f2fa0bf7b1a..da334cc4b8a 100644
--- a/sql/uniques.cc
+++ b/sql/uniques.cc
@@ -364,7 +364,7 @@ double Unique::get_use_cost(uint *buffer, size_t nkeys, uint key_size,
Unique::~Unique()
{
close_cached_file(&file);
- delete_tree(&tree);
+ delete_tree(&tree, 0);
delete_dynamic(&file_ptrs);
}
@@ -384,7 +384,7 @@ bool Unique::flush()
(void*) this, left_root_right) ||
insert_dynamic(&file_ptrs, (uchar*) &file_ptr))
return 1;
- delete_tree(&tree);
+ delete_tree(&tree, 0);
return 0;
}