Commit 1a170dc0 authored by unknown's avatar unknown
Browse files

Fixes bug #12517. Clear user variables and replication events before

closing temp tables in thread cleanup.


mysql-test/r/connect.result:
  added results for test of bug #12517
mysql-test/t/connect.test:
  added test of bug #12517
sql/sql_class.cc:
  Clear user variables and replication events before
  closing temp tables in thread cleanup.
parent 8dd3a7d9
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -65,3 +65,19 @@ show tables;
Tables_in_test
delete from mysql.user where user=_binary"test";
flush privileges;
use test;
drop table if exists t1;
Warnings:
Note	1051	Unknown table 't1'
create table t1 (id integer not null auto_increment primary key);
drop table if exists t2;
Warnings:
Note	1051	Unknown table 't2'
create temporary table t2(id integer not null auto_increment primary key);
set @id := 1;
delete from t1 where id like @id;
use test;
drop table if exists t2;
Warnings:
Note	1051	Unknown table 't2'
drop table if exists t1;
+18 −0
Original line number Diff line number Diff line
@@ -77,4 +77,22 @@ show tables;
delete from mysql.user where user=_binary"test";
flush privileges;

# Test for bug #12517.
connect (con2,localhost,root,,test);
connection con2;
use test;
drop table if exists t1;
create table t1 (id integer not null auto_increment primary key);
drop table if exists t2;
create temporary table t2(id integer not null auto_increment primary key);
set @id := 1;
delete from t1 where id like @id;
disconnect con2;
sleep 5;
connect (con1,localhost,root,,test);
connection con1;
use test;
drop table if exists t2;
drop table if exists t1;

# End of 4.1 tests
+2 −2
Original line number Diff line number Diff line
@@ -353,12 +353,12 @@ void THD::cleanup(void)
  mysql_ha_flush(this, (TABLE_LIST*) 0,
                 MYSQL_HA_CLOSE_FINAL | MYSQL_HA_FLUSH_ALL);
  hash_free(&handler_tables_hash);
  delete_dynamic(&user_var_events);
  hash_free(&user_vars);
  close_temporary_tables(this);
  my_free((char*) variables.time_format, MYF(MY_ALLOW_ZERO_PTR));
  my_free((char*) variables.date_format, MYF(MY_ALLOW_ZERO_PTR));
  my_free((char*) variables.datetime_format, MYF(MY_ALLOW_ZERO_PTR));
  delete_dynamic(&user_var_events);
  hash_free(&user_vars);
  if (global_read_lock)
    unlock_global_read_lock(this);
  if (ull)