1--source include/have_utf8.inc
2--source include/have_innodb.inc
3--disable_warnings
4drop table if exists `T1a`;
5drop table if exists `T1b`;
6drop table if exists `T2a`;
7drop table if exists `T2b`;
8drop table if exists `T3a`;
9drop table if exists `T3b`;
10drop table if exists `T4a`;
11drop table if exists `T4b`;
12drop table if exists `T5a`;
13drop table if exists `T5b`;
14drop table if exists `T6a`;
15drop table if exists `T6b`;
16drop table if exists `T7a`;
17drop table if exists `T7b`;
18drop table if exists `T8a`;
19drop table if exists `T8b`;
20drop table if exists `T9a`;
21drop table if exists `T9b`;
22--enable_warnings
23
24#
25# Test table JOIN using Japanese characters in utf8
26#
27
28SET NAMES utf8;
29SET character_set_database = utf8;
30
31CREATE TABLE `T1a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = InnoDB;
32CREATE TABLE `T1b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = InnoDB;
33CREATE TABLE `T2a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = InnoDB;
34CREATE TABLE `T2b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = InnoDB;
35CREATE TABLE `T3a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = InnoDB;
36CREATE TABLE `T3b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = InnoDB;
37CREATE TABLE `T4a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MyISAM;
38CREATE TABLE `T4b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MyISAM;
39CREATE TABLE `T5a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MyISAM;
40CREATE TABLE `T5b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MyISAM;
41CREATE TABLE `T6a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MyISAM;
42CREATE TABLE `T6b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MyISAM;
43CREATE TABLE `T7a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MEMORY;
44CREATE TABLE `T7b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MEMORY;
45CREATE TABLE `T8a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MEMORY;
46CREATE TABLE `T8b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MEMORY;
47CREATE TABLE `T9a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MEMORY;
48CREATE TABLE `T9b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = MEMORY;
49
50#insert the following data in each table
51# jisx0201 hankaku-katakana data
52# jisx0208 data
53# jisx0212 supplemental character data
54
55INSERT INTO `T1a` VALUES ('ア'),('カ'),('サ');
56INSERT INTO `T1b` VALUES ('ア');
57INSERT INTO `T2a` VALUES ('あ'),('か'),('さ');
58INSERT INTO `T2b` VALUES ('あ');
59INSERT INTO `T3a` VALUES ('龔'),('龖'),('龗');
60INSERT INTO `T3b` VALUES ('龔');
61INSERT INTO `T4a` VALUES ('ア'),('カ'),('サ');
62INSERT INTO `T4b` VALUES ('ア');
63INSERT INTO `T5a` VALUES ('あ'),('か'),('さ');
64INSERT INTO `T5b` VALUES ('あ');
65INSERT INTO `T6a` VALUES ('龔'),('龖'),('龗');
66INSERT INTO `T6b` VALUES ('龔');
67INSERT INTO `T7a` VALUES ('ア'),('カ'),('サ');
68INSERT INTO `T7b` VALUES ('ア');
69INSERT INTO `T8a` VALUES ('あ'),('か'),('さ');
70INSERT INTO `T8b` VALUES ('あ');
71INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗');
72INSERT INTO `T9b` VALUES ('龔');
73
74#Test for InnoDB
75SELECT * FROM `T1a` JOIN `T1b`;
76SELECT * FROM `T1a` INNER JOIN `T1b`;
77SELECT * FROM `T1a` JOIN `T1b` USING (`C1`);
78SELECT * FROM `T1a` INNER JOIN `T1b` USING (`C1`);
79SELECT * FROM `T1a` CROSS JOIN `T1b`;
80SELECT * FROM `T1a` LEFT JOIN `T1b` USING (`C1`);
81SELECT * FROM `T1a` LEFT JOIN `T1b` ON (`T1a`.`C1` = `T1b`.`C1`);
82SELECT * FROM `T1b` RIGHT JOIN `T1a` USING (`C1`);
83SELECT * FROM `T1b` RIGHT JOIN `T1a` ON (`T1a`.`C1` = `T1b`.`C1`);
84SELECT * FROM `T2a` JOIN `T2b`;
85SELECT * FROM `T2a` INNER JOIN `T2b`;
86SELECT * FROM `T2a` JOIN `T2b` USING (`C1`);
87SELECT * FROM `T2a` INNER JOIN `T2b` USING (`C1`);
88SELECT * FROM `T2a` CROSS JOIN `T2b`;
89SELECT * FROM `T2a` LEFT JOIN `T2b` USING (`C1`);
90SELECT * FROM `T2a` LEFT JOIN `T2b` ON (`T2a`.`C1` = `T2b`.`C1`);
91SELECT * FROM `T2b` RIGHT JOIN `T2a` USING (`C1`);
92SELECT * FROM `T2b` RIGHT JOIN `T2a` ON (`T2a`.`C1` = `T2b`.`C1`);
93SELECT * FROM `T3a` JOIN `T3b`;
94SELECT * FROM `T3a` INNER JOIN `T3b`;
95SELECT * FROM `T3a` JOIN `T3b` USING (`C1`);
96SELECT * FROM `T3a` INNER JOIN `T3b` USING (`C1`);
97SELECT * FROM `T3a` CROSS JOIN `T3b`;
98SELECT * FROM `T3a` LEFT JOIN `T3b` USING (`C1`);
99SELECT * FROM `T3a` LEFT JOIN `T3b` ON (`T3a`.`C1` = `T3b`.`C1`);
100SELECT * FROM `T3b` RIGHT JOIN `T3a` USING (`C1`);
101SELECT * FROM `T3b` RIGHT JOIN `T3a` ON (`T3a`.`C1` = `T3b`.`C1`);
102
103#Test for myisam
104SELECT * FROM `T4a` JOIN `T4b`;
105SELECT * FROM `T4a` INNER JOIN `T4b`;
106SELECT * FROM `T4a` JOIN `T4b` USING (`C1`);
107SELECT * FROM `T4a` INNER JOIN `T4b` USING (`C1`);
108SELECT * FROM `T4a` CROSS JOIN `T4b`;
109SELECT * FROM `T4a` LEFT JOIN `T4b` USING (`C1`);
110SELECT * FROM `T4a` LEFT JOIN `T4b` ON (`T4a`.`C1` = `T4b`.`C1`);
111SELECT * FROM `T4b` RIGHT JOIN `T4a` USING (`C1`);
112SELECT * FROM `T4b` RIGHT JOIN `T4a` ON (`T4a`.`C1` = `T4b`.`C1`);
113SELECT * FROM `T5a` JOIN `T5b`;
114SELECT * FROM `T5a` INNER JOIN `T5b`;
115SELECT * FROM `T5a` JOIN `T5b` USING (`C1`);
116SELECT * FROM `T5a` INNER JOIN `T5b` USING (`C1`);
117SELECT * FROM `T5a` CROSS JOIN `T5b`;
118SELECT * FROM `T5a` LEFT JOIN `T5b` USING (`C1`);
119SELECT * FROM `T5a` LEFT JOIN `T5b` ON (`T5a`.`C1` = `T5b`.`C1`);
120SELECT * FROM `T5b` RIGHT JOIN `T5a` USING (`C1`);
121SELECT * FROM `T5b` RIGHT JOIN `T5a` ON (`T5a`.`C1` = `T5b`.`C1`);
122SELECT * FROM `T6a` JOIN `T6b`;
123SELECT * FROM `T6a` INNER JOIN `T6b`;
124SELECT * FROM `T6a` JOIN `T6b` USING (`C1`);
125SELECT * FROM `T6a` INNER JOIN `T6b` USING (`C1`);
126SELECT * FROM `T6a` CROSS JOIN `T6b`;
127SELECT * FROM `T6a` LEFT JOIN `T6b` USING (`C1`);
128SELECT * FROM `T6a` LEFT JOIN `T6b` ON (`T6a`.`C1` = `T6b`.`C1`);
129SELECT * FROM `T6b` RIGHT JOIN `T6a` USING (`C1`);
130SELECT * FROM `T6b` RIGHT JOIN `T6a` ON (`T6a`.`C1` = `T6b`.`C1`);
131
132#Test for MEMORY
133SELECT * FROM `T7a` JOIN `T7b`;
134SELECT * FROM `T7a` INNER JOIN `T7b`;
135SELECT * FROM `T7a` JOIN `T7b` USING (`C1`);
136SELECT * FROM `T7a` INNER JOIN `T7b` USING (`C1`);
137SELECT * FROM `T7a` CROSS JOIN `T7b`;
138SELECT * FROM `T7a` LEFT JOIN `T7b` USING (`C1`);
139SELECT * FROM `T7a` LEFT JOIN `T7b` ON (`T7a`.`C1` = `T7b`.`C1`);
140SELECT * FROM `T7b` RIGHT JOIN `T7a` USING (`C1`);
141SELECT * FROM `T7b` RIGHT JOIN `T7a` ON (`T7a`.`C1` = `T7b`.`C1`);
142SELECT * FROM `T8a` JOIN `T8b`;
143SELECT * FROM `T8a` INNER JOIN `T8b`;
144SELECT * FROM `T8a` JOIN `T8b` USING (`C1`);
145SELECT * FROM `T8a` INNER JOIN `T8b` USING (`C1`);
146SELECT * FROM `T8a` CROSS JOIN `T8b`;
147SELECT * FROM `T8a` LEFT JOIN `T8b` USING (`C1`);
148SELECT * FROM `T8a` LEFT JOIN `T8b` ON (`T8a`.`C1` = `T8b`.`C1`);
149SELECT * FROM `T8b` RIGHT JOIN `T8a` USING (`C1`);
150SELECT * FROM `T8b` RIGHT JOIN `T8a` ON (`T8a`.`C1` = `T8b`.`C1`);
151SELECT * FROM `T9a` JOIN `T9b`;
152SELECT * FROM `T9a` INNER JOIN `T9b`;
153SELECT * FROM `T9a` JOIN `T9b` USING (`C1`);
154SELECT * FROM `T9a` INNER JOIN `T9b` USING (`C1`);
155SELECT * FROM `T9a` CROSS JOIN `T9b`;
156SELECT * FROM `T9a` LEFT JOIN `T9b` USING (`C1`);
157SELECT * FROM `T9a` LEFT JOIN `T9b` ON (`T9a`.`C1` = `T9b`.`C1`);
158SELECT * FROM `T9b` RIGHT JOIN `T9a` USING (`C1`);
159SELECT * FROM `T9b` RIGHT JOIN `T9a` ON (`T9a`.`C1` = `T9b`.`C1`);
160
161DROP TABLE `T1a`;
162DROP TABLE `T1b`;
163DROP TABLE `T2a`;
164DROP TABLE `T2b`;
165DROP TABLE `T3a`;
166DROP TABLE `T3b`;
167DROP TABLE `T4a`;
168DROP TABLE `T4b`;
169DROP TABLE `T5a`;
170DROP TABLE `T5b`;
171DROP TABLE `T6a`;
172DROP TABLE `T6b`;
173DROP TABLE `T7a`;
174DROP TABLE `T7b`;
175DROP TABLE `T8a`;
176DROP TABLE `T8b`;
177DROP TABLE `T9a`;
178DROP TABLE `T9b`;
179