Commit 3106e311 authored by unknown's avatar unknown

Fix for BUG#1345 "SQL Syntax Error in binarylog with DROP TABLES":

it's just backquoting the db's and table's names
when writing DROP TEMPORARY TABLE to the binlog when a connection ends.
A testcase for this.


sql/sql_base.cc:
  backquote db and table name when writing DROP TEMPORARY TABLE to the binlog
  when a connection ends.
parent d84ae0fd
reset master;
create database `drop-temp+table-test`;
use `drop-temp+table-test`;
create temporary table `table:name` (a int);
show binlog events;
Log_name Pos Event_type Server_id Orig_log_pos Info
master-bin.001 4 Start 1 4 Server ver: VERSION, Binlog ver: 3
master-bin.001 79 Query 1 79 use test; create database `drop-temp+table-test`
master-bin.001 152 Query 1 152 use drop-temp+table-test; create temporary table `table:name` (a int)
master-bin.001 246 Query 1 246 use drop-temp+table-test; DROP /*!40005 TEMPORARY */ TABLE `drop-temp+table-test`.`table:name`
drop database `drop-temp+table-test`;
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connection con1;
reset master;
create database `drop-temp+table-test`;
use `drop-temp+table-test`;
create temporary table `table:name` (a int);
disconnect con1;
connection con2;
let $VERSION=`select version()`;
--replace_result $VERSION VERSION
show binlog events;
drop database `drop-temp+table-test`;
...@@ -561,15 +561,13 @@ void close_temporary_tables(THD *thd) ...@@ -561,15 +561,13 @@ void close_temporary_tables(THD *thd)
{ {
// skip temporary tables not created directly by the user // skip temporary tables not created directly by the user
if (table->real_name[0] != '#') if (table->real_name[0] != '#')
{
/*
Here we assume table_cache_key always starts
with \0 terminated db name
*/
found_user_tables = 1; found_user_tables = 1;
} /*
end = strxmov(end,table->table_cache_key,".", Here we assume table_cache_key always starts
table->real_name,",", NullS); with \0 terminated db name
*/
end = strxmov(end,"`",table->table_cache_key,"`",
".`",table->real_name,"`,", NullS);
} }
next=table->next; next=table->next;
close_temporary(table); close_temporary(table);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment