1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

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)
This commit is contained in:
Monty
2017-05-17 00:34:48 +03:00
parent 314350a722
commit 6378c95ee0
24 changed files with 159 additions and 85 deletions

View File

@ -68,7 +68,7 @@ int compare_ulonglong2(void* cmp_arg __attribute__((unused)),
int compare_decimal2(int* len, const char *s, const char *t);
Procedure *proc_analyse_init(THD *thd, ORDER *param, select_result *result,
List<Item> &field_list);
void free_string(String*);
int free_string(String*);
class analyse;
class field_info :public Sql_alloc
@ -86,7 +86,7 @@ public:
nulls(0), min_length(0), max_length(0), room_in_tree(1),
found(0),item(a), pc(b) {};
virtual ~field_info() { delete_tree(&tree); }
virtual ~field_info() { delete_tree(&tree, 0); }
virtual void add() = 0;
virtual void get_opt_type(String*, ha_rows) = 0;
virtual String *get_min_arg(String *) = 0;