mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into april.(none):/home/svoj/devel/mysql/merge/mysql-5.0-engines mysql-test/r/myisam.result: Auto merged mysql-test/t/myisam.test: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/opt_range.cc: Auto merged sql/share/errmsg.txt: SCCS merged
This commit is contained in:
28
mysql-test/include/strict_autoinc.inc
Normal file
28
mysql-test/include/strict_autoinc.inc
Normal file
@ -0,0 +1,28 @@
|
||||
#
|
||||
# Test for strict-mode autoincrement
|
||||
#
|
||||
|
||||
set @org_mode=@@sql_mode;
|
||||
eval create table t1
|
||||
(
|
||||
`a` tinyint(4) NOT NULL auto_increment,
|
||||
primary key (`a`)
|
||||
) engine = $type ;
|
||||
set @@sql_mode='strict_all_tables';
|
||||
--error ER_WARN_DATA_OUT_OF_RANGE
|
||||
insert into t1 values(1000);
|
||||
select count(*) from t1;
|
||||
|
||||
set auto_increment_increment=1000;
|
||||
set auto_increment_offset=700;
|
||||
--error ER_WARN_DATA_OUT_OF_RANGE
|
||||
insert into t1 values(null);
|
||||
select count(*) from t1;
|
||||
|
||||
set @@sql_mode=@org_mode;
|
||||
insert into t1 values(null);
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
# End of test
|
@ -424,3 +424,34 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 index_merge a,b a,b 5,5 NULL # Using intersect(a,b); Using where
|
||||
drop table t3;
|
||||
drop table t0, t1, t2;
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES(1);
|
||||
CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b));
|
||||
INSERT INTO t2(a,b) VALUES
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(1,2);
|
||||
LOCK TABLES t1 WRITE, t2 WRITE;
|
||||
INSERT INTO t2(a,b) VALUES(1,2);
|
||||
SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1;
|
||||
a
|
||||
1
|
||||
1
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1, t2;
|
||||
|
@ -515,6 +515,34 @@ select c1 from t1 order by c1 limit 1;
|
||||
c1
|
||||
a
|
||||
drop table t1;
|
||||
create table t1 (a int not null, primary key(a));
|
||||
create table t2 (a int not null, b int not null, primary key(a,b));
|
||||
insert into t1 values (1),(2),(3),(4),(5),(6);
|
||||
insert into t2 values (1,1),(2,1);
|
||||
lock tables t1 read local, t2 read local;
|
||||
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||
a a b
|
||||
1 1 1
|
||||
2 2 1
|
||||
insert into t2 values(2,0);
|
||||
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||
a a b
|
||||
1 1 1
|
||||
2 2 1
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (c1 varchar(250) NOT NULL);
|
||||
CREATE TABLE t2 (c1 varchar(250) NOT NULL, PRIMARY KEY (c1));
|
||||
INSERT INTO t1 VALUES ('test000001'), ('test000002'), ('test000003');
|
||||
INSERT INTO t2 VALUES ('test000002'), ('test000003'), ('test000004');
|
||||
LOCK TABLES t1 READ LOCAL, t2 READ LOCAL;
|
||||
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||
t1c1 t2c1
|
||||
INSERT INTO t2 VALUES ('test000001'), ('test000005');
|
||||
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||
t1c1 t2c1
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) ENGINE=MyISAM;
|
||||
Got one of the listed errors
|
||||
create table t1 (a int, b varchar(200), c text not null) checksum=1;
|
||||
|
27
mysql-test/r/strict_autoinc_1myisam.result
Normal file
27
mysql-test/r/strict_autoinc_1myisam.result
Normal file
@ -0,0 +1,27 @@
|
||||
set @org_mode=@@sql_mode;
|
||||
create table t1
|
||||
(
|
||||
`a` tinyint(4) NOT NULL auto_increment,
|
||||
primary key (`a`)
|
||||
) engine = 'MYISAM' ;
|
||||
set @@sql_mode='strict_all_tables';
|
||||
insert into t1 values(1000);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set auto_increment_increment=1000;
|
||||
set auto_increment_offset=700;
|
||||
insert into t1 values(null);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set @@sql_mode=@org_mode;
|
||||
insert into t1 values(null);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
select * from t1;
|
||||
a
|
||||
127
|
||||
drop table t1;
|
27
mysql-test/r/strict_autoinc_2innodb.result
Normal file
27
mysql-test/r/strict_autoinc_2innodb.result
Normal file
@ -0,0 +1,27 @@
|
||||
set @org_mode=@@sql_mode;
|
||||
create table t1
|
||||
(
|
||||
`a` tinyint(4) NOT NULL auto_increment,
|
||||
primary key (`a`)
|
||||
) engine = 'InnoDB' ;
|
||||
set @@sql_mode='strict_all_tables';
|
||||
insert into t1 values(1000);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set auto_increment_increment=1000;
|
||||
set auto_increment_offset=700;
|
||||
insert into t1 values(null);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set @@sql_mode=@org_mode;
|
||||
insert into t1 values(null);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
select * from t1;
|
||||
a
|
||||
127
|
||||
drop table t1;
|
27
mysql-test/r/strict_autoinc_3heap.result
Normal file
27
mysql-test/r/strict_autoinc_3heap.result
Normal file
@ -0,0 +1,27 @@
|
||||
set @org_mode=@@sql_mode;
|
||||
create table t1
|
||||
(
|
||||
`a` tinyint(4) NOT NULL auto_increment,
|
||||
primary key (`a`)
|
||||
) engine = 'MEMORY' ;
|
||||
set @@sql_mode='strict_all_tables';
|
||||
insert into t1 values(1000);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set auto_increment_increment=1000;
|
||||
set auto_increment_offset=700;
|
||||
insert into t1 values(null);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set @@sql_mode=@org_mode;
|
||||
insert into t1 values(null);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
select * from t1;
|
||||
a
|
||||
127
|
||||
drop table t1;
|
27
mysql-test/r/strict_autoinc_4bdb.result
Normal file
27
mysql-test/r/strict_autoinc_4bdb.result
Normal file
@ -0,0 +1,27 @@
|
||||
set @org_mode=@@sql_mode;
|
||||
create table t1
|
||||
(
|
||||
`a` tinyint(4) NOT NULL auto_increment,
|
||||
primary key (`a`)
|
||||
) engine = 'BDB' ;
|
||||
set @@sql_mode='strict_all_tables';
|
||||
insert into t1 values(1000);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set auto_increment_increment=1000;
|
||||
set auto_increment_offset=700;
|
||||
insert into t1 values(null);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set @@sql_mode=@org_mode;
|
||||
insert into t1 values(null);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
select * from t1;
|
||||
a
|
||||
127
|
||||
drop table t1;
|
27
mysql-test/r/strict_autoinc_5ndb.result
Normal file
27
mysql-test/r/strict_autoinc_5ndb.result
Normal file
@ -0,0 +1,27 @@
|
||||
set @org_mode=@@sql_mode;
|
||||
create table t1
|
||||
(
|
||||
`a` tinyint(4) NOT NULL auto_increment,
|
||||
primary key (`a`)
|
||||
) engine = 'NDB' ;
|
||||
set @@sql_mode='strict_all_tables';
|
||||
insert into t1 values(1000);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set auto_increment_increment=1000;
|
||||
set auto_increment_offset=700;
|
||||
insert into t1 values(null);
|
||||
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
set @@sql_mode=@org_mode;
|
||||
insert into t1 values(null);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
select * from t1;
|
||||
a
|
||||
127
|
||||
drop table t1;
|
@ -383,3 +383,35 @@ explain select * from t3 where a=1 and b=1;
|
||||
|
||||
drop table t3;
|
||||
drop table t0, t1, t2;
|
||||
|
||||
#
|
||||
# BUG#20256 - LOCK WRITE - MyISAM
|
||||
#
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES(1);
|
||||
CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b));
|
||||
INSERT INTO t2(a,b) VALUES
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||
(1,2);
|
||||
LOCK TABLES t1 WRITE, t2 WRITE;
|
||||
INSERT INTO t2(a,b) VALUES(1,2);
|
||||
SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1;
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1, t2;
|
||||
|
@ -488,6 +488,42 @@ insert into t1 values ('a'), ('b');
|
||||
select c1 from t1 order by c1 limit 1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #14400 Join could miss concurrently inserted row
|
||||
#
|
||||
# Partial key.
|
||||
create table t1 (a int not null, primary key(a));
|
||||
create table t2 (a int not null, b int not null, primary key(a,b));
|
||||
insert into t1 values (1),(2),(3),(4),(5),(6);
|
||||
insert into t2 values (1,1),(2,1);
|
||||
lock tables t1 read local, t2 read local;
|
||||
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||
connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
|
||||
insert into t2 values(2,0);
|
||||
disconnect root;
|
||||
connection default;
|
||||
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# Full key.
|
||||
CREATE TABLE t1 (c1 varchar(250) NOT NULL);
|
||||
CREATE TABLE t2 (c1 varchar(250) NOT NULL, PRIMARY KEY (c1));
|
||||
INSERT INTO t1 VALUES ('test000001'), ('test000002'), ('test000003');
|
||||
INSERT INTO t2 VALUES ('test000002'), ('test000003'), ('test000004');
|
||||
LOCK TABLES t1 READ LOCAL, t2 READ LOCAL;
|
||||
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||
connect (con1,localhost,root,,);
|
||||
connection con1;
|
||||
INSERT INTO t2 VALUES ('test000001'), ('test000005');
|
||||
disconnect con1;
|
||||
connection default;
|
||||
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
# End of 4.0 tests
|
||||
|
||||
#
|
||||
# Test RTREE index
|
||||
#
|
||||
|
8
mysql-test/t/strict_autoinc_1myisam.test
Normal file
8
mysql-test/t/strict_autoinc_1myisam.test
Normal file
@ -0,0 +1,8 @@
|
||||
#
|
||||
# Bug#20573 Strict mode auto-increment
|
||||
#
|
||||
|
||||
let $type= 'MYISAM' ;
|
||||
--source include/strict_autoinc.inc
|
||||
|
||||
# end of test
|
10
mysql-test/t/strict_autoinc_2innodb.test
Normal file
10
mysql-test/t/strict_autoinc_2innodb.test
Normal file
@ -0,0 +1,10 @@
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
#
|
||||
# Bug#20573 Strict mode auto-increment
|
||||
#
|
||||
|
||||
let $type= 'InnoDB' ;
|
||||
--source include/strict_autoinc.inc
|
||||
|
||||
# end of test
|
8
mysql-test/t/strict_autoinc_3heap.test
Normal file
8
mysql-test/t/strict_autoinc_3heap.test
Normal file
@ -0,0 +1,8 @@
|
||||
#
|
||||
# Bug#20573 Strict mode auto-increment
|
||||
#
|
||||
|
||||
let $type= 'MEMORY' ;
|
||||
--source include/strict_autoinc.inc
|
||||
|
||||
# end of test
|
10
mysql-test/t/strict_autoinc_4bdb.test
Normal file
10
mysql-test/t/strict_autoinc_4bdb.test
Normal file
@ -0,0 +1,10 @@
|
||||
-- source include/have_bdb.inc
|
||||
|
||||
#
|
||||
# Bug#20573 Strict mode auto-increment
|
||||
#
|
||||
|
||||
let $type= 'BDB' ;
|
||||
--source include/strict_autoinc.inc
|
||||
|
||||
# end of test
|
10
mysql-test/t/strict_autoinc_5ndb.test
Normal file
10
mysql-test/t/strict_autoinc_5ndb.test
Normal file
@ -0,0 +1,10 @@
|
||||
-- source include/have_ndb.inc
|
||||
|
||||
#
|
||||
# Bug#20573 Strict mode auto-increment
|
||||
#
|
||||
|
||||
let $type= 'NDB' ;
|
||||
--source include/strict_autoinc.inc
|
||||
|
||||
# end of test
|
Reference in New Issue
Block a user