From 23d032c34eeb4c7af02fbc96de215d01a9004522 Mon Sep 17 00:00:00 2001 From: Alfranio Correia Date: Wed, 28 Jan 2009 14:35:12 +0000 Subject: BUG#35583 mysqlbinlog replay fails with ERROR 1146 when temp tables are used When using CREATE TEMPORARY TABLE LIKE to create a temporary table, or using TRUNCATE to delete all rows of a temporary table, they did not set the tmp_table_used flag, and cause the omission of "SET @@session.pseudo_thread_id" when dumping binlog with mysqlbinlog, and cause error when replay the statements. This patch fixed the problem by setting tmp_table_used in these two cases. (Done by He Zhenxing 2009-01-12) mysql-test/suite/binlog/r/binlog_tmp_table.result: Add test case for BUG#35583 mysql-test/suite/binlog/t/binlog_tmp_table.test: Add test case for BUG#35583 sql/sql_delete.cc: set thd->tmp_table_used when truncate temporary table sql/sql_table.cc: set thd->tmp_table_used when using create like to create temporary tables --- sql/sql_table.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'sql/sql_table.cc') diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 3ec03be72a5..4827810334f 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4983,6 +4983,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table, dst_path); /* purecov: inspected */ goto err; /* purecov: inspected */ } + thd->thread_specific_used= TRUE; } else if (err) { -- cgit v1.2.1