mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
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.
This commit is contained in:
@@ -65,3 +65,19 @@ show tables;
|
|||||||
Tables_in_test
|
Tables_in_test
|
||||||
delete from mysql.user where user=_binary"test";
|
delete from mysql.user where user=_binary"test";
|
||||||
flush privileges;
|
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;
|
||||||
|
@@ -77,4 +77,22 @@ show tables;
|
|||||||
delete from mysql.user where user=_binary"test";
|
delete from mysql.user where user=_binary"test";
|
||||||
flush privileges;
|
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
|
# End of 4.1 tests
|
||||||
|
@@ -353,12 +353,12 @@ void THD::cleanup(void)
|
|||||||
mysql_ha_flush(this, (TABLE_LIST*) 0,
|
mysql_ha_flush(this, (TABLE_LIST*) 0,
|
||||||
MYSQL_HA_CLOSE_FINAL | MYSQL_HA_FLUSH_ALL);
|
MYSQL_HA_CLOSE_FINAL | MYSQL_HA_FLUSH_ALL);
|
||||||
hash_free(&handler_tables_hash);
|
hash_free(&handler_tables_hash);
|
||||||
|
delete_dynamic(&user_var_events);
|
||||||
|
hash_free(&user_vars);
|
||||||
close_temporary_tables(this);
|
close_temporary_tables(this);
|
||||||
my_free((char*) variables.time_format, MYF(MY_ALLOW_ZERO_PTR));
|
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.date_format, MYF(MY_ALLOW_ZERO_PTR));
|
||||||
my_free((char*) variables.datetime_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)
|
if (global_read_lock)
|
||||||
unlock_global_read_lock(this);
|
unlock_global_read_lock(this);
|
||||||
if (ull)
|
if (ull)
|
||||||
|
Reference in New Issue
Block a user