Commit dacf64b6 authored by jmiller@mysql.com's avatar jmiller@mysql.com

Implement suggestions from lars review

parent 75b67205
###########################################################
# 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;
......
###########################################################
# 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);
......
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';
......
#################################
# Wrapper for rpl_insert_id.test#
#################################
-- source include/have_innodb.inc
let $engine_type=innodb;
-- source extra/rpl_tests/rpl_insert_id_pk.test
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment