mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-25 18:38:00 +03:00 
			
		
		
		
	Changed to use information_schema to check auto_increment Ndb.cpp: Bug #33534 Bad performance of INSERT's in auto_incremented tables: Saving highest seen value when setting auto_increment fields ndb_auto_increment.result: Regenerated result mysql-test/suite/ndb/r/ndb_auto_increment.result: Regenerated result mysql-test/suite/ndb/r/ndb_restore.result: Changed to use information_schema to check auto_increment mysql-test/suite/ndb/t/ndb_restore.test: Changed to use information_schema to check auto_increment storage/ndb/src/ndbapi/Ndb.cpp: Bug #33534 Bad performance of INSERT's in auto_incremented tables: Saving highest seen value when setting auto_increment fields
		
			
				
	
	
		
			446 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			446 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| DROP TABLE IF EXISTS t1,t2;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| set @old_auto_increment_offset = @@session.auto_increment_offset;
 | |
| set @old_auto_increment_increment = @@session.auto_increment_increment;
 | |
| set @old_ndb_autoincrement_prefetch_sz = @@session.ndb_autoincrement_prefetch_sz;
 | |
| flush status;
 | |
| create table t1 (a int not null auto_increment primary key) engine ndb;
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 1
 | |
| update t1 set a = 5 where a = 1;
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 5
 | |
| 6
 | |
| insert into t1 values (7);
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| insert into t1 values (2);
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 2
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| update t1 set a = 4 where a = 2;
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 10
 | |
| delete from t1 where a = 10;
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| replace t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| replace t1 values (15);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 15
 | |
| replace into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 15
 | |
| 16
 | |
| replace t1 values (15);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 15
 | |
| 16
 | |
| insert ignore into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 15
 | |
| 16
 | |
| 17
 | |
| insert ignore into t1 values (15), (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 15
 | |
| 16
 | |
| 17
 | |
| 18
 | |
| insert into t1 values (15)
 | |
| on duplicate key update a = 20;
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 16
 | |
| 17
 | |
| 18
 | |
| 20
 | |
| 21
 | |
| insert into t1 values (NULL) on duplicate key update a = 30;
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 16
 | |
| 17
 | |
| 18
 | |
| 20
 | |
| 21
 | |
| 22
 | |
| insert into t1 values (30) on duplicate key update a = 40;
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 16
 | |
| 17
 | |
| 18
 | |
| 20
 | |
| 21
 | |
| 22
 | |
| 30
 | |
| insert ignore into t1 values(600),(NULL),(NULL),(610),(NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| 7
 | |
| 8
 | |
| 9
 | |
| 11
 | |
| 12
 | |
| 16
 | |
| 17
 | |
| 18
 | |
| 20
 | |
| 21
 | |
| 22
 | |
| 30
 | |
| 600
 | |
| 601
 | |
| 602
 | |
| 610
 | |
| 611
 | |
| drop table t1;
 | |
| create table t1 (a int not null primary key, 
 | |
| b int not null unique auto_increment) engine ndb;
 | |
| insert into t1 values (1, NULL);
 | |
| insert into t1 values (3, NULL);
 | |
| update t1 set b = 3 where a = 3;
 | |
| insert into t1 values (4, NULL);
 | |
| select * from t1 order by a;
 | |
| a	b
 | |
| 1	1
 | |
| 3	3
 | |
| 4	4
 | |
| drop table t1;
 | |
| CREATE TABLE t1 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=NDBCLUSTER;
 | |
| CREATE TABLE t2 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=MYISAM;
 | |
| SET @@session.auto_increment_increment=10;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 1	1	0
 | |
| 11	2	1
 | |
| 21	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| TRUNCATE t1;
 | |
| TRUNCATE t2;
 | |
| SET @@session.auto_increment_offset=5;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t1 (pk,b,c) VALUES (27,4,3),(NULL,5,4),(99,6,5),(NULL,7,6);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (pk,b,c) VALUES (27,4,3),(NULL,5,4),(99,6,5),(NULL,7,6);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 5	1	0
 | |
| 15	2	1
 | |
| 25	3	2
 | |
| 27	4	3
 | |
| 35	5	4
 | |
| 99	6	5
 | |
| 105	7	6
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 7
 | |
| TRUNCATE t1;
 | |
| TRUNCATE t2;
 | |
| SET @@session.auto_increment_increment=2;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 1	1	0
 | |
| 3	2	1
 | |
| 5	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| DROP TABLE t1, t2;
 | |
| CREATE TABLE t1 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=NDBCLUSTER AUTO_INCREMENT = 7;
 | |
| CREATE TABLE t2 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=MYISAM AUTO_INCREMENT = 7;
 | |
| SET @@session.auto_increment_offset=1;
 | |
| SET @@session.auto_increment_increment=1;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 7	1	0
 | |
| 8	2	1
 | |
| 9	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| DROP TABLE t1, t2;
 | |
| CREATE TABLE t1 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=NDBCLUSTER AUTO_INCREMENT = 3;
 | |
| CREATE TABLE t2 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=MYISAM AUTO_INCREMENT = 3;
 | |
| SET @@session.auto_increment_offset=5;
 | |
| SET @@session.auto_increment_increment=10;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 5	1	0
 | |
| 15	2	1
 | |
| 25	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| DROP TABLE t1, t2;
 | |
| CREATE TABLE t1 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=NDBCLUSTER AUTO_INCREMENT = 7;
 | |
| CREATE TABLE t2 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=MYISAM AUTO_INCREMENT = 7;
 | |
| SET @@session.auto_increment_offset=5;
 | |
| SET @@session.auto_increment_increment=10;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 15	1	0
 | |
| 25	2	1
 | |
| 35	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| DROP TABLE t1, t2;
 | |
| CREATE TABLE t1 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=NDBCLUSTER AUTO_INCREMENT = 5;
 | |
| CREATE TABLE t2 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=MYISAM AUTO_INCREMENT = 5;
 | |
| SET @@session.auto_increment_offset=5;
 | |
| SET @@session.auto_increment_increment=10;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 5	1	0
 | |
| 15	2	1
 | |
| 25	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| DROP TABLE t1, t2;
 | |
| CREATE TABLE t1 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=NDBCLUSTER AUTO_INCREMENT = 100;
 | |
| CREATE TABLE t2 (
 | |
| pk INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | |
| b INT NOT NULL,
 | |
| c INT NOT NULL UNIQUE
 | |
| ) ENGINE=MYISAM AUTO_INCREMENT = 100;
 | |
| SET @@session.auto_increment_offset=5;
 | |
| SET @@session.auto_increment_increment=10;
 | |
| INSERT INTO t1 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| INSERT INTO t2 (b,c) VALUES (1,0),(2,1),(3,2);
 | |
| SELECT * FROM t1 ORDER BY pk;
 | |
| pk	b	c
 | |
| 105	1	0
 | |
| 115	2	1
 | |
| 125	3	2
 | |
| SELECT COUNT(t1.pk) FROM t1, t2 WHERE t1.pk = t2.pk AND t1.b = t2.b AND t1.c = t1.c;
 | |
| COUNT(t1.pk)
 | |
| 3
 | |
| DROP TABLE t1, t2;
 | |
| SET @@session.auto_increment_offset=1;
 | |
| SET @@session.auto_increment_increment=1;
 | |
| set ndb_autoincrement_prefetch_sz = 32;
 | |
| drop table if exists t1;
 | |
| SET @@session.auto_increment_offset=1;
 | |
| SET @@session.auto_increment_increment=1;
 | |
| set ndb_autoincrement_prefetch_sz = 32;
 | |
| create table t1 (a int not null auto_increment primary key) engine ndb;
 | |
| insert into t1 values (NULL);
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 1
 | |
| 33
 | |
| insert into t1 values (20);
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 1
 | |
| 20
 | |
| 33
 | |
| 34
 | |
| insert into t1 values (35);
 | |
| insert into t1 values (NULL);
 | |
| insert into t1 values (NULL);
 | |
| ERROR 23000: Duplicate entry '35' for key 'PRIMARY'
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 1
 | |
| 20
 | |
| 33
 | |
| 34
 | |
| 35
 | |
| 65
 | |
| insert into t1 values (100);
 | |
| insert into t1 values (NULL);
 | |
| insert into t1 values (NULL);
 | |
| select * from t1 order by a;
 | |
| a
 | |
| 1
 | |
| 20
 | |
| 33
 | |
| 34
 | |
| 35
 | |
| 65
 | |
| 66
 | |
| 100
 | |
| 101
 | |
| set auto_increment_offset = @old_auto_increment_offset;
 | |
| set auto_increment_increment = @old_auto_increment_increment;
 | |
| set ndb_autoincrement_prefetch_sz = @old_ndb_autoincrement_prefetch_sz;
 | |
| drop table t1;
 |