diff options
author | mats@mysql.com <> | 2005-07-05 16:02:03 +0200 |
---|---|---|
committer | mats@mysql.com <> | 2005-07-05 16:02:03 +0200 |
commit | 0449ee1ca8030909ed9a6d319aa37851476731b2 (patch) | |
tree | b455f1d05e9596838abc1ffd33e0ca47bc236d6e | |
parent | 4bc6bd38ec113ffa8682ee7d52c9b84d52de7534 (diff) | |
parent | 3c427341749963ada8666eaf24a206c17ef29d56 (diff) | |
download | mariadb-git-0449ee1ca8030909ed9a6d319aa37851476731b2.tar.gz |
Merging 4.1 into 5.0
-rw-r--r-- | client/mysqldump.c | 9 | ||||
-rw-r--r-- | mysql-test/r/rpl_innodb.result | 37 | ||||
-rw-r--r-- | mysql-test/std_data/loaddata_pair.dat | 2 | ||||
-rw-r--r-- | mysql-test/t/rpl_innodb.test | 46 | ||||
-rw-r--r-- | sql/log_event.cc | 2 |
5 files changed, 96 insertions, 0 deletions
diff --git a/client/mysqldump.c b/client/mysqldump.c index b2bf23c3e3a..5705571777a 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -2561,6 +2561,7 @@ static int do_show_master_status(MYSQL *mysql_con) row = mysql_fetch_row(master); if (row && row[0] && row[1]) { + /* SHOW MASTER STATUS reports file and position */ if (opt_comments) fprintf(md_result_file, "\n--\n-- Position to start replication or point-in-time " @@ -2570,6 +2571,14 @@ static int do_show_master_status(MYSQL *mysql_con) comment_prefix, row[0], row[1]); check_io(md_result_file); } + else if (!ignore_errors) + { + /* SHOW MASTER STATUS reports nothing and --force is not enabled */ + my_printf_error(0, "Error: Binlogging on server not active", + MYF(0), mysql_error(mysql_con)); + mysql_free_result(master); + return 1; + } mysql_free_result(master); } return 0; diff --git a/mysql-test/r/rpl_innodb.result b/mysql-test/r/rpl_innodb.result new file mode 100644 index 00000000000..ebf1d79c4d0 --- /dev/null +++ b/mysql-test/r/rpl_innodb.result @@ -0,0 +1,37 @@ +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 TABLE t4 ( +id INT(5) unsigned NOT NULL auto_increment, +name varchar(15) NOT NULL default '', +number varchar(35) NOT NULL default 'default', +PRIMARY KEY (id), +UNIQUE KEY unique_rec (name,number) +) ENGINE=InnoDB; +LOAD DATA +INFILE '../../std_data/loaddata_pair.dat' +REPLACE INTO TABLE t4 +(name,number); +SELECT * FROM t4; +id name number +1 XXX 12345 +2 XXY 12345 +SELECT * FROM t4; +id name number +1 XXX 12345 +2 XXY 12345 +LOAD DATA +INFILE '../../std_data/loaddata_pair.dat' +REPLACE INTO TABLE t4 +(name,number); +SELECT * FROM t4; +id name number +3 XXX 12345 +4 XXY 12345 +SELECT * FROM t4; +id name number +3 XXX 12345 +4 XXY 12345 diff --git a/mysql-test/std_data/loaddata_pair.dat b/mysql-test/std_data/loaddata_pair.dat new file mode 100644 index 00000000000..5a4f6b57af8 --- /dev/null +++ b/mysql-test/std_data/loaddata_pair.dat @@ -0,0 +1,2 @@ +XXX 12345 +XXY 12345 diff --git a/mysql-test/t/rpl_innodb.test b/mysql-test/t/rpl_innodb.test new file mode 100644 index 00000000000..b171dced26e --- /dev/null +++ b/mysql-test/t/rpl_innodb.test @@ -0,0 +1,46 @@ +# File for specialities regarding replication from or to InnoDB +# tables. + +source include/master-slave.inc; +source include/have_innodb.inc; + +# +# Bug#11401: Load data infile 'REPLACE INTO' fails on slave. +# +connection master; +CREATE TABLE t4 ( + id INT(5) unsigned NOT NULL auto_increment, + name varchar(15) NOT NULL default '', + number varchar(35) NOT NULL default 'default', + PRIMARY KEY (id), + UNIQUE KEY unique_rec (name,number) +) ENGINE=InnoDB; + +--disable_warnings +LOAD DATA + INFILE '../../std_data/loaddata_pair.dat' + REPLACE INTO TABLE t4 + (name,number); +--enable_warnings +SELECT * FROM t4; + +sync_slave_with_master; +SELECT * FROM t4; + +connection master; +--disable_warnings +LOAD DATA + INFILE '../../std_data/loaddata_pair.dat' + REPLACE INTO TABLE t4 + (name,number); +--enable_warnings +SELECT * FROM t4; + +sync_slave_with_master; +SELECT * FROM t4; + +connection master; +--disable_query_log +DROP TABLE t4; +--enable_query_log +sync_slave_with_master; diff --git a/sql/log_event.cc b/sql/log_event.cc index 5a612791cdd..0873ee50743 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -2749,7 +2749,9 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli, thd->query= load_data_query; if (sql_ex.opt_flags & REPLACE_FLAG) + { handle_dup= DUP_REPLACE; + } else if (sql_ex.opt_flags & IGNORE_FLAG) { ignore= 1; |