mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
9eb2ebd4d1
Bug#37531, Bug#36941, Bug#36941, Bug#36942, Bug#38185. Also include test case from Bug 34300 which was left out from earlier snapshot (5.1-ss2387). Also include fix for Bug #29507, "TRUNCATE shows to many rows effected", since the fix for Bug 37531 depends on it.
141 lines
4 KiB
Text
141 lines
4 KiB
Text
-- 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;
|
|
|
|
#
|
|
# Bug 37531
|
|
# After truncate, auto_increment behaves incorrectly for InnoDB
|
|
#
|
|
CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
|
SELECT c1 FROM t1;
|
|
SHOW CREATE TABLE t1;
|
|
TRUNCATE TABLE t1;
|
|
SHOW CREATE TABLE t1;
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
|
SELECT c1 FROM t1;
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# Deleting all records should not reset the AUTOINC counter.
|
|
#
|
|
CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
|
SELECT c1 FROM t1;
|
|
SHOW CREATE TABLE t1;
|
|
DELETE FROM t1;
|
|
SHOW CREATE TABLE t1;
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
|
SELECT c1 FROM t1;
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|