mirror of
https://github.com/MariaDB/server.git
synced 2025-04-16 12:15:38 +02:00
792 lines
16 KiB
Text
792 lines
16 KiB
Text
--- autoinc_persist.result
|
|
+++ autoinc_persist.result,desc
|
|
@@ -13,224 +13,224 @@
|
|
#
|
|
# Pre-create several tables
|
|
SET SQL_MODE='STRICT_ALL_TABLES';
|
|
-CREATE TABLE t1(a TINYINT AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+CREATE TABLE t1(a TINYINT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t1 VALUES(0), (0), (0), (0), (-1), (-10), (0),
|
|
(20), (30), (31);
|
|
SELECT * FROM t1;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
31
|
|
-CREATE TABLE t2(a TINYINT UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
+CREATE TABLE t2(a TINYINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t2 VALUES(-5);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
INSERT INTO t2 VALUES(0), (0), (0), (0), (8), (10), (0),
|
|
(20), (30), (31);
|
|
SELECT * FROM t2;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-8
|
|
-10
|
|
-11
|
|
-20
|
|
-30
|
|
31
|
|
-CREATE TABLE t3(a SMALLINT AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+30
|
|
+20
|
|
+11
|
|
+10
|
|
+8
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+CREATE TABLE t3(a SMALLINT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t3 VALUES(0), (0), (0), (0), (-1), (-10), (0),
|
|
(20), (30), (31), (1024), (4096);
|
|
SELECT * FROM t3;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
-31
|
|
-1024
|
|
4096
|
|
-CREATE TABLE t4(a SMALLINT UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+1024
|
|
+31
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
+CREATE TABLE t4(a SMALLINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t4 VALUES(-5);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
INSERT INTO t4 VALUES(0), (0), (0), (0), (8), (10), (0),
|
|
(20), (30), (31), (1024), (4096);
|
|
SELECT * FROM t4;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-8
|
|
-10
|
|
-11
|
|
-20
|
|
-30
|
|
-31
|
|
-1024
|
|
4096
|
|
-CREATE TABLE t5(a MEDIUMINT AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+1024
|
|
+31
|
|
+30
|
|
+20
|
|
+11
|
|
+10
|
|
+8
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+CREATE TABLE t5(a MEDIUMINT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t5 VALUES(0), (0), (0), (0), (-1), (-10), (0),
|
|
(20), (30), (31), (1000000), (1000005);
|
|
SELECT * FROM t5;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
-31
|
|
-1000000
|
|
1000005
|
|
-CREATE TABLE t6(a MEDIUMINT UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+1000000
|
|
+31
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
+CREATE TABLE t6(a MEDIUMINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t6 VALUES(-5);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
INSERT INTO t6 VALUES(0), (0), (0), (0), (8), (10), (0),
|
|
(20), (30), (31), (1000000), (1000005);
|
|
SELECT * FROM t6;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-8
|
|
-10
|
|
-11
|
|
-20
|
|
-30
|
|
-31
|
|
-1000000
|
|
1000005
|
|
-CREATE TABLE t7(a INT AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+1000000
|
|
+31
|
|
+30
|
|
+20
|
|
+11
|
|
+10
|
|
+8
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+CREATE TABLE t7(a INT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t7 VALUES(0), (0), (0), (0), (-1), (-10), (0),
|
|
(20), (30), (31), (100000000), (100000008);
|
|
SELECT * FROM t7;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
-31
|
|
-100000000
|
|
100000008
|
|
-CREATE TABLE t8(a INT UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+100000000
|
|
+31
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
+CREATE TABLE t8(a INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t8 VALUES(-5);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
INSERT INTO t8 VALUES(0), (0), (0), (0), (8), (10), (0),
|
|
(20), (30), (31), (100000000), (100000008);
|
|
SELECT * FROM t8;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-8
|
|
-10
|
|
-11
|
|
-20
|
|
-30
|
|
-31
|
|
-100000000
|
|
100000008
|
|
-CREATE TABLE t9(a BIGINT AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+100000000
|
|
+31
|
|
+30
|
|
+20
|
|
+11
|
|
+10
|
|
+8
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+CREATE TABLE t9(a BIGINT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t9 VALUES(0), (0), (0), (0), (-1), (-10), (0),
|
|
(20), (30), (31), (100000000000), (100000000006);
|
|
SELECT * FROM t9;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
-31
|
|
-100000000000
|
|
100000000006
|
|
-CREATE TABLE t10(a BIGINT UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+100000000000
|
|
+31
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
+CREATE TABLE t10(a BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t10 VALUES(-5);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
INSERT INTO t10 VALUES(0), (0), (0), (0), (8), (10), (0),
|
|
(20), (30), (31), (100000000000), (100000000006);
|
|
SELECT * FROM t10;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-8
|
|
-10
|
|
-11
|
|
-20
|
|
-30
|
|
-31
|
|
-100000000000
|
|
100000000006
|
|
-CREATE TABLE t11(a FLOAT AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+100000000000
|
|
+31
|
|
+30
|
|
+20
|
|
+11
|
|
+10
|
|
+8
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+CREATE TABLE t11(a FLOAT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t11 VALUES(0), (0), (0), (0), (-1), (-10), (0), (20), (30), (31);
|
|
SELECT * FROM t11;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
31
|
|
-CREATE TABLE t11u(a FLOAT UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
+CREATE TABLE t11u(a FLOAT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t11u VALUES(0), (0), (0), (0), (-1), (-10), (0), (20), (30), (31);
|
|
ERROR 22003: Out of range value for column 'a' at row 5
|
|
INSERT INTO t11u VALUES(0), (0), (0), (0), (0), (20), (30), (31);
|
|
SELECT * FROM t11u;
|
|
a
|
|
-11
|
|
-12
|
|
-13
|
|
-14
|
|
-15
|
|
-20
|
|
-30
|
|
31
|
|
-CREATE TABLE t12(a DOUBLE AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
+30
|
|
+20
|
|
+15
|
|
+14
|
|
+13
|
|
+12
|
|
+11
|
|
+CREATE TABLE t12(a DOUBLE AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t12 VALUES(0), (0), (0), (0), (-1), (-10), (0), (20), (30), (31);
|
|
SELECT * FROM t12;
|
|
a
|
|
--10
|
|
--1
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-5
|
|
-20
|
|
-30
|
|
31
|
|
+30
|
|
+20
|
|
+5
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
+-1
|
|
+-10
|
|
CREATE TABLE t12u(a DOUBLE UNSIGNED AUTO_INCREMENT KEY) ENGINE = InnoDB;
|
|
INSERT INTO t12u VALUES(0), (0), (0), (0), (-1), (-10), (0), (20), (30), (31);
|
|
ERROR 22003: Out of range value for column 'a' at row 5
|
|
@@ -268,14 +268,14 @@
|
|
SELECT MAX(a) AS `Expect 100000000000` FROM t9;
|
|
Expect 100000000000
|
|
100000000000
|
|
-CREATE TABLE t13(a INT AUTO_INCREMENT KEY) ENGINE = InnoDB,
|
|
+CREATE TABLE t13(a INT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE = InnoDB,
|
|
AUTO_INCREMENT = 1234;
|
|
# restart
|
|
SHOW CREATE TABLE t13;
|
|
Table Create Table
|
|
t13 CREATE TABLE `t13` (
|
|
`a` int(11) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1234 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t13 VALUES(0);
|
|
SELECT a AS `Expect 1234` FROM t13;
|
|
@@ -490,28 +490,28 @@
|
|
INSERT INTO t1 VALUES(0), (0);
|
|
SELECT * FROM t1;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t3 VALUES(0), (0);
|
|
SELECT * FROM t3;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t5 VALUES(0), (0);
|
|
SELECT * FROM t5;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t7 VALUES(0), (0);
|
|
SELECT * FROM t7;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t9 VALUES(0), (0);
|
|
SELECT * FROM t9;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
# Ensure that all changes before the server is killed are persisted.
|
|
set global innodb_flush_log_at_trx_commit=1;
|
|
TRUNCATE TABLE t1;
|
|
@@ -524,63 +524,63 @@
|
|
INSERT INTO t19 VALUES(0), (0);
|
|
SELECT * FROM t19;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
# restart
|
|
INSERT INTO t1 VALUES(0), (0);
|
|
SELECT * FROM t1;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t3 VALUES(0), (0);
|
|
SELECT * FROM t3;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t5 VALUES(0), (0);
|
|
SELECT * FROM t5;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t7 VALUES(0), (0);
|
|
SELECT * FROM t7;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
INSERT INTO t19 VALUES(0), (0);
|
|
SELECT * FROM t19;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
4
|
|
+3
|
|
+2
|
|
+1
|
|
DELETE FROM t19 WHERE a = 4;
|
|
RENAME TABLE t19 to t9;
|
|
INSERT INTO t9 VALUES(0), (0);
|
|
SELECT * FROM t9;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-5
|
|
6
|
|
+5
|
|
+3
|
|
+2
|
|
+1
|
|
TRUNCATE TABLE t9;
|
|
INSERT INTO t9 VALUES(0), (0);
|
|
SELECT * FROM t9;
|
|
a
|
|
-1
|
|
2
|
|
+1
|
|
# Scenario 8: Test ALTER TABLE operations
|
|
INSERT INTO t3 VALUES(0), (0), (100), (200), (1000);
|
|
SELECT * FROM t3;
|
|
a
|
|
-1
|
|
-2
|
|
-3
|
|
-4
|
|
-100
|
|
-200
|
|
1000
|
|
+200
|
|
+100
|
|
+4
|
|
+3
|
|
+2
|
|
+1
|
|
DELETE FROM t3 WHERE a > 300;
|
|
SELECT MAX(a) AS `Expect 200` FROM t3;
|
|
Expect 200
|
|
@@ -592,7 +592,7 @@
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t3 VALUES(0);
|
|
SELECT MAX(a) AS `Expect 201` FROM t3;
|
|
@@ -605,7 +605,7 @@
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=500 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t3 VALUES(0);
|
|
SELECT MAX(a) AS `Expect 500` FROM t3;
|
|
@@ -617,13 +617,13 @@
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t3 VALUES(0), (0);
|
|
SELECT * FROM t3;
|
|
a
|
|
-100
|
|
101
|
|
+100
|
|
INSERT INTO t3 VALUES(150), (180);
|
|
UPDATE t3 SET a = 200 WHERE a = 150;
|
|
INSERT INTO t3 VALUES(220);
|
|
@@ -633,7 +633,7 @@
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=221 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t3 VALUES(0);
|
|
SELECT MAX(a) AS `Expect 221` FROM t3;
|
|
@@ -645,7 +645,7 @@
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# MDEV-6076: Test adding an AUTO_INCREMENT COLUMN
|
|
CREATE TABLE mdev6076a (b INT) ENGINE=InnoDB;
|
|
@@ -695,18 +695,18 @@
|
|
INSERT INTO t_inplace SELECT * FROM t3;
|
|
SELECT * FROM t_inplace;
|
|
a
|
|
-100
|
|
-101
|
|
-120
|
|
-121
|
|
-122
|
|
-200
|
|
210
|
|
+200
|
|
+122
|
|
+121
|
|
+120
|
|
+101
|
|
+100
|
|
SHOW CREATE TABLE t_inplace;
|
|
Table Create Table
|
|
t_inplace CREATE TABLE `t_inplace` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=211 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# This will keep the autoinc counter
|
|
ALTER TABLE t_inplace AUTO_INCREMENT = 250, ALGORITHM = INPLACE;
|
|
@@ -715,7 +715,7 @@
|
|
Table Create Table
|
|
t_inplace CREATE TABLE `t_inplace` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# This should keep the autoinc counter as well
|
|
ALTER TABLE t_inplace ADD COLUMN b INT, ALGORITHM = INPLACE;
|
|
@@ -725,16 +725,16 @@
|
|
t_inplace CREATE TABLE `t_inplace` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
`b` int(11) DEFAULT NULL,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
DELETE FROM t_inplace WHERE a > 150;
|
|
SELECT * FROM t_inplace;
|
|
a b
|
|
-100 NULL
|
|
-101 NULL
|
|
-120 NULL
|
|
-121 NULL
|
|
122 NULL
|
|
+121 NULL
|
|
+120 NULL
|
|
+101 NULL
|
|
+100 NULL
|
|
# This should reset the autoinc counter to the one specified
|
|
# Since it's smaller than current one but bigger than existing
|
|
# biggest counter in the table
|
|
@@ -745,7 +745,7 @@
|
|
t_inplace CREATE TABLE `t_inplace` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
`b` int(11) DEFAULT NULL,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=180 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# This should reset the autoinc counter to the next value of
|
|
# current max counter in the table, since the specified value
|
|
@@ -756,7 +756,7 @@
|
|
Table Create Table
|
|
t_inplace CREATE TABLE `t_inplace` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t_inplace VALUES(0), (0);
|
|
SELECT MAX(a) AS `Expect 124` FROM t_inplace;
|
|
@@ -783,18 +783,18 @@
|
|
INSERT INTO t_copy SELECT * FROM t3;
|
|
SELECT * FROM t_copy;
|
|
a
|
|
-100
|
|
-101
|
|
-120
|
|
-121
|
|
-122
|
|
-200
|
|
210
|
|
+200
|
|
+122
|
|
+121
|
|
+120
|
|
+101
|
|
+100
|
|
SHOW CREATE TABLE t_copy;
|
|
Table Create Table
|
|
t_copy CREATE TABLE `t_copy` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=211 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# This will keep the autoinc counter
|
|
ALTER TABLE t_copy AUTO_INCREMENT = 250, ALGORITHM = COPY;
|
|
@@ -803,7 +803,7 @@
|
|
Table Create Table
|
|
t_copy CREATE TABLE `t_copy` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# This should keep the autoinc counter as well
|
|
ALTER TABLE t_copy ADD COLUMN b INT, ALGORITHM = COPY;
|
|
@@ -813,16 +813,16 @@
|
|
t_copy CREATE TABLE `t_copy` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
`b` int(11) DEFAULT NULL,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
DELETE FROM t_copy WHERE a > 150;
|
|
SELECT * FROM t_copy;
|
|
a b
|
|
-100 NULL
|
|
-101 NULL
|
|
-120 NULL
|
|
-121 NULL
|
|
122 NULL
|
|
+121 NULL
|
|
+120 NULL
|
|
+101 NULL
|
|
+100 NULL
|
|
# This should reset the autoinc counter to the one specified
|
|
# Since it's smaller than current one but bigger than existing
|
|
# biggest counter in the table
|
|
@@ -833,7 +833,7 @@
|
|
t_copy CREATE TABLE `t_copy` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
`b` int(11) DEFAULT NULL,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=180 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
# This should reset the autoinc counter to the next value of
|
|
# current max counter in the table, since the specified value
|
|
@@ -844,7 +844,7 @@
|
|
Table Create Table
|
|
t_copy CREATE TABLE `t_copy` (
|
|
`a` smallint(6) NOT NULL AUTO_INCREMENT,
|
|
- PRIMARY KEY (`a`)
|
|
+ PRIMARY KEY (`a` DESC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
|
INSERT INTO t_copy VALUES(0), (0);
|
|
SELECT MAX(a) AS `Expect 124` FROM t_copy;
|
|
@@ -868,7 +868,7 @@
|
|
126
|
|
DROP TABLE t_copy, it_copy;
|
|
# Scenario 9: Test the sql_mode = NO_AUTO_VALUE_ON_ZERO
|
|
-CREATE TABLE t30 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b INT, key(b)) ENGINE = InnoDB;
|
|
+CREATE TABLE t30 (a INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(a DESC), b INT, key(b)) ENGINE = InnoDB;
|
|
set SQL_MODE = NO_AUTO_VALUE_ON_ZERO;
|
|
INSERT INTO t30 VALUES(NULL, 1), (200, 2), (0, 3);
|
|
INSERT INTO t30(b) VALUES(4), (5), (6), (7);
|
|
@@ -895,20 +895,20 @@
|
|
set global innodb_flush_log_at_trx_commit=1;
|
|
CREATE TABLE t31 (a INT) ENGINE = InnoDB;
|
|
INSERT INTO t31 VALUES(1), (2);
|
|
-ALTER TABLE t31 ADD b INT AUTO_INCREMENT PRIMARY KEY;
|
|
+ALTER TABLE t31 ADD b INT AUTO_INCREMENT, ADD PRIMARY KEY(b DESC);
|
|
INSERT INTO t31 VALUES(3, 0), (4, NULL), (5, NULL);
|
|
INSERT INTO t31 VALUES(6, 0);
|
|
ERROR 23000: Duplicate entry '0' for key 'PRIMARY'
|
|
SELECT * FROM t31;
|
|
a b
|
|
-3 0
|
|
-1 1
|
|
-2 2
|
|
-4 3
|
|
5 4
|
|
+4 3
|
|
+2 2
|
|
+1 1
|
|
+3 0
|
|
SET SQL_MODE = 0;
|
|
# Scenario 10: Rollback would not rollback the counter
|
|
-CREATE TABLE t32 (a BIGINT AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB;
|
|
+CREATE TABLE t32 (a BIGINT AUTO_INCREMENT, PRIMARY KEY(a DESC)) ENGINE=InnoDB;
|
|
INSERT INTO t32 VALUES(0), (0);
|
|
# Ensure that all changes before the server is killed are persisted.
|
|
set global innodb_flush_log_at_trx_commit=1;
|
|
@@ -923,7 +923,7 @@
|
|
# increasing the counter
|
|
CREATE TABLE t33 (
|
|
a BIGINT NOT NULL PRIMARY KEY,
|
|
-b BIGINT NOT NULL AUTO_INCREMENT, KEY(b)) ENGINE = InnoDB;
|
|
+b BIGINT NOT NULL AUTO_INCREMENT, INDEX(b DESC)) ENGINE = InnoDB;
|
|
INSERT INTO t33 VALUES(1, NULL);
|
|
INSERT INTO t33 VALUES(2, NULL);
|
|
INSERT INTO t33 VALUES(2, NULL);
|
|
@@ -946,13 +946,13 @@
|
|
INSERT INTO t31(a) VALUES(6), (0);
|
|
SELECT * FROM t31;
|
|
a b
|
|
-3 0
|
|
-1 1
|
|
-2 2
|
|
-4 3
|
|
-5 4
|
|
-6 5
|
|
0 6
|
|
+6 5
|
|
+5 4
|
|
+4 3
|
|
+2 2
|
|
+1 1
|
|
+3 0
|
|
DROP TABLE t31;
|
|
set SQL_MODE = NO_AUTO_VALUE_ON_ZERO;
|
|
DELETE FROM t30 WHERE a = 0;
|
|
@@ -991,7 +991,7 @@
|
|
DROP TABLE t33;
|
|
CREATE TABLE t33 (
|
|
a BIGINT NOT NULL PRIMARY KEY,
|
|
-b BIGINT NOT NULL AUTO_INCREMENT, KEY(b)) ENGINE = InnoDB;
|
|
+b BIGINT NOT NULL AUTO_INCREMENT, INDEX(b DESC)) ENGINE = InnoDB;
|
|
ALTER TABLE t33 DISCARD TABLESPACE;
|
|
restore: t33 .ibd and .cfg files
|
|
ALTER TABLE t33 IMPORT TABLESPACE;
|
|
@@ -1001,8 +1001,8 @@
|
|
4
|
|
SELECT * FROM t33;
|
|
a b
|
|
-10 1
|
|
-2 2
|
|
3 4
|
|
+2 2
|
|
+10 1
|
|
DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t11u, t12u,
|
|
t30, t32, t33;
|