1
0
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:
bell@sanja.is.com.ua
2003-01-25 02:25:52 +02:00
parent 710881e4fb
commit d56e23f64e
33 changed files with 1148 additions and 561 deletions

View File

@ -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();
}
}
};
/*