summaryrefslogtreecommitdiff
path: root/storage/rocksdb/mysql-test/rocksdb/t/covered_unpack_info_format.test
blob: ccd91a61ff01cc99c7c3df74fa76b57805d26f1a (plain)
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
79
# Disable until covered unpack_info format enabled in prod
--source include/have_debug.inc
--source include/not_debug.inc

--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings

#
# Normal case
#

CREATE TABLE t1 (
  id INT,
  fake_id INT,
  bigfield VARCHAR(4096),
  PRIMARY KEY (id),
  KEY bf (bigfield(32)),
  KEY fid (fake_id, bigfield(32))
) ENGINE=rocksdb;

INSERT INTO t1 VALUES (1, 1001, REPEAT('a', 1)),
                      (8, 1008, REPEAT('b', 8)),
                      (24, 1024, REPEAT('c', 24)),
                      (31, 1031, REPEAT('d', 31)),
                      (32, 1032, REPEAT('x', 32)),
                      (33, 1033, REPEAT('y', 33)),
                      (128, 1128, REPEAT('z', 128));

SELECT * FROM t1;

--let $prefix_index_check_title= Eligible for optimization, access via fake_id only
--let $prefix_index_check_read_avoided_delta= 2
--let $prefix_index_check_query= SELECT id, bigfield FROM t1 FORCE INDEX(fid) WHERE fake_id = 1031
--source suite/rocksdb/include/prefix_index_only_query_check.inc

--let $prefix_index_check_title= Not eligible for optimization, access via fake_id of big row.
--let $prefix_index_check_read_avoided_delta= 0
--let $prefix_index_check_query= SELECT id, bigfield FROM t1 FORCE INDEX(fid) WHERE fake_id = 1033
--source suite/rocksdb/include/prefix_index_only_query_check.inc

DROP TABLE t1;

#
# Create same table with older format to test compatibility
#

set session debug= '+d,MYROCKS_NO_COVERED_BITMAP_FORMAT';
CREATE TABLE t1 (
  id INT,
  fake_id INT,
  bigfield VARCHAR(4096),
  PRIMARY KEY (id),
  KEY bf (bigfield(32)),
  KEY fid (fake_id, bigfield(32))
) ENGINE=rocksdb;
set session debug= '-d,MYROCKS_NO_COVERED_BITMAP_FORMAT';

INSERT INTO t1 VALUES (1, 1001, REPEAT('a', 1)),
                      (8, 1008, REPEAT('b', 8)),
                      (24, 1024, REPEAT('c', 24)),
                      (31, 1031, REPEAT('d', 31)),
                      (32, 1032, REPEAT('x', 32)),
                      (33, 1033, REPEAT('y', 33)),
                      (128, 1128, REPEAT('z', 128));

SELECT * FROM t1;

--let $prefix_index_check_title= No longer eligible for optimization since no covered bitmap was stored.
--let $prefix_index_check_read_avoided_delta= 0
--let $prefix_index_check_query= SELECT id, bigfield FROM t1 FORCE INDEX(fid) WHERE fake_id = 1031
--source suite/rocksdb/include/prefix_index_only_query_check.inc

--let $prefix_index_check_title= Not eligible for optimization.
--let $prefix_index_check_read_avoided_delta= 0
--let $prefix_index_check_query= SELECT id, bigfield FROM t1 FORCE INDEX(fid) WHERE fake_id = 1033
--source suite/rocksdb/include/prefix_index_only_query_check.inc

DROP TABLE t1;