533 lines
17 KiB
Plaintext
533 lines
17 KiB
Plaintext
DROP TABLE IF EXISTS t1;
|
|
create table t1 (a int not null primary key, b int not null, c int,
|
|
unique index_b (b) using hash)
|
|
engine ndb;
|
|
insert into t1 values (1,10,1),(2,9,1),(3,8,1),(4,7,1),(5,6,1),(6,5,2),(7,4,2),(8,3,2),
|
|
(9,2,2),(10,1,2);
|
|
affected rows: 10
|
|
info: Records: 10 Duplicates: 0 Warnings: 0
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 1 - read the row
|
|
# 0 - update the row (deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 111, b = 20 where a = 1;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where a = 1 order by a;
|
|
a b c
|
|
1 20 111
|
|
affected rows: 1
|
|
|
|
# expected result 1 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the rows (1 with read before)
|
|
# 0 - delete the row (deferred to commit)
|
|
# 1 - delete + commit the transaction
|
|
|
|
delete from t1 where a = 1;
|
|
affected rows: 1
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where a = 1 order by a;
|
|
a b c
|
|
affected rows: 0
|
|
|
|
# expected result 1 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the rows
|
|
# 0 - update the row (deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 1111 where b = 2;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where b = 2 order by a;
|
|
a b c
|
|
9 2 1111
|
|
affected rows: 1
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 1 - read the rows
|
|
# 0 - update the row (deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 12, b = 19 where b = 2;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where b = 2 order by a;
|
|
a b c
|
|
affected rows: 0
|
|
|
|
# expected result 1 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the rows (1 with read before)
|
|
# 0 - delete the row (deferred to commit)
|
|
# 1 - delete and commit the transaction
|
|
|
|
delete from t1 where b = 19;
|
|
affected rows: 1
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where b = 19 order by a;
|
|
a b c
|
|
affected rows: 0
|
|
|
|
# expected result 3 roundtrips
|
|
# 0 - info call
|
|
# 2 - read the rows
|
|
# 0 - update the rows (deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 22 where a = 10 or a >= 10;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
3
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 order by a;
|
|
a b c
|
|
2 9 1
|
|
3 8 1
|
|
4 7 1
|
|
5 6 1
|
|
6 5 2
|
|
7 4 2
|
|
8 3 2
|
|
10 1 22
|
|
affected rows: 8
|
|
|
|
# expected result 1 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the rows (1 with read before)
|
|
# 0 - update the rows (2 if no bulk update + 1 deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 23 where a in (8,10);
|
|
affected rows: 2
|
|
info: Rows matched: 2 Changed: 2 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 order by a;
|
|
a b c
|
|
2 9 1
|
|
3 8 1
|
|
4 7 1
|
|
5 6 1
|
|
6 5 2
|
|
7 4 2
|
|
8 3 23
|
|
10 1 23
|
|
affected rows: 8
|
|
|
|
# expected result 4 roundtrips
|
|
# 0 - info call
|
|
# 3 - read the rows
|
|
# 0 - update the rows (executed during read)
|
|
# 1 - commit the transaction
|
|
|
|
update t1 set c = 23 where a in (7,8) or a >= 10;
|
|
affected rows: 3
|
|
info: Rows matched: 3 Changed: 3 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
4
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 order by a;
|
|
a b c
|
|
2 9 1
|
|
3 8 1
|
|
4 7 1
|
|
5 6 1
|
|
6 5 2
|
|
7 4 23
|
|
8 3 23
|
|
10 1 23
|
|
affected rows: 8
|
|
|
|
# expected result 5 roundtrips
|
|
# 0 - info call
|
|
# 2 - read the rows
|
|
# 2 - pk read in rnd_pos
|
|
# 0 - update the rows (deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 11 where a = 3 or b = 7;
|
|
affected rows: 2
|
|
info: Rows matched: 2 Changed: 2 Warnings: 0
|
|
select * from t1 where a = 3 or b = 7 order by a;
|
|
a b c
|
|
3 8 11
|
|
4 7 11
|
|
affected rows: 2
|
|
|
|
# expected result 4 roundtrips
|
|
# 0 - info call
|
|
# 1 - read complete rows
|
|
# 0 - don't read the row _again_ - included in read above
|
|
# 1 - delete the row (pk update)
|
|
# 1 - insert the row (pk update)
|
|
# 1 - commit the transaction
|
|
|
|
update t1 set a = 13, b = 20 where a = 3;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
4
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where a = 13 order by a;
|
|
a b c
|
|
13 20 11
|
|
affected rows: 1
|
|
|
|
# expected result 4 roundtrips
|
|
# 0 - info call
|
|
# 1 - read complete rows
|
|
# 0 - don't read the row _again_ - included in read above
|
|
# 1 - delete the row (pk update)
|
|
# 1 - insert the row (pk update)
|
|
# 1 - commit the transaction
|
|
|
|
update t1 set a = 12, b = 19 where b = 7;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
4
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where b = 19 order by a;
|
|
a b c
|
|
12 19 11
|
|
affected rows: 1
|
|
select * from t1 where b = 7 order by a;
|
|
a b c
|
|
affected rows: 0
|
|
|
|
# expected result 3 roundtrips
|
|
# 1 - info call
|
|
# 1 - read the rows
|
|
# 0 - update the rows (deferred to commit)
|
|
# 1 - update + commit the transaction
|
|
|
|
update t1 set c = 12, b = 29 where a = 5 and b = 6;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where b = 19 order by a;
|
|
a b c
|
|
12 19 11
|
|
affected rows: 1
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 1 - read the rows
|
|
# 0 - delete the rows (no row found)
|
|
# 1 - commit the transaction
|
|
|
|
delete from t1 where b = 6 and c = 12;
|
|
affected rows: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
select * from t1 where b = 6 order by a;
|
|
a b c
|
|
affected rows: 0
|
|
drop table t1;
|
|
Warnings:
|
|
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
|
|
create table t1 (a int primary key,
|
|
b varchar(4))
|
|
engine=ndb;
|
|
insert into t1 values (1, '1'), (2, '2'), (3, '3');
|
|
affected rows: 3
|
|
info: Records: 3 Duplicates: 0 Warnings: 0
|
|
|
|
# expected result 1 roundtrip
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 0 - update the row
|
|
# 1 - update+commit the row
|
|
# Rows matched=changed=affected=1
|
|
|
|
update t1 set b='two' where a=2;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 1 roundtrip
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 0 - update the row
|
|
# 1 - update+commit the row
|
|
# Rows matched=changed=affected=0
|
|
|
|
update t1 set b='lots' where a=2000;
|
|
affected rows: 0
|
|
info: Rows matched: 0 Changed: 0 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 1 roundtrip
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 0 - update the row
|
|
# 1 - update+commit the row
|
|
# Rows matched=changed=affected=1
|
|
# 1 warning
|
|
|
|
update t1 set b='one plus one' where a=2;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 1
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'b' at row 1
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 1 roundtrip
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 0 - update the row
|
|
# 1 - update+commit the row
|
|
# Rows matched=changed=affected=0
|
|
# 1 warning
|
|
|
|
update t1 set b='two thousand' where a=2000;
|
|
affected rows: 0
|
|
info: Rows matched: 0 Changed: 0 Warnings: 1
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'b' at row 1
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
1
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 1 - update the row
|
|
# 1 - commit
|
|
# Rows matched=changed=affected=1
|
|
|
|
begin;
|
|
affected rows: 0
|
|
update t1 set b='two' where a=2;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 0
|
|
commit;
|
|
affected rows: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 1 - update the row
|
|
# 1 - commit
|
|
# Rows matched=changed=affected=0
|
|
|
|
begin;
|
|
affected rows: 0
|
|
update t1 set b='lots' where a=2000;
|
|
affected rows: 0
|
|
info: Rows matched: 0 Changed: 0 Warnings: 0
|
|
commit;
|
|
affected rows: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 1 - update the row
|
|
# 1 - commit
|
|
# Rows matched=changed=affected=1
|
|
1 warning
|
|
|
|
begin;
|
|
affected rows: 0
|
|
update t1 set b='one plus one' where a=2;
|
|
affected rows: 1
|
|
info: Rows matched: 1 Changed: 1 Warnings: 1
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'b' at row 1
|
|
commit;
|
|
affected rows: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
|
|
# expected result 2 roundtrips
|
|
# 0 - info call
|
|
# 0 - read the row
|
|
# 1 - update the row
|
|
# 1 - commit
|
|
# Rows matched=changed=affected=0
|
|
# 1 warning
|
|
|
|
begin;
|
|
affected rows: 0
|
|
update t1 set b='two thousand' where a=2000;
|
|
affected rows: 0
|
|
info: Rows matched: 0 Changed: 0 Warnings: 1
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'b' at row 1
|
|
commit;
|
|
affected rows: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
2
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
drop table t1;
|
|
create table t1
|
|
(a int not null primary key auto_increment, b int, c varchar(256))
|
|
character set latin1
|
|
engine = ndb;
|
|
insert into t1(b,c) values (1,'this is a test'),
|
|
(2,'this is a test'),(3,'this is a test'),
|
|
(4,'this is a test'),(5,'this is a test'),(6,'this is a test'),
|
|
(7,'this is a test'),(8,'this is a test'),(9,'this is a test');
|
|
affected rows: 9
|
|
info: Records: 9 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 9
|
|
info: Records: 9 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 18
|
|
info: Records: 18 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 36
|
|
info: Records: 36 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 72
|
|
info: Records: 72 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 144
|
|
info: Records: 144 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 288
|
|
info: Records: 288 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 576
|
|
info: Records: 576 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 1152
|
|
info: Records: 1152 Duplicates: 0 Warnings: 0
|
|
insert into t1(b,c) select b,c from t1;
|
|
affected rows: 2304
|
|
info: Records: 2304 Duplicates: 0 Warnings: 0
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status OK
|
|
affected rows: 1
|
|
set autocommit=off;
|
|
affected rows: 0
|
|
select count(*) from t1 where a in (...)
|
|
count(*)
|
|
1000
|
|
affected rows: 1
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
9
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
set autocommit=on;
|
|
affected rows: 0
|
|
update t1 set c = 'kalle' where a in (...)
|
|
affected rows: 1000
|
|
info: Rows matched: 1000 Changed: 1000 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
9
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
delete from t1 where a in (...)
|
|
affected rows: 1000
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
3
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
delete from t1 where a in (...)
|
|
affected rows: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
3
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
update t1 set c = 'kalle' where a in (...)
|
|
affected rows: 0
|
|
info: Rows matched: 0 Changed: 0 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
9
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
update t1 set c = 'kalle' where a in (...)
|
|
affected rows: 0
|
|
info: Rows matched: 0 Changed: 0 Warnings: 0
|
|
@ndb_execute_count:=VARIABLE_VALUE-@ndb_init_execute_count
|
|
9
|
|
affected rows: 1
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
drop table t1;
|