1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

auto-merge mysql-5.0-bugteam (local) --> mysql-5.0-bugteam

This commit is contained in:
Alfranio Correia
2009-08-28 10:29:04 +01:00
8 changed files with 315 additions and 14 deletions

View File

@@ -769,19 +769,23 @@ void close_temporary_tables(THD *thd)
{
/* Set pseudo_thread_id to be that of the processed table */
thd->variables.pseudo_thread_id= tmpkeyval(thd, table);
/* Loop forward through all tables within the sublist of
common pseudo_thread_id to create single DROP query */
String db;
db.append(table->s->db);
/* Loop forward through all tables that belong to a common database
within the sublist of common pseudo_thread_id to create single
DROP query
*/
for (s_query.length(stub_len);
table && is_user_table(table) &&
tmpkeyval(thd, table) == thd->variables.pseudo_thread_id;
tmpkeyval(thd, table) == thd->variables.pseudo_thread_id &&
strlen(table->s->db) == db.length() &&
strcmp(table->s->db, db.ptr()) == 0;
table= next)
{
/*
We are going to add 4 ` around the db/table names and possible more
due to special characters in the names
We are going to add ` around the table names and possible more
due to special characters
*/
append_identifier(thd, &s_query, table->s->db, (uint) strlen(table->s->db));
s_query.q_append('.');
append_identifier(thd, &s_query, table->s->table_name,
(uint) strlen(table->s->table_name));
s_query.q_append(',');
@@ -794,6 +798,7 @@ void close_temporary_tables(THD *thd)
Query_log_event qinfo(thd, s_query.ptr(),
s_query.length() - 1 /* to remove trailing ',' */,
0, FALSE, THD::NOT_KILLED);
qinfo.db= db.ptr();
thd->variables.character_set_client= cs_save;
DBUG_ASSERT(qinfo.error_code == 0);
mysql_bin_log.write(&qinfo);