mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01: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;
 | 
