summaryrefslogtreecommitdiff
path: root/storage/spider/mysql-test/spider/bugfix/t/mdev_27172.test
blob: 60c0ad4292116531fef8d94b8c409bb5ab9271e7 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
--echo #
--echo # MDEV-27172 Prefix indices on Spider tables may lead to wrong query results
--echo #

--disable_query_log
--disable_result_log
--source ../../t/test_init.inc
--enable_result_log
--enable_query_log

--connection child2_1
SET @general_log_backup = @@global.general_log;
SET @log_output_backup = @@global.log_output;
SET @@global.general_log = 1;
SET @@global.log_output = "TABLE";

CREATE DATABASE auto_test_remote;
USE auto_test_remote;

eval CREATE TABLE tbl_a (
  id int NOT NULL,
  greeting  VARCHAR(255),
  KEY(greeting)
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET;

eval CREATE TABLE tbl_b (
  id int NOT NULL,
  greeting VARCHAR(255),
  KEY k (greeting(5))
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET;

eval CREATE TABLE tbl_c (
  id int NOT NULL,
  greeting TEXT,
  KEY k (greeting(5))
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET;

TRUNCATE TABLE mysql.general_log;

--connection master_1
CREATE DATABASE auto_test_local;
USE auto_test_local;

# = (equality)
eval CREATE TABLE tbl_a (
  id int NOT NULL,
  greeting VARCHAR(255),
  KEY k (greeting)
) $MASTER_1_ENGINE $MASTER_1_CHARSET COMMENT='table "tbl_a", srv "s_2_1"';

INSERT INTO tbl_a VALUES (1, "Hi!"),(2, "Aloha!"),(3, "Aloha!!!");
SELECT * FROM tbl_a WHERE greeting = "Aloha!"
  AND CASE greeting WHEN "Aloha!" THEN "one" ELSE 'more' END = "one"; # hack to disable GBH

# LIKE
eval CREATE TABLE tbl_b (
  id int NOT NULL,
  greeting VARCHAR(255),
  KEY k (greeting(5))
) $MASTER_1_ENGINE $MASTER_1_CHARSET COMMENT='table "tbl_b", srv "s_2_1"';

INSERT INTO tbl_b VALUES (1, "Hi!"),(2, "Aloha!"),(3, "Aloha!!!");
SELECT * FROM tbl_b WHERE greeting = "Aloha!"
  AND CASE greeting WHEN "Aloha!" THEN "one" ELSE 'more' END = "one"; # hack to disable GBH

# LIKE
eval CREATE TABLE tbl_c (
  id int NOT NULL,
  greeting TEXT,
  KEY k (greeting(5))
) $MASTER_1_ENGINE $MASTER_1_CHARSET COMMENT='table "tbl_c", srv "s_2_1"';

INSERT INTO tbl_c VALUES (1, "Hi!"),(2, "Aloha!"),(3, "Aloha!!!");
SELECT * FROM tbl_c WHERE greeting = "Aloha!"
  AND CASE greeting WHEN "Aloha!" THEN "one" ELSE 'more' END = "one"; # hack to disable GBH

--connection child2_1
SELECT argument FROM mysql.general_log WHERE argument LIKE 'select `id`,`greeting` from %';

--connection child2_1
SET @@global.general_log = @general_log_backup;
SET @@global.log_output = @log_output_backup;
DROP DATABASE auto_test_remote;

--connection master_1
DROP DATABASE auto_test_local;

--disable_query_log
--disable_result_log
--source ../../t/test_deinit.inc
--enable_result_log
--enable_query_log