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
|
--source include/have_ujis.inc
--disable_warnings
drop table if exists `£Ô£±`;
drop table if exists `£Ô£²`;
drop table if exists `£Ô£³`;
drop table if exists `£Ô£Ž`;
drop table if exists `£Ô£µ`;
drop table if exists `£Ô£¶`;
drop table if exists `£Ô£·`;
drop table if exists `£Ô£ž`;
drop table if exists `£Ô£¹`;
drop table if exists `£Ô£±£°`;
drop table if exists `£Ô£±£±`;
drop table if exists `£Ô£±£²`;
--enable_warnings
#
# Test UNION with Japanese characters in ujis encoding
#
SET NAMES ujis;
SET character_set_database = ujis;
#InnoDB
CREATE TABLE `£Ô£±` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = innodb;
CREATE TABLE `£Ô£²` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = innodb;
CREATE TABLE `£Ô£³` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = innodb;
INSERT INTO `£Ô£±` VALUES('±'),('±'),('€¢'),('€¢'),('íÜ'),('íÜ');
INSERT INTO `£Ô£²` VALUES('²'),('²'),('€€'),('€€'),('íÝ'),('íÝ');
INSERT INTO `£Ô£³` VALUES('³'),('³'),('€Š'),('€Š'),('íÞ'),('íÞ');
SELECT * FROM `£Ô£±` UNION DISTINCT SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
(SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) UNION (SELECT '€Š') ORDER BY `£Ã£±`;
(SELECT '€Š' AS `£Ã£±`) UNION (SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) ORDER BY `£Ã£±`;
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£±` GROUP BY `£Ã£±` UNION
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£²` GROUP BY `£Ã£±` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION DISTINCT
SELECT * FROM `£Ô£²` UNION ALL
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL
SELECT * FROM `£Ô£²` UNION DISTINCT
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION SELECT REPEAT(`£Ã£±`,5) FROM `£Ô£²` ORDER BY `£Ã£±`;
DROP TABLE `£Ô£±` ;
DROP TABLE `£Ô£²` ;
DROP TABLE `£Ô£³` ;
#MyISAM
CREATE TABLE `£Ô£±` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = MYISAM;
CREATE TABLE `£Ô£²` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = MYISAM;
CREATE TABLE `£Ô£³` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = MYISAM;
INSERT INTO `£Ô£±` VALUES('±'),('±'),('€¢'),('€¢'),('íÜ'),('íÜ');
INSERT INTO `£Ô£²` VALUES('²'),('²'),('€€'),('€€'),('íÝ'),('íÝ');
INSERT INTO `£Ô£³` VALUES('³'),('³'),('€Š'),('€Š'),('íÞ'),('íÞ');
SELECT * FROM `£Ô£±` UNION DISTINCT SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
(SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) UNION (SELECT '€Š') ORDER BY `£Ã£±`;
(SELECT '€Š' AS `£Ã£±`) UNION (SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) ORDER BY `£Ã£±`;
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£±` GROUP BY `£Ã£±` UNION
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£²` GROUP BY `£Ã£±` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION DISTINCT
SELECT * FROM `£Ô£²` UNION ALL
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL
SELECT * FROM `£Ô£²` UNION DISTINCT
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION SELECT REPEAT(`£Ã£±`,5) FROM `£Ô£²` ORDER BY `£Ã£±`;
DROP TABLE `£Ô£±` ;
DROP TABLE `£Ô£²` ;
DROP TABLE `£Ô£³` ;
#HEAP
CREATE TABLE `£Ô£±` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = HEAP;
CREATE TABLE `£Ô£²` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = HEAP;
CREATE TABLE `£Ô£³` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = HEAP;
INSERT INTO `£Ô£±` VALUES('±'),('±'),('€¢'),('€¢'),('íÜ'),('íÜ');
INSERT INTO `£Ô£²` VALUES('²'),('²'),('€€'),('€€'),('íÝ'),('íÝ');
INSERT INTO `£Ô£³` VALUES('³'),('³'),('€Š'),('€Š'),('íÞ'),('íÞ');
SELECT * FROM `£Ô£±` UNION DISTINCT SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
(SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) UNION (SELECT '€Š') ORDER BY `£Ã£±`;
(SELECT '€Š' AS `£Ã£±`) UNION (SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) ORDER BY `£Ã£±`;
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£±` GROUP BY `£Ã£±` UNION
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£²` GROUP BY `£Ã£±` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION DISTINCT
SELECT * FROM `£Ô£²` UNION ALL
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL
SELECT * FROM `£Ô£²` UNION DISTINCT
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION SELECT REPEAT(`£Ã£±`,5) FROM `£Ô£²` ORDER BY `£Ã£±`;
DROP TABLE `£Ô£±` ;
DROP TABLE `£Ô£²` ;
DROP TABLE `£Ô£³` ;
#BDB
CREATE TABLE `£Ô£±` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = BDB;
CREATE TABLE `£Ô£²` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = BDB;
CREATE TABLE `£Ô£³` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = BDB;
INSERT INTO `£Ô£±` VALUES('±'),('±'),('€¢'),('€¢'),('íÜ'),('íÜ');
INSERT INTO `£Ô£²` VALUES('²'),('²'),('€€'),('€€'),('íÝ'),('íÝ');
INSERT INTO `£Ô£³` VALUES('³'),('³'),('€Š'),('€Š'),('íÞ'),('íÞ');
SELECT * FROM `£Ô£±` UNION DISTINCT SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
(SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) UNION (SELECT '€Š') ORDER BY `£Ã£±`;
(SELECT '€Š' AS `£Ã£±`) UNION (SELECT * FROM `£Ô£±`) UNION (SELECT * FROM `£Ô£²`) ORDER BY `£Ã£±`;
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£±` GROUP BY `£Ã£±` UNION
SELECT `£Ã£±`, COUNT(*) FROM `£Ô£²` GROUP BY `£Ã£±` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION DISTINCT
SELECT * FROM `£Ô£²` UNION ALL
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL
SELECT * FROM `£Ô£²` UNION DISTINCT
SELECT * FROM `£Ô£³` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION SELECT REPEAT(`£Ã£±`,5) FROM `£Ô£²` ORDER BY `£Ã£±`;
DROP TABLE `£Ô£±` ;
DROP TABLE `£Ô£²` ;
DROP TABLE `£Ô£³` ;
# Test mixed strage engine
CREATE TABLE `£Ô£±` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = InnoDB;
CREATE TABLE `£Ô£²` (`£Ã£±` char(1), INDEX(`£Ã£±`)) DEFAULT CHARSET = ujis engine = MyISAM;
INSERT INTO `£Ô£±` VALUES('±'),('±'),('€¢'),('€¢'),('íÜ'),('íÜ');
INSERT INTO `£Ô£²` VALUES('²'),('²'),('€€'),('€€'),('íÝ'),('íÝ');
SELECT * FROM `£Ô£±` UNION DISTINCT SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
SELECT * FROM `£Ô£±` UNION ALL SELECT * FROM `£Ô£²` ORDER BY `£Ã£±`;
DROP TABLE `£Ô£±`;
DROP TABLE `£Ô£²`;
|