mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
fixed subselects with temporary tables (SCRUM)
fixed memory leacks
This commit is contained in:
@ -376,7 +376,7 @@ struct system_variables
|
||||
CONVERT *convert_set;
|
||||
};
|
||||
|
||||
|
||||
void free_tmp_table(THD *thd, TABLE *entry);
|
||||
/*
|
||||
For each client connection we create a separate thread with THD serving as
|
||||
a thread/connection descriptor
|
||||
@ -486,6 +486,7 @@ public:
|
||||
CHARSET_INFO *db_charset;
|
||||
CHARSET_INFO *thd_charset;
|
||||
List<Item> *possible_loops; // Items that may cause loops in subselects
|
||||
List<TABLE> temporary_tables_should_be_free; // list of temporary tables
|
||||
List <MYSQL_ERROR> warn_list;
|
||||
uint warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_END];
|
||||
uint total_warn_count, old_total_warn_count;
|
||||
@ -640,6 +641,17 @@ public:
|
||||
net.report_error= 0;
|
||||
}
|
||||
void add_possible_loop(Item *);
|
||||
void free_tmp_tables()
|
||||
{
|
||||
if (temporary_tables_should_be_free.elements)
|
||||
{
|
||||
List_iterator_fast<TABLE> lt(temporary_tables_should_be_free);
|
||||
TABLE *table;
|
||||
while ((table= lt++))
|
||||
free_tmp_table(this,table);
|
||||
temporary_tables_should_be_free.empty();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user