summaryrefslogtreecommitdiff
path: root/sql/sql_analyse.h
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/sql_analyse.h
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/sql_analyse.h')
-rw-r--r--sql/sql_analyse.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/sql_analyse.h b/sql/sql_analyse.h
index 820877f2a69..6704de4ed6d 100644
--- a/sql/sql_analyse.h
+++ b/sql/sql_analyse.h
@@ -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;