mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
Implement suggestions from lars review
This commit is contained in:
@@ -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,
|
||||
|
Reference in New Issue
Block a user