summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2003-04-03 12:54:08 -0400
committerunknown <vva@eagle.mysql.r18.ru>2003-04-03 12:54:08 -0400
commit4a1542d056456a872b94d9cece6f148687f24ea7 (patch)
tree50ff6005ec5d908a13cc6c6f5c14ce56b51d80c1
parentf34b63ac4991b1ba48dd5a9375251ad2c856a2ca (diff)
downloadmariadb-git-4a1542d056456a872b94d9cece6f148687f24ea7.tar.gz
added test for replication load data into temporary table with additional options
sql/log_event.cc: fix bug #183 (Replication of temporary tables not working)
-rw-r--r--mysql-test/r/rpl_loaddata.result11
-rw-r--r--mysql-test/t/rpl_loaddata.test20
-rw-r--r--sql/log_event.cc2
3 files changed, 31 insertions, 2 deletions
diff --git a/mysql-test/r/rpl_loaddata.result b/mysql-test/r/rpl_loaddata.result
index 27f3d185f63..c1518e8e29a 100644
--- a/mysql-test/r/rpl_loaddata.result
+++ b/mysql-test/r/rpl_loaddata.result
@@ -6,8 +6,19 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
slave start;
create table t1(a int not null auto_increment, b int, primary key(a) );
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+create temporary table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60));
+load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' ignore 1 lines;
+create table t3 (day date,id int(9),category enum('a','b','c'),name varchar(60));
+insert into t3 select * from t2;
select * from t1;
a b
1 10
2 15
+select * from t3;
+day id category name
+2003-02-22 2461 b a a a @ %  ' " a
+2003-03-22 2161 c asdf
+2003-04-22 2416 a bbbbb
drop table t1;
+drop table t2;
+drop table t3;
diff --git a/mysql-test/t/rpl_loaddata.test b/mysql-test/t/rpl_loaddata.test
index d7fc2a10ca4..2acb67dfce2 100644
--- a/mysql-test/t/rpl_loaddata.test
+++ b/mysql-test/t/rpl_loaddata.test
@@ -1,16 +1,34 @@
# See if replication of a "LOAD DATA in an autoincrement column"
# Honours autoincrement values
# i.e. if the master and slave have the same sequence
+#
+# check replication of load data for temporary tables with additional parameters
+#
source include/master-slave.inc;
create table t1(a int not null auto_increment, b int, primary key(a) );
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
+
+create temporary table t2 (day date,id int(9),category enum('a','b','c'),name varchar(60));
+#load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionaly enclosed by '%' escaped by '@' lines terminated by '\n%%\n' ignore 1 lines;
+ load data infile '../../std_data/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' ignore 1 lines;
+
+create table t3 (day date,id int(9),category enum('a','b','c'),name varchar(60));
+insert into t3 select * from t2;
+
save_master_pos;
connection slave;
sync_with_master;
-select * from t1;
+
+select * from t1;
+select * from t3;
+
connection master;
+
drop table t1;
+drop table t2;
+drop table t3;
+
save_master_pos;
connection slave;
sync_with_master;
diff --git a/sql/log_event.cc b/sql/log_event.cc
index bb885ead3df..c8eb4026120 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -1881,7 +1881,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
ex.skip_lines = skip_lines;
List<Item> field_list;
set_fields(field_list);
- thd->slave_proxy_id = thd->thread_id;
+ thd->slave_proxy_id = thread_id;
if (net)
{
// mysql_load will use thd->net to read the file