mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
1486a5a744
Add new variable m_highest_seen when only peeking at auto_increment NEXTID and not retrieving to cache. Add new method to check tupleId before calling data node ndb_restore.result, ndb_restore.test: Changed test to use information_schema to check auto_increment DictCache.cpp, Ndb.cpp: Add new variable m_highest_seen when only peeking at auto_increment NEXTID and not retrieving to cache. Add new method to check tupleId before calling data node. When setting the auto_increment value we'll also read up the new value, this is useful if we use the table the first time in this MySQL Server and haven't yet seen the NEXTID value. The kernel will avoid updating since it already has the value but will also read up the NEXTID value to ensure we don't need to do this any more time. ndb_auto_increment.result: Updated result file since it was incorrect ndb/include/ndbapi/Ndb.hpp: Add new variable m_highest_seen when only peeking at auto_increment NEXTID and not retrieving to cache. Add new method to check tupleId before calling data node ndb/src/ndbapi/DictCache.hpp: Add new variable m_highest_seen when only peeking at auto_increment NEXTID and not retrieving to cache. Add new method to check tupleId before calling data node ndb/src/ndbapi/DictCache.cpp: Add new variable m_highest_seen when only peeking at auto_increment NEXTID and not retrieving to cache. Add new method to check tupleId before calling data node. When setting the auto_increment value we'll also read up the new value, this is useful if we use the table the first time in this MySQL Server and haven't yet seen the NEXTID value. The kernel will avoid updating since it already has the value but will also read up the NEXTID value to ensure we don't need to do this any more time. ndb/src/ndbapi/Ndb.cpp: Add new variable m_highest_seen when only peeking at auto_increment NEXTID and not retrieving to cache. Add new method to check tupleId before calling data node. When setting the auto_increment value we'll also read up the new value, this is useful if we use the table the first time in this MySQL Server and haven't yet seen the NEXTID value. The kernel will avoid updating since it already has the value but will also read up the NEXTID value to ensure we don't need to do this any more time. mysql-test/r/ndb_restore.result: Changed test to use information_schema to check auto_increment mysql-test/t/ndb_restore.test: Changed test to use information_schema to check auto_increment mysql-test/r/ndb_auto_increment.result: Updated result file since it was incorrect
445 lines
7.7 KiB
Text
445 lines
7.7 KiB
Text
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 1
|
|
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;
|