1SET @ORIG_PAUSE_BACKGROUND_WORK = @@ROCKSDB_PAUSE_BACKGROUND_WORK;
2SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK = 1;
3DROP TABLE IF EXISTS t1;
4CREATE TABLE t1 (
5i INT PRIMARY KEY,
6t TINYINT,
7s SMALLINT,
8m MEDIUMINT,
9b BIGINT
10) ENGINE=rocksdb;
11INSERT INTO t1 (i,t,s,m,b) VALUES (1,2,3,4,5),(1000,100,10000,1000000,1000000000000000000),(5,100,10000,1000000,100000000000000000),(2,3,4,5,6),(3,4,5,6,7),(101,102,103,104,105),(10001,103,10002,10003,10004),(10,11,12,13,14),(11,12,13,14,15),(12,13,14,15,16);
12EXPLAIN SELECT i FROM t1 ORDER BY i;
13id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
141	SIMPLE	t1	index	NULL	PRIMARY	4	NULL	#	Using index
15SELECT i FROM t1 ORDER BY i;
16i
171
182
193
205
2110
2211
2312
24101
251000
2610001
27DROP TABLE t1;
28CREATE TABLE t1 (
29i INT,
30t TINYINT,
31s SMALLINT,
32m MEDIUMINT,
33b BIGINT,
34pk SMALLINT AUTO_INCREMENT PRIMARY KEY,
35INDEX s_m (s,m)
36) ENGINE=rocksdb;
37INSERT INTO t1 (i,t,s,m,b) VALUES (1,2,3,4,5),(1000,100,10000,1000000,1000000000000000000),(5,100,10000,1000000,100000000000000000),(2,3,4,5,6),(3,4,5,6,7),(101,102,103,104,105),(10001,103,10002,10003,10004),(10,11,12,13,14),(11,12,13,14,15),(12,13,14,15,16);
38EXPLAIN SELECT s, m FROM t1 WHERE s != 10 AND m != 1;
39id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
401	SIMPLE	t1	index	s_m	s_m	7	NULL	#	Using where; Using index
41SELECT s, m FROM t1 WHERE s != 10 AND m != 1;
42s	m
4310000	1000000
4410000	1000000
4510002	10003
46103	104
4712	13
4813	14
4914	15
503	4
514	5
525	6
53DROP TABLE t1;
54# RocksDB: unique indexes allowed
55CREATE TABLE t1 (
56i INT,
57t TINYINT,
58s SMALLINT,
59m MEDIUMINT,
60b BIGINT,
61pk MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
62UNIQUE KEY b_t (b,t)
63) ENGINE=rocksdb;
64INSERT INTO t1 (i,t,s,m,b) VALUES (1,2,3,4,5),(1000,100,10000,1000000,1000000000000000000),(5,100,10000,1000000,100000000000000000),(2,3,4,5,6),(3,4,5,6,7),(101,102,103,104,105),(10001,103,10002,10003,10004),(10,11,12,13,14),(11,12,13,14,15),(12,13,14,15,16);
65SELECT b+t FROM t1 WHERE (b,t) IN ( SELECT b, t FROM t1 WHERE i>1 ) ORDER BY b+t;
66b+t
679
6811
6925
7027
7129
72207
7310107
74100000000000000100
751000000000000000100
76SELECT b+t FROM t1 FORCE INDEX (b_t) WHERE (b,t) IN ( SELECT b, t FROM t1 WHERE i>1 ) ORDER BY b+t;
77b+t
789
7911
8025
8127
8229
83207
8410107
85100000000000000100
861000000000000000100
87SELECT b+t FROM t1 IGNORE INDEX (b_t) WHERE (b,t) IN ( SELECT b, t FROM t1 WHERE i>1 ) ORDER BY b+t;
88b+t
899
9011
9125
9227
9329
94207
9510107
96100000000000000100
971000000000000000100
98DROP TABLE t1;
99SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK = @ORIG_PAUSE_BACKGROUND_WORK;
100