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; |
|||
--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; |
|||
@ -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