summaryrefslogtreecommitdiff
path: root/storage/spider/mysql-test/spider/r/direct_join.result
blob: a1018c35fbf4ce3d346bcdc262ac7574336dd0cf (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
for master_1
for child2
child2_1
child2_2
child2_3
for child3
child3_1
child3_2
child3_3

drop and create databases
connection master_1;
DROP DATABASE IF EXISTS auto_test_local;
CREATE DATABASE auto_test_local;
USE auto_test_local;
connection child2_1;
SET @old_log_output = @@global.log_output;
SET GLOBAL log_output = 'TABLE,FILE';
DROP DATABASE IF EXISTS auto_test_remote;
CREATE DATABASE auto_test_remote;
USE auto_test_remote;

test select 1
connection master_1;
SELECT 1;
1
1
connection child2_1;
SELECT 1;
1
1

create table and insert
connection child2_1;
CHILD2_1_DROP_TABLES
CHILD2_1_DROP_TABLES6
CHILD2_1_DROP_TABLES5
CHILD2_1_CREATE_TABLES
CHILD2_1_CREATE_TABLES6
CHILD2_1_CREATE_TABLES5
TRUNCATE TABLE mysql.general_log;
connection master_1;
DROP TABLE IF EXISTS tbl_a;
CREATE TABLE tbl_a (
a INT DEFAULT 10,
b CHAR(1) DEFAULT 'c',
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a),
KEY idx1(b)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
CREATE TABLE tbl_b (
a INT DEFAULT 10,
b CHAR(1) DEFAULT 'c',
c DATETIME DEFAULT '1999-10-10 10:10:10'
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT5_2_1
CREATE TABLE tbl_c (
a INT AUTO_INCREMENT,
b INT DEFAULT 10,
c INT DEFAULT 11,
PRIMARY KEY(a),
KEY idx1(b),
KEY idx2(c)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1
insert into tbl_a values (1,'a','2000/01/01'),(2,'b','2000/01/02'),(3,'c','2000/01/03'),(4,'d','2000/01/04'),(5,'e','2000/01/05');
insert into tbl_b values (1,'a','2000/01/01'),(2,'b','2000/01/02'),(3,'c','2000/01/03'),(4,'d','2000/01/04'),(5,'e','2000/01/05');
insert into tbl_c values (1,10,100),(2,20,200),(3,30,300),(4,40,400),(5,50,500);

select test
connection child2_1;
TRUNCATE TABLE mysql.general_log;
connection master_1;
SELECT a.a, c.b, c.c FROM tbl_a a, tbl_b b, tbl_c c WHERE a.a = b.a and a.a = c.a ORDER BY a.b DESC LIMIT 1,2;
a	b	c
4	40	400
3	30	300
connection child2_1;
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %';
argument
select t0.`b` `b`,t0.`a` `a`,t2.`b` `b`,t2.`c` `c` from `auto_test_remote`.`ta_r` t0,`auto_test_remote`.`ta_r_3` t1,`auto_test_remote`.`ta_r_int` t2 where ((t0.`a` = t1.`a`) and (t2.`a` = t1.`a`)) order by t0.`b` desc limit 1,2
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'
SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_r ORDER BY a;
a	b	date_format(c, '%Y-%m-%d %H:%i:%s')
1	a	2000-01-01 00:00:00
2	b	2000-01-02 00:00:00
3	c	2000-01-03 00:00:00
4	d	2000-01-04 00:00:00
5	e	2000-01-05 00:00:00

Test JOIN on a constant table.
Spider should NOT push down the join because the tbl_person table
is optimized as a constant table.
connection child2_1;
CHILD2_1_DROP_CONST_TABLE_JOIN
CHILD2_1_DROP_CONST_TABLE2_JOIN
CHILD2_1_CREATE_CONST_TABLE_JOIN
CHILD2_1_CREATE_CONST_TABLE2_JOIN
TRUNCATE TABLE mysql.general_log;
connection master_1;
DROP TABLE IF EXISTS tbl_person;
DROP TABLE IF EXISTS tbl_ncd_cm_person;
CREATE TABLE tbl_person (
id VARCHAR(50) NOT NULL,
hr_status VARCHAR(50) NULL DEFAULT NULL,
region_code VARCHAR(50) NULL DEFAULT NULL,
region INT(11) NOT NULL,
PRIMARY KEY (id, region) USING BTREE
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_CONST_TABLE_JOIN
MASTER_1_ROW_FORMAT_CONST_TABLE_JOIN MASTER_1_PART_CONST_TABLE_JOIN
SHOW CREATE TABLE tbl_person
Table	Create Table
tbl_person	CREATE TABLE `tbl_person` (
  `id` varchar(50) NOT NULL,
  `hr_status` varchar(50) DEFAULT NULL,
  `region_code` varchar(50) DEFAULT NULL,
  `region` int(11) NOT NULL,
  PRIMARY KEY (`id`,`region`) USING BTREE
) ENGINE=SPIDER DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='table "tbl_ncd_cm_person"'
 PARTITION BY LIST  COLUMNS(`region`)
(PARTITION `pt1` VALUES IN (510411) COMMENT = 'tbl "tbl_person", srv "s_2_1"' ENGINE = SPIDER)
CREATE TABLE tbl_ncd_cm_person (
id VARCHAR(50) NOT NULL,
person_id VARCHAR(50) NULL DEFAULT '',
diseaseKind_id VARCHAR(50) NULL DEFAULT NULL,
region INT(11) NOT NULL,
PRIMARY KEY (id, region) USING BTREE
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_CONST_TABLE2_JOIN
MASTER_1_ROW_FORMAT_CONST_TABLE_JOIN MASTER_1_PART_CONST_TABLE2_JOIN
SHOW CREATE TABLE tbl_ncd_cm_person
Table	Create Table
tbl_ncd_cm_person	CREATE TABLE `tbl_ncd_cm_person` (
  `id` varchar(50) NOT NULL,
  `person_id` varchar(50) DEFAULT '',
  `diseaseKind_id` varchar(50) DEFAULT NULL,
  `region` int(11) NOT NULL,
  PRIMARY KEY (`id`,`region`) USING BTREE
) ENGINE=SPIDER DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
 PARTITION BY LIST  COLUMNS(`region`)
(PARTITION `pt1` VALUES IN (510411) COMMENT = 'tbl "tbl_ncd_cm_person", srv "s_2_1"' ENGINE = SPIDER)
INSERT INTO tbl_person VALUES ('24FC3F0A5119432BAE13DD65AABAA39C',
'1', '123-51041110620301-321', 510411);
INSERT INTO tbl_person VALUES ('123456789012345678901234567890AB',
'1', '123-51041110620301-321', 510411);
INSERT INTO tbl_ncd_cm_person VALUES ('123456789',
'24FC3F0A5119432BAE13DD65AABAA39C',
'52A0328740914BCE86ED10A4D2521816',
510411);
INSERT INTO tbl_ncd_cm_person VALUES ('123456789AB',
'123456789012345678901234567890AB',
'52A0328740914BCE86ED10A4D2521816',
510411);
DELETE FROM tbl_ncd_cm_person;
INSERT INTO tbl_ncd_cm_person VALUES ('123456789',
'24FC3F0A5119432BAE13DD65AABAA39C',
'52A0328740914BCE86ED10A4D2521816',
510411);
INSERT INTO tbl_ncd_cm_person VALUES ('123456789AB',
'123456789012345678901234567890AB',
'52A0328740914BCE86ED10A4D2521816',
510411);
connection child2_1;
TRUNCATE TABLE mysql.general_log;
connection master_1;
SELECT count(0) FROM tbl_person tp INNER JOIN tbl_ncd_cm_person tncp ON tp.id = tncp.person_id WHERE 1 = 1 AND tp.hr_status != "99" AND tp.hr_status != "2" AND tp.region_code LIKE CONCAT(CONCAT('%', '51041110620301', '%')) AND tp.id = '24FC3F0A5119432BAE13DD65AABAA39C' AND tncp.diseaseKind_id = '52A0328740914BCE86ED10A4D2521816' AND tp.region = 510411;
count(0)
1
connection child2_1;
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %';
argument
select `id`,`hr_status`,`region_code`,`region` from `auto_test_remote`.`tbl_person` where `id` = '24FC3F0A5119432BAE13DD65AABAA39C' and `region` = 510411
select count(0) `count(0)` from `auto_test_remote`.`tbl_ncd_cm_person` t0 where ((t0.`person_id` = '24FC3F0A5119432BAE13DD65AABAA39C') and (t0.`diseaseKind_id` = '52A0328740914BCE86ED10A4D2521816'))
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'
SELECT * FROM tbl_person;
id	hr_status	region_code	region
123456789012345678901234567890AB	1	123-51041110620301-321	510411
24FC3F0A5119432BAE13DD65AABAA39C	1	123-51041110620301-321	510411
SELECT * FROM tbl_ncd_cm_person;
id	person_id	diseaseKind_id	region
123456789	24FC3F0A5119432BAE13DD65AABAA39C	52A0328740914BCE86ED10A4D2521816	510411
123456789AB	123456789012345678901234567890AB	52A0328740914BCE86ED10A4D2521816	510411

deinit
connection master_1;
DROP DATABASE IF EXISTS auto_test_local;
connection child2_1;
DROP DATABASE IF EXISTS auto_test_remote;
SET GLOBAL log_output = @old_log_output;
for master_1
for child2
child2_1
child2_2
child2_3
for child3
child3_1
child3_2
child3_3

end of test