1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
source include/have_tokudb.inc;
set tokudb_enable_fast_update=1;
source ../include/setup_fast_update_upsert.inc;
# must have primary key
create table t (ida int not null,
idb bigint not null,
idc tinyint unsigned not null,
x bigint) engine = tokudb;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where ida=1;
drop table t;
# must have no clustering keys
create table t (ida int not null,
idb bigint not null,
idc tinyint unsigned not null,
x bigint,
clustering key(ida,idb,idc)) engine = tokudb;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where ida=1;
drop table t;
# update field must not be part of any key
create table t (ida int not null,
idb bigint not null,
idc tinyint unsigned not null,
x bigint,
primary key(ida,idb,idc),
key(x)) engine = tokudb;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where ida=1;
drop table t;
# must have no pk prefixed
create table t (id char(32), x bigint, primary key(id(1))) engine = tokudb;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where id='hi';
drop table t;
create table t (id varchar(32), x bigint, primary key(id(1))) engine = tokudb;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where id='hi';
drop table t;
# test for point updates on compound keys
create table t (ida int not null,
idb bigint not null,
idc tinyint unsigned not null,
x bigint,
primary key(ida,idb,idc)) engine = tokudb;
insert into t values (1,2,3,0);
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where ida=1;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where ida=1 and idb=2;
replace_regex /MariaDB/XYZ/ /MySQL/XYZ/;
error ER_UNSUPPORTED_EXTENSION;
update t set x=x+1 where ida=1 and idb=2 or idc=3;
update t set x=x+1 where ida=1 and idb=2 and idc=3;
select * from t;
update t set x=x+1 where idc=3 and ida=1 and idb=2;
select * from t;
drop table t;
|