Skip to content

Commit 4e932ab

Browse files
AliSQLAliSQL
authored andcommitted
[Feature] Issue#26 ADD ROW STATUS TO SHOW ENGINE TOKUDB STATUS
Description: ------------ row status format as follows: Type: TokuDB Name: row: operation status Status: Number of rows inserted 642766, updated 1, deleted 1, read 9 0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
1 parent 3446841 commit 4e932ab

10 files changed

Lines changed: 640 additions & 9 deletions

File tree

mysql-test/include/have_tokudb.inc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'tokudb' AND support IN ('YES', 'DEFAULT', 'ENABLED')`)
2+
{
3+
--skip Test requires TokuDB.
4+
}

mysql-test/suite/funcs_1/r/is_columns_is.result

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ NULL information_schema FILES LAST_ACCESS_TIME datetime NULL NULL NULL NULL date
511511
NULL information_schema FILES RECOVER_TIME bigint NULL NULL NULL NULL bigint(4)
512512
NULL information_schema FILES TRANSACTION_COUNTER bigint NULL NULL NULL NULL bigint(4)
513513
NULL information_schema FILES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
514-
3.0000 information_schema FILES ROW_FORMAT varchar 10 60 utf8 utf8_general_ci varchar(10)
514+
3.0000 information_schema FILES ROW_FORMAT varchar 20 60 utf8 utf8_general_ci varchar(20)
515515
NULL information_schema FILES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
516516
NULL information_schema FILES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
517517
NULL information_schema FILES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
@@ -692,7 +692,7 @@ NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
692692
3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
693693
3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
694694
NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
695-
3.0000 information_schema TABLES ROW_FORMAT varchar 10 60 utf8 utf8_general_ci varchar(10)
695+
3.0000 information_schema TABLES ROW_FORMAT varchar 20 60 utf8 utf8_general_ci varchar(20)
696696
NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
697697
NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
698698
NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
CREATE TABLE t1 (c1 INT) ENGINE = TOKUDB CHARSET=UTF8;
2+
CREATE TABLE t2 (c1 INT, c2 INT, CLUSTERING KEY (c1)) ENGINE=TOKUDB;
3+
CREATE TABLE t3 (c1 INT, c2 INT, PRIMARY KEY(c1), CLUSTERING KEY(c2)) ENGINE=TOKUDB;
4+
CREATE TABLE t4 (c1 INT, c2 INT, UNIQUE CLUSTERING KEY(c2)) ENGINE=TOKUDB;
5+
CREATE TABLE t5 (c1 INT PRIMARY KEY, c2 INT CLUSTERING KEY, c3 INT UNIQUE) ENGINE=TOKUDB;
6+
CREATE TABLE t6 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=COMPRESSED;
7+
CREATE TABLE t7 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=TOKUDB_UNCOMPRESSED;
8+
CREATE TABLE t8 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=TOKUDB_ZLIB;
9+
CREATE TABLE t9 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=TOKUDB_QUICKLZ;
10+
CREATE TABLE t10 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=TOKUDB_LZMA;
11+
CREATE TABLE t11 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=TOKUDB_FAST;
12+
CREATE TABLE t12 (c1 INT, c2 INT) ENGINE = TOKUDB ROW_FORMAT=TOKUDB_SMALL;
13+
SHOW CREATE TABLE t12;
14+
Table Create Table
15+
t12 CREATE TABLE `t12` (
16+
`c1` int(11) DEFAULT NULL,
17+
`c2` int(11) DEFAULT NULL
18+
) ENGINE=TokuDB DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_LZMA
19+
SELECT TABLE_NAME,ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE table_schema LIKE 'test' AND table_name LIKE 't%';
20+
TABLE_NAME ROW_FORMAT
21+
t1 tokudb_zlib
22+
t10 tokudb_lzma
23+
t11 tokudb_quicklz
24+
t12 tokudb_lzma
25+
t2 tokudb_zlib
26+
t3 tokudb_zlib
27+
t4 tokudb_zlib
28+
t5 tokudb_zlib
29+
t6 tokudb_zlib
30+
t7 tokudb_uncompressed
31+
t8 tokudb_zlib
32+
t9 tokudb_quicklz
33+
ALTER TABLE t1 ADD COLUMN c2 INT;
34+
ALTER TABLE t1 ADD COLUMN c3 INT;
35+
ALTER TABLE t1 ADD COLUMN c4 INT;
36+
ALTER TABLE t1 ADD PRIMARY KEY(c1);
37+
ALTER TABLE t1 ADD CLUSTERING KEY(c2,c3);
38+
ALTER TABLE t1 ADD CLUSTERING KEY(c4);
39+
ALTER TABLE t1 DROP KEY c4;
40+
ALTER TABLE t1 DROP COLUMN c4;
41+
ALTER TABLE t1 ADD COLUMN c4 VARCHAR(8192);
42+
ALTER TABLE t1 ADD COLUMN c5 BLOB;
43+
ALTER TABLE t1 ADD KEY(c4,c5(3073));
44+
ERROR 42000: Specified key was too long; max key length is 3072 bytes
45+
ALTER TABLE t1 ADD KEY(c4(1024),c5(2048));
46+
ERROR 42000: Specified key was too long; max key length is 3072 bytes
47+
SHOW CREATE TABLE t1;
48+
Table Create Table
49+
t1 CREATE TABLE `t1` (
50+
`c1` int(11) NOT NULL DEFAULT '0',
51+
`c2` int(11) DEFAULT NULL,
52+
`c3` int(11) DEFAULT NULL,
53+
`c4` varchar(8192) DEFAULT NULL,
54+
`c5` blob,
55+
PRIMARY KEY (`c1`),
56+
CLUSTERING KEY `c2` (`c2`,`c3`)
57+
) ENGINE=TokuDB DEFAULT CHARSET=utf8
58+
CREATE TABLE t13 (c1 INT, c2 INT) ENGINE=INNODB;
59+
CREATE TABLE t14 (c1 INT, c2 INT, CLUSTERING KEY(c1)) ENGINE=INNODB;
60+
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'CLUSTERING'
61+
CREATE TABLE t14 (c1 INT, c2 INT, UNIQUE CLUSTERING KEY(c1)) ENGINE=INNODB;
62+
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'CLUSTERING'
63+
ALTER TABLE t13 ADD CLUSTERING KEY(c1);
64+
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'CLUSTERING'
65+
CREATE TABLE t14 (c1 INT PRIMARY KEY) ENGINE=TOKUDB;
66+
CREATE TABLE t15 (c1 INT NOT NULL DEFAULT '0', UNIQUE KEY(c1), CONSTRAINT t1_c1_fk FOREIGN KEY (c1) references t1(c1)) ENGINE=TOKUDB;
67+
ALTER TABLE t15 ADD CONSTRAINT t1_c1_fk FOREIGN KEY (c1) REFERENCES t1(c1);
68+
DROP TABLE t1;
69+
CREATE TABLE t1(c1 INT, c2 INT, c3 INT, CLUSTERING KEY(c1,c2)) ENGINE=TOKUDB;
70+
INSERT INTO t1 VALUES (1,2,3),(2,3,4),(4,5,6),(6,7,8),(7,8,9),(9,10,11);
71+
SELECT * FROM t1 WHERE c1 IN (SELECT c2 FROM t1);
72+
c1 c2 c3
73+
2 3 4
74+
7 8 9
75+
DROP TABLE t1;
76+
CREATE TABLE t1 (c1 INT , c2 INT, c3 INT, CLUSTERING KEY(c1,c2), CLUSTERING KEY(c1))ENGINE=TOKUDB;
77+
INSERT INTO t1 VALUES (1,2,3),(2,3,4),(3,4,5),(5,6,7);
78+
SELECT * FROM t1 WHERE c1 = 2;
79+
c1 c2 c3
80+
2 3 4
81+
DROP TABLE t1;
82+
DROP TABLE t2;
83+
CREATE TABLE t1 (c1 INT, c2 INT)ENGINE=TOKUDB;
84+
CREATE TABLE t2 (c1 INT, c2 INT,c3 INT, CLUSTERING KEY(c1))ENGINE=TOKUDB;
85+
INSERT INTO t1 VALUES (1,2),(2,3),(3,4),(4,5),(5,6),(6,7);
86+
INSERT INTO t2 VALUES (1,2,3),(2,3,4),(3,4,5),(4,5,6);
87+
SELECT * FROM t2 WHERE t2.c3 IN (SELECT c1 FROM t2) ORDER BY c1 LIMIT 10000;
88+
c1 c2 c3
89+
1 2 3
90+
2 3 4
91+
DROP TABLE t1;
92+
CREATE TABLE t1 (c1 INT, c2 VARCHAR(64),INDEX(c2,c1),PRIMARY KEY (c1));
93+
INSERT INTO t1 VALUES (1,'ABC'),(2,'BCD'),(3,'CDE'),(4,'DEF'),(5,'EFG'),(6,'FGH'),(7,'GHI');
94+
SELECT COUNT(*) FROM t1;
95+
COUNT(*)
96+
7
97+
DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15;
98+
CREATE TABLE t1 (c1 INT AUTO_INCREMENT PRIMARY KEY, c2 INT, c3 INT, CLUSTERING
99+
KEY(c2), key(c3)) ENGINE=TOKUDB;
100+
INSERT INTO t1(c2,c3) VALUES
101+
(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(7,9),(8,9),(9,10);
102+
SELECT * FROM t1 WHERE c1 = 2;
103+
c1 c2 c3
104+
2 2 3
105+
SELECT * FROM t1 WHERE c2 = 7 ORDER BY c2;
106+
c1 c2 c3
107+
7 7 8
108+
8 7 9
109+
SELECT * FROM t1 WHERE c3 = 9 ORDER BY c1;
110+
c1 c2 c3
111+
8 7 9
112+
9 8 9
113+
SELECT * FROM t1 WHERE c2 between 3 and 9 ORDER BY c2;
114+
c1 c2 c3
115+
3 3 4
116+
4 4 5
117+
5 5 6
118+
6 6 7
119+
7 7 8
120+
8 7 9
121+
9 8 9
122+
10 9 10
123+
UPDATE t1 SET c3 =c3+1 WHERE c2=6;
124+
UPDATE t1 SET c2=c2+1 WHERE c2=6;
125+
SELECT * FROM t1 WHERE c1>2 and c1 < 10 ORDER BY c1;
126+
c1 c2 c3
127+
3 3 4
128+
4 4 5
129+
5 5 6
130+
6 7 8
131+
7 7 8
132+
8 7 9
133+
9 8 9
134+
UPDATE t1 SET c3=c3+1 ORDER BY c1 limit 5;
135+
UPDATE t1 SET c3=c3+1 ORDER BY c2 limit 5;
136+
DROP TABLE t1;
137+
CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT);
138+
INSERT INTO t1 VALUES(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12);
139+
SELECT * FROM t1;
140+
c1 c2
141+
1 2
142+
2 3
143+
3 4
144+
4 5
145+
5 6
146+
6 7
147+
7 8
148+
8 9
149+
9 10
150+
10 11
151+
11 12
152+
SELECT * FROM t1 ORDER BY c1;
153+
c1 c2
154+
1 2
155+
2 3
156+
3 4
157+
4 5
158+
5 6
159+
6 7
160+
7 8
161+
8 9
162+
9 10
163+
10 11
164+
11 12
165+
SELECT * FROM t1 ORDER BY c1 DESC;
166+
c1 c2
167+
11 12
168+
10 11
169+
9 10
170+
8 9
171+
7 8
172+
6 7
173+
5 6
174+
4 5
175+
3 4
176+
2 3
177+
1 2
178+
SELECT * FROM t1 WHERE c1 >6;
179+
c1 c2
180+
7 8
181+
8 9
182+
9 10
183+
10 11
184+
11 12
185+
SELECT * FROM t1 WHERE c1 >6 ORDER BY c1;
186+
c1 c2
187+
7 8
188+
8 9
189+
9 10
190+
10 11
191+
11 12
192+
SELECT * FROM t1 WHERE c1 >6 ORDER BY c1 DESC;
193+
c1 c2
194+
11 12
195+
10 11
196+
9 10
197+
8 9
198+
7 8
199+
SELECT * FROM t1 WHERE c1 <6;
200+
c1 c2
201+
1 2
202+
2 3
203+
3 4
204+
4 5
205+
5 6
206+
SELECT * FROM t1 WHERE c1 <6 ORDER BY c1;
207+
c1 c2
208+
1 2
209+
2 3
210+
3 4
211+
4 5
212+
5 6
213+
SELECT * FROM t1 WHERE c1 <6 ORDER BY c1 DESC;
214+
c1 c2
215+
5 6
216+
4 5
217+
3 4
218+
2 3
219+
1 2
220+
UPDATE t1 SET c2=c2+1 ORDER BY c1 LIMIT 2;
221+
UPDATE t1 SET c2=c2+1 ORDER BY c1 DESC LIMIT 2;
222+
DROP TABLE t1;
223+
CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT, c3 VARCHAR(28)) ENGINE = TOKUDB;
224+
CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT, c3 VARCHAR(128)) ENGINE = INNODB;
225+
CREATE TABLE t3 (c1 INT, c2 INT, c3 INT, KEY(c1)) ENGINE=TOKUDB
226+
PARTITION BY RANGE(c1)
227+
(partition p1 values less than(10),partition p2 values less than(20),partition p3 values less than maxvalue);
228+
BEGIN;
229+
INSERT INTO t1 VALUES (1,2,3);
230+
INSERT INTO t2 VALUES (1,2,3);
231+
commit;
232+
BEGIN;
233+
UPDATE t2 SET c3=c3+1 WHERE c1 = 1;
234+
UPDATE t1 SET c3=c3+1 WHERE c1 = 2;
235+
COMMIT;
236+
BEGIN;
237+
UPDATE t2 SET c3=c3+1 WHERE c1 = 1;
238+
UPDATE t1 SET c3=c3+1 WHERE c1 = 2;
239+
ROLLBACK;
240+
SELECT * FROM t1 ORDER BY c1;
241+
c1 c2 c3
242+
1 2 3
243+
SELECT * FROM t2 ORDER BY c2;
244+
c1 c2 c3
245+
1 2 4
246+
BEGIN;
247+
DELETE FROM t1;
248+
DELETE FROM t2;
249+
COMMIT;
250+
BEGIN;
251+
INSERT INTO t3 VALUES (1,2,3),(3,4,5),(8,9,10),(12,13,56),(17,7,7),(44,43,22),(56,65,3);
252+
COMMIT;
253+
SELECT * FROM t3 ORDER BY c1 LIMIT 5;
254+
c1 c2 c3
255+
1 2 3
256+
3 4 5
257+
8 9 10
258+
12 13 56
259+
17 7 7
260+
SELECT * FROM t3 where c2 =2;
261+
c1 c2 c3
262+
1 2 3
263+
SELECT * FROM t3 where c1 > 17;
264+
c1 c2 c3
265+
44 43 22
266+
56 65 3
267+
SELECT MAX(c2) FROM t3;
268+
MAX(c2)
269+
65
270+
UPDATE t3 SET c2=c2+1;
271+
DELETE FROM t3;
272+
DROP TABLE t3;
273+
CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 INT) ENGINE=TOKUDB;
274+
INSERT INTO t3 VALUES (1,1),(2,2),(3,3);
275+
SELECT MAX(c1) FROM t3;
276+
MAX(c1)
277+
3
278+
show status like '%tokudb_rows%';
279+
Variable_name Value
280+
Tokudb_rows_inserted 41
281+
Tokudb_rows_read 98
282+
Tokudb_rows_deleted 8
283+
Tokudb_rows_updated 19
284+
# Restart server.
285+
DROP TABLE t1;
286+
DROP TABLE t2;
287+
DROP TABLE t3;

0 commit comments

Comments
 (0)