summaryrefslogtreecommitdiff
path: root/mysql-test/include
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2018-06-14 13:13:23 +0400
committerAlexander Barkov <bar@mariadb.com>2018-06-14 13:13:23 +0400
commit2cdb483bc4ed5bf816ff609cce91745babc9657a (patch)
treef5c234467e521452831912fb7fbaf91495f446f2 /mysql-test/include
parent23ced2f846c6a8b9b303c1365780999888fa438f (diff)
downloadmariadb-git-2cdb483bc4ed5bf816ff609cce91745babc9657a.tar.gz
MDEV-15352 AUTO_INCREMENT breaks after updating a column value to a negative number
Diffstat (limited to 'mysql-test/include')
-rw-r--r--mysql-test/include/autoinc_mdev15353.inc29
1 files changed, 29 insertions, 0 deletions
diff --git a/mysql-test/include/autoinc_mdev15353.inc b/mysql-test/include/autoinc_mdev15353.inc
new file mode 100644
index 00000000000..9085cb29f20
--- /dev/null
+++ b/mysql-test/include/autoinc_mdev15353.inc
@@ -0,0 +1,29 @@
+DELIMITER $$;
+CREATE PROCEDURE autoinc_mdev15353_one(engine VARCHAR(64), t VARCHAR(64))
+BEGIN
+ DECLARE query TEXT DEFAULT 'CREATE TABLE t1 ('
+ ' id TTT NOT NULL AUTO_INCREMENT,'
+ ' name CHAR(30) NOT NULL,'
+ ' PRIMARY KEY (id)) ENGINE=EEE';
+ EXECUTE IMMEDIATE REPLACE(REPLACE(query,'TTT', t), 'EEE', engine);
+ SHOW CREATE TABLE t1;
+ INSERT INTO t1 (name) VALUES ('dog');
+ SELECT * FROM t1;
+ UPDATE t1 SET id=-1 WHERE id=1;
+ SELECT * FROM t1;
+ INSERT INTO t1 (name) VALUES ('cat');
+ SELECT * FROM t1;
+ DROP TABLE t1;
+END;
+$$
+DELIMITER ;$$
+
+CALL autoinc_mdev15353_one(@engine, 'tinyint');
+CALL autoinc_mdev15353_one(@engine, 'smallint');
+CALL autoinc_mdev15353_one(@engine, 'mediumint');
+CALL autoinc_mdev15353_one(@engine, 'int');
+CALL autoinc_mdev15353_one(@engine, 'bigint');
+CALL autoinc_mdev15353_one(@engine, 'float');
+CALL autoinc_mdev15353_one(@engine, 'double');
+
+DROP PROCEDURE autoinc_mdev15353_one;