mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Implement suggestions from lars review
mysql-test/extra/rpl_tests/rpl_row_blob.test: Changes that Larss requested mysql-test/r/rpl_row_blob_innodb.result: Changes that Larss requested mysql-test/r/rpl_row_blob_myisam.result: Changes that Larss requested mysql-test/r/rpl_insert_id.result: updated results mysql-test/extra/rpl_tests/rpl_insert_id_pk.test: Suggested PK test by Lars mysql-test/t/rpl_insert_id_pk.test: Suggested PK test by Lars mysql-test/t/rpl_insert_id_pk-slave.opt: Suggested PK test by Lars mysql-test/r/rpl_insert_id_pk.result: Suggested PK test by Lars mysql-test/extra/rpl_tests/rpl_insert_id.test: updated per lars
This commit is contained in:
parent
68b51ff01c
commit
043ad0670f
9 changed files with 193 additions and 18 deletions
|
@ -1,8 +1,14 @@
|
|||
###########################################################
|
||||
# 2006-02-01: By JBM: Added 1022, ORDER BY and PK for NDB
|
||||
# 2006-02-01: By JBM: Added 1022, ORDER BY
|
||||
###########################################################
|
||||
# See if queries that use both auto_increment and LAST_INSERT_ID()
|
||||
# are replicated well
|
||||
############################################################
|
||||
# REQUIREMENT
|
||||
# Auto increment should work for a table with an auto_increment
|
||||
# column and index but without primary key.
|
||||
##############################################################
|
||||
|
||||
|
||||
# We also check how the foreign_key_check variable is replicated
|
||||
|
||||
|
@ -10,8 +16,8 @@
|
|||
#should work for both SBR and RBR
|
||||
|
||||
connection master;
|
||||
create table t1(a int auto_increment, PRIMARY key(a));
|
||||
create table t2(b int auto_increment, c int, PRIMARY key(b));
|
||||
create table t1(a int auto_increment, key(a));
|
||||
create table t2(b int auto_increment, c int, key(b));
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t1 values (null);
|
||||
insert into t2 values (null,last_insert_id());
|
||||
|
@ -47,8 +53,8 @@ connection master;
|
|||
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
create table t1(a int auto_increment, PRIMARY key(a));
|
||||
create table t2(b int auto_increment, c int, PRIMARY key(b));
|
||||
create table t1(a int auto_increment, key(a));
|
||||
create table t2(b int auto_increment, c int, key(b));
|
||||
insert into t1 values (10);
|
||||
insert into t1 values (null),(null),(null);
|
||||
insert into t2 values (5,0);
|
||||
|
@ -74,6 +80,7 @@ connection master;
|
|||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t1 ( a INT UNIQUE );
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
# Duplicate Key Errors
|
||||
--error 1022, 1062
|
||||
INSERT INTO t1 VALUES (1),(1);
|
||||
sync_slave_with_master;
|
||||
|
|
87
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
Normal file
87
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
Normal file
|
@ -0,0 +1,87 @@
|
|||
###########################################################
|
||||
# 2006-02-08: By JBM:
|
||||
###########################################################
|
||||
# See if queries that use both auto_increment and LAST_INSERT_ID()
|
||||
# are replicated well
|
||||
############################################################
|
||||
# REQUIREMENT
|
||||
# Auto increment should work for a table with auto_increment column
|
||||
# and primary key.
|
||||
##############################################################
|
||||
|
||||
# We also check how the foreign_key_check variable is replicated
|
||||
|
||||
-- source include/master-slave.inc
|
||||
#should work for both SBR and RBR
|
||||
|
||||
connection master;
|
||||
create table t1(a int auto_increment, primary key(a));
|
||||
create table t2(b int auto_increment, c int, primary key(b));
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t1 values (null);
|
||||
insert into t2 values (null,last_insert_id());
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
select * from t1 ORDER BY a;
|
||||
select * from t2 ORDER BY b;
|
||||
connection master;
|
||||
#check if multi-line inserts,
|
||||
#which set last_insert_id to the first id inserted,
|
||||
#are replicated the same way
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
--disable_warnings
|
||||
eval create table t1(a int auto_increment, key(a)) engine=$engine_type;
|
||||
eval create table t2(b int auto_increment, c int, key(b), foreign key(b) references t1(a)) engine=$engine_type;
|
||||
--enable_warnings
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
insert into t1 values (10);
|
||||
insert into t1 values (null),(null),(null);
|
||||
insert into t2 values (5,0);
|
||||
insert into t2 values (null,last_insert_id());
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
connection master;
|
||||
|
||||
# check if INSERT SELECT in auto_increment is well replicated (bug #490)
|
||||
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
create table t1(a int auto_increment, primary key(a));
|
||||
create table t2(b int auto_increment, c int, primary key(b));
|
||||
insert into t1 values (10);
|
||||
insert into t1 values (null),(null),(null);
|
||||
insert into t2 values (5,0);
|
||||
insert into t2 (c) select * from t1 ORDER BY a;
|
||||
select * from t2 ORDER BY b;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
select * from t1 ORDER BY a;
|
||||
select * from t2 ORDER BY b;
|
||||
connection master;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
|
||||
#
|
||||
# Bug#8412: Error codes reported in binary log for CHARACTER SET,
|
||||
# FOREIGN_KEY_CHECKS
|
||||
#
|
||||
connection master;
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t1 ( a INT UNIQUE );
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
# Duplicate Key Errors codes
|
||||
--error 1022, 1062
|
||||
INSERT INTO t1 VALUES (1),(1);
|
||||
sync_slave_with_master;
|
||||
|
||||
# End of 4.1 tests
|
|
@ -20,12 +20,11 @@ DROP TABLE IF EXISTS test.t2;
|
|||
--echo ***** Table Create Section ****
|
||||
--echo
|
||||
--disable_warnings
|
||||
--replace_result $engine_type engine_type
|
||||
CREATE TABLE test.t1 (c1 int not null auto_increment,
|
||||
--replace_result $engine_type #
|
||||
eval CREATE TABLE test.t1 (c1 int not null auto_increment,
|
||||
data LONGBLOB, PRIMARY KEY(c1))ENGINE=$engine_type;
|
||||
--enable_warnings
|
||||
--echo
|
||||
|
||||
--echo **** Data Insert Section test.t1 *****
|
||||
--echo
|
||||
INSERT INTO test.t1 VALUES (NULL, NULL);
|
||||
|
@ -77,8 +76,8 @@ connection master;
|
|||
--echo **** Create Table test.t2 ****
|
||||
--echo
|
||||
--disable_warnings
|
||||
--replace_result $engine_type engine_type
|
||||
CREATE TABLE test.t2 (
|
||||
--replace_result $engine_type #
|
||||
eval CREATE TABLE test.t2 (
|
||||
c1 INT NOT NULL PRIMARY KEY,
|
||||
c2 TEXT,
|
||||
c3 INT,
|
||||
|
|
|
@ -4,8 +4,8 @@ reset master;
|
|||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
create table t1(a int auto_increment, PRIMARY key(a));
|
||||
create table t2(b int auto_increment, c int, PRIMARY key(b));
|
||||
create table t1(a int auto_increment, key(a));
|
||||
create table t2(b int auto_increment, c int, key(b));
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t1 values (null);
|
||||
insert into t2 values (null,last_insert_id());
|
||||
|
@ -40,8 +40,8 @@ b c
|
|||
6 11
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
create table t1(a int auto_increment, PRIMARY key(a));
|
||||
create table t2(b int auto_increment, c int, PRIMARY key(b));
|
||||
create table t1(a int auto_increment, key(a));
|
||||
create table t2(b int auto_increment, c int, key(b));
|
||||
insert into t1 values (10);
|
||||
insert into t1 values (null),(null),(null);
|
||||
insert into t2 values (5,0);
|
||||
|
|
75
mysql-test/r/rpl_insert_id_pk.result
Normal file
75
mysql-test/r/rpl_insert_id_pk.result
Normal file
|
@ -0,0 +1,75 @@
|
|||
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 t1(a int auto_increment, primary key(a));
|
||||
create table t2(b int auto_increment, c int, primary key(b));
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t1 values (null);
|
||||
insert into t2 values (null,last_insert_id());
|
||||
select * from t1 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
select * from t2 ORDER BY b;
|
||||
b c
|
||||
1 4
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
create table t1(a int auto_increment, key(a)) engine=innodb;
|
||||
create table t2(b int auto_increment, c int, key(b), foreign key(b) references t1(a)) engine=innodb;
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
insert into t1 values (10);
|
||||
insert into t1 values (null),(null),(null);
|
||||
insert into t2 values (5,0);
|
||||
insert into t2 values (null,last_insert_id());
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
select * from t1;
|
||||
a
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
select * from t2;
|
||||
b c
|
||||
5 0
|
||||
6 11
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
create table t1(a int auto_increment, primary key(a));
|
||||
create table t2(b int auto_increment, c int, primary key(b));
|
||||
insert into t1 values (10);
|
||||
insert into t1 values (null),(null),(null);
|
||||
insert into t2 values (5,0);
|
||||
insert into t2 (c) select * from t1 ORDER BY a;
|
||||
select * from t2 ORDER BY b;
|
||||
b c
|
||||
5 0
|
||||
6 10
|
||||
7 11
|
||||
8 12
|
||||
9 13
|
||||
select * from t1 ORDER BY a;
|
||||
a
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
select * from t2 ORDER BY b;
|
||||
b c
|
||||
5 0
|
||||
6 10
|
||||
7 11
|
||||
8 12
|
||||
9 13
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t1 ( a INT UNIQUE );
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
INSERT INTO t1 VALUES (1),(1);
|
||||
Got one of the listed errors
|
|
@ -9,7 +9,7 @@ DROP TABLE IF EXISTS test.t2;
|
|||
***** Table Create Section ****
|
||||
|
||||
CREATE TABLE test.t1 (c1 int not null auto_increment,
|
||||
data LONGBLOB, PRIMARY KEY(c1))ENGINE=engine_type;
|
||||
data LONGBLOB, PRIMARY KEY(c1))ENGINE=#;
|
||||
|
||||
**** Data Insert Section test.t1 *****
|
||||
|
||||
|
@ -76,7 +76,7 @@ c1 INT NOT NULL PRIMARY KEY,
|
|||
c2 TEXT,
|
||||
c3 INT,
|
||||
c4 LONGBLOB,
|
||||
KEY(c3))ENGINE=engine_type;
|
||||
KEY(c3))ENGINE=#;
|
||||
|
||||
*** Setup Values For test.t2 ***
|
||||
set @x0 = '01234567012345670123456701234567';
|
||||
|
|
|
@ -9,7 +9,7 @@ DROP TABLE IF EXISTS test.t2;
|
|||
***** Table Create Section ****
|
||||
|
||||
CREATE TABLE test.t1 (c1 int not null auto_increment,
|
||||
data LONGBLOB, PRIMARY KEY(c1))ENGINE=engine_type;
|
||||
data LONGBLOB, PRIMARY KEY(c1))ENGINE=#;
|
||||
|
||||
**** Data Insert Section test.t1 *****
|
||||
|
||||
|
@ -76,7 +76,7 @@ c1 INT NOT NULL PRIMARY KEY,
|
|||
c2 TEXT,
|
||||
c3 INT,
|
||||
c4 LONGBLOB,
|
||||
KEY(c3))ENGINE=engine_type;
|
||||
KEY(c3))ENGINE=#;
|
||||
|
||||
*** Setup Values For test.t2 ***
|
||||
set @x0 = '01234567012345670123456701234567';
|
||||
|
|
1
mysql-test/t/rpl_insert_id_pk-slave.opt
Normal file
1
mysql-test/t/rpl_insert_id_pk-slave.opt
Normal file
|
@ -0,0 +1 @@
|
|||
--innodb
|
6
mysql-test/t/rpl_insert_id_pk.test
Normal file
6
mysql-test/t/rpl_insert_id_pk.test
Normal file
|
@ -0,0 +1,6 @@
|
|||
#################################
|
||||
# Wrapper for rpl_insert_id.test#
|
||||
#################################
|
||||
-- source include/have_innodb.inc
|
||||
let $engine_type=innodb;
|
||||
-- source extra/rpl_tests/rpl_insert_id_pk.test
|
Loading…
Reference in a new issue