19 changed files with 345 additions and 55 deletions
-
1CMakeLists.txt
-
6dict/dict0dict.c
-
65handler/ha_innodb.cc
-
2handler/ha_innodb.h
-
6include/dict0dict.h
-
2include/dict0mem.h
-
2include/row0sel.h
-
6include/srv0srv.h
-
3include/univ.i
-
2mysql-test/have_innodb.inc
-
89mysql-test/innodb-autoinc.result
-
107mysql-test/innodb-autoinc.test
-
33mysql-test/innodb.result
-
44mysql-test/innodb.test
-
1mysql-test/innodb_bug34053.test
-
4os/os0file.c
-
19row/row0sel.c
-
2srv/srv0srv.c
-
6srv/srv0start.c
@ -1,4 +1,4 @@ |
|||||
disable_query_log; |
disable_query_log; |
||||
--require r/true.require |
--require r/true.require |
||||
select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'innodb'; |
|
||||
|
select (support = 'YES' or support = 'DEFAULT' or support = 'ENABLED') as `TRUE` from information_schema.engines where engine = 'innodb'; |
||||
enable_query_log; |
enable_query_log; |
||||
@ -0,0 +1,89 @@ |
|||||
|
drop table if exists t1; |
||||
|
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (9223372036854775807, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
9223372036854775807 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (127, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
127 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (255, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
255 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (32767, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
32767 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (65535, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
65535 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (8388607, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
8388607 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (16777215, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
16777215 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (2147483647, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
2147483647 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (4294967295, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
4294967295 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (9223372036854775807, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
9223372036854775807 NULL |
||||
|
DROP TABLE t1; |
||||
|
CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (18446744073709551615, null); |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
Got one of the listed errors |
||||
|
SELECT * FROM t1; |
||||
|
c1 c2 |
||||
|
18446744073709551615 NULL |
||||
|
DROP TABLE t1; |
||||
@ -0,0 +1,107 @@ |
|||||
|
-- source include/have_innodb.inc |
||||
|
# embedded server ignores 'delayed', so skip this |
||||
|
-- source include/not_embedded.inc |
||||
|
|
||||
|
--disable_warnings |
||||
|
drop table if exists t1; |
||||
|
--enable_warnings |
||||
|
|
||||
|
# |
||||
|
# Bug #34335 |
||||
|
# |
||||
|
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (9223372036854775807, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
# |
||||
|
## Test AUTOINC overflow |
||||
|
## |
||||
|
|
||||
|
# TINYINT |
||||
|
CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (127, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
|
||||
|
CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (255, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
# |
||||
|
# SMALLINT |
||||
|
# |
||||
|
CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (32767, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
|
||||
|
CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (65535, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
# |
||||
|
# MEDIUMINT |
||||
|
# |
||||
|
CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (8388607, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
|
||||
|
CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (16777215, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
# |
||||
|
# INT |
||||
|
# |
||||
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (2147483647, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
|
||||
|
CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (4294967295, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
# |
||||
|
# BIGINT |
||||
|
# |
||||
|
CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (9223372036854775807, null); |
||||
|
-- error ER_DUP_ENTRY,1062 |
||||
|
-- warning ER_WARN_DATA_OUT_OF_RANGE,1264 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
|
|
||||
|
CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; |
||||
|
INSERT INTO t1 VALUES (18446744073709551615, null); |
||||
|
-- error ER_AUTOINC_READ_FAILED,1467 |
||||
|
INSERT INTO t1 (c2) VALUES ('innodb'); |
||||
|
SELECT * FROM t1; |
||||
|
DROP TABLE t1; |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue