Commit 9c6abf3f authored by unknown's avatar unknown
Browse files

Merge bk-internal:/home/bk/mysql-5.0

into  neptunus.(none):/home/msvensson/mysql/bug17137/my50-bug17137

parents 9414d3a3 c80332c7
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create temporary table t1 (n int);
insert into t1 values(1);
show status like 'Slave_open_temp_tables';
Variable_name	Value
Slave_open_temp_tables	1
delete from t1;
show status like 'Slave_open_temp_tables';
Variable_name	Value
Slave_open_temp_tables	1
truncate t1;
show status like 'Slave_open_temp_tables';
Variable_name	Value
Slave_open_temp_tables	1
show status like 'Slave_open_temp_tables';
Variable_name	Value
Slave_open_temp_tables	0
+32 −0
Original line number Diff line number Diff line
source include/master-slave.inc;

#
# Bug#17137 Running "truncate table" on temporary table
# leaves the table open on a slave
#

create temporary table t1 (n int);
insert into t1 values(1);
sync_slave_with_master;
show status like 'Slave_open_temp_tables';

# Perform a delete from temp table
connection master;
delete from t1;
sync_slave_with_master;
show status like 'Slave_open_temp_tables';

# Perform truncate on temp table
connection master;
truncate t1;
sync_slave_with_master;
show status like 'Slave_open_temp_tables';

# Disconnect the master, temp table on slave should dissapear
disconnect master;
--real_sleep 3 # time for DROP to be read by slave
connection slave;
show status like 'Slave_open_temp_tables';


# End of 4.1 tests
+2 −0
Original line number Diff line number Diff line
@@ -813,6 +813,8 @@ bool mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok)
    strmov(path, table->s->path);
    *table_ptr= table->next;			// Unlink table from list
    close_temporary(table,0);
    if (thd->slave_thread)
      --slave_open_temp_tables;
    *fn_ext(path)=0;				// Remove the .frm extension
    ha_create_table(path, &create_info,1);
    // We don't need to call invalidate() because this table is not in cache