1#
2# MDEV-9711 NO PAD Collatons
3#
4SET character_set_connection=dec8;
5SET DEFAULT_STORAGE_ENGINE=MyISAM;
6#
7# Start of ctype_pad.inc
8#
9#
10# Unique indexes
11#
12CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'dec8_swedish_nopad_ci';
13SHOW CREATE TABLE t1;
14Table	Create Table
15t1	CREATE TABLE `t1` (
16  `a` varchar(10) COLLATE dec8_swedish_nopad_ci NOT NULL,
17  PRIMARY KEY (`a`)
18) ENGINE=MyISAM DEFAULT CHARSET=dec8 COLLATE=dec8_swedish_nopad_ci
19INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
20SELECT HEX(a), a FROM t1 ORDER BY a;
21HEX(a)	a
222061	 a
23206120	 a
2461202020	a
25616263	abc
266162632020	abc
27SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
28HEX(a)	a
292061	 a
30206120	 a
3161202020	a
32616263	abc
336162632020	abc
34SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
35HEX(a)	a
366162632020	abc
37616263	abc
3861202020	a
39206120	 a
402061	 a
41#
42# UNION
43#
44CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'dec8_swedish_nopad_ci';
45INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
46SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
47HEX(a)	a
482061	 a
49206120	 a
506120	a
5161202020	a
52616263	abc
5361626320	abc
546162632020	abc
55DROP TABLE t1;
56DROP TABLE t2;
57#
58# DISTINCT, COUNT, MAX
59#
60CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_swedish_nopad_ci';
61INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
62SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
63HEX(a)	a
642061	 a
65206120	 a
6661	a
67612020	a
6861202020	a
69SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
70COUNT(DISTINCT a)
715
72SELECT HEX(MAX(a)), MAX(a) FROM t1;
73HEX(MAX(a))	MAX(a)
7461202020	a
75#
76# GROUP BY
77#
78CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'dec8_swedish_nopad_ci';
79INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
80SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
81HEX(a)	cnt
826161	1
8361612020	1
846162	2
85DROP TABLE t2;
86#
87# Weights
88#
89SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
90HEX(WEIGHT_STRING(a AS CHAR(10)))
9141000000000000000000
9241202000000000000000
9320410000000000000000
9420412000000000000000
9541202020000000000000
96DROP TABLE t1;
97#
98# IF, CASE, LEAST
99#
100SELECT IF('abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ', 'pad', 'nopad');
101IF('abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ', 'pad', 'nopad')
102nopad
103SELECT CASE 'abc' COLLATE 'dec8_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
104CASE 'abc' COLLATE 'dec8_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
105nopad
106SELECT CASE WHEN 'abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
107CASE WHEN 'abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
108nopad
109SELECT HEX(LEAST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '));
110HEX(LEAST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '))
11161626320
112SELECT HEX(GREATEST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '));
113HEX(GREATEST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '))
1146162632020
115#
116# Collation mix
117#
118CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_swedish_ci';
119INSERT INTO t1 VALUES ('a'),('a ');
120SELECT COUNT(*) FROM t1 WHERE a='a';
121COUNT(*)
1222
123SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_ci';
124COUNT(*)
1252
126SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_nopad_ci';
127COUNT(*)
1281
129ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'dec8_swedish_nopad_ci';
130SELECT COUNT(*) FROM t1 WHERE a='a';
131COUNT(*)
1321
133SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_ci';
134COUNT(*)
1352
136SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_nopad_ci';
137COUNT(*)
1381
139DROP TABLE t1;
140#
141# End of ctype_pad.inc
142#
143SET DEFAULT_STORAGE_ENGINE=HEAP;
144#
145# Start of ctype_pad.inc
146#
147#
148# Unique indexes
149#
150CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'dec8_swedish_nopad_ci';
151SHOW CREATE TABLE t1;
152Table	Create Table
153t1	CREATE TABLE `t1` (
154  `a` varchar(10) COLLATE dec8_swedish_nopad_ci NOT NULL,
155  PRIMARY KEY (`a`)
156) ENGINE=MEMORY DEFAULT CHARSET=dec8 COLLATE=dec8_swedish_nopad_ci
157INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
158SELECT HEX(a), a FROM t1 ORDER BY a;
159HEX(a)	a
1602061	 a
161206120	 a
16261202020	a
163616263	abc
1646162632020	abc
165SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
166HEX(a)	a
1672061	 a
168206120	 a
16961202020	a
170616263	abc
1716162632020	abc
172SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
173HEX(a)	a
1746162632020	abc
175616263	abc
17661202020	a
177206120	 a
1782061	 a
179#
180# UNION
181#
182CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'dec8_swedish_nopad_ci';
183INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
184SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
185HEX(a)	a
1862061	 a
187206120	 a
1886120	a
18961202020	a
190616263	abc
19161626320	abc
1926162632020	abc
193DROP TABLE t1;
194DROP TABLE t2;
195#
196# DISTINCT, COUNT, MAX
197#
198CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_swedish_nopad_ci';
199INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
200SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
201HEX(a)	a
2022061	 a
203206120	 a
20461	a
205612020	a
20661202020	a
207SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
208COUNT(DISTINCT a)
2095
210SELECT HEX(MAX(a)), MAX(a) FROM t1;
211HEX(MAX(a))	MAX(a)
21261202020	a
213#
214# GROUP BY
215#
216CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'dec8_swedish_nopad_ci';
217INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
218SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
219HEX(a)	cnt
2206161	1
22161612020	1
2226162	2
223DROP TABLE t2;
224#
225# Weights
226#
227SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
228HEX(WEIGHT_STRING(a AS CHAR(10)))
22941000000000000000000
23041202000000000000000
23120410000000000000000
23220412000000000000000
23341202020000000000000
234DROP TABLE t1;
235#
236# IF, CASE, LEAST
237#
238SELECT IF('abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ', 'pad', 'nopad');
239IF('abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ', 'pad', 'nopad')
240nopad
241SELECT CASE 'abc' COLLATE 'dec8_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
242CASE 'abc' COLLATE 'dec8_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
243nopad
244SELECT CASE WHEN 'abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
245CASE WHEN 'abc' COLLATE 'dec8_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
246nopad
247SELECT HEX(LEAST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '));
248HEX(LEAST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '))
24961626320
250SELECT HEX(GREATEST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '));
251HEX(GREATEST('abc ' COLLATE 'dec8_swedish_nopad_ci', 'abc  '))
2526162632020
253#
254# Collation mix
255#
256CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_swedish_ci';
257INSERT INTO t1 VALUES ('a'),('a ');
258SELECT COUNT(*) FROM t1 WHERE a='a';
259COUNT(*)
2602
261SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_ci';
262COUNT(*)
2632
264SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_nopad_ci';
265COUNT(*)
2661
267ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'dec8_swedish_nopad_ci';
268SELECT COUNT(*) FROM t1 WHERE a='a';
269COUNT(*)
2701
271SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_ci';
272COUNT(*)
2732
274SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_swedish_nopad_ci';
275COUNT(*)
2761
277DROP TABLE t1;
278#
279# End of ctype_pad.inc
280#
281SET DEFAULT_STORAGE_ENGINE=Default;
282SET DEFAULT_STORAGE_ENGINE=MyISAM;
283#
284# Start of ctype_pad.inc
285#
286#
287# Unique indexes
288#
289CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'dec8_nopad_bin';
290SHOW CREATE TABLE t1;
291Table	Create Table
292t1	CREATE TABLE `t1` (
293  `a` varchar(10) COLLATE dec8_nopad_bin NOT NULL,
294  PRIMARY KEY (`a`)
295) ENGINE=MyISAM DEFAULT CHARSET=dec8 COLLATE=dec8_nopad_bin
296INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
297SELECT HEX(a), a FROM t1 ORDER BY a;
298HEX(a)	a
2992061	 a
300206120	 a
30161202020	a
302616263	abc
3036162632020	abc
304SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
305HEX(a)	a
3062061	 a
307206120	 a
30861202020	a
309616263	abc
3106162632020	abc
311SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
312HEX(a)	a
3136162632020	abc
314616263	abc
31561202020	a
316206120	 a
3172061	 a
318#
319# UNION
320#
321CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'dec8_nopad_bin';
322INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
323SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
324HEX(a)	a
3252061	 a
326206120	 a
3276120	a
32861202020	a
329616263	abc
33061626320	abc
3316162632020	abc
332DROP TABLE t1;
333DROP TABLE t2;
334#
335# DISTINCT, COUNT, MAX
336#
337CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_nopad_bin';
338INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
339SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
340HEX(a)	a
3412061	 a
342206120	 a
34361	a
344612020	a
34561202020	a
346SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
347COUNT(DISTINCT a)
3485
349SELECT HEX(MAX(a)), MAX(a) FROM t1;
350HEX(MAX(a))	MAX(a)
35161202020	a
352#
353# GROUP BY
354#
355CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'dec8_nopad_bin';
356INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
357SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
358HEX(a)	cnt
3596161	1
36061612020	1
3616162	2
362DROP TABLE t2;
363#
364# Weights
365#
366SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
367HEX(WEIGHT_STRING(a AS CHAR(10)))
36861000000000000000000
36961202000000000000000
37020610000000000000000
37120612000000000000000
37261202020000000000000
373DROP TABLE t1;
374#
375# IF, CASE, LEAST
376#
377SELECT IF('abc' COLLATE 'dec8_nopad_bin' = 'abc ', 'pad', 'nopad');
378IF('abc' COLLATE 'dec8_nopad_bin' = 'abc ', 'pad', 'nopad')
379nopad
380SELECT CASE 'abc' COLLATE 'dec8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
381CASE 'abc' COLLATE 'dec8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
382nopad
383SELECT CASE WHEN 'abc' COLLATE 'dec8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
384CASE WHEN 'abc' COLLATE 'dec8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
385nopad
386SELECT HEX(LEAST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '));
387HEX(LEAST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '))
38861626320
389SELECT HEX(GREATEST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '));
390HEX(GREATEST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '))
3916162632020
392#
393# Collation mix
394#
395CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_bin';
396INSERT INTO t1 VALUES ('a'),('a ');
397SELECT COUNT(*) FROM t1 WHERE a='a';
398COUNT(*)
3992
400SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_bin';
401COUNT(*)
4022
403SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_nopad_bin';
404COUNT(*)
4051
406ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'dec8_nopad_bin';
407SELECT COUNT(*) FROM t1 WHERE a='a';
408COUNT(*)
4091
410SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_bin';
411COUNT(*)
4122
413SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_nopad_bin';
414COUNT(*)
4151
416DROP TABLE t1;
417#
418# End of ctype_pad.inc
419#
420SET DEFAULT_STORAGE_ENGINE=HEAP;
421#
422# Start of ctype_pad.inc
423#
424#
425# Unique indexes
426#
427CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'dec8_nopad_bin';
428SHOW CREATE TABLE t1;
429Table	Create Table
430t1	CREATE TABLE `t1` (
431  `a` varchar(10) COLLATE dec8_nopad_bin NOT NULL,
432  PRIMARY KEY (`a`)
433) ENGINE=MEMORY DEFAULT CHARSET=dec8 COLLATE=dec8_nopad_bin
434INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
435SELECT HEX(a), a FROM t1 ORDER BY a;
436HEX(a)	a
4372061	 a
438206120	 a
43961202020	a
440616263	abc
4416162632020	abc
442SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
443HEX(a)	a
4442061	 a
445206120	 a
44661202020	a
447616263	abc
4486162632020	abc
449SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
450HEX(a)	a
4516162632020	abc
452616263	abc
45361202020	a
454206120	 a
4552061	 a
456#
457# UNION
458#
459CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'dec8_nopad_bin';
460INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
461SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
462HEX(a)	a
4632061	 a
464206120	 a
4656120	a
46661202020	a
467616263	abc
46861626320	abc
4696162632020	abc
470DROP TABLE t1;
471DROP TABLE t2;
472#
473# DISTINCT, COUNT, MAX
474#
475CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_nopad_bin';
476INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
477SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
478HEX(a)	a
4792061	 a
480206120	 a
48161	a
482612020	a
48361202020	a
484SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
485COUNT(DISTINCT a)
4865
487SELECT HEX(MAX(a)), MAX(a) FROM t1;
488HEX(MAX(a))	MAX(a)
48961202020	a
490#
491# GROUP BY
492#
493CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'dec8_nopad_bin';
494INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
495SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
496HEX(a)	cnt
4976161	1
49861612020	1
4996162	2
500DROP TABLE t2;
501#
502# Weights
503#
504SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
505HEX(WEIGHT_STRING(a AS CHAR(10)))
50661000000000000000000
50761202000000000000000
50820610000000000000000
50920612000000000000000
51061202020000000000000
511DROP TABLE t1;
512#
513# IF, CASE, LEAST
514#
515SELECT IF('abc' COLLATE 'dec8_nopad_bin' = 'abc ', 'pad', 'nopad');
516IF('abc' COLLATE 'dec8_nopad_bin' = 'abc ', 'pad', 'nopad')
517nopad
518SELECT CASE 'abc' COLLATE 'dec8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
519CASE 'abc' COLLATE 'dec8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
520nopad
521SELECT CASE WHEN 'abc' COLLATE 'dec8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
522CASE WHEN 'abc' COLLATE 'dec8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
523nopad
524SELECT HEX(LEAST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '));
525HEX(LEAST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '))
52661626320
527SELECT HEX(GREATEST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '));
528HEX(GREATEST('abc ' COLLATE 'dec8_nopad_bin', 'abc  '))
5296162632020
530#
531# Collation mix
532#
533CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'dec8_bin';
534INSERT INTO t1 VALUES ('a'),('a ');
535SELECT COUNT(*) FROM t1 WHERE a='a';
536COUNT(*)
5372
538SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_bin';
539COUNT(*)
5402
541SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_nopad_bin';
542COUNT(*)
5431
544ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'dec8_nopad_bin';
545SELECT COUNT(*) FROM t1 WHERE a='a';
546COUNT(*)
5471
548SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_bin';
549COUNT(*)
5502
551SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'dec8_nopad_bin';
552COUNT(*)
5531
554DROP TABLE t1;
555#
556# End of ctype_pad.inc
557#
558SET DEFAULT_STORAGE_ENGINE=Default;
559SET character_set_connection=cp850;
560SET DEFAULT_STORAGE_ENGINE=MyISAM;
561#
562# Start of ctype_pad.inc
563#
564#
565# Unique indexes
566#
567CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp850_general_nopad_ci';
568SHOW CREATE TABLE t1;
569Table	Create Table
570t1	CREATE TABLE `t1` (
571  `a` varchar(10) COLLATE cp850_general_nopad_ci NOT NULL,
572  PRIMARY KEY (`a`)
573) ENGINE=MyISAM DEFAULT CHARSET=cp850 COLLATE=cp850_general_nopad_ci
574INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
575SELECT HEX(a), a FROM t1 ORDER BY a;
576HEX(a)	a
5772061	 a
578206120	 a
57961202020	a
580616263	abc
5816162632020	abc
582SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
583HEX(a)	a
5842061	 a
585206120	 a
58661202020	a
587616263	abc
5886162632020	abc
589SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
590HEX(a)	a
5916162632020	abc
592616263	abc
59361202020	a
594206120	 a
5952061	 a
596#
597# UNION
598#
599CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp850_general_nopad_ci';
600INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
601SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
602HEX(a)	a
6032061	 a
604206120	 a
6056120	a
60661202020	a
607616263	abc
60861626320	abc
6096162632020	abc
610DROP TABLE t1;
611DROP TABLE t2;
612#
613# DISTINCT, COUNT, MAX
614#
615CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_general_nopad_ci';
616INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
617SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
618HEX(a)	a
6192061	 a
620206120	 a
62161	a
622612020	a
62361202020	a
624SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
625COUNT(DISTINCT a)
6265
627SELECT HEX(MAX(a)), MAX(a) FROM t1;
628HEX(MAX(a))	MAX(a)
62961202020	a
630#
631# GROUP BY
632#
633CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp850_general_nopad_ci';
634INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
635SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
636HEX(a)	cnt
6376161	1
63861612020	1
6396162	2
640DROP TABLE t2;
641#
642# Weights
643#
644SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
645HEX(WEIGHT_STRING(a AS CHAR(10)))
64641000000000000000000
64741202000000000000000
64820410000000000000000
64920412000000000000000
65041202020000000000000
651DROP TABLE t1;
652#
653# IF, CASE, LEAST
654#
655SELECT IF('abc' COLLATE 'cp850_general_nopad_ci' = 'abc ', 'pad', 'nopad');
656IF('abc' COLLATE 'cp850_general_nopad_ci' = 'abc ', 'pad', 'nopad')
657nopad
658SELECT CASE 'abc' COLLATE 'cp850_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
659CASE 'abc' COLLATE 'cp850_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
660nopad
661SELECT CASE WHEN 'abc' COLLATE 'cp850_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
662CASE WHEN 'abc' COLLATE 'cp850_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
663nopad
664SELECT HEX(LEAST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '));
665HEX(LEAST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '))
66661626320
667SELECT HEX(GREATEST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '));
668HEX(GREATEST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '))
6696162632020
670#
671# Collation mix
672#
673CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_general_ci';
674INSERT INTO t1 VALUES ('a'),('a ');
675SELECT COUNT(*) FROM t1 WHERE a='a';
676COUNT(*)
6772
678SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_ci';
679COUNT(*)
6802
681SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_nopad_ci';
682COUNT(*)
6831
684ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp850_general_nopad_ci';
685SELECT COUNT(*) FROM t1 WHERE a='a';
686COUNT(*)
6871
688SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_ci';
689COUNT(*)
6902
691SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_nopad_ci';
692COUNT(*)
6931
694DROP TABLE t1;
695#
696# End of ctype_pad.inc
697#
698SET DEFAULT_STORAGE_ENGINE=HEAP;
699#
700# Start of ctype_pad.inc
701#
702#
703# Unique indexes
704#
705CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp850_general_nopad_ci';
706SHOW CREATE TABLE t1;
707Table	Create Table
708t1	CREATE TABLE `t1` (
709  `a` varchar(10) COLLATE cp850_general_nopad_ci NOT NULL,
710  PRIMARY KEY (`a`)
711) ENGINE=MEMORY DEFAULT CHARSET=cp850 COLLATE=cp850_general_nopad_ci
712INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
713SELECT HEX(a), a FROM t1 ORDER BY a;
714HEX(a)	a
7152061	 a
716206120	 a
71761202020	a
718616263	abc
7196162632020	abc
720SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
721HEX(a)	a
7222061	 a
723206120	 a
72461202020	a
725616263	abc
7266162632020	abc
727SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
728HEX(a)	a
7296162632020	abc
730616263	abc
73161202020	a
732206120	 a
7332061	 a
734#
735# UNION
736#
737CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp850_general_nopad_ci';
738INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
739SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
740HEX(a)	a
7412061	 a
742206120	 a
7436120	a
74461202020	a
745616263	abc
74661626320	abc
7476162632020	abc
748DROP TABLE t1;
749DROP TABLE t2;
750#
751# DISTINCT, COUNT, MAX
752#
753CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_general_nopad_ci';
754INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
755SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
756HEX(a)	a
7572061	 a
758206120	 a
75961	a
760612020	a
76161202020	a
762SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
763COUNT(DISTINCT a)
7645
765SELECT HEX(MAX(a)), MAX(a) FROM t1;
766HEX(MAX(a))	MAX(a)
76761202020	a
768#
769# GROUP BY
770#
771CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp850_general_nopad_ci';
772INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
773SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
774HEX(a)	cnt
7756161	1
77661612020	1
7776162	2
778DROP TABLE t2;
779#
780# Weights
781#
782SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
783HEX(WEIGHT_STRING(a AS CHAR(10)))
78441000000000000000000
78541202000000000000000
78620410000000000000000
78720412000000000000000
78841202020000000000000
789DROP TABLE t1;
790#
791# IF, CASE, LEAST
792#
793SELECT IF('abc' COLLATE 'cp850_general_nopad_ci' = 'abc ', 'pad', 'nopad');
794IF('abc' COLLATE 'cp850_general_nopad_ci' = 'abc ', 'pad', 'nopad')
795nopad
796SELECT CASE 'abc' COLLATE 'cp850_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
797CASE 'abc' COLLATE 'cp850_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
798nopad
799SELECT CASE WHEN 'abc' COLLATE 'cp850_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
800CASE WHEN 'abc' COLLATE 'cp850_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
801nopad
802SELECT HEX(LEAST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '));
803HEX(LEAST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '))
80461626320
805SELECT HEX(GREATEST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '));
806HEX(GREATEST('abc ' COLLATE 'cp850_general_nopad_ci', 'abc  '))
8076162632020
808#
809# Collation mix
810#
811CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_general_ci';
812INSERT INTO t1 VALUES ('a'),('a ');
813SELECT COUNT(*) FROM t1 WHERE a='a';
814COUNT(*)
8152
816SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_ci';
817COUNT(*)
8182
819SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_nopad_ci';
820COUNT(*)
8211
822ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp850_general_nopad_ci';
823SELECT COUNT(*) FROM t1 WHERE a='a';
824COUNT(*)
8251
826SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_ci';
827COUNT(*)
8282
829SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_general_nopad_ci';
830COUNT(*)
8311
832DROP TABLE t1;
833#
834# End of ctype_pad.inc
835#
836SET DEFAULT_STORAGE_ENGINE=Default;
837SET DEFAULT_STORAGE_ENGINE=MyISAM;
838#
839# Start of ctype_pad.inc
840#
841#
842# Unique indexes
843#
844CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp850_nopad_bin';
845SHOW CREATE TABLE t1;
846Table	Create Table
847t1	CREATE TABLE `t1` (
848  `a` varchar(10) COLLATE cp850_nopad_bin NOT NULL,
849  PRIMARY KEY (`a`)
850) ENGINE=MyISAM DEFAULT CHARSET=cp850 COLLATE=cp850_nopad_bin
851INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
852SELECT HEX(a), a FROM t1 ORDER BY a;
853HEX(a)	a
8542061	 a
855206120	 a
85661202020	a
857616263	abc
8586162632020	abc
859SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
860HEX(a)	a
8612061	 a
862206120	 a
86361202020	a
864616263	abc
8656162632020	abc
866SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
867HEX(a)	a
8686162632020	abc
869616263	abc
87061202020	a
871206120	 a
8722061	 a
873#
874# UNION
875#
876CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp850_nopad_bin';
877INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
878SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
879HEX(a)	a
8802061	 a
881206120	 a
8826120	a
88361202020	a
884616263	abc
88561626320	abc
8866162632020	abc
887DROP TABLE t1;
888DROP TABLE t2;
889#
890# DISTINCT, COUNT, MAX
891#
892CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_nopad_bin';
893INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
894SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
895HEX(a)	a
8962061	 a
897206120	 a
89861	a
899612020	a
90061202020	a
901SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
902COUNT(DISTINCT a)
9035
904SELECT HEX(MAX(a)), MAX(a) FROM t1;
905HEX(MAX(a))	MAX(a)
90661202020	a
907#
908# GROUP BY
909#
910CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp850_nopad_bin';
911INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
912SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
913HEX(a)	cnt
9146161	1
91561612020	1
9166162	2
917DROP TABLE t2;
918#
919# Weights
920#
921SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
922HEX(WEIGHT_STRING(a AS CHAR(10)))
92361000000000000000000
92461202000000000000000
92520610000000000000000
92620612000000000000000
92761202020000000000000
928DROP TABLE t1;
929#
930# IF, CASE, LEAST
931#
932SELECT IF('abc' COLLATE 'cp850_nopad_bin' = 'abc ', 'pad', 'nopad');
933IF('abc' COLLATE 'cp850_nopad_bin' = 'abc ', 'pad', 'nopad')
934nopad
935SELECT CASE 'abc' COLLATE 'cp850_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
936CASE 'abc' COLLATE 'cp850_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
937nopad
938SELECT CASE WHEN 'abc' COLLATE 'cp850_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
939CASE WHEN 'abc' COLLATE 'cp850_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
940nopad
941SELECT HEX(LEAST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '));
942HEX(LEAST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '))
94361626320
944SELECT HEX(GREATEST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '));
945HEX(GREATEST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '))
9466162632020
947#
948# Collation mix
949#
950CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_bin';
951INSERT INTO t1 VALUES ('a'),('a ');
952SELECT COUNT(*) FROM t1 WHERE a='a';
953COUNT(*)
9542
955SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_bin';
956COUNT(*)
9572
958SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_nopad_bin';
959COUNT(*)
9601
961ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp850_nopad_bin';
962SELECT COUNT(*) FROM t1 WHERE a='a';
963COUNT(*)
9641
965SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_bin';
966COUNT(*)
9672
968SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_nopad_bin';
969COUNT(*)
9701
971DROP TABLE t1;
972#
973# End of ctype_pad.inc
974#
975SET DEFAULT_STORAGE_ENGINE=HEAP;
976#
977# Start of ctype_pad.inc
978#
979#
980# Unique indexes
981#
982CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp850_nopad_bin';
983SHOW CREATE TABLE t1;
984Table	Create Table
985t1	CREATE TABLE `t1` (
986  `a` varchar(10) COLLATE cp850_nopad_bin NOT NULL,
987  PRIMARY KEY (`a`)
988) ENGINE=MEMORY DEFAULT CHARSET=cp850 COLLATE=cp850_nopad_bin
989INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
990SELECT HEX(a), a FROM t1 ORDER BY a;
991HEX(a)	a
9922061	 a
993206120	 a
99461202020	a
995616263	abc
9966162632020	abc
997SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
998HEX(a)	a
9992061	 a
1000206120	 a
100161202020	a
1002616263	abc
10036162632020	abc
1004SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1005HEX(a)	a
10066162632020	abc
1007616263	abc
100861202020	a
1009206120	 a
10102061	 a
1011#
1012# UNION
1013#
1014CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp850_nopad_bin';
1015INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1016SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1017HEX(a)	a
10182061	 a
1019206120	 a
10206120	a
102161202020	a
1022616263	abc
102361626320	abc
10246162632020	abc
1025DROP TABLE t1;
1026DROP TABLE t2;
1027#
1028# DISTINCT, COUNT, MAX
1029#
1030CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_nopad_bin';
1031INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1032SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1033HEX(a)	a
10342061	 a
1035206120	 a
103661	a
1037612020	a
103861202020	a
1039SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1040COUNT(DISTINCT a)
10415
1042SELECT HEX(MAX(a)), MAX(a) FROM t1;
1043HEX(MAX(a))	MAX(a)
104461202020	a
1045#
1046# GROUP BY
1047#
1048CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp850_nopad_bin';
1049INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1050SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1051HEX(a)	cnt
10526161	1
105361612020	1
10546162	2
1055DROP TABLE t2;
1056#
1057# Weights
1058#
1059SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1060HEX(WEIGHT_STRING(a AS CHAR(10)))
106161000000000000000000
106261202000000000000000
106320610000000000000000
106420612000000000000000
106561202020000000000000
1066DROP TABLE t1;
1067#
1068# IF, CASE, LEAST
1069#
1070SELECT IF('abc' COLLATE 'cp850_nopad_bin' = 'abc ', 'pad', 'nopad');
1071IF('abc' COLLATE 'cp850_nopad_bin' = 'abc ', 'pad', 'nopad')
1072nopad
1073SELECT CASE 'abc' COLLATE 'cp850_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1074CASE 'abc' COLLATE 'cp850_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1075nopad
1076SELECT CASE WHEN 'abc' COLLATE 'cp850_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1077CASE WHEN 'abc' COLLATE 'cp850_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
1078nopad
1079SELECT HEX(LEAST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '));
1080HEX(LEAST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '))
108161626320
1082SELECT HEX(GREATEST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '));
1083HEX(GREATEST('abc ' COLLATE 'cp850_nopad_bin', 'abc  '))
10846162632020
1085#
1086# Collation mix
1087#
1088CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp850_bin';
1089INSERT INTO t1 VALUES ('a'),('a ');
1090SELECT COUNT(*) FROM t1 WHERE a='a';
1091COUNT(*)
10922
1093SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_bin';
1094COUNT(*)
10952
1096SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_nopad_bin';
1097COUNT(*)
10981
1099ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp850_nopad_bin';
1100SELECT COUNT(*) FROM t1 WHERE a='a';
1101COUNT(*)
11021
1103SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_bin';
1104COUNT(*)
11052
1106SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp850_nopad_bin';
1107COUNT(*)
11081
1109DROP TABLE t1;
1110#
1111# End of ctype_pad.inc
1112#
1113SET DEFAULT_STORAGE_ENGINE=Default;
1114SET character_set_connection=hp8;
1115SET DEFAULT_STORAGE_ENGINE=MyISAM;
1116#
1117# Start of ctype_pad.inc
1118#
1119#
1120# Unique indexes
1121#
1122CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hp8_english_nopad_ci';
1123SHOW CREATE TABLE t1;
1124Table	Create Table
1125t1	CREATE TABLE `t1` (
1126  `a` varchar(10) COLLATE hp8_english_nopad_ci NOT NULL,
1127  PRIMARY KEY (`a`)
1128) ENGINE=MyISAM DEFAULT CHARSET=hp8 COLLATE=hp8_english_nopad_ci
1129INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1130SELECT HEX(a), a FROM t1 ORDER BY a;
1131HEX(a)	a
11322061	 a
1133206120	 a
113461202020	a
1135616263	abc
11366162632020	abc
1137SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1138HEX(a)	a
11392061	 a
1140206120	 a
114161202020	a
1142616263	abc
11436162632020	abc
1144SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1145HEX(a)	a
11466162632020	abc
1147616263	abc
114861202020	a
1149206120	 a
11502061	 a
1151#
1152# UNION
1153#
1154CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hp8_english_nopad_ci';
1155INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1156SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1157HEX(a)	a
11582061	 a
1159206120	 a
11606120	a
116161202020	a
1162616263	abc
116361626320	abc
11646162632020	abc
1165DROP TABLE t1;
1166DROP TABLE t2;
1167#
1168# DISTINCT, COUNT, MAX
1169#
1170CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_english_nopad_ci';
1171INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1172SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1173HEX(a)	a
11742061	 a
1175206120	 a
117661	a
1177612020	a
117861202020	a
1179SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1180COUNT(DISTINCT a)
11815
1182SELECT HEX(MAX(a)), MAX(a) FROM t1;
1183HEX(MAX(a))	MAX(a)
118461202020	a
1185#
1186# GROUP BY
1187#
1188CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hp8_english_nopad_ci';
1189INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1190SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1191HEX(a)	cnt
11926161	1
119361612020	1
11946162	2
1195DROP TABLE t2;
1196#
1197# Weights
1198#
1199SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1200HEX(WEIGHT_STRING(a AS CHAR(10)))
120141000000000000000000
120241202000000000000000
120320410000000000000000
120420412000000000000000
120541202020000000000000
1206DROP TABLE t1;
1207#
1208# IF, CASE, LEAST
1209#
1210SELECT IF('abc' COLLATE 'hp8_english_nopad_ci' = 'abc ', 'pad', 'nopad');
1211IF('abc' COLLATE 'hp8_english_nopad_ci' = 'abc ', 'pad', 'nopad')
1212nopad
1213SELECT CASE 'abc' COLLATE 'hp8_english_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1214CASE 'abc' COLLATE 'hp8_english_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1215nopad
1216SELECT CASE WHEN 'abc' COLLATE 'hp8_english_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1217CASE WHEN 'abc' COLLATE 'hp8_english_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
1218nopad
1219SELECT HEX(LEAST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '));
1220HEX(LEAST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '))
122161626320
1222SELECT HEX(GREATEST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '));
1223HEX(GREATEST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '))
12246162632020
1225#
1226# Collation mix
1227#
1228CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_english_ci';
1229INSERT INTO t1 VALUES ('a'),('a ');
1230SELECT COUNT(*) FROM t1 WHERE a='a';
1231COUNT(*)
12322
1233SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_ci';
1234COUNT(*)
12352
1236SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_nopad_ci';
1237COUNT(*)
12381
1239ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hp8_english_nopad_ci';
1240SELECT COUNT(*) FROM t1 WHERE a='a';
1241COUNT(*)
12421
1243SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_ci';
1244COUNT(*)
12452
1246SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_nopad_ci';
1247COUNT(*)
12481
1249DROP TABLE t1;
1250#
1251# End of ctype_pad.inc
1252#
1253SET DEFAULT_STORAGE_ENGINE=HEAP;
1254#
1255# Start of ctype_pad.inc
1256#
1257#
1258# Unique indexes
1259#
1260CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hp8_english_nopad_ci';
1261SHOW CREATE TABLE t1;
1262Table	Create Table
1263t1	CREATE TABLE `t1` (
1264  `a` varchar(10) COLLATE hp8_english_nopad_ci NOT NULL,
1265  PRIMARY KEY (`a`)
1266) ENGINE=MEMORY DEFAULT CHARSET=hp8 COLLATE=hp8_english_nopad_ci
1267INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1268SELECT HEX(a), a FROM t1 ORDER BY a;
1269HEX(a)	a
12702061	 a
1271206120	 a
127261202020	a
1273616263	abc
12746162632020	abc
1275SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1276HEX(a)	a
12772061	 a
1278206120	 a
127961202020	a
1280616263	abc
12816162632020	abc
1282SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1283HEX(a)	a
12846162632020	abc
1285616263	abc
128661202020	a
1287206120	 a
12882061	 a
1289#
1290# UNION
1291#
1292CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hp8_english_nopad_ci';
1293INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1294SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1295HEX(a)	a
12962061	 a
1297206120	 a
12986120	a
129961202020	a
1300616263	abc
130161626320	abc
13026162632020	abc
1303DROP TABLE t1;
1304DROP TABLE t2;
1305#
1306# DISTINCT, COUNT, MAX
1307#
1308CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_english_nopad_ci';
1309INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1310SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1311HEX(a)	a
13122061	 a
1313206120	 a
131461	a
1315612020	a
131661202020	a
1317SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1318COUNT(DISTINCT a)
13195
1320SELECT HEX(MAX(a)), MAX(a) FROM t1;
1321HEX(MAX(a))	MAX(a)
132261202020	a
1323#
1324# GROUP BY
1325#
1326CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hp8_english_nopad_ci';
1327INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1328SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1329HEX(a)	cnt
13306161	1
133161612020	1
13326162	2
1333DROP TABLE t2;
1334#
1335# Weights
1336#
1337SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1338HEX(WEIGHT_STRING(a AS CHAR(10)))
133941000000000000000000
134041202000000000000000
134120410000000000000000
134220412000000000000000
134341202020000000000000
1344DROP TABLE t1;
1345#
1346# IF, CASE, LEAST
1347#
1348SELECT IF('abc' COLLATE 'hp8_english_nopad_ci' = 'abc ', 'pad', 'nopad');
1349IF('abc' COLLATE 'hp8_english_nopad_ci' = 'abc ', 'pad', 'nopad')
1350nopad
1351SELECT CASE 'abc' COLLATE 'hp8_english_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1352CASE 'abc' COLLATE 'hp8_english_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1353nopad
1354SELECT CASE WHEN 'abc' COLLATE 'hp8_english_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1355CASE WHEN 'abc' COLLATE 'hp8_english_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
1356nopad
1357SELECT HEX(LEAST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '));
1358HEX(LEAST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '))
135961626320
1360SELECT HEX(GREATEST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '));
1361HEX(GREATEST('abc ' COLLATE 'hp8_english_nopad_ci', 'abc  '))
13626162632020
1363#
1364# Collation mix
1365#
1366CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_english_ci';
1367INSERT INTO t1 VALUES ('a'),('a ');
1368SELECT COUNT(*) FROM t1 WHERE a='a';
1369COUNT(*)
13702
1371SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_ci';
1372COUNT(*)
13732
1374SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_nopad_ci';
1375COUNT(*)
13761
1377ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hp8_english_nopad_ci';
1378SELECT COUNT(*) FROM t1 WHERE a='a';
1379COUNT(*)
13801
1381SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_ci';
1382COUNT(*)
13832
1384SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_english_nopad_ci';
1385COUNT(*)
13861
1387DROP TABLE t1;
1388#
1389# End of ctype_pad.inc
1390#
1391SET DEFAULT_STORAGE_ENGINE=Default;
1392SET DEFAULT_STORAGE_ENGINE=MyISAM;
1393#
1394# Start of ctype_pad.inc
1395#
1396#
1397# Unique indexes
1398#
1399CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hp8_nopad_bin';
1400SHOW CREATE TABLE t1;
1401Table	Create Table
1402t1	CREATE TABLE `t1` (
1403  `a` varchar(10) COLLATE hp8_nopad_bin NOT NULL,
1404  PRIMARY KEY (`a`)
1405) ENGINE=MyISAM DEFAULT CHARSET=hp8 COLLATE=hp8_nopad_bin
1406INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1407SELECT HEX(a), a FROM t1 ORDER BY a;
1408HEX(a)	a
14092061	 a
1410206120	 a
141161202020	a
1412616263	abc
14136162632020	abc
1414SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1415HEX(a)	a
14162061	 a
1417206120	 a
141861202020	a
1419616263	abc
14206162632020	abc
1421SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1422HEX(a)	a
14236162632020	abc
1424616263	abc
142561202020	a
1426206120	 a
14272061	 a
1428#
1429# UNION
1430#
1431CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hp8_nopad_bin';
1432INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1433SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1434HEX(a)	a
14352061	 a
1436206120	 a
14376120	a
143861202020	a
1439616263	abc
144061626320	abc
14416162632020	abc
1442DROP TABLE t1;
1443DROP TABLE t2;
1444#
1445# DISTINCT, COUNT, MAX
1446#
1447CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_nopad_bin';
1448INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1449SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1450HEX(a)	a
14512061	 a
1452206120	 a
145361	a
1454612020	a
145561202020	a
1456SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1457COUNT(DISTINCT a)
14585
1459SELECT HEX(MAX(a)), MAX(a) FROM t1;
1460HEX(MAX(a))	MAX(a)
146161202020	a
1462#
1463# GROUP BY
1464#
1465CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hp8_nopad_bin';
1466INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1467SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1468HEX(a)	cnt
14696161	1
147061612020	1
14716162	2
1472DROP TABLE t2;
1473#
1474# Weights
1475#
1476SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1477HEX(WEIGHT_STRING(a AS CHAR(10)))
147861000000000000000000
147961202000000000000000
148020610000000000000000
148120612000000000000000
148261202020000000000000
1483DROP TABLE t1;
1484#
1485# IF, CASE, LEAST
1486#
1487SELECT IF('abc' COLLATE 'hp8_nopad_bin' = 'abc ', 'pad', 'nopad');
1488IF('abc' COLLATE 'hp8_nopad_bin' = 'abc ', 'pad', 'nopad')
1489nopad
1490SELECT CASE 'abc' COLLATE 'hp8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1491CASE 'abc' COLLATE 'hp8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1492nopad
1493SELECT CASE WHEN 'abc' COLLATE 'hp8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1494CASE WHEN 'abc' COLLATE 'hp8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
1495nopad
1496SELECT HEX(LEAST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '));
1497HEX(LEAST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '))
149861626320
1499SELECT HEX(GREATEST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '));
1500HEX(GREATEST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '))
15016162632020
1502#
1503# Collation mix
1504#
1505CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_bin';
1506INSERT INTO t1 VALUES ('a'),('a ');
1507SELECT COUNT(*) FROM t1 WHERE a='a';
1508COUNT(*)
15092
1510SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_bin';
1511COUNT(*)
15122
1513SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_nopad_bin';
1514COUNT(*)
15151
1516ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hp8_nopad_bin';
1517SELECT COUNT(*) FROM t1 WHERE a='a';
1518COUNT(*)
15191
1520SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_bin';
1521COUNT(*)
15222
1523SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_nopad_bin';
1524COUNT(*)
15251
1526DROP TABLE t1;
1527#
1528# End of ctype_pad.inc
1529#
1530SET DEFAULT_STORAGE_ENGINE=HEAP;
1531#
1532# Start of ctype_pad.inc
1533#
1534#
1535# Unique indexes
1536#
1537CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hp8_nopad_bin';
1538SHOW CREATE TABLE t1;
1539Table	Create Table
1540t1	CREATE TABLE `t1` (
1541  `a` varchar(10) COLLATE hp8_nopad_bin NOT NULL,
1542  PRIMARY KEY (`a`)
1543) ENGINE=MEMORY DEFAULT CHARSET=hp8 COLLATE=hp8_nopad_bin
1544INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1545SELECT HEX(a), a FROM t1 ORDER BY a;
1546HEX(a)	a
15472061	 a
1548206120	 a
154961202020	a
1550616263	abc
15516162632020	abc
1552SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1553HEX(a)	a
15542061	 a
1555206120	 a
155661202020	a
1557616263	abc
15586162632020	abc
1559SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1560HEX(a)	a
15616162632020	abc
1562616263	abc
156361202020	a
1564206120	 a
15652061	 a
1566#
1567# UNION
1568#
1569CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hp8_nopad_bin';
1570INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1571SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1572HEX(a)	a
15732061	 a
1574206120	 a
15756120	a
157661202020	a
1577616263	abc
157861626320	abc
15796162632020	abc
1580DROP TABLE t1;
1581DROP TABLE t2;
1582#
1583# DISTINCT, COUNT, MAX
1584#
1585CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_nopad_bin';
1586INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1587SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1588HEX(a)	a
15892061	 a
1590206120	 a
159161	a
1592612020	a
159361202020	a
1594SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1595COUNT(DISTINCT a)
15965
1597SELECT HEX(MAX(a)), MAX(a) FROM t1;
1598HEX(MAX(a))	MAX(a)
159961202020	a
1600#
1601# GROUP BY
1602#
1603CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hp8_nopad_bin';
1604INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1605SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1606HEX(a)	cnt
16076161	1
160861612020	1
16096162	2
1610DROP TABLE t2;
1611#
1612# Weights
1613#
1614SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1615HEX(WEIGHT_STRING(a AS CHAR(10)))
161661000000000000000000
161761202000000000000000
161820610000000000000000
161920612000000000000000
162061202020000000000000
1621DROP TABLE t1;
1622#
1623# IF, CASE, LEAST
1624#
1625SELECT IF('abc' COLLATE 'hp8_nopad_bin' = 'abc ', 'pad', 'nopad');
1626IF('abc' COLLATE 'hp8_nopad_bin' = 'abc ', 'pad', 'nopad')
1627nopad
1628SELECT CASE 'abc' COLLATE 'hp8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1629CASE 'abc' COLLATE 'hp8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1630nopad
1631SELECT CASE WHEN 'abc' COLLATE 'hp8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1632CASE WHEN 'abc' COLLATE 'hp8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
1633nopad
1634SELECT HEX(LEAST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '));
1635HEX(LEAST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '))
163661626320
1637SELECT HEX(GREATEST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '));
1638HEX(GREATEST('abc ' COLLATE 'hp8_nopad_bin', 'abc  '))
16396162632020
1640#
1641# Collation mix
1642#
1643CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hp8_bin';
1644INSERT INTO t1 VALUES ('a'),('a ');
1645SELECT COUNT(*) FROM t1 WHERE a='a';
1646COUNT(*)
16472
1648SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_bin';
1649COUNT(*)
16502
1651SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_nopad_bin';
1652COUNT(*)
16531
1654ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hp8_nopad_bin';
1655SELECT COUNT(*) FROM t1 WHERE a='a';
1656COUNT(*)
16571
1658SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_bin';
1659COUNT(*)
16602
1661SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hp8_nopad_bin';
1662COUNT(*)
16631
1664DROP TABLE t1;
1665#
1666# End of ctype_pad.inc
1667#
1668SET DEFAULT_STORAGE_ENGINE=Default;
1669SET character_set_connection=koi8r;
1670SET DEFAULT_STORAGE_ENGINE=MyISAM;
1671#
1672# Start of ctype_pad.inc
1673#
1674#
1675# Unique indexes
1676#
1677CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8r_general_nopad_ci';
1678SHOW CREATE TABLE t1;
1679Table	Create Table
1680t1	CREATE TABLE `t1` (
1681  `a` varchar(10) COLLATE koi8r_general_nopad_ci NOT NULL,
1682  PRIMARY KEY (`a`)
1683) ENGINE=MyISAM DEFAULT CHARSET=koi8r COLLATE=koi8r_general_nopad_ci
1684INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1685SELECT HEX(a), a FROM t1 ORDER BY a;
1686HEX(a)	a
16872061	 a
1688206120	 a
168961202020	a
1690616263	abc
16916162632020	abc
1692SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1693HEX(a)	a
16942061	 a
1695206120	 a
169661202020	a
1697616263	abc
16986162632020	abc
1699SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1700HEX(a)	a
17016162632020	abc
1702616263	abc
170361202020	a
1704206120	 a
17052061	 a
1706#
1707# UNION
1708#
1709CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8r_general_nopad_ci';
1710INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1711SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1712HEX(a)	a
17132061	 a
1714206120	 a
17156120	a
171661202020	a
1717616263	abc
171861626320	abc
17196162632020	abc
1720DROP TABLE t1;
1721DROP TABLE t2;
1722#
1723# DISTINCT, COUNT, MAX
1724#
1725CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_general_nopad_ci';
1726INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1727SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1728HEX(a)	a
17292061	 a
1730206120	 a
173161	a
1732612020	a
173361202020	a
1734SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1735COUNT(DISTINCT a)
17365
1737SELECT HEX(MAX(a)), MAX(a) FROM t1;
1738HEX(MAX(a))	MAX(a)
173961202020	a
1740#
1741# GROUP BY
1742#
1743CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8r_general_nopad_ci';
1744INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1745SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1746HEX(a)	cnt
17476161	1
174861612020	1
17496162	2
1750DROP TABLE t2;
1751#
1752# Weights
1753#
1754SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1755HEX(WEIGHT_STRING(a AS CHAR(10)))
175641000000000000000000
175741202000000000000000
175820410000000000000000
175920412000000000000000
176041202020000000000000
1761DROP TABLE t1;
1762#
1763# IF, CASE, LEAST
1764#
1765SELECT IF('abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ', 'pad', 'nopad');
1766IF('abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ', 'pad', 'nopad')
1767nopad
1768SELECT CASE 'abc' COLLATE 'koi8r_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1769CASE 'abc' COLLATE 'koi8r_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1770nopad
1771SELECT CASE WHEN 'abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1772CASE WHEN 'abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
1773nopad
1774SELECT HEX(LEAST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '));
1775HEX(LEAST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '))
177661626320
1777SELECT HEX(GREATEST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '));
1778HEX(GREATEST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '))
17796162632020
1780#
1781# Collation mix
1782#
1783CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_general_ci';
1784INSERT INTO t1 VALUES ('a'),('a ');
1785SELECT COUNT(*) FROM t1 WHERE a='a';
1786COUNT(*)
17872
1788SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_ci';
1789COUNT(*)
17902
1791SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_nopad_ci';
1792COUNT(*)
17931
1794ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8r_general_nopad_ci';
1795SELECT COUNT(*) FROM t1 WHERE a='a';
1796COUNT(*)
17971
1798SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_ci';
1799COUNT(*)
18002
1801SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_nopad_ci';
1802COUNT(*)
18031
1804DROP TABLE t1;
1805#
1806# End of ctype_pad.inc
1807#
1808SET DEFAULT_STORAGE_ENGINE=HEAP;
1809#
1810# Start of ctype_pad.inc
1811#
1812#
1813# Unique indexes
1814#
1815CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8r_general_nopad_ci';
1816SHOW CREATE TABLE t1;
1817Table	Create Table
1818t1	CREATE TABLE `t1` (
1819  `a` varchar(10) COLLATE koi8r_general_nopad_ci NOT NULL,
1820  PRIMARY KEY (`a`)
1821) ENGINE=MEMORY DEFAULT CHARSET=koi8r COLLATE=koi8r_general_nopad_ci
1822INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1823SELECT HEX(a), a FROM t1 ORDER BY a;
1824HEX(a)	a
18252061	 a
1826206120	 a
182761202020	a
1828616263	abc
18296162632020	abc
1830SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1831HEX(a)	a
18322061	 a
1833206120	 a
183461202020	a
1835616263	abc
18366162632020	abc
1837SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1838HEX(a)	a
18396162632020	abc
1840616263	abc
184161202020	a
1842206120	 a
18432061	 a
1844#
1845# UNION
1846#
1847CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8r_general_nopad_ci';
1848INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1849SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1850HEX(a)	a
18512061	 a
1852206120	 a
18536120	a
185461202020	a
1855616263	abc
185661626320	abc
18576162632020	abc
1858DROP TABLE t1;
1859DROP TABLE t2;
1860#
1861# DISTINCT, COUNT, MAX
1862#
1863CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_general_nopad_ci';
1864INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
1865SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
1866HEX(a)	a
18672061	 a
1868206120	 a
186961	a
1870612020	a
187161202020	a
1872SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
1873COUNT(DISTINCT a)
18745
1875SELECT HEX(MAX(a)), MAX(a) FROM t1;
1876HEX(MAX(a))	MAX(a)
187761202020	a
1878#
1879# GROUP BY
1880#
1881CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8r_general_nopad_ci';
1882INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
1883SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
1884HEX(a)	cnt
18856161	1
188661612020	1
18876162	2
1888DROP TABLE t2;
1889#
1890# Weights
1891#
1892SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
1893HEX(WEIGHT_STRING(a AS CHAR(10)))
189441000000000000000000
189541202000000000000000
189620410000000000000000
189720412000000000000000
189841202020000000000000
1899DROP TABLE t1;
1900#
1901# IF, CASE, LEAST
1902#
1903SELECT IF('abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ', 'pad', 'nopad');
1904IF('abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ', 'pad', 'nopad')
1905nopad
1906SELECT CASE 'abc' COLLATE 'koi8r_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
1907CASE 'abc' COLLATE 'koi8r_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
1908nopad
1909SELECT CASE WHEN 'abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
1910CASE WHEN 'abc' COLLATE 'koi8r_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
1911nopad
1912SELECT HEX(LEAST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '));
1913HEX(LEAST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '))
191461626320
1915SELECT HEX(GREATEST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '));
1916HEX(GREATEST('abc ' COLLATE 'koi8r_general_nopad_ci', 'abc  '))
19176162632020
1918#
1919# Collation mix
1920#
1921CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_general_ci';
1922INSERT INTO t1 VALUES ('a'),('a ');
1923SELECT COUNT(*) FROM t1 WHERE a='a';
1924COUNT(*)
19252
1926SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_ci';
1927COUNT(*)
19282
1929SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_nopad_ci';
1930COUNT(*)
19311
1932ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8r_general_nopad_ci';
1933SELECT COUNT(*) FROM t1 WHERE a='a';
1934COUNT(*)
19351
1936SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_ci';
1937COUNT(*)
19382
1939SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_general_nopad_ci';
1940COUNT(*)
19411
1942DROP TABLE t1;
1943#
1944# End of ctype_pad.inc
1945#
1946SET DEFAULT_STORAGE_ENGINE=Default;
1947SET DEFAULT_STORAGE_ENGINE=MyISAM;
1948#
1949# Start of ctype_pad.inc
1950#
1951#
1952# Unique indexes
1953#
1954CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8r_nopad_bin';
1955SHOW CREATE TABLE t1;
1956Table	Create Table
1957t1	CREATE TABLE `t1` (
1958  `a` varchar(10) COLLATE koi8r_nopad_bin NOT NULL,
1959  PRIMARY KEY (`a`)
1960) ENGINE=MyISAM DEFAULT CHARSET=koi8r COLLATE=koi8r_nopad_bin
1961INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
1962SELECT HEX(a), a FROM t1 ORDER BY a;
1963HEX(a)	a
19642061	 a
1965206120	 a
196661202020	a
1967616263	abc
19686162632020	abc
1969SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
1970HEX(a)	a
19712061	 a
1972206120	 a
197361202020	a
1974616263	abc
19756162632020	abc
1976SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
1977HEX(a)	a
19786162632020	abc
1979616263	abc
198061202020	a
1981206120	 a
19822061	 a
1983#
1984# UNION
1985#
1986CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8r_nopad_bin';
1987INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
1988SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
1989HEX(a)	a
19902061	 a
1991206120	 a
19926120	a
199361202020	a
1994616263	abc
199561626320	abc
19966162632020	abc
1997DROP TABLE t1;
1998DROP TABLE t2;
1999#
2000# DISTINCT, COUNT, MAX
2001#
2002CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_nopad_bin';
2003INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2004SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2005HEX(a)	a
20062061	 a
2007206120	 a
200861	a
2009612020	a
201061202020	a
2011SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2012COUNT(DISTINCT a)
20135
2014SELECT HEX(MAX(a)), MAX(a) FROM t1;
2015HEX(MAX(a))	MAX(a)
201661202020	a
2017#
2018# GROUP BY
2019#
2020CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8r_nopad_bin';
2021INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2022SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2023HEX(a)	cnt
20246161	1
202561612020	1
20266162	2
2027DROP TABLE t2;
2028#
2029# Weights
2030#
2031SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2032HEX(WEIGHT_STRING(a AS CHAR(10)))
203361000000000000000000
203461202000000000000000
203520610000000000000000
203620612000000000000000
203761202020000000000000
2038DROP TABLE t1;
2039#
2040# IF, CASE, LEAST
2041#
2042SELECT IF('abc' COLLATE 'koi8r_nopad_bin' = 'abc ', 'pad', 'nopad');
2043IF('abc' COLLATE 'koi8r_nopad_bin' = 'abc ', 'pad', 'nopad')
2044nopad
2045SELECT CASE 'abc' COLLATE 'koi8r_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2046CASE 'abc' COLLATE 'koi8r_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2047nopad
2048SELECT CASE WHEN 'abc' COLLATE 'koi8r_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2049CASE WHEN 'abc' COLLATE 'koi8r_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
2050nopad
2051SELECT HEX(LEAST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '));
2052HEX(LEAST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '))
205361626320
2054SELECT HEX(GREATEST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '));
2055HEX(GREATEST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '))
20566162632020
2057#
2058# Collation mix
2059#
2060CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_bin';
2061INSERT INTO t1 VALUES ('a'),('a ');
2062SELECT COUNT(*) FROM t1 WHERE a='a';
2063COUNT(*)
20642
2065SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_bin';
2066COUNT(*)
20672
2068SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_nopad_bin';
2069COUNT(*)
20701
2071ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8r_nopad_bin';
2072SELECT COUNT(*) FROM t1 WHERE a='a';
2073COUNT(*)
20741
2075SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_bin';
2076COUNT(*)
20772
2078SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_nopad_bin';
2079COUNT(*)
20801
2081DROP TABLE t1;
2082#
2083# End of ctype_pad.inc
2084#
2085SET DEFAULT_STORAGE_ENGINE=HEAP;
2086#
2087# Start of ctype_pad.inc
2088#
2089#
2090# Unique indexes
2091#
2092CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8r_nopad_bin';
2093SHOW CREATE TABLE t1;
2094Table	Create Table
2095t1	CREATE TABLE `t1` (
2096  `a` varchar(10) COLLATE koi8r_nopad_bin NOT NULL,
2097  PRIMARY KEY (`a`)
2098) ENGINE=MEMORY DEFAULT CHARSET=koi8r COLLATE=koi8r_nopad_bin
2099INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2100SELECT HEX(a), a FROM t1 ORDER BY a;
2101HEX(a)	a
21022061	 a
2103206120	 a
210461202020	a
2105616263	abc
21066162632020	abc
2107SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2108HEX(a)	a
21092061	 a
2110206120	 a
211161202020	a
2112616263	abc
21136162632020	abc
2114SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2115HEX(a)	a
21166162632020	abc
2117616263	abc
211861202020	a
2119206120	 a
21202061	 a
2121#
2122# UNION
2123#
2124CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8r_nopad_bin';
2125INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2126SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2127HEX(a)	a
21282061	 a
2129206120	 a
21306120	a
213161202020	a
2132616263	abc
213361626320	abc
21346162632020	abc
2135DROP TABLE t1;
2136DROP TABLE t2;
2137#
2138# DISTINCT, COUNT, MAX
2139#
2140CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_nopad_bin';
2141INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2142SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2143HEX(a)	a
21442061	 a
2145206120	 a
214661	a
2147612020	a
214861202020	a
2149SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2150COUNT(DISTINCT a)
21515
2152SELECT HEX(MAX(a)), MAX(a) FROM t1;
2153HEX(MAX(a))	MAX(a)
215461202020	a
2155#
2156# GROUP BY
2157#
2158CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8r_nopad_bin';
2159INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2160SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2161HEX(a)	cnt
21626161	1
216361612020	1
21646162	2
2165DROP TABLE t2;
2166#
2167# Weights
2168#
2169SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2170HEX(WEIGHT_STRING(a AS CHAR(10)))
217161000000000000000000
217261202000000000000000
217320610000000000000000
217420612000000000000000
217561202020000000000000
2176DROP TABLE t1;
2177#
2178# IF, CASE, LEAST
2179#
2180SELECT IF('abc' COLLATE 'koi8r_nopad_bin' = 'abc ', 'pad', 'nopad');
2181IF('abc' COLLATE 'koi8r_nopad_bin' = 'abc ', 'pad', 'nopad')
2182nopad
2183SELECT CASE 'abc' COLLATE 'koi8r_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2184CASE 'abc' COLLATE 'koi8r_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2185nopad
2186SELECT CASE WHEN 'abc' COLLATE 'koi8r_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2187CASE WHEN 'abc' COLLATE 'koi8r_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
2188nopad
2189SELECT HEX(LEAST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '));
2190HEX(LEAST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '))
219161626320
2192SELECT HEX(GREATEST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '));
2193HEX(GREATEST('abc ' COLLATE 'koi8r_nopad_bin', 'abc  '))
21946162632020
2195#
2196# Collation mix
2197#
2198CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8r_bin';
2199INSERT INTO t1 VALUES ('a'),('a ');
2200SELECT COUNT(*) FROM t1 WHERE a='a';
2201COUNT(*)
22022
2203SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_bin';
2204COUNT(*)
22052
2206SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_nopad_bin';
2207COUNT(*)
22081
2209ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8r_nopad_bin';
2210SELECT COUNT(*) FROM t1 WHERE a='a';
2211COUNT(*)
22121
2213SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_bin';
2214COUNT(*)
22152
2216SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8r_nopad_bin';
2217COUNT(*)
22181
2219DROP TABLE t1;
2220#
2221# End of ctype_pad.inc
2222#
2223SET DEFAULT_STORAGE_ENGINE=Default;
2224SET character_set_connection=latin2;
2225SET DEFAULT_STORAGE_ENGINE=MyISAM;
2226#
2227# Start of ctype_pad.inc
2228#
2229#
2230# Unique indexes
2231#
2232CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin2_general_nopad_ci';
2233SHOW CREATE TABLE t1;
2234Table	Create Table
2235t1	CREATE TABLE `t1` (
2236  `a` varchar(10) COLLATE latin2_general_nopad_ci NOT NULL,
2237  PRIMARY KEY (`a`)
2238) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_general_nopad_ci
2239INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2240SELECT HEX(a), a FROM t1 ORDER BY a;
2241HEX(a)	a
22422061	 a
2243206120	 a
224461202020	a
2245616263	abc
22466162632020	abc
2247SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2248HEX(a)	a
22492061	 a
2250206120	 a
225161202020	a
2252616263	abc
22536162632020	abc
2254SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2255HEX(a)	a
22566162632020	abc
2257616263	abc
225861202020	a
2259206120	 a
22602061	 a
2261#
2262# UNION
2263#
2264CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin2_general_nopad_ci';
2265INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2266SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2267HEX(a)	a
22682061	 a
2269206120	 a
22706120	a
227161202020	a
2272616263	abc
227361626320	abc
22746162632020	abc
2275DROP TABLE t1;
2276DROP TABLE t2;
2277#
2278# DISTINCT, COUNT, MAX
2279#
2280CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_general_nopad_ci';
2281INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2282SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2283HEX(a)	a
22842061	 a
2285206120	 a
228661	a
2287612020	a
228861202020	a
2289SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2290COUNT(DISTINCT a)
22915
2292SELECT HEX(MAX(a)), MAX(a) FROM t1;
2293HEX(MAX(a))	MAX(a)
229461202020	a
2295#
2296# GROUP BY
2297#
2298CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin2_general_nopad_ci';
2299INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2300SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2301HEX(a)	cnt
23026161	1
230361612020	1
23046162	2
2305DROP TABLE t2;
2306#
2307# Weights
2308#
2309SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2310HEX(WEIGHT_STRING(a AS CHAR(10)))
231141000000000000000000
231241202000000000000000
231320410000000000000000
231420412000000000000000
231541202020000000000000
2316DROP TABLE t1;
2317#
2318# IF, CASE, LEAST
2319#
2320SELECT IF('abc' COLLATE 'latin2_general_nopad_ci' = 'abc ', 'pad', 'nopad');
2321IF('abc' COLLATE 'latin2_general_nopad_ci' = 'abc ', 'pad', 'nopad')
2322nopad
2323SELECT CASE 'abc' COLLATE 'latin2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2324CASE 'abc' COLLATE 'latin2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2325nopad
2326SELECT CASE WHEN 'abc' COLLATE 'latin2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2327CASE WHEN 'abc' COLLATE 'latin2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
2328nopad
2329SELECT HEX(LEAST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '));
2330HEX(LEAST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '))
233161626320
2332SELECT HEX(GREATEST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '));
2333HEX(GREATEST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '))
23346162632020
2335#
2336# Collation mix
2337#
2338CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_general_ci';
2339INSERT INTO t1 VALUES ('a'),('a ');
2340SELECT COUNT(*) FROM t1 WHERE a='a';
2341COUNT(*)
23422
2343SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_ci';
2344COUNT(*)
23452
2346SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_nopad_ci';
2347COUNT(*)
23481
2349ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin2_general_nopad_ci';
2350SELECT COUNT(*) FROM t1 WHERE a='a';
2351COUNT(*)
23521
2353SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_ci';
2354COUNT(*)
23552
2356SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_nopad_ci';
2357COUNT(*)
23581
2359DROP TABLE t1;
2360#
2361# End of ctype_pad.inc
2362#
2363SET DEFAULT_STORAGE_ENGINE=HEAP;
2364#
2365# Start of ctype_pad.inc
2366#
2367#
2368# Unique indexes
2369#
2370CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin2_general_nopad_ci';
2371SHOW CREATE TABLE t1;
2372Table	Create Table
2373t1	CREATE TABLE `t1` (
2374  `a` varchar(10) COLLATE latin2_general_nopad_ci NOT NULL,
2375  PRIMARY KEY (`a`)
2376) ENGINE=MEMORY DEFAULT CHARSET=latin2 COLLATE=latin2_general_nopad_ci
2377INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2378SELECT HEX(a), a FROM t1 ORDER BY a;
2379HEX(a)	a
23802061	 a
2381206120	 a
238261202020	a
2383616263	abc
23846162632020	abc
2385SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2386HEX(a)	a
23872061	 a
2388206120	 a
238961202020	a
2390616263	abc
23916162632020	abc
2392SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2393HEX(a)	a
23946162632020	abc
2395616263	abc
239661202020	a
2397206120	 a
23982061	 a
2399#
2400# UNION
2401#
2402CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin2_general_nopad_ci';
2403INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2404SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2405HEX(a)	a
24062061	 a
2407206120	 a
24086120	a
240961202020	a
2410616263	abc
241161626320	abc
24126162632020	abc
2413DROP TABLE t1;
2414DROP TABLE t2;
2415#
2416# DISTINCT, COUNT, MAX
2417#
2418CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_general_nopad_ci';
2419INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2420SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2421HEX(a)	a
24222061	 a
2423206120	 a
242461	a
2425612020	a
242661202020	a
2427SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2428COUNT(DISTINCT a)
24295
2430SELECT HEX(MAX(a)), MAX(a) FROM t1;
2431HEX(MAX(a))	MAX(a)
243261202020	a
2433#
2434# GROUP BY
2435#
2436CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin2_general_nopad_ci';
2437INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2438SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2439HEX(a)	cnt
24406161	1
244161612020	1
24426162	2
2443DROP TABLE t2;
2444#
2445# Weights
2446#
2447SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2448HEX(WEIGHT_STRING(a AS CHAR(10)))
244941000000000000000000
245041202000000000000000
245120410000000000000000
245220412000000000000000
245341202020000000000000
2454DROP TABLE t1;
2455#
2456# IF, CASE, LEAST
2457#
2458SELECT IF('abc' COLLATE 'latin2_general_nopad_ci' = 'abc ', 'pad', 'nopad');
2459IF('abc' COLLATE 'latin2_general_nopad_ci' = 'abc ', 'pad', 'nopad')
2460nopad
2461SELECT CASE 'abc' COLLATE 'latin2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2462CASE 'abc' COLLATE 'latin2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2463nopad
2464SELECT CASE WHEN 'abc' COLLATE 'latin2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2465CASE WHEN 'abc' COLLATE 'latin2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
2466nopad
2467SELECT HEX(LEAST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '));
2468HEX(LEAST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '))
246961626320
2470SELECT HEX(GREATEST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '));
2471HEX(GREATEST('abc ' COLLATE 'latin2_general_nopad_ci', 'abc  '))
24726162632020
2473#
2474# Collation mix
2475#
2476CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_general_ci';
2477INSERT INTO t1 VALUES ('a'),('a ');
2478SELECT COUNT(*) FROM t1 WHERE a='a';
2479COUNT(*)
24802
2481SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_ci';
2482COUNT(*)
24832
2484SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_nopad_ci';
2485COUNT(*)
24861
2487ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin2_general_nopad_ci';
2488SELECT COUNT(*) FROM t1 WHERE a='a';
2489COUNT(*)
24901
2491SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_ci';
2492COUNT(*)
24932
2494SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_general_nopad_ci';
2495COUNT(*)
24961
2497DROP TABLE t1;
2498#
2499# End of ctype_pad.inc
2500#
2501SET DEFAULT_STORAGE_ENGINE=Default;
2502SET DEFAULT_STORAGE_ENGINE=MyISAM;
2503#
2504# Start of ctype_pad.inc
2505#
2506#
2507# Unique indexes
2508#
2509CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin2_nopad_bin';
2510SHOW CREATE TABLE t1;
2511Table	Create Table
2512t1	CREATE TABLE `t1` (
2513  `a` varchar(10) COLLATE latin2_nopad_bin NOT NULL,
2514  PRIMARY KEY (`a`)
2515) ENGINE=MyISAM DEFAULT CHARSET=latin2 COLLATE=latin2_nopad_bin
2516INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2517SELECT HEX(a), a FROM t1 ORDER BY a;
2518HEX(a)	a
25192061	 a
2520206120	 a
252161202020	a
2522616263	abc
25236162632020	abc
2524SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2525HEX(a)	a
25262061	 a
2527206120	 a
252861202020	a
2529616263	abc
25306162632020	abc
2531SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2532HEX(a)	a
25336162632020	abc
2534616263	abc
253561202020	a
2536206120	 a
25372061	 a
2538#
2539# UNION
2540#
2541CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin2_nopad_bin';
2542INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2543SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2544HEX(a)	a
25452061	 a
2546206120	 a
25476120	a
254861202020	a
2549616263	abc
255061626320	abc
25516162632020	abc
2552DROP TABLE t1;
2553DROP TABLE t2;
2554#
2555# DISTINCT, COUNT, MAX
2556#
2557CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_nopad_bin';
2558INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2559SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2560HEX(a)	a
25612061	 a
2562206120	 a
256361	a
2564612020	a
256561202020	a
2566SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2567COUNT(DISTINCT a)
25685
2569SELECT HEX(MAX(a)), MAX(a) FROM t1;
2570HEX(MAX(a))	MAX(a)
257161202020	a
2572#
2573# GROUP BY
2574#
2575CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin2_nopad_bin';
2576INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2577SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2578HEX(a)	cnt
25796161	1
258061612020	1
25816162	2
2582DROP TABLE t2;
2583#
2584# Weights
2585#
2586SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2587HEX(WEIGHT_STRING(a AS CHAR(10)))
258861000000000000000000
258961202000000000000000
259020610000000000000000
259120612000000000000000
259261202020000000000000
2593DROP TABLE t1;
2594#
2595# IF, CASE, LEAST
2596#
2597SELECT IF('abc' COLLATE 'latin2_nopad_bin' = 'abc ', 'pad', 'nopad');
2598IF('abc' COLLATE 'latin2_nopad_bin' = 'abc ', 'pad', 'nopad')
2599nopad
2600SELECT CASE 'abc' COLLATE 'latin2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2601CASE 'abc' COLLATE 'latin2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2602nopad
2603SELECT CASE WHEN 'abc' COLLATE 'latin2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2604CASE WHEN 'abc' COLLATE 'latin2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
2605nopad
2606SELECT HEX(LEAST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '));
2607HEX(LEAST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '))
260861626320
2609SELECT HEX(GREATEST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '));
2610HEX(GREATEST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '))
26116162632020
2612#
2613# Collation mix
2614#
2615CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_bin';
2616INSERT INTO t1 VALUES ('a'),('a ');
2617SELECT COUNT(*) FROM t1 WHERE a='a';
2618COUNT(*)
26192
2620SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_bin';
2621COUNT(*)
26222
2623SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_nopad_bin';
2624COUNT(*)
26251
2626ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin2_nopad_bin';
2627SELECT COUNT(*) FROM t1 WHERE a='a';
2628COUNT(*)
26291
2630SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_bin';
2631COUNT(*)
26322
2633SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_nopad_bin';
2634COUNT(*)
26351
2636DROP TABLE t1;
2637#
2638# End of ctype_pad.inc
2639#
2640SET DEFAULT_STORAGE_ENGINE=HEAP;
2641#
2642# Start of ctype_pad.inc
2643#
2644#
2645# Unique indexes
2646#
2647CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin2_nopad_bin';
2648SHOW CREATE TABLE t1;
2649Table	Create Table
2650t1	CREATE TABLE `t1` (
2651  `a` varchar(10) COLLATE latin2_nopad_bin NOT NULL,
2652  PRIMARY KEY (`a`)
2653) ENGINE=MEMORY DEFAULT CHARSET=latin2 COLLATE=latin2_nopad_bin
2654INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2655SELECT HEX(a), a FROM t1 ORDER BY a;
2656HEX(a)	a
26572061	 a
2658206120	 a
265961202020	a
2660616263	abc
26616162632020	abc
2662SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2663HEX(a)	a
26642061	 a
2665206120	 a
266661202020	a
2667616263	abc
26686162632020	abc
2669SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2670HEX(a)	a
26716162632020	abc
2672616263	abc
267361202020	a
2674206120	 a
26752061	 a
2676#
2677# UNION
2678#
2679CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin2_nopad_bin';
2680INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2681SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2682HEX(a)	a
26832061	 a
2684206120	 a
26856120	a
268661202020	a
2687616263	abc
268861626320	abc
26896162632020	abc
2690DROP TABLE t1;
2691DROP TABLE t2;
2692#
2693# DISTINCT, COUNT, MAX
2694#
2695CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_nopad_bin';
2696INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2697SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2698HEX(a)	a
26992061	 a
2700206120	 a
270161	a
2702612020	a
270361202020	a
2704SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2705COUNT(DISTINCT a)
27065
2707SELECT HEX(MAX(a)), MAX(a) FROM t1;
2708HEX(MAX(a))	MAX(a)
270961202020	a
2710#
2711# GROUP BY
2712#
2713CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin2_nopad_bin';
2714INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2715SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2716HEX(a)	cnt
27176161	1
271861612020	1
27196162	2
2720DROP TABLE t2;
2721#
2722# Weights
2723#
2724SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2725HEX(WEIGHT_STRING(a AS CHAR(10)))
272661000000000000000000
272761202000000000000000
272820610000000000000000
272920612000000000000000
273061202020000000000000
2731DROP TABLE t1;
2732#
2733# IF, CASE, LEAST
2734#
2735SELECT IF('abc' COLLATE 'latin2_nopad_bin' = 'abc ', 'pad', 'nopad');
2736IF('abc' COLLATE 'latin2_nopad_bin' = 'abc ', 'pad', 'nopad')
2737nopad
2738SELECT CASE 'abc' COLLATE 'latin2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2739CASE 'abc' COLLATE 'latin2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2740nopad
2741SELECT CASE WHEN 'abc' COLLATE 'latin2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2742CASE WHEN 'abc' COLLATE 'latin2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
2743nopad
2744SELECT HEX(LEAST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '));
2745HEX(LEAST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '))
274661626320
2747SELECT HEX(GREATEST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '));
2748HEX(GREATEST('abc ' COLLATE 'latin2_nopad_bin', 'abc  '))
27496162632020
2750#
2751# Collation mix
2752#
2753CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin2_bin';
2754INSERT INTO t1 VALUES ('a'),('a ');
2755SELECT COUNT(*) FROM t1 WHERE a='a';
2756COUNT(*)
27572
2758SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_bin';
2759COUNT(*)
27602
2761SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_nopad_bin';
2762COUNT(*)
27631
2764ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin2_nopad_bin';
2765SELECT COUNT(*) FROM t1 WHERE a='a';
2766COUNT(*)
27671
2768SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_bin';
2769COUNT(*)
27702
2771SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin2_nopad_bin';
2772COUNT(*)
27731
2774DROP TABLE t1;
2775#
2776# End of ctype_pad.inc
2777#
2778SET DEFAULT_STORAGE_ENGINE=Default;
2779SET character_set_connection=swe7;
2780SET DEFAULT_STORAGE_ENGINE=MyISAM;
2781#
2782# Start of ctype_pad.inc
2783#
2784#
2785# Unique indexes
2786#
2787CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'swe7_swedish_nopad_ci';
2788SHOW CREATE TABLE t1;
2789Table	Create Table
2790t1	CREATE TABLE `t1` (
2791  `a` varchar(10) COLLATE swe7_swedish_nopad_ci NOT NULL,
2792  PRIMARY KEY (`a`)
2793) ENGINE=MyISAM DEFAULT CHARSET=swe7 COLLATE=swe7_swedish_nopad_ci
2794INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2795SELECT HEX(a), a FROM t1 ORDER BY a;
2796HEX(a)	a
27972061	 a
2798206120	 a
279961202020	a
2800616263	abc
28016162632020	abc
2802SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2803HEX(a)	a
28042061	 a
2805206120	 a
280661202020	a
2807616263	abc
28086162632020	abc
2809SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2810HEX(a)	a
28116162632020	abc
2812616263	abc
281361202020	a
2814206120	 a
28152061	 a
2816#
2817# UNION
2818#
2819CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'swe7_swedish_nopad_ci';
2820INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2821SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2822HEX(a)	a
28232061	 a
2824206120	 a
28256120	a
282661202020	a
2827616263	abc
282861626320	abc
28296162632020	abc
2830DROP TABLE t1;
2831DROP TABLE t2;
2832#
2833# DISTINCT, COUNT, MAX
2834#
2835CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_swedish_nopad_ci';
2836INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2837SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2838HEX(a)	a
28392061	 a
2840206120	 a
284161	a
2842612020	a
284361202020	a
2844SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2845COUNT(DISTINCT a)
28465
2847SELECT HEX(MAX(a)), MAX(a) FROM t1;
2848HEX(MAX(a))	MAX(a)
284961202020	a
2850#
2851# GROUP BY
2852#
2853CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'swe7_swedish_nopad_ci';
2854INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2855SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2856HEX(a)	cnt
28576161	1
285861612020	1
28596162	2
2860DROP TABLE t2;
2861#
2862# Weights
2863#
2864SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
2865HEX(WEIGHT_STRING(a AS CHAR(10)))
286641000000000000000000
286741202000000000000000
286820410000000000000000
286920412000000000000000
287041202020000000000000
2871DROP TABLE t1;
2872#
2873# IF, CASE, LEAST
2874#
2875SELECT IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad');
2876IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad')
2877nopad
2878SELECT CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
2879CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
2880nopad
2881SELECT CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
2882CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
2883nopad
2884SELECT HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '));
2885HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '))
288661626320
2887SELECT HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '));
2888HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '))
28896162632020
2890#
2891# Collation mix
2892#
2893CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_swedish_ci';
2894INSERT INTO t1 VALUES ('a'),('a ');
2895SELECT COUNT(*) FROM t1 WHERE a='a';
2896COUNT(*)
28972
2898SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_ci';
2899COUNT(*)
29002
2901SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_nopad_ci';
2902COUNT(*)
29031
2904ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'swe7_swedish_nopad_ci';
2905SELECT COUNT(*) FROM t1 WHERE a='a';
2906COUNT(*)
29071
2908SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_ci';
2909COUNT(*)
29102
2911SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_nopad_ci';
2912COUNT(*)
29131
2914DROP TABLE t1;
2915#
2916# End of ctype_pad.inc
2917#
2918SET DEFAULT_STORAGE_ENGINE=HEAP;
2919#
2920# Start of ctype_pad.inc
2921#
2922#
2923# Unique indexes
2924#
2925CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'swe7_swedish_nopad_ci';
2926SHOW CREATE TABLE t1;
2927Table	Create Table
2928t1	CREATE TABLE `t1` (
2929  `a` varchar(10) COLLATE swe7_swedish_nopad_ci NOT NULL,
2930  PRIMARY KEY (`a`)
2931) ENGINE=MEMORY DEFAULT CHARSET=swe7 COLLATE=swe7_swedish_nopad_ci
2932INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
2933SELECT HEX(a), a FROM t1 ORDER BY a;
2934HEX(a)	a
29352061	 a
2936206120	 a
293761202020	a
2938616263	abc
29396162632020	abc
2940SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
2941HEX(a)	a
29422061	 a
2943206120	 a
294461202020	a
2945616263	abc
29466162632020	abc
2947SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
2948HEX(a)	a
29496162632020	abc
2950616263	abc
295161202020	a
2952206120	 a
29532061	 a
2954#
2955# UNION
2956#
2957CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'swe7_swedish_nopad_ci';
2958INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
2959SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
2960HEX(a)	a
29612061	 a
2962206120	 a
29636120	a
296461202020	a
2965616263	abc
296661626320	abc
29676162632020	abc
2968DROP TABLE t1;
2969DROP TABLE t2;
2970#
2971# DISTINCT, COUNT, MAX
2972#
2973CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_swedish_nopad_ci';
2974INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
2975SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
2976HEX(a)	a
29772061	 a
2978206120	 a
297961	a
2980612020	a
298161202020	a
2982SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
2983COUNT(DISTINCT a)
29845
2985SELECT HEX(MAX(a)), MAX(a) FROM t1;
2986HEX(MAX(a))	MAX(a)
298761202020	a
2988#
2989# GROUP BY
2990#
2991CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'swe7_swedish_nopad_ci';
2992INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
2993SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
2994HEX(a)	cnt
29956161	1
299661612020	1
29976162	2
2998DROP TABLE t2;
2999#
3000# Weights
3001#
3002SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3003HEX(WEIGHT_STRING(a AS CHAR(10)))
300441000000000000000000
300541202000000000000000
300620410000000000000000
300720412000000000000000
300841202020000000000000
3009DROP TABLE t1;
3010#
3011# IF, CASE, LEAST
3012#
3013SELECT IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad');
3014IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad')
3015nopad
3016SELECT CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3017CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3018nopad
3019SELECT CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3020CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
3021nopad
3022SELECT HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '));
3023HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '))
302461626320
3025SELECT HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '));
3026HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc  '))
30276162632020
3028#
3029# Collation mix
3030#
3031CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_swedish_ci';
3032INSERT INTO t1 VALUES ('a'),('a ');
3033SELECT COUNT(*) FROM t1 WHERE a='a';
3034COUNT(*)
30352
3036SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_ci';
3037COUNT(*)
30382
3039SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_nopad_ci';
3040COUNT(*)
30411
3042ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'swe7_swedish_nopad_ci';
3043SELECT COUNT(*) FROM t1 WHERE a='a';
3044COUNT(*)
30451
3046SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_ci';
3047COUNT(*)
30482
3049SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_swedish_nopad_ci';
3050COUNT(*)
30511
3052DROP TABLE t1;
3053#
3054# End of ctype_pad.inc
3055#
3056SET DEFAULT_STORAGE_ENGINE=Default;
3057SET DEFAULT_STORAGE_ENGINE=MyISAM;
3058#
3059# Start of ctype_pad.inc
3060#
3061#
3062# Unique indexes
3063#
3064CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'swe7_nopad_bin';
3065SHOW CREATE TABLE t1;
3066Table	Create Table
3067t1	CREATE TABLE `t1` (
3068  `a` varchar(10) COLLATE swe7_nopad_bin NOT NULL,
3069  PRIMARY KEY (`a`)
3070) ENGINE=MyISAM DEFAULT CHARSET=swe7 COLLATE=swe7_nopad_bin
3071INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3072SELECT HEX(a), a FROM t1 ORDER BY a;
3073HEX(a)	a
30742061	 a
3075206120	 a
307661202020	a
3077616263	abc
30786162632020	abc
3079SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3080HEX(a)	a
30812061	 a
3082206120	 a
308361202020	a
3084616263	abc
30856162632020	abc
3086SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3087HEX(a)	a
30886162632020	abc
3089616263	abc
309061202020	a
3091206120	 a
30922061	 a
3093#
3094# UNION
3095#
3096CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'swe7_nopad_bin';
3097INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3098SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3099HEX(a)	a
31002061	 a
3101206120	 a
31026120	a
310361202020	a
3104616263	abc
310561626320	abc
31066162632020	abc
3107DROP TABLE t1;
3108DROP TABLE t2;
3109#
3110# DISTINCT, COUNT, MAX
3111#
3112CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_nopad_bin';
3113INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3114SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3115HEX(a)	a
31162061	 a
3117206120	 a
311861	a
3119612020	a
312061202020	a
3121SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3122COUNT(DISTINCT a)
31235
3124SELECT HEX(MAX(a)), MAX(a) FROM t1;
3125HEX(MAX(a))	MAX(a)
312661202020	a
3127#
3128# GROUP BY
3129#
3130CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'swe7_nopad_bin';
3131INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3132SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3133HEX(a)	cnt
31346161	1
313561612020	1
31366162	2
3137DROP TABLE t2;
3138#
3139# Weights
3140#
3141SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3142HEX(WEIGHT_STRING(a AS CHAR(10)))
314361000000000000000000
314461202000000000000000
314520610000000000000000
314620612000000000000000
314761202020000000000000
3148DROP TABLE t1;
3149#
3150# IF, CASE, LEAST
3151#
3152SELECT IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad');
3153IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad')
3154nopad
3155SELECT CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3156CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3157nopad
3158SELECT CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3159CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
3160nopad
3161SELECT HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '));
3162HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '))
316361626320
3164SELECT HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '));
3165HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '))
31666162632020
3167#
3168# Collation mix
3169#
3170CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_bin';
3171INSERT INTO t1 VALUES ('a'),('a ');
3172SELECT COUNT(*) FROM t1 WHERE a='a';
3173COUNT(*)
31742
3175SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_bin';
3176COUNT(*)
31772
3178SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_nopad_bin';
3179COUNT(*)
31801
3181ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'swe7_nopad_bin';
3182SELECT COUNT(*) FROM t1 WHERE a='a';
3183COUNT(*)
31841
3185SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_bin';
3186COUNT(*)
31872
3188SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_nopad_bin';
3189COUNT(*)
31901
3191DROP TABLE t1;
3192#
3193# End of ctype_pad.inc
3194#
3195SET DEFAULT_STORAGE_ENGINE=HEAP;
3196#
3197# Start of ctype_pad.inc
3198#
3199#
3200# Unique indexes
3201#
3202CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'swe7_nopad_bin';
3203SHOW CREATE TABLE t1;
3204Table	Create Table
3205t1	CREATE TABLE `t1` (
3206  `a` varchar(10) COLLATE swe7_nopad_bin NOT NULL,
3207  PRIMARY KEY (`a`)
3208) ENGINE=MEMORY DEFAULT CHARSET=swe7 COLLATE=swe7_nopad_bin
3209INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3210SELECT HEX(a), a FROM t1 ORDER BY a;
3211HEX(a)	a
32122061	 a
3213206120	 a
321461202020	a
3215616263	abc
32166162632020	abc
3217SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3218HEX(a)	a
32192061	 a
3220206120	 a
322161202020	a
3222616263	abc
32236162632020	abc
3224SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3225HEX(a)	a
32266162632020	abc
3227616263	abc
322861202020	a
3229206120	 a
32302061	 a
3231#
3232# UNION
3233#
3234CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'swe7_nopad_bin';
3235INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3236SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3237HEX(a)	a
32382061	 a
3239206120	 a
32406120	a
324161202020	a
3242616263	abc
324361626320	abc
32446162632020	abc
3245DROP TABLE t1;
3246DROP TABLE t2;
3247#
3248# DISTINCT, COUNT, MAX
3249#
3250CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_nopad_bin';
3251INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3252SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3253HEX(a)	a
32542061	 a
3255206120	 a
325661	a
3257612020	a
325861202020	a
3259SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3260COUNT(DISTINCT a)
32615
3262SELECT HEX(MAX(a)), MAX(a) FROM t1;
3263HEX(MAX(a))	MAX(a)
326461202020	a
3265#
3266# GROUP BY
3267#
3268CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'swe7_nopad_bin';
3269INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3270SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3271HEX(a)	cnt
32726161	1
327361612020	1
32746162	2
3275DROP TABLE t2;
3276#
3277# Weights
3278#
3279SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3280HEX(WEIGHT_STRING(a AS CHAR(10)))
328161000000000000000000
328261202000000000000000
328320610000000000000000
328420612000000000000000
328561202020000000000000
3286DROP TABLE t1;
3287#
3288# IF, CASE, LEAST
3289#
3290SELECT IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad');
3291IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad')
3292nopad
3293SELECT CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3294CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3295nopad
3296SELECT CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3297CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
3298nopad
3299SELECT HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '));
3300HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '))
330161626320
3302SELECT HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '));
3303HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc  '))
33046162632020
3305#
3306# Collation mix
3307#
3308CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'swe7_bin';
3309INSERT INTO t1 VALUES ('a'),('a ');
3310SELECT COUNT(*) FROM t1 WHERE a='a';
3311COUNT(*)
33122
3313SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_bin';
3314COUNT(*)
33152
3316SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_nopad_bin';
3317COUNT(*)
33181
3319ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'swe7_nopad_bin';
3320SELECT COUNT(*) FROM t1 WHERE a='a';
3321COUNT(*)
33221
3323SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_bin';
3324COUNT(*)
33252
3326SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'swe7_nopad_bin';
3327COUNT(*)
33281
3329DROP TABLE t1;
3330#
3331# End of ctype_pad.inc
3332#
3333SET DEFAULT_STORAGE_ENGINE=Default;
3334SET character_set_connection=ascii;
3335SET DEFAULT_STORAGE_ENGINE=MyISAM;
3336#
3337# Start of ctype_pad.inc
3338#
3339#
3340# Unique indexes
3341#
3342CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'ascii_general_nopad_ci';
3343SHOW CREATE TABLE t1;
3344Table	Create Table
3345t1	CREATE TABLE `t1` (
3346  `a` varchar(10) COLLATE ascii_general_nopad_ci NOT NULL,
3347  PRIMARY KEY (`a`)
3348) ENGINE=MyISAM DEFAULT CHARSET=ascii COLLATE=ascii_general_nopad_ci
3349INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3350SELECT HEX(a), a FROM t1 ORDER BY a;
3351HEX(a)	a
33522061	 a
3353206120	 a
335461202020	a
3355616263	abc
33566162632020	abc
3357SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3358HEX(a)	a
33592061	 a
3360206120	 a
336161202020	a
3362616263	abc
33636162632020	abc
3364SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3365HEX(a)	a
33666162632020	abc
3367616263	abc
336861202020	a
3369206120	 a
33702061	 a
3371#
3372# UNION
3373#
3374CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'ascii_general_nopad_ci';
3375INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3376SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3377HEX(a)	a
33782061	 a
3379206120	 a
33806120	a
338161202020	a
3382616263	abc
338361626320	abc
33846162632020	abc
3385DROP TABLE t1;
3386DROP TABLE t2;
3387#
3388# DISTINCT, COUNT, MAX
3389#
3390CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_general_nopad_ci';
3391INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3392SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3393HEX(a)	a
33942061	 a
3395206120	 a
339661	a
3397612020	a
339861202020	a
3399SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3400COUNT(DISTINCT a)
34015
3402SELECT HEX(MAX(a)), MAX(a) FROM t1;
3403HEX(MAX(a))	MAX(a)
340461202020	a
3405#
3406# GROUP BY
3407#
3408CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'ascii_general_nopad_ci';
3409INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3410SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3411HEX(a)	cnt
34126161	1
341361612020	1
34146162	2
3415DROP TABLE t2;
3416#
3417# Weights
3418#
3419SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3420HEX(WEIGHT_STRING(a AS CHAR(10)))
342141000000000000000000
342241202000000000000000
342320410000000000000000
342420412000000000000000
342541202020000000000000
3426DROP TABLE t1;
3427#
3428# IF, CASE, LEAST
3429#
3430SELECT IF('abc' COLLATE 'ascii_general_nopad_ci' = 'abc ', 'pad', 'nopad');
3431IF('abc' COLLATE 'ascii_general_nopad_ci' = 'abc ', 'pad', 'nopad')
3432nopad
3433SELECT CASE 'abc' COLLATE 'ascii_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3434CASE 'abc' COLLATE 'ascii_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3435nopad
3436SELECT CASE WHEN 'abc' COLLATE 'ascii_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3437CASE WHEN 'abc' COLLATE 'ascii_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
3438nopad
3439SELECT HEX(LEAST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '));
3440HEX(LEAST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '))
344161626320
3442SELECT HEX(GREATEST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '));
3443HEX(GREATEST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '))
34446162632020
3445#
3446# Collation mix
3447#
3448CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_general_ci';
3449INSERT INTO t1 VALUES ('a'),('a ');
3450SELECT COUNT(*) FROM t1 WHERE a='a';
3451COUNT(*)
34522
3453SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_ci';
3454COUNT(*)
34552
3456SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_nopad_ci';
3457COUNT(*)
34581
3459ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'ascii_general_nopad_ci';
3460SELECT COUNT(*) FROM t1 WHERE a='a';
3461COUNT(*)
34621
3463SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_ci';
3464COUNT(*)
34652
3466SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_nopad_ci';
3467COUNT(*)
34681
3469DROP TABLE t1;
3470#
3471# End of ctype_pad.inc
3472#
3473SET DEFAULT_STORAGE_ENGINE=HEAP;
3474#
3475# Start of ctype_pad.inc
3476#
3477#
3478# Unique indexes
3479#
3480CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'ascii_general_nopad_ci';
3481SHOW CREATE TABLE t1;
3482Table	Create Table
3483t1	CREATE TABLE `t1` (
3484  `a` varchar(10) COLLATE ascii_general_nopad_ci NOT NULL,
3485  PRIMARY KEY (`a`)
3486) ENGINE=MEMORY DEFAULT CHARSET=ascii COLLATE=ascii_general_nopad_ci
3487INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3488SELECT HEX(a), a FROM t1 ORDER BY a;
3489HEX(a)	a
34902061	 a
3491206120	 a
349261202020	a
3493616263	abc
34946162632020	abc
3495SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3496HEX(a)	a
34972061	 a
3498206120	 a
349961202020	a
3500616263	abc
35016162632020	abc
3502SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3503HEX(a)	a
35046162632020	abc
3505616263	abc
350661202020	a
3507206120	 a
35082061	 a
3509#
3510# UNION
3511#
3512CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'ascii_general_nopad_ci';
3513INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3514SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3515HEX(a)	a
35162061	 a
3517206120	 a
35186120	a
351961202020	a
3520616263	abc
352161626320	abc
35226162632020	abc
3523DROP TABLE t1;
3524DROP TABLE t2;
3525#
3526# DISTINCT, COUNT, MAX
3527#
3528CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_general_nopad_ci';
3529INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3530SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3531HEX(a)	a
35322061	 a
3533206120	 a
353461	a
3535612020	a
353661202020	a
3537SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3538COUNT(DISTINCT a)
35395
3540SELECT HEX(MAX(a)), MAX(a) FROM t1;
3541HEX(MAX(a))	MAX(a)
354261202020	a
3543#
3544# GROUP BY
3545#
3546CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'ascii_general_nopad_ci';
3547INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3548SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3549HEX(a)	cnt
35506161	1
355161612020	1
35526162	2
3553DROP TABLE t2;
3554#
3555# Weights
3556#
3557SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3558HEX(WEIGHT_STRING(a AS CHAR(10)))
355941000000000000000000
356041202000000000000000
356120410000000000000000
356220412000000000000000
356341202020000000000000
3564DROP TABLE t1;
3565#
3566# IF, CASE, LEAST
3567#
3568SELECT IF('abc' COLLATE 'ascii_general_nopad_ci' = 'abc ', 'pad', 'nopad');
3569IF('abc' COLLATE 'ascii_general_nopad_ci' = 'abc ', 'pad', 'nopad')
3570nopad
3571SELECT CASE 'abc' COLLATE 'ascii_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3572CASE 'abc' COLLATE 'ascii_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3573nopad
3574SELECT CASE WHEN 'abc' COLLATE 'ascii_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3575CASE WHEN 'abc' COLLATE 'ascii_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
3576nopad
3577SELECT HEX(LEAST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '));
3578HEX(LEAST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '))
357961626320
3580SELECT HEX(GREATEST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '));
3581HEX(GREATEST('abc ' COLLATE 'ascii_general_nopad_ci', 'abc  '))
35826162632020
3583#
3584# Collation mix
3585#
3586CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_general_ci';
3587INSERT INTO t1 VALUES ('a'),('a ');
3588SELECT COUNT(*) FROM t1 WHERE a='a';
3589COUNT(*)
35902
3591SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_ci';
3592COUNT(*)
35932
3594SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_nopad_ci';
3595COUNT(*)
35961
3597ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'ascii_general_nopad_ci';
3598SELECT COUNT(*) FROM t1 WHERE a='a';
3599COUNT(*)
36001
3601SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_ci';
3602COUNT(*)
36032
3604SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_general_nopad_ci';
3605COUNT(*)
36061
3607DROP TABLE t1;
3608#
3609# End of ctype_pad.inc
3610#
3611SET DEFAULT_STORAGE_ENGINE=Default;
3612SET DEFAULT_STORAGE_ENGINE=MyISAM;
3613#
3614# Start of ctype_pad.inc
3615#
3616#
3617# Unique indexes
3618#
3619CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'ascii_nopad_bin';
3620SHOW CREATE TABLE t1;
3621Table	Create Table
3622t1	CREATE TABLE `t1` (
3623  `a` varchar(10) COLLATE ascii_nopad_bin NOT NULL,
3624  PRIMARY KEY (`a`)
3625) ENGINE=MyISAM DEFAULT CHARSET=ascii COLLATE=ascii_nopad_bin
3626INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3627SELECT HEX(a), a FROM t1 ORDER BY a;
3628HEX(a)	a
36292061	 a
3630206120	 a
363161202020	a
3632616263	abc
36336162632020	abc
3634SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3635HEX(a)	a
36362061	 a
3637206120	 a
363861202020	a
3639616263	abc
36406162632020	abc
3641SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3642HEX(a)	a
36436162632020	abc
3644616263	abc
364561202020	a
3646206120	 a
36472061	 a
3648#
3649# UNION
3650#
3651CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'ascii_nopad_bin';
3652INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3653SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3654HEX(a)	a
36552061	 a
3656206120	 a
36576120	a
365861202020	a
3659616263	abc
366061626320	abc
36616162632020	abc
3662DROP TABLE t1;
3663DROP TABLE t2;
3664#
3665# DISTINCT, COUNT, MAX
3666#
3667CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_nopad_bin';
3668INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3669SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3670HEX(a)	a
36712061	 a
3672206120	 a
367361	a
3674612020	a
367561202020	a
3676SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3677COUNT(DISTINCT a)
36785
3679SELECT HEX(MAX(a)), MAX(a) FROM t1;
3680HEX(MAX(a))	MAX(a)
368161202020	a
3682#
3683# GROUP BY
3684#
3685CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'ascii_nopad_bin';
3686INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3687SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3688HEX(a)	cnt
36896161	1
369061612020	1
36916162	2
3692DROP TABLE t2;
3693#
3694# Weights
3695#
3696SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3697HEX(WEIGHT_STRING(a AS CHAR(10)))
369861000000000000000000
369961202000000000000000
370020610000000000000000
370120612000000000000000
370261202020000000000000
3703DROP TABLE t1;
3704#
3705# IF, CASE, LEAST
3706#
3707SELECT IF('abc' COLLATE 'ascii_nopad_bin' = 'abc ', 'pad', 'nopad');
3708IF('abc' COLLATE 'ascii_nopad_bin' = 'abc ', 'pad', 'nopad')
3709nopad
3710SELECT CASE 'abc' COLLATE 'ascii_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3711CASE 'abc' COLLATE 'ascii_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3712nopad
3713SELECT CASE WHEN 'abc' COLLATE 'ascii_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3714CASE WHEN 'abc' COLLATE 'ascii_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
3715nopad
3716SELECT HEX(LEAST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '));
3717HEX(LEAST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '))
371861626320
3719SELECT HEX(GREATEST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '));
3720HEX(GREATEST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '))
37216162632020
3722#
3723# Collation mix
3724#
3725CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_bin';
3726INSERT INTO t1 VALUES ('a'),('a ');
3727SELECT COUNT(*) FROM t1 WHERE a='a';
3728COUNT(*)
37292
3730SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_bin';
3731COUNT(*)
37322
3733SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_nopad_bin';
3734COUNT(*)
37351
3736ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'ascii_nopad_bin';
3737SELECT COUNT(*) FROM t1 WHERE a='a';
3738COUNT(*)
37391
3740SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_bin';
3741COUNT(*)
37422
3743SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_nopad_bin';
3744COUNT(*)
37451
3746DROP TABLE t1;
3747#
3748# End of ctype_pad.inc
3749#
3750SET DEFAULT_STORAGE_ENGINE=HEAP;
3751#
3752# Start of ctype_pad.inc
3753#
3754#
3755# Unique indexes
3756#
3757CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'ascii_nopad_bin';
3758SHOW CREATE TABLE t1;
3759Table	Create Table
3760t1	CREATE TABLE `t1` (
3761  `a` varchar(10) COLLATE ascii_nopad_bin NOT NULL,
3762  PRIMARY KEY (`a`)
3763) ENGINE=MEMORY DEFAULT CHARSET=ascii COLLATE=ascii_nopad_bin
3764INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3765SELECT HEX(a), a FROM t1 ORDER BY a;
3766HEX(a)	a
37672061	 a
3768206120	 a
376961202020	a
3770616263	abc
37716162632020	abc
3772SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3773HEX(a)	a
37742061	 a
3775206120	 a
377661202020	a
3777616263	abc
37786162632020	abc
3779SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3780HEX(a)	a
37816162632020	abc
3782616263	abc
378361202020	a
3784206120	 a
37852061	 a
3786#
3787# UNION
3788#
3789CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'ascii_nopad_bin';
3790INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3791SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3792HEX(a)	a
37932061	 a
3794206120	 a
37956120	a
379661202020	a
3797616263	abc
379861626320	abc
37996162632020	abc
3800DROP TABLE t1;
3801DROP TABLE t2;
3802#
3803# DISTINCT, COUNT, MAX
3804#
3805CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_nopad_bin';
3806INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3807SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3808HEX(a)	a
38092061	 a
3810206120	 a
381161	a
3812612020	a
381361202020	a
3814SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3815COUNT(DISTINCT a)
38165
3817SELECT HEX(MAX(a)), MAX(a) FROM t1;
3818HEX(MAX(a))	MAX(a)
381961202020	a
3820#
3821# GROUP BY
3822#
3823CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'ascii_nopad_bin';
3824INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3825SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3826HEX(a)	cnt
38276161	1
382861612020	1
38296162	2
3830DROP TABLE t2;
3831#
3832# Weights
3833#
3834SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3835HEX(WEIGHT_STRING(a AS CHAR(10)))
383661000000000000000000
383761202000000000000000
383820610000000000000000
383920612000000000000000
384061202020000000000000
3841DROP TABLE t1;
3842#
3843# IF, CASE, LEAST
3844#
3845SELECT IF('abc' COLLATE 'ascii_nopad_bin' = 'abc ', 'pad', 'nopad');
3846IF('abc' COLLATE 'ascii_nopad_bin' = 'abc ', 'pad', 'nopad')
3847nopad
3848SELECT CASE 'abc' COLLATE 'ascii_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3849CASE 'abc' COLLATE 'ascii_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3850nopad
3851SELECT CASE WHEN 'abc' COLLATE 'ascii_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3852CASE WHEN 'abc' COLLATE 'ascii_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
3853nopad
3854SELECT HEX(LEAST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '));
3855HEX(LEAST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '))
385661626320
3857SELECT HEX(GREATEST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '));
3858HEX(GREATEST('abc ' COLLATE 'ascii_nopad_bin', 'abc  '))
38596162632020
3860#
3861# Collation mix
3862#
3863CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'ascii_bin';
3864INSERT INTO t1 VALUES ('a'),('a ');
3865SELECT COUNT(*) FROM t1 WHERE a='a';
3866COUNT(*)
38672
3868SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_bin';
3869COUNT(*)
38702
3871SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_nopad_bin';
3872COUNT(*)
38731
3874ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'ascii_nopad_bin';
3875SELECT COUNT(*) FROM t1 WHERE a='a';
3876COUNT(*)
38771
3878SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_bin';
3879COUNT(*)
38802
3881SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'ascii_nopad_bin';
3882COUNT(*)
38831
3884DROP TABLE t1;
3885#
3886# End of ctype_pad.inc
3887#
3888SET DEFAULT_STORAGE_ENGINE=Default;
3889SET character_set_connection=hebrew;
3890SET DEFAULT_STORAGE_ENGINE=MyISAM;
3891#
3892# Start of ctype_pad.inc
3893#
3894#
3895# Unique indexes
3896#
3897CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hebrew_general_nopad_ci';
3898SHOW CREATE TABLE t1;
3899Table	Create Table
3900t1	CREATE TABLE `t1` (
3901  `a` varchar(10) COLLATE hebrew_general_nopad_ci NOT NULL,
3902  PRIMARY KEY (`a`)
3903) ENGINE=MyISAM DEFAULT CHARSET=hebrew COLLATE=hebrew_general_nopad_ci
3904INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
3905SELECT HEX(a), a FROM t1 ORDER BY a;
3906HEX(a)	a
39072061	 a
3908206120	 a
390961202020	a
3910616263	abc
39116162632020	abc
3912SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
3913HEX(a)	a
39142061	 a
3915206120	 a
391661202020	a
3917616263	abc
39186162632020	abc
3919SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
3920HEX(a)	a
39216162632020	abc
3922616263	abc
392361202020	a
3924206120	 a
39252061	 a
3926#
3927# UNION
3928#
3929CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hebrew_general_nopad_ci';
3930INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
3931SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
3932HEX(a)	a
39332061	 a
3934206120	 a
39356120	a
393661202020	a
3937616263	abc
393861626320	abc
39396162632020	abc
3940DROP TABLE t1;
3941DROP TABLE t2;
3942#
3943# DISTINCT, COUNT, MAX
3944#
3945CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_general_nopad_ci';
3946INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
3947SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
3948HEX(a)	a
39492061	 a
3950206120	 a
395161	a
3952612020	a
395361202020	a
3954SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
3955COUNT(DISTINCT a)
39565
3957SELECT HEX(MAX(a)), MAX(a) FROM t1;
3958HEX(MAX(a))	MAX(a)
395961202020	a
3960#
3961# GROUP BY
3962#
3963CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hebrew_general_nopad_ci';
3964INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
3965SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
3966HEX(a)	cnt
39676161	1
396861612020	1
39696162	2
3970DROP TABLE t2;
3971#
3972# Weights
3973#
3974SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
3975HEX(WEIGHT_STRING(a AS CHAR(10)))
397641000000000000000000
397741202000000000000000
397820410000000000000000
397920412000000000000000
398041202020000000000000
3981DROP TABLE t1;
3982#
3983# IF, CASE, LEAST
3984#
3985SELECT IF('abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ', 'pad', 'nopad');
3986IF('abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ', 'pad', 'nopad')
3987nopad
3988SELECT CASE 'abc' COLLATE 'hebrew_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
3989CASE 'abc' COLLATE 'hebrew_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
3990nopad
3991SELECT CASE WHEN 'abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
3992CASE WHEN 'abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
3993nopad
3994SELECT HEX(LEAST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '));
3995HEX(LEAST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '))
399661626320
3997SELECT HEX(GREATEST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '));
3998HEX(GREATEST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '))
39996162632020
4000#
4001# Collation mix
4002#
4003CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_general_ci';
4004INSERT INTO t1 VALUES ('a'),('a ');
4005SELECT COUNT(*) FROM t1 WHERE a='a';
4006COUNT(*)
40072
4008SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_ci';
4009COUNT(*)
40102
4011SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_nopad_ci';
4012COUNT(*)
40131
4014ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hebrew_general_nopad_ci';
4015SELECT COUNT(*) FROM t1 WHERE a='a';
4016COUNT(*)
40171
4018SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_ci';
4019COUNT(*)
40202
4021SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_nopad_ci';
4022COUNT(*)
40231
4024DROP TABLE t1;
4025#
4026# End of ctype_pad.inc
4027#
4028SET DEFAULT_STORAGE_ENGINE=HEAP;
4029#
4030# Start of ctype_pad.inc
4031#
4032#
4033# Unique indexes
4034#
4035CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hebrew_general_nopad_ci';
4036SHOW CREATE TABLE t1;
4037Table	Create Table
4038t1	CREATE TABLE `t1` (
4039  `a` varchar(10) COLLATE hebrew_general_nopad_ci NOT NULL,
4040  PRIMARY KEY (`a`)
4041) ENGINE=MEMORY DEFAULT CHARSET=hebrew COLLATE=hebrew_general_nopad_ci
4042INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4043SELECT HEX(a), a FROM t1 ORDER BY a;
4044HEX(a)	a
40452061	 a
4046206120	 a
404761202020	a
4048616263	abc
40496162632020	abc
4050SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4051HEX(a)	a
40522061	 a
4053206120	 a
405461202020	a
4055616263	abc
40566162632020	abc
4057SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4058HEX(a)	a
40596162632020	abc
4060616263	abc
406161202020	a
4062206120	 a
40632061	 a
4064#
4065# UNION
4066#
4067CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hebrew_general_nopad_ci';
4068INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4069SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4070HEX(a)	a
40712061	 a
4072206120	 a
40736120	a
407461202020	a
4075616263	abc
407661626320	abc
40776162632020	abc
4078DROP TABLE t1;
4079DROP TABLE t2;
4080#
4081# DISTINCT, COUNT, MAX
4082#
4083CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_general_nopad_ci';
4084INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4085SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4086HEX(a)	a
40872061	 a
4088206120	 a
408961	a
4090612020	a
409161202020	a
4092SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4093COUNT(DISTINCT a)
40945
4095SELECT HEX(MAX(a)), MAX(a) FROM t1;
4096HEX(MAX(a))	MAX(a)
409761202020	a
4098#
4099# GROUP BY
4100#
4101CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hebrew_general_nopad_ci';
4102INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4103SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4104HEX(a)	cnt
41056161	1
410661612020	1
41076162	2
4108DROP TABLE t2;
4109#
4110# Weights
4111#
4112SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4113HEX(WEIGHT_STRING(a AS CHAR(10)))
411441000000000000000000
411541202000000000000000
411620410000000000000000
411720412000000000000000
411841202020000000000000
4119DROP TABLE t1;
4120#
4121# IF, CASE, LEAST
4122#
4123SELECT IF('abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ', 'pad', 'nopad');
4124IF('abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ', 'pad', 'nopad')
4125nopad
4126SELECT CASE 'abc' COLLATE 'hebrew_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4127CASE 'abc' COLLATE 'hebrew_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4128nopad
4129SELECT CASE WHEN 'abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4130CASE WHEN 'abc' COLLATE 'hebrew_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
4131nopad
4132SELECT HEX(LEAST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '));
4133HEX(LEAST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '))
413461626320
4135SELECT HEX(GREATEST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '));
4136HEX(GREATEST('abc ' COLLATE 'hebrew_general_nopad_ci', 'abc  '))
41376162632020
4138#
4139# Collation mix
4140#
4141CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_general_ci';
4142INSERT INTO t1 VALUES ('a'),('a ');
4143SELECT COUNT(*) FROM t1 WHERE a='a';
4144COUNT(*)
41452
4146SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_ci';
4147COUNT(*)
41482
4149SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_nopad_ci';
4150COUNT(*)
41511
4152ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hebrew_general_nopad_ci';
4153SELECT COUNT(*) FROM t1 WHERE a='a';
4154COUNT(*)
41551
4156SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_ci';
4157COUNT(*)
41582
4159SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_general_nopad_ci';
4160COUNT(*)
41611
4162DROP TABLE t1;
4163#
4164# End of ctype_pad.inc
4165#
4166SET DEFAULT_STORAGE_ENGINE=Default;
4167SET DEFAULT_STORAGE_ENGINE=MyISAM;
4168#
4169# Start of ctype_pad.inc
4170#
4171#
4172# Unique indexes
4173#
4174CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hebrew_nopad_bin';
4175SHOW CREATE TABLE t1;
4176Table	Create Table
4177t1	CREATE TABLE `t1` (
4178  `a` varchar(10) COLLATE hebrew_nopad_bin NOT NULL,
4179  PRIMARY KEY (`a`)
4180) ENGINE=MyISAM DEFAULT CHARSET=hebrew COLLATE=hebrew_nopad_bin
4181INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4182SELECT HEX(a), a FROM t1 ORDER BY a;
4183HEX(a)	a
41842061	 a
4185206120	 a
418661202020	a
4187616263	abc
41886162632020	abc
4189SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4190HEX(a)	a
41912061	 a
4192206120	 a
419361202020	a
4194616263	abc
41956162632020	abc
4196SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4197HEX(a)	a
41986162632020	abc
4199616263	abc
420061202020	a
4201206120	 a
42022061	 a
4203#
4204# UNION
4205#
4206CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hebrew_nopad_bin';
4207INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4208SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4209HEX(a)	a
42102061	 a
4211206120	 a
42126120	a
421361202020	a
4214616263	abc
421561626320	abc
42166162632020	abc
4217DROP TABLE t1;
4218DROP TABLE t2;
4219#
4220# DISTINCT, COUNT, MAX
4221#
4222CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_nopad_bin';
4223INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4224SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4225HEX(a)	a
42262061	 a
4227206120	 a
422861	a
4229612020	a
423061202020	a
4231SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4232COUNT(DISTINCT a)
42335
4234SELECT HEX(MAX(a)), MAX(a) FROM t1;
4235HEX(MAX(a))	MAX(a)
423661202020	a
4237#
4238# GROUP BY
4239#
4240CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hebrew_nopad_bin';
4241INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4242SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4243HEX(a)	cnt
42446161	1
424561612020	1
42466162	2
4247DROP TABLE t2;
4248#
4249# Weights
4250#
4251SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4252HEX(WEIGHT_STRING(a AS CHAR(10)))
425361000000000000000000
425461202000000000000000
425520610000000000000000
425620612000000000000000
425761202020000000000000
4258DROP TABLE t1;
4259#
4260# IF, CASE, LEAST
4261#
4262SELECT IF('abc' COLLATE 'hebrew_nopad_bin' = 'abc ', 'pad', 'nopad');
4263IF('abc' COLLATE 'hebrew_nopad_bin' = 'abc ', 'pad', 'nopad')
4264nopad
4265SELECT CASE 'abc' COLLATE 'hebrew_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4266CASE 'abc' COLLATE 'hebrew_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4267nopad
4268SELECT CASE WHEN 'abc' COLLATE 'hebrew_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4269CASE WHEN 'abc' COLLATE 'hebrew_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
4270nopad
4271SELECT HEX(LEAST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '));
4272HEX(LEAST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '))
427361626320
4274SELECT HEX(GREATEST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '));
4275HEX(GREATEST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '))
42766162632020
4277#
4278# Collation mix
4279#
4280CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_bin';
4281INSERT INTO t1 VALUES ('a'),('a ');
4282SELECT COUNT(*) FROM t1 WHERE a='a';
4283COUNT(*)
42842
4285SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_bin';
4286COUNT(*)
42872
4288SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_nopad_bin';
4289COUNT(*)
42901
4291ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hebrew_nopad_bin';
4292SELECT COUNT(*) FROM t1 WHERE a='a';
4293COUNT(*)
42941
4295SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_bin';
4296COUNT(*)
42972
4298SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_nopad_bin';
4299COUNT(*)
43001
4301DROP TABLE t1;
4302#
4303# End of ctype_pad.inc
4304#
4305SET DEFAULT_STORAGE_ENGINE=HEAP;
4306#
4307# Start of ctype_pad.inc
4308#
4309#
4310# Unique indexes
4311#
4312CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'hebrew_nopad_bin';
4313SHOW CREATE TABLE t1;
4314Table	Create Table
4315t1	CREATE TABLE `t1` (
4316  `a` varchar(10) COLLATE hebrew_nopad_bin NOT NULL,
4317  PRIMARY KEY (`a`)
4318) ENGINE=MEMORY DEFAULT CHARSET=hebrew COLLATE=hebrew_nopad_bin
4319INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4320SELECT HEX(a), a FROM t1 ORDER BY a;
4321HEX(a)	a
43222061	 a
4323206120	 a
432461202020	a
4325616263	abc
43266162632020	abc
4327SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4328HEX(a)	a
43292061	 a
4330206120	 a
433161202020	a
4332616263	abc
43336162632020	abc
4334SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4335HEX(a)	a
43366162632020	abc
4337616263	abc
433861202020	a
4339206120	 a
43402061	 a
4341#
4342# UNION
4343#
4344CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'hebrew_nopad_bin';
4345INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4346SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4347HEX(a)	a
43482061	 a
4349206120	 a
43506120	a
435161202020	a
4352616263	abc
435361626320	abc
43546162632020	abc
4355DROP TABLE t1;
4356DROP TABLE t2;
4357#
4358# DISTINCT, COUNT, MAX
4359#
4360CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_nopad_bin';
4361INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4362SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4363HEX(a)	a
43642061	 a
4365206120	 a
436661	a
4367612020	a
436861202020	a
4369SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4370COUNT(DISTINCT a)
43715
4372SELECT HEX(MAX(a)), MAX(a) FROM t1;
4373HEX(MAX(a))	MAX(a)
437461202020	a
4375#
4376# GROUP BY
4377#
4378CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'hebrew_nopad_bin';
4379INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4380SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4381HEX(a)	cnt
43826161	1
438361612020	1
43846162	2
4385DROP TABLE t2;
4386#
4387# Weights
4388#
4389SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4390HEX(WEIGHT_STRING(a AS CHAR(10)))
439161000000000000000000
439261202000000000000000
439320610000000000000000
439420612000000000000000
439561202020000000000000
4396DROP TABLE t1;
4397#
4398# IF, CASE, LEAST
4399#
4400SELECT IF('abc' COLLATE 'hebrew_nopad_bin' = 'abc ', 'pad', 'nopad');
4401IF('abc' COLLATE 'hebrew_nopad_bin' = 'abc ', 'pad', 'nopad')
4402nopad
4403SELECT CASE 'abc' COLLATE 'hebrew_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4404CASE 'abc' COLLATE 'hebrew_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4405nopad
4406SELECT CASE WHEN 'abc' COLLATE 'hebrew_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4407CASE WHEN 'abc' COLLATE 'hebrew_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
4408nopad
4409SELECT HEX(LEAST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '));
4410HEX(LEAST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '))
441161626320
4412SELECT HEX(GREATEST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '));
4413HEX(GREATEST('abc ' COLLATE 'hebrew_nopad_bin', 'abc  '))
44146162632020
4415#
4416# Collation mix
4417#
4418CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'hebrew_bin';
4419INSERT INTO t1 VALUES ('a'),('a ');
4420SELECT COUNT(*) FROM t1 WHERE a='a';
4421COUNT(*)
44222
4423SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_bin';
4424COUNT(*)
44252
4426SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_nopad_bin';
4427COUNT(*)
44281
4429ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'hebrew_nopad_bin';
4430SELECT COUNT(*) FROM t1 WHERE a='a';
4431COUNT(*)
44321
4433SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_bin';
4434COUNT(*)
44352
4436SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'hebrew_nopad_bin';
4437COUNT(*)
44381
4439DROP TABLE t1;
4440#
4441# End of ctype_pad.inc
4442#
4443SET DEFAULT_STORAGE_ENGINE=Default;
4444SET character_set_connection=koi8u;
4445SET DEFAULT_STORAGE_ENGINE=MyISAM;
4446#
4447# Start of ctype_pad.inc
4448#
4449#
4450# Unique indexes
4451#
4452CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8u_general_nopad_ci';
4453SHOW CREATE TABLE t1;
4454Table	Create Table
4455t1	CREATE TABLE `t1` (
4456  `a` varchar(10) COLLATE koi8u_general_nopad_ci NOT NULL,
4457  PRIMARY KEY (`a`)
4458) ENGINE=MyISAM DEFAULT CHARSET=koi8u COLLATE=koi8u_general_nopad_ci
4459INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4460SELECT HEX(a), a FROM t1 ORDER BY a;
4461HEX(a)	a
44622061	 a
4463206120	 a
446461202020	a
4465616263	abc
44666162632020	abc
4467SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4468HEX(a)	a
44692061	 a
4470206120	 a
447161202020	a
4472616263	abc
44736162632020	abc
4474SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4475HEX(a)	a
44766162632020	abc
4477616263	abc
447861202020	a
4479206120	 a
44802061	 a
4481#
4482# UNION
4483#
4484CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8u_general_nopad_ci';
4485INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4486SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4487HEX(a)	a
44882061	 a
4489206120	 a
44906120	a
449161202020	a
4492616263	abc
449361626320	abc
44946162632020	abc
4495DROP TABLE t1;
4496DROP TABLE t2;
4497#
4498# DISTINCT, COUNT, MAX
4499#
4500CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_general_nopad_ci';
4501INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4502SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4503HEX(a)	a
45042061	 a
4505206120	 a
450661	a
4507612020	a
450861202020	a
4509SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4510COUNT(DISTINCT a)
45115
4512SELECT HEX(MAX(a)), MAX(a) FROM t1;
4513HEX(MAX(a))	MAX(a)
451461202020	a
4515#
4516# GROUP BY
4517#
4518CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8u_general_nopad_ci';
4519INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4520SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4521HEX(a)	cnt
45226161	1
452361612020	1
45246162	2
4525DROP TABLE t2;
4526#
4527# Weights
4528#
4529SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4530HEX(WEIGHT_STRING(a AS CHAR(10)))
453141000000000000000000
453241202000000000000000
453320410000000000000000
453420412000000000000000
453541202020000000000000
4536DROP TABLE t1;
4537#
4538# IF, CASE, LEAST
4539#
4540SELECT IF('abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ', 'pad', 'nopad');
4541IF('abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ', 'pad', 'nopad')
4542nopad
4543SELECT CASE 'abc' COLLATE 'koi8u_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4544CASE 'abc' COLLATE 'koi8u_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4545nopad
4546SELECT CASE WHEN 'abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4547CASE WHEN 'abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
4548nopad
4549SELECT HEX(LEAST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '));
4550HEX(LEAST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '))
455161626320
4552SELECT HEX(GREATEST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '));
4553HEX(GREATEST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '))
45546162632020
4555#
4556# Collation mix
4557#
4558CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_general_ci';
4559INSERT INTO t1 VALUES ('a'),('a ');
4560SELECT COUNT(*) FROM t1 WHERE a='a';
4561COUNT(*)
45622
4563SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_ci';
4564COUNT(*)
45652
4566SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_nopad_ci';
4567COUNT(*)
45681
4569ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8u_general_nopad_ci';
4570SELECT COUNT(*) FROM t1 WHERE a='a';
4571COUNT(*)
45721
4573SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_ci';
4574COUNT(*)
45752
4576SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_nopad_ci';
4577COUNT(*)
45781
4579DROP TABLE t1;
4580#
4581# End of ctype_pad.inc
4582#
4583SET DEFAULT_STORAGE_ENGINE=HEAP;
4584#
4585# Start of ctype_pad.inc
4586#
4587#
4588# Unique indexes
4589#
4590CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8u_general_nopad_ci';
4591SHOW CREATE TABLE t1;
4592Table	Create Table
4593t1	CREATE TABLE `t1` (
4594  `a` varchar(10) COLLATE koi8u_general_nopad_ci NOT NULL,
4595  PRIMARY KEY (`a`)
4596) ENGINE=MEMORY DEFAULT CHARSET=koi8u COLLATE=koi8u_general_nopad_ci
4597INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4598SELECT HEX(a), a FROM t1 ORDER BY a;
4599HEX(a)	a
46002061	 a
4601206120	 a
460261202020	a
4603616263	abc
46046162632020	abc
4605SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4606HEX(a)	a
46072061	 a
4608206120	 a
460961202020	a
4610616263	abc
46116162632020	abc
4612SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4613HEX(a)	a
46146162632020	abc
4615616263	abc
461661202020	a
4617206120	 a
46182061	 a
4619#
4620# UNION
4621#
4622CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8u_general_nopad_ci';
4623INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4624SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4625HEX(a)	a
46262061	 a
4627206120	 a
46286120	a
462961202020	a
4630616263	abc
463161626320	abc
46326162632020	abc
4633DROP TABLE t1;
4634DROP TABLE t2;
4635#
4636# DISTINCT, COUNT, MAX
4637#
4638CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_general_nopad_ci';
4639INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4640SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4641HEX(a)	a
46422061	 a
4643206120	 a
464461	a
4645612020	a
464661202020	a
4647SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4648COUNT(DISTINCT a)
46495
4650SELECT HEX(MAX(a)), MAX(a) FROM t1;
4651HEX(MAX(a))	MAX(a)
465261202020	a
4653#
4654# GROUP BY
4655#
4656CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8u_general_nopad_ci';
4657INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4658SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4659HEX(a)	cnt
46606161	1
466161612020	1
46626162	2
4663DROP TABLE t2;
4664#
4665# Weights
4666#
4667SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4668HEX(WEIGHT_STRING(a AS CHAR(10)))
466941000000000000000000
467041202000000000000000
467120410000000000000000
467220412000000000000000
467341202020000000000000
4674DROP TABLE t1;
4675#
4676# IF, CASE, LEAST
4677#
4678SELECT IF('abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ', 'pad', 'nopad');
4679IF('abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ', 'pad', 'nopad')
4680nopad
4681SELECT CASE 'abc' COLLATE 'koi8u_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4682CASE 'abc' COLLATE 'koi8u_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4683nopad
4684SELECT CASE WHEN 'abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4685CASE WHEN 'abc' COLLATE 'koi8u_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
4686nopad
4687SELECT HEX(LEAST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '));
4688HEX(LEAST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '))
468961626320
4690SELECT HEX(GREATEST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '));
4691HEX(GREATEST('abc ' COLLATE 'koi8u_general_nopad_ci', 'abc  '))
46926162632020
4693#
4694# Collation mix
4695#
4696CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_general_ci';
4697INSERT INTO t1 VALUES ('a'),('a ');
4698SELECT COUNT(*) FROM t1 WHERE a='a';
4699COUNT(*)
47002
4701SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_ci';
4702COUNT(*)
47032
4704SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_nopad_ci';
4705COUNT(*)
47061
4707ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8u_general_nopad_ci';
4708SELECT COUNT(*) FROM t1 WHERE a='a';
4709COUNT(*)
47101
4711SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_ci';
4712COUNT(*)
47132
4714SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_general_nopad_ci';
4715COUNT(*)
47161
4717DROP TABLE t1;
4718#
4719# End of ctype_pad.inc
4720#
4721SET DEFAULT_STORAGE_ENGINE=Default;
4722SET DEFAULT_STORAGE_ENGINE=MyISAM;
4723#
4724# Start of ctype_pad.inc
4725#
4726#
4727# Unique indexes
4728#
4729CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8u_nopad_bin';
4730SHOW CREATE TABLE t1;
4731Table	Create Table
4732t1	CREATE TABLE `t1` (
4733  `a` varchar(10) COLLATE koi8u_nopad_bin NOT NULL,
4734  PRIMARY KEY (`a`)
4735) ENGINE=MyISAM DEFAULT CHARSET=koi8u COLLATE=koi8u_nopad_bin
4736INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4737SELECT HEX(a), a FROM t1 ORDER BY a;
4738HEX(a)	a
47392061	 a
4740206120	 a
474161202020	a
4742616263	abc
47436162632020	abc
4744SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4745HEX(a)	a
47462061	 a
4747206120	 a
474861202020	a
4749616263	abc
47506162632020	abc
4751SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4752HEX(a)	a
47536162632020	abc
4754616263	abc
475561202020	a
4756206120	 a
47572061	 a
4758#
4759# UNION
4760#
4761CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8u_nopad_bin';
4762INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4763SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4764HEX(a)	a
47652061	 a
4766206120	 a
47676120	a
476861202020	a
4769616263	abc
477061626320	abc
47716162632020	abc
4772DROP TABLE t1;
4773DROP TABLE t2;
4774#
4775# DISTINCT, COUNT, MAX
4776#
4777CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_nopad_bin';
4778INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4779SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4780HEX(a)	a
47812061	 a
4782206120	 a
478361	a
4784612020	a
478561202020	a
4786SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4787COUNT(DISTINCT a)
47885
4789SELECT HEX(MAX(a)), MAX(a) FROM t1;
4790HEX(MAX(a))	MAX(a)
479161202020	a
4792#
4793# GROUP BY
4794#
4795CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8u_nopad_bin';
4796INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4797SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4798HEX(a)	cnt
47996161	1
480061612020	1
48016162	2
4802DROP TABLE t2;
4803#
4804# Weights
4805#
4806SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4807HEX(WEIGHT_STRING(a AS CHAR(10)))
480861000000000000000000
480961202000000000000000
481020610000000000000000
481120612000000000000000
481261202020000000000000
4813DROP TABLE t1;
4814#
4815# IF, CASE, LEAST
4816#
4817SELECT IF('abc' COLLATE 'koi8u_nopad_bin' = 'abc ', 'pad', 'nopad');
4818IF('abc' COLLATE 'koi8u_nopad_bin' = 'abc ', 'pad', 'nopad')
4819nopad
4820SELECT CASE 'abc' COLLATE 'koi8u_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4821CASE 'abc' COLLATE 'koi8u_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4822nopad
4823SELECT CASE WHEN 'abc' COLLATE 'koi8u_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4824CASE WHEN 'abc' COLLATE 'koi8u_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
4825nopad
4826SELECT HEX(LEAST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '));
4827HEX(LEAST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '))
482861626320
4829SELECT HEX(GREATEST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '));
4830HEX(GREATEST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '))
48316162632020
4832#
4833# Collation mix
4834#
4835CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_bin';
4836INSERT INTO t1 VALUES ('a'),('a ');
4837SELECT COUNT(*) FROM t1 WHERE a='a';
4838COUNT(*)
48392
4840SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_bin';
4841COUNT(*)
48422
4843SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_nopad_bin';
4844COUNT(*)
48451
4846ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8u_nopad_bin';
4847SELECT COUNT(*) FROM t1 WHERE a='a';
4848COUNT(*)
48491
4850SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_bin';
4851COUNT(*)
48522
4853SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_nopad_bin';
4854COUNT(*)
48551
4856DROP TABLE t1;
4857#
4858# End of ctype_pad.inc
4859#
4860SET DEFAULT_STORAGE_ENGINE=HEAP;
4861#
4862# Start of ctype_pad.inc
4863#
4864#
4865# Unique indexes
4866#
4867CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'koi8u_nopad_bin';
4868SHOW CREATE TABLE t1;
4869Table	Create Table
4870t1	CREATE TABLE `t1` (
4871  `a` varchar(10) COLLATE koi8u_nopad_bin NOT NULL,
4872  PRIMARY KEY (`a`)
4873) ENGINE=MEMORY DEFAULT CHARSET=koi8u COLLATE=koi8u_nopad_bin
4874INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
4875SELECT HEX(a), a FROM t1 ORDER BY a;
4876HEX(a)	a
48772061	 a
4878206120	 a
487961202020	a
4880616263	abc
48816162632020	abc
4882SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
4883HEX(a)	a
48842061	 a
4885206120	 a
488661202020	a
4887616263	abc
48886162632020	abc
4889SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
4890HEX(a)	a
48916162632020	abc
4892616263	abc
489361202020	a
4894206120	 a
48952061	 a
4896#
4897# UNION
4898#
4899CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'koi8u_nopad_bin';
4900INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
4901SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
4902HEX(a)	a
49032061	 a
4904206120	 a
49056120	a
490661202020	a
4907616263	abc
490861626320	abc
49096162632020	abc
4910DROP TABLE t1;
4911DROP TABLE t2;
4912#
4913# DISTINCT, COUNT, MAX
4914#
4915CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_nopad_bin';
4916INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
4917SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
4918HEX(a)	a
49192061	 a
4920206120	 a
492161	a
4922612020	a
492361202020	a
4924SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
4925COUNT(DISTINCT a)
49265
4927SELECT HEX(MAX(a)), MAX(a) FROM t1;
4928HEX(MAX(a))	MAX(a)
492961202020	a
4930#
4931# GROUP BY
4932#
4933CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'koi8u_nopad_bin';
4934INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
4935SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
4936HEX(a)	cnt
49376161	1
493861612020	1
49396162	2
4940DROP TABLE t2;
4941#
4942# Weights
4943#
4944SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
4945HEX(WEIGHT_STRING(a AS CHAR(10)))
494661000000000000000000
494761202000000000000000
494820610000000000000000
494920612000000000000000
495061202020000000000000
4951DROP TABLE t1;
4952#
4953# IF, CASE, LEAST
4954#
4955SELECT IF('abc' COLLATE 'koi8u_nopad_bin' = 'abc ', 'pad', 'nopad');
4956IF('abc' COLLATE 'koi8u_nopad_bin' = 'abc ', 'pad', 'nopad')
4957nopad
4958SELECT CASE 'abc' COLLATE 'koi8u_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
4959CASE 'abc' COLLATE 'koi8u_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
4960nopad
4961SELECT CASE WHEN 'abc' COLLATE 'koi8u_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
4962CASE WHEN 'abc' COLLATE 'koi8u_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
4963nopad
4964SELECT HEX(LEAST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '));
4965HEX(LEAST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '))
496661626320
4967SELECT HEX(GREATEST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '));
4968HEX(GREATEST('abc ' COLLATE 'koi8u_nopad_bin', 'abc  '))
49696162632020
4970#
4971# Collation mix
4972#
4973CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'koi8u_bin';
4974INSERT INTO t1 VALUES ('a'),('a ');
4975SELECT COUNT(*) FROM t1 WHERE a='a';
4976COUNT(*)
49772
4978SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_bin';
4979COUNT(*)
49802
4981SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_nopad_bin';
4982COUNT(*)
49831
4984ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'koi8u_nopad_bin';
4985SELECT COUNT(*) FROM t1 WHERE a='a';
4986COUNT(*)
49871
4988SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_bin';
4989COUNT(*)
49902
4991SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'koi8u_nopad_bin';
4992COUNT(*)
49931
4994DROP TABLE t1;
4995#
4996# End of ctype_pad.inc
4997#
4998SET DEFAULT_STORAGE_ENGINE=Default;
4999SET character_set_connection=greek;
5000SET DEFAULT_STORAGE_ENGINE=MyISAM;
5001#
5002# Start of ctype_pad.inc
5003#
5004#
5005# Unique indexes
5006#
5007CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'greek_general_nopad_ci';
5008SHOW CREATE TABLE t1;
5009Table	Create Table
5010t1	CREATE TABLE `t1` (
5011  `a` varchar(10) COLLATE greek_general_nopad_ci NOT NULL,
5012  PRIMARY KEY (`a`)
5013) ENGINE=MyISAM DEFAULT CHARSET=greek COLLATE=greek_general_nopad_ci
5014INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5015SELECT HEX(a), a FROM t1 ORDER BY a;
5016HEX(a)	a
50172061	 a
5018206120	 a
501961202020	a
5020616263	abc
50216162632020	abc
5022SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5023HEX(a)	a
50242061	 a
5025206120	 a
502661202020	a
5027616263	abc
50286162632020	abc
5029SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5030HEX(a)	a
50316162632020	abc
5032616263	abc
503361202020	a
5034206120	 a
50352061	 a
5036#
5037# UNION
5038#
5039CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'greek_general_nopad_ci';
5040INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5041SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5042HEX(a)	a
50432061	 a
5044206120	 a
50456120	a
504661202020	a
5047616263	abc
504861626320	abc
50496162632020	abc
5050DROP TABLE t1;
5051DROP TABLE t2;
5052#
5053# DISTINCT, COUNT, MAX
5054#
5055CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_general_nopad_ci';
5056INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5057SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5058HEX(a)	a
50592061	 a
5060206120	 a
506161	a
5062612020	a
506361202020	a
5064SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5065COUNT(DISTINCT a)
50665
5067SELECT HEX(MAX(a)), MAX(a) FROM t1;
5068HEX(MAX(a))	MAX(a)
506961202020	a
5070#
5071# GROUP BY
5072#
5073CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'greek_general_nopad_ci';
5074INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5075SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5076HEX(a)	cnt
50776161	1
507861612020	1
50796162	2
5080DROP TABLE t2;
5081#
5082# Weights
5083#
5084SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5085HEX(WEIGHT_STRING(a AS CHAR(10)))
508641000000000000000000
508741202000000000000000
508820410000000000000000
508920412000000000000000
509041202020000000000000
5091DROP TABLE t1;
5092#
5093# IF, CASE, LEAST
5094#
5095SELECT IF('abc' COLLATE 'greek_general_nopad_ci' = 'abc ', 'pad', 'nopad');
5096IF('abc' COLLATE 'greek_general_nopad_ci' = 'abc ', 'pad', 'nopad')
5097nopad
5098SELECT CASE 'abc' COLLATE 'greek_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5099CASE 'abc' COLLATE 'greek_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5100nopad
5101SELECT CASE WHEN 'abc' COLLATE 'greek_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5102CASE WHEN 'abc' COLLATE 'greek_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
5103nopad
5104SELECT HEX(LEAST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '));
5105HEX(LEAST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '))
510661626320
5107SELECT HEX(GREATEST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '));
5108HEX(GREATEST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '))
51096162632020
5110#
5111# Collation mix
5112#
5113CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_general_ci';
5114INSERT INTO t1 VALUES ('a'),('a ');
5115SELECT COUNT(*) FROM t1 WHERE a='a';
5116COUNT(*)
51172
5118SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_ci';
5119COUNT(*)
51202
5121SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_nopad_ci';
5122COUNT(*)
51231
5124ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'greek_general_nopad_ci';
5125SELECT COUNT(*) FROM t1 WHERE a='a';
5126COUNT(*)
51271
5128SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_ci';
5129COUNT(*)
51302
5131SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_nopad_ci';
5132COUNT(*)
51331
5134DROP TABLE t1;
5135#
5136# End of ctype_pad.inc
5137#
5138SET DEFAULT_STORAGE_ENGINE=HEAP;
5139#
5140# Start of ctype_pad.inc
5141#
5142#
5143# Unique indexes
5144#
5145CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'greek_general_nopad_ci';
5146SHOW CREATE TABLE t1;
5147Table	Create Table
5148t1	CREATE TABLE `t1` (
5149  `a` varchar(10) COLLATE greek_general_nopad_ci NOT NULL,
5150  PRIMARY KEY (`a`)
5151) ENGINE=MEMORY DEFAULT CHARSET=greek COLLATE=greek_general_nopad_ci
5152INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5153SELECT HEX(a), a FROM t1 ORDER BY a;
5154HEX(a)	a
51552061	 a
5156206120	 a
515761202020	a
5158616263	abc
51596162632020	abc
5160SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5161HEX(a)	a
51622061	 a
5163206120	 a
516461202020	a
5165616263	abc
51666162632020	abc
5167SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5168HEX(a)	a
51696162632020	abc
5170616263	abc
517161202020	a
5172206120	 a
51732061	 a
5174#
5175# UNION
5176#
5177CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'greek_general_nopad_ci';
5178INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5179SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5180HEX(a)	a
51812061	 a
5182206120	 a
51836120	a
518461202020	a
5185616263	abc
518661626320	abc
51876162632020	abc
5188DROP TABLE t1;
5189DROP TABLE t2;
5190#
5191# DISTINCT, COUNT, MAX
5192#
5193CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_general_nopad_ci';
5194INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5195SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5196HEX(a)	a
51972061	 a
5198206120	 a
519961	a
5200612020	a
520161202020	a
5202SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5203COUNT(DISTINCT a)
52045
5205SELECT HEX(MAX(a)), MAX(a) FROM t1;
5206HEX(MAX(a))	MAX(a)
520761202020	a
5208#
5209# GROUP BY
5210#
5211CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'greek_general_nopad_ci';
5212INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5213SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5214HEX(a)	cnt
52156161	1
521661612020	1
52176162	2
5218DROP TABLE t2;
5219#
5220# Weights
5221#
5222SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5223HEX(WEIGHT_STRING(a AS CHAR(10)))
522441000000000000000000
522541202000000000000000
522620410000000000000000
522720412000000000000000
522841202020000000000000
5229DROP TABLE t1;
5230#
5231# IF, CASE, LEAST
5232#
5233SELECT IF('abc' COLLATE 'greek_general_nopad_ci' = 'abc ', 'pad', 'nopad');
5234IF('abc' COLLATE 'greek_general_nopad_ci' = 'abc ', 'pad', 'nopad')
5235nopad
5236SELECT CASE 'abc' COLLATE 'greek_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5237CASE 'abc' COLLATE 'greek_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5238nopad
5239SELECT CASE WHEN 'abc' COLLATE 'greek_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5240CASE WHEN 'abc' COLLATE 'greek_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
5241nopad
5242SELECT HEX(LEAST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '));
5243HEX(LEAST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '))
524461626320
5245SELECT HEX(GREATEST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '));
5246HEX(GREATEST('abc ' COLLATE 'greek_general_nopad_ci', 'abc  '))
52476162632020
5248#
5249# Collation mix
5250#
5251CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_general_ci';
5252INSERT INTO t1 VALUES ('a'),('a ');
5253SELECT COUNT(*) FROM t1 WHERE a='a';
5254COUNT(*)
52552
5256SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_ci';
5257COUNT(*)
52582
5259SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_nopad_ci';
5260COUNT(*)
52611
5262ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'greek_general_nopad_ci';
5263SELECT COUNT(*) FROM t1 WHERE a='a';
5264COUNT(*)
52651
5266SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_ci';
5267COUNT(*)
52682
5269SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_general_nopad_ci';
5270COUNT(*)
52711
5272DROP TABLE t1;
5273#
5274# End of ctype_pad.inc
5275#
5276SET DEFAULT_STORAGE_ENGINE=Default;
5277SET DEFAULT_STORAGE_ENGINE=MyISAM;
5278#
5279# Start of ctype_pad.inc
5280#
5281#
5282# Unique indexes
5283#
5284CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'greek_nopad_bin';
5285SHOW CREATE TABLE t1;
5286Table	Create Table
5287t1	CREATE TABLE `t1` (
5288  `a` varchar(10) COLLATE greek_nopad_bin NOT NULL,
5289  PRIMARY KEY (`a`)
5290) ENGINE=MyISAM DEFAULT CHARSET=greek COLLATE=greek_nopad_bin
5291INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5292SELECT HEX(a), a FROM t1 ORDER BY a;
5293HEX(a)	a
52942061	 a
5295206120	 a
529661202020	a
5297616263	abc
52986162632020	abc
5299SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5300HEX(a)	a
53012061	 a
5302206120	 a
530361202020	a
5304616263	abc
53056162632020	abc
5306SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5307HEX(a)	a
53086162632020	abc
5309616263	abc
531061202020	a
5311206120	 a
53122061	 a
5313#
5314# UNION
5315#
5316CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'greek_nopad_bin';
5317INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5318SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5319HEX(a)	a
53202061	 a
5321206120	 a
53226120	a
532361202020	a
5324616263	abc
532561626320	abc
53266162632020	abc
5327DROP TABLE t1;
5328DROP TABLE t2;
5329#
5330# DISTINCT, COUNT, MAX
5331#
5332CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_nopad_bin';
5333INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5334SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5335HEX(a)	a
53362061	 a
5337206120	 a
533861	a
5339612020	a
534061202020	a
5341SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5342COUNT(DISTINCT a)
53435
5344SELECT HEX(MAX(a)), MAX(a) FROM t1;
5345HEX(MAX(a))	MAX(a)
534661202020	a
5347#
5348# GROUP BY
5349#
5350CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'greek_nopad_bin';
5351INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5352SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5353HEX(a)	cnt
53546161	1
535561612020	1
53566162	2
5357DROP TABLE t2;
5358#
5359# Weights
5360#
5361SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5362HEX(WEIGHT_STRING(a AS CHAR(10)))
536361000000000000000000
536461202000000000000000
536520610000000000000000
536620612000000000000000
536761202020000000000000
5368DROP TABLE t1;
5369#
5370# IF, CASE, LEAST
5371#
5372SELECT IF('abc' COLLATE 'greek_nopad_bin' = 'abc ', 'pad', 'nopad');
5373IF('abc' COLLATE 'greek_nopad_bin' = 'abc ', 'pad', 'nopad')
5374nopad
5375SELECT CASE 'abc' COLLATE 'greek_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5376CASE 'abc' COLLATE 'greek_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5377nopad
5378SELECT CASE WHEN 'abc' COLLATE 'greek_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5379CASE WHEN 'abc' COLLATE 'greek_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
5380nopad
5381SELECT HEX(LEAST('abc ' COLLATE 'greek_nopad_bin', 'abc  '));
5382HEX(LEAST('abc ' COLLATE 'greek_nopad_bin', 'abc  '))
538361626320
5384SELECT HEX(GREATEST('abc ' COLLATE 'greek_nopad_bin', 'abc  '));
5385HEX(GREATEST('abc ' COLLATE 'greek_nopad_bin', 'abc  '))
53866162632020
5387#
5388# Collation mix
5389#
5390CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_bin';
5391INSERT INTO t1 VALUES ('a'),('a ');
5392SELECT COUNT(*) FROM t1 WHERE a='a';
5393COUNT(*)
53942
5395SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_bin';
5396COUNT(*)
53972
5398SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_nopad_bin';
5399COUNT(*)
54001
5401ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'greek_nopad_bin';
5402SELECT COUNT(*) FROM t1 WHERE a='a';
5403COUNT(*)
54041
5405SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_bin';
5406COUNT(*)
54072
5408SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_nopad_bin';
5409COUNT(*)
54101
5411DROP TABLE t1;
5412#
5413# End of ctype_pad.inc
5414#
5415SET DEFAULT_STORAGE_ENGINE=HEAP;
5416#
5417# Start of ctype_pad.inc
5418#
5419#
5420# Unique indexes
5421#
5422CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'greek_nopad_bin';
5423SHOW CREATE TABLE t1;
5424Table	Create Table
5425t1	CREATE TABLE `t1` (
5426  `a` varchar(10) COLLATE greek_nopad_bin NOT NULL,
5427  PRIMARY KEY (`a`)
5428) ENGINE=MEMORY DEFAULT CHARSET=greek COLLATE=greek_nopad_bin
5429INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5430SELECT HEX(a), a FROM t1 ORDER BY a;
5431HEX(a)	a
54322061	 a
5433206120	 a
543461202020	a
5435616263	abc
54366162632020	abc
5437SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5438HEX(a)	a
54392061	 a
5440206120	 a
544161202020	a
5442616263	abc
54436162632020	abc
5444SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5445HEX(a)	a
54466162632020	abc
5447616263	abc
544861202020	a
5449206120	 a
54502061	 a
5451#
5452# UNION
5453#
5454CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'greek_nopad_bin';
5455INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5456SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5457HEX(a)	a
54582061	 a
5459206120	 a
54606120	a
546161202020	a
5462616263	abc
546361626320	abc
54646162632020	abc
5465DROP TABLE t1;
5466DROP TABLE t2;
5467#
5468# DISTINCT, COUNT, MAX
5469#
5470CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_nopad_bin';
5471INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5472SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5473HEX(a)	a
54742061	 a
5475206120	 a
547661	a
5477612020	a
547861202020	a
5479SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5480COUNT(DISTINCT a)
54815
5482SELECT HEX(MAX(a)), MAX(a) FROM t1;
5483HEX(MAX(a))	MAX(a)
548461202020	a
5485#
5486# GROUP BY
5487#
5488CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'greek_nopad_bin';
5489INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5490SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5491HEX(a)	cnt
54926161	1
549361612020	1
54946162	2
5495DROP TABLE t2;
5496#
5497# Weights
5498#
5499SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5500HEX(WEIGHT_STRING(a AS CHAR(10)))
550161000000000000000000
550261202000000000000000
550320610000000000000000
550420612000000000000000
550561202020000000000000
5506DROP TABLE t1;
5507#
5508# IF, CASE, LEAST
5509#
5510SELECT IF('abc' COLLATE 'greek_nopad_bin' = 'abc ', 'pad', 'nopad');
5511IF('abc' COLLATE 'greek_nopad_bin' = 'abc ', 'pad', 'nopad')
5512nopad
5513SELECT CASE 'abc' COLLATE 'greek_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5514CASE 'abc' COLLATE 'greek_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5515nopad
5516SELECT CASE WHEN 'abc' COLLATE 'greek_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5517CASE WHEN 'abc' COLLATE 'greek_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
5518nopad
5519SELECT HEX(LEAST('abc ' COLLATE 'greek_nopad_bin', 'abc  '));
5520HEX(LEAST('abc ' COLLATE 'greek_nopad_bin', 'abc  '))
552161626320
5522SELECT HEX(GREATEST('abc ' COLLATE 'greek_nopad_bin', 'abc  '));
5523HEX(GREATEST('abc ' COLLATE 'greek_nopad_bin', 'abc  '))
55246162632020
5525#
5526# Collation mix
5527#
5528CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'greek_bin';
5529INSERT INTO t1 VALUES ('a'),('a ');
5530SELECT COUNT(*) FROM t1 WHERE a='a';
5531COUNT(*)
55322
5533SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_bin';
5534COUNT(*)
55352
5536SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_nopad_bin';
5537COUNT(*)
55381
5539ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'greek_nopad_bin';
5540SELECT COUNT(*) FROM t1 WHERE a='a';
5541COUNT(*)
55421
5543SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_bin';
5544COUNT(*)
55452
5546SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'greek_nopad_bin';
5547COUNT(*)
55481
5549DROP TABLE t1;
5550#
5551# End of ctype_pad.inc
5552#
5553SET DEFAULT_STORAGE_ENGINE=Default;
5554SET character_set_connection=cp1250;
5555SET DEFAULT_STORAGE_ENGINE=MyISAM;
5556#
5557# Start of ctype_pad.inc
5558#
5559#
5560# Unique indexes
5561#
5562CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1250_general_nopad_ci';
5563SHOW CREATE TABLE t1;
5564Table	Create Table
5565t1	CREATE TABLE `t1` (
5566  `a` varchar(10) COLLATE cp1250_general_nopad_ci NOT NULL,
5567  PRIMARY KEY (`a`)
5568) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_general_nopad_ci
5569INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5570SELECT HEX(a), a FROM t1 ORDER BY a;
5571HEX(a)	a
55722061	 a
5573206120	 a
557461202020	a
5575616263	abc
55766162632020	abc
5577SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5578HEX(a)	a
55792061	 a
5580206120	 a
558161202020	a
5582616263	abc
55836162632020	abc
5584SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5585HEX(a)	a
55866162632020	abc
5587616263	abc
558861202020	a
5589206120	 a
55902061	 a
5591#
5592# UNION
5593#
5594CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1250_general_nopad_ci';
5595INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5596SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5597HEX(a)	a
55982061	 a
5599206120	 a
56006120	a
560161202020	a
5602616263	abc
560361626320	abc
56046162632020	abc
5605DROP TABLE t1;
5606DROP TABLE t2;
5607#
5608# DISTINCT, COUNT, MAX
5609#
5610CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_general_nopad_ci';
5611INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5612SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5613HEX(a)	a
56142061	 a
5615206120	 a
561661	a
5617612020	a
561861202020	a
5619SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5620COUNT(DISTINCT a)
56215
5622SELECT HEX(MAX(a)), MAX(a) FROM t1;
5623HEX(MAX(a))	MAX(a)
562461202020	a
5625#
5626# GROUP BY
5627#
5628CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1250_general_nopad_ci';
5629INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5630SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5631HEX(a)	cnt
56326161	1
563361612020	1
56346162	2
5635DROP TABLE t2;
5636#
5637# Weights
5638#
5639SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5640HEX(WEIGHT_STRING(a AS CHAR(10)))
564141000000000000000000
564241202000000000000000
564320410000000000000000
564420412000000000000000
564541202020000000000000
5646DROP TABLE t1;
5647#
5648# IF, CASE, LEAST
5649#
5650SELECT IF('abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ', 'pad', 'nopad');
5651IF('abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ', 'pad', 'nopad')
5652nopad
5653SELECT CASE 'abc' COLLATE 'cp1250_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5654CASE 'abc' COLLATE 'cp1250_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5655nopad
5656SELECT CASE WHEN 'abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5657CASE WHEN 'abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
5658nopad
5659SELECT HEX(LEAST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '));
5660HEX(LEAST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '))
566161626320
5662SELECT HEX(GREATEST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '));
5663HEX(GREATEST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '))
56646162632020
5665#
5666# Collation mix
5667#
5668CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_general_ci';
5669INSERT INTO t1 VALUES ('a'),('a ');
5670SELECT COUNT(*) FROM t1 WHERE a='a';
5671COUNT(*)
56722
5673SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_ci';
5674COUNT(*)
56752
5676SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_nopad_ci';
5677COUNT(*)
56781
5679ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1250_general_nopad_ci';
5680SELECT COUNT(*) FROM t1 WHERE a='a';
5681COUNT(*)
56821
5683SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_ci';
5684COUNT(*)
56852
5686SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_nopad_ci';
5687COUNT(*)
56881
5689DROP TABLE t1;
5690#
5691# End of ctype_pad.inc
5692#
5693SET DEFAULT_STORAGE_ENGINE=HEAP;
5694#
5695# Start of ctype_pad.inc
5696#
5697#
5698# Unique indexes
5699#
5700CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1250_general_nopad_ci';
5701SHOW CREATE TABLE t1;
5702Table	Create Table
5703t1	CREATE TABLE `t1` (
5704  `a` varchar(10) COLLATE cp1250_general_nopad_ci NOT NULL,
5705  PRIMARY KEY (`a`)
5706) ENGINE=MEMORY DEFAULT CHARSET=cp1250 COLLATE=cp1250_general_nopad_ci
5707INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5708SELECT HEX(a), a FROM t1 ORDER BY a;
5709HEX(a)	a
57102061	 a
5711206120	 a
571261202020	a
5713616263	abc
57146162632020	abc
5715SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5716HEX(a)	a
57172061	 a
5718206120	 a
571961202020	a
5720616263	abc
57216162632020	abc
5722SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5723HEX(a)	a
57246162632020	abc
5725616263	abc
572661202020	a
5727206120	 a
57282061	 a
5729#
5730# UNION
5731#
5732CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1250_general_nopad_ci';
5733INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5734SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5735HEX(a)	a
57362061	 a
5737206120	 a
57386120	a
573961202020	a
5740616263	abc
574161626320	abc
57426162632020	abc
5743DROP TABLE t1;
5744DROP TABLE t2;
5745#
5746# DISTINCT, COUNT, MAX
5747#
5748CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_general_nopad_ci';
5749INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5750SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5751HEX(a)	a
57522061	 a
5753206120	 a
575461	a
5755612020	a
575661202020	a
5757SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5758COUNT(DISTINCT a)
57595
5760SELECT HEX(MAX(a)), MAX(a) FROM t1;
5761HEX(MAX(a))	MAX(a)
576261202020	a
5763#
5764# GROUP BY
5765#
5766CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1250_general_nopad_ci';
5767INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5768SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5769HEX(a)	cnt
57706161	1
577161612020	1
57726162	2
5773DROP TABLE t2;
5774#
5775# Weights
5776#
5777SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5778HEX(WEIGHT_STRING(a AS CHAR(10)))
577941000000000000000000
578041202000000000000000
578120410000000000000000
578220412000000000000000
578341202020000000000000
5784DROP TABLE t1;
5785#
5786# IF, CASE, LEAST
5787#
5788SELECT IF('abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ', 'pad', 'nopad');
5789IF('abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ', 'pad', 'nopad')
5790nopad
5791SELECT CASE 'abc' COLLATE 'cp1250_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5792CASE 'abc' COLLATE 'cp1250_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5793nopad
5794SELECT CASE WHEN 'abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5795CASE WHEN 'abc' COLLATE 'cp1250_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
5796nopad
5797SELECT HEX(LEAST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '));
5798HEX(LEAST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '))
579961626320
5800SELECT HEX(GREATEST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '));
5801HEX(GREATEST('abc ' COLLATE 'cp1250_general_nopad_ci', 'abc  '))
58026162632020
5803#
5804# Collation mix
5805#
5806CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_general_ci';
5807INSERT INTO t1 VALUES ('a'),('a ');
5808SELECT COUNT(*) FROM t1 WHERE a='a';
5809COUNT(*)
58102
5811SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_ci';
5812COUNT(*)
58132
5814SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_nopad_ci';
5815COUNT(*)
58161
5817ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1250_general_nopad_ci';
5818SELECT COUNT(*) FROM t1 WHERE a='a';
5819COUNT(*)
58201
5821SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_ci';
5822COUNT(*)
58232
5824SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_general_nopad_ci';
5825COUNT(*)
58261
5827DROP TABLE t1;
5828#
5829# End of ctype_pad.inc
5830#
5831SET DEFAULT_STORAGE_ENGINE=Default;
5832SET DEFAULT_STORAGE_ENGINE=MyISAM;
5833#
5834# Start of ctype_pad.inc
5835#
5836#
5837# Unique indexes
5838#
5839CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1250_nopad_bin';
5840SHOW CREATE TABLE t1;
5841Table	Create Table
5842t1	CREATE TABLE `t1` (
5843  `a` varchar(10) COLLATE cp1250_nopad_bin NOT NULL,
5844  PRIMARY KEY (`a`)
5845) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_nopad_bin
5846INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5847SELECT HEX(a), a FROM t1 ORDER BY a;
5848HEX(a)	a
58492061	 a
5850206120	 a
585161202020	a
5852616263	abc
58536162632020	abc
5854SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5855HEX(a)	a
58562061	 a
5857206120	 a
585861202020	a
5859616263	abc
58606162632020	abc
5861SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
5862HEX(a)	a
58636162632020	abc
5864616263	abc
586561202020	a
5866206120	 a
58672061	 a
5868#
5869# UNION
5870#
5871CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1250_nopad_bin';
5872INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
5873SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
5874HEX(a)	a
58752061	 a
5876206120	 a
58776120	a
587861202020	a
5879616263	abc
588061626320	abc
58816162632020	abc
5882DROP TABLE t1;
5883DROP TABLE t2;
5884#
5885# DISTINCT, COUNT, MAX
5886#
5887CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_nopad_bin';
5888INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
5889SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
5890HEX(a)	a
58912061	 a
5892206120	 a
589361	a
5894612020	a
589561202020	a
5896SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
5897COUNT(DISTINCT a)
58985
5899SELECT HEX(MAX(a)), MAX(a) FROM t1;
5900HEX(MAX(a))	MAX(a)
590161202020	a
5902#
5903# GROUP BY
5904#
5905CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1250_nopad_bin';
5906INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
5907SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
5908HEX(a)	cnt
59096161	1
591061612020	1
59116162	2
5912DROP TABLE t2;
5913#
5914# Weights
5915#
5916SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
5917HEX(WEIGHT_STRING(a AS CHAR(10)))
591861000000000000000000
591961202000000000000000
592020610000000000000000
592120612000000000000000
592261202020000000000000
5923DROP TABLE t1;
5924#
5925# IF, CASE, LEAST
5926#
5927SELECT IF('abc' COLLATE 'cp1250_nopad_bin' = 'abc ', 'pad', 'nopad');
5928IF('abc' COLLATE 'cp1250_nopad_bin' = 'abc ', 'pad', 'nopad')
5929nopad
5930SELECT CASE 'abc' COLLATE 'cp1250_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
5931CASE 'abc' COLLATE 'cp1250_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
5932nopad
5933SELECT CASE WHEN 'abc' COLLATE 'cp1250_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
5934CASE WHEN 'abc' COLLATE 'cp1250_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
5935nopad
5936SELECT HEX(LEAST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '));
5937HEX(LEAST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '))
593861626320
5939SELECT HEX(GREATEST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '));
5940HEX(GREATEST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '))
59416162632020
5942#
5943# Collation mix
5944#
5945CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_bin';
5946INSERT INTO t1 VALUES ('a'),('a ');
5947SELECT COUNT(*) FROM t1 WHERE a='a';
5948COUNT(*)
59492
5950SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_bin';
5951COUNT(*)
59522
5953SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_nopad_bin';
5954COUNT(*)
59551
5956ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1250_nopad_bin';
5957SELECT COUNT(*) FROM t1 WHERE a='a';
5958COUNT(*)
59591
5960SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_bin';
5961COUNT(*)
59622
5963SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_nopad_bin';
5964COUNT(*)
59651
5966DROP TABLE t1;
5967#
5968# End of ctype_pad.inc
5969#
5970SET DEFAULT_STORAGE_ENGINE=HEAP;
5971#
5972# Start of ctype_pad.inc
5973#
5974#
5975# Unique indexes
5976#
5977CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1250_nopad_bin';
5978SHOW CREATE TABLE t1;
5979Table	Create Table
5980t1	CREATE TABLE `t1` (
5981  `a` varchar(10) COLLATE cp1250_nopad_bin NOT NULL,
5982  PRIMARY KEY (`a`)
5983) ENGINE=MEMORY DEFAULT CHARSET=cp1250 COLLATE=cp1250_nopad_bin
5984INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
5985SELECT HEX(a), a FROM t1 ORDER BY a;
5986HEX(a)	a
59872061	 a
5988206120	 a
598961202020	a
5990616263	abc
59916162632020	abc
5992SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
5993HEX(a)	a
59942061	 a
5995206120	 a
599661202020	a
5997616263	abc
59986162632020	abc
5999SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6000HEX(a)	a
60016162632020	abc
6002616263	abc
600361202020	a
6004206120	 a
60052061	 a
6006#
6007# UNION
6008#
6009CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1250_nopad_bin';
6010INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6011SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6012HEX(a)	a
60132061	 a
6014206120	 a
60156120	a
601661202020	a
6017616263	abc
601861626320	abc
60196162632020	abc
6020DROP TABLE t1;
6021DROP TABLE t2;
6022#
6023# DISTINCT, COUNT, MAX
6024#
6025CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_nopad_bin';
6026INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6027SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6028HEX(a)	a
60292061	 a
6030206120	 a
603161	a
6032612020	a
603361202020	a
6034SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6035COUNT(DISTINCT a)
60365
6037SELECT HEX(MAX(a)), MAX(a) FROM t1;
6038HEX(MAX(a))	MAX(a)
603961202020	a
6040#
6041# GROUP BY
6042#
6043CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1250_nopad_bin';
6044INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6045SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6046HEX(a)	cnt
60476161	1
604861612020	1
60496162	2
6050DROP TABLE t2;
6051#
6052# Weights
6053#
6054SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6055HEX(WEIGHT_STRING(a AS CHAR(10)))
605661000000000000000000
605761202000000000000000
605820610000000000000000
605920612000000000000000
606061202020000000000000
6061DROP TABLE t1;
6062#
6063# IF, CASE, LEAST
6064#
6065SELECT IF('abc' COLLATE 'cp1250_nopad_bin' = 'abc ', 'pad', 'nopad');
6066IF('abc' COLLATE 'cp1250_nopad_bin' = 'abc ', 'pad', 'nopad')
6067nopad
6068SELECT CASE 'abc' COLLATE 'cp1250_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6069CASE 'abc' COLLATE 'cp1250_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6070nopad
6071SELECT CASE WHEN 'abc' COLLATE 'cp1250_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6072CASE WHEN 'abc' COLLATE 'cp1250_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
6073nopad
6074SELECT HEX(LEAST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '));
6075HEX(LEAST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '))
607661626320
6077SELECT HEX(GREATEST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '));
6078HEX(GREATEST('abc ' COLLATE 'cp1250_nopad_bin', 'abc  '))
60796162632020
6080#
6081# Collation mix
6082#
6083CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1250_bin';
6084INSERT INTO t1 VALUES ('a'),('a ');
6085SELECT COUNT(*) FROM t1 WHERE a='a';
6086COUNT(*)
60872
6088SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_bin';
6089COUNT(*)
60902
6091SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_nopad_bin';
6092COUNT(*)
60931
6094ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1250_nopad_bin';
6095SELECT COUNT(*) FROM t1 WHERE a='a';
6096COUNT(*)
60971
6098SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_bin';
6099COUNT(*)
61002
6101SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1250_nopad_bin';
6102COUNT(*)
61031
6104DROP TABLE t1;
6105#
6106# End of ctype_pad.inc
6107#
6108SET DEFAULT_STORAGE_ENGINE=Default;
6109SET character_set_connection=cp1257;
6110SET DEFAULT_STORAGE_ENGINE=MyISAM;
6111#
6112# Start of ctype_pad.inc
6113#
6114#
6115# Unique indexes
6116#
6117CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1257_general_nopad_ci';
6118SHOW CREATE TABLE t1;
6119Table	Create Table
6120t1	CREATE TABLE `t1` (
6121  `a` varchar(10) COLLATE cp1257_general_nopad_ci NOT NULL,
6122  PRIMARY KEY (`a`)
6123) ENGINE=MyISAM DEFAULT CHARSET=cp1257 COLLATE=cp1257_general_nopad_ci
6124INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6125SELECT HEX(a), a FROM t1 ORDER BY a;
6126HEX(a)	a
61272061	 a
6128206120	 a
612961202020	a
6130616263	abc
61316162632020	abc
6132SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6133HEX(a)	a
61342061	 a
6135206120	 a
613661202020	a
6137616263	abc
61386162632020	abc
6139SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6140HEX(a)	a
61416162632020	abc
6142616263	abc
614361202020	a
6144206120	 a
61452061	 a
6146#
6147# UNION
6148#
6149CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1257_general_nopad_ci';
6150INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6151SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6152HEX(a)	a
61532061	 a
6154206120	 a
61556120	a
615661202020	a
6157616263	abc
615861626320	abc
61596162632020	abc
6160DROP TABLE t1;
6161DROP TABLE t2;
6162#
6163# DISTINCT, COUNT, MAX
6164#
6165CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_general_nopad_ci';
6166INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6167SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6168HEX(a)	a
61692061	 a
6170206120	 a
617161	a
6172612020	a
617361202020	a
6174SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6175COUNT(DISTINCT a)
61765
6177SELECT HEX(MAX(a)), MAX(a) FROM t1;
6178HEX(MAX(a))	MAX(a)
617961202020	a
6180#
6181# GROUP BY
6182#
6183CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1257_general_nopad_ci';
6184INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6185SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6186HEX(a)	cnt
61876161	1
618861612020	1
61896162	2
6190DROP TABLE t2;
6191#
6192# Weights
6193#
6194SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6195HEX(WEIGHT_STRING(a AS CHAR(10)))
619641000000000000000000
619741202000000000000000
619820410000000000000000
619920412000000000000000
620041202020000000000000
6201DROP TABLE t1;
6202#
6203# IF, CASE, LEAST
6204#
6205SELECT IF('abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ', 'pad', 'nopad');
6206IF('abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ', 'pad', 'nopad')
6207nopad
6208SELECT CASE 'abc' COLLATE 'cp1257_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6209CASE 'abc' COLLATE 'cp1257_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6210nopad
6211SELECT CASE WHEN 'abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6212CASE WHEN 'abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
6213nopad
6214SELECT HEX(LEAST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '));
6215HEX(LEAST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '))
621661626320
6217SELECT HEX(GREATEST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '));
6218HEX(GREATEST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '))
62196162632020
6220#
6221# Collation mix
6222#
6223CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_general_ci';
6224INSERT INTO t1 VALUES ('a'),('a ');
6225SELECT COUNT(*) FROM t1 WHERE a='a';
6226COUNT(*)
62272
6228SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_ci';
6229COUNT(*)
62302
6231SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_nopad_ci';
6232COUNT(*)
62331
6234ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1257_general_nopad_ci';
6235SELECT COUNT(*) FROM t1 WHERE a='a';
6236COUNT(*)
62371
6238SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_ci';
6239COUNT(*)
62402
6241SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_nopad_ci';
6242COUNT(*)
62431
6244DROP TABLE t1;
6245#
6246# End of ctype_pad.inc
6247#
6248SET DEFAULT_STORAGE_ENGINE=HEAP;
6249#
6250# Start of ctype_pad.inc
6251#
6252#
6253# Unique indexes
6254#
6255CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1257_general_nopad_ci';
6256SHOW CREATE TABLE t1;
6257Table	Create Table
6258t1	CREATE TABLE `t1` (
6259  `a` varchar(10) COLLATE cp1257_general_nopad_ci NOT NULL,
6260  PRIMARY KEY (`a`)
6261) ENGINE=MEMORY DEFAULT CHARSET=cp1257 COLLATE=cp1257_general_nopad_ci
6262INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6263SELECT HEX(a), a FROM t1 ORDER BY a;
6264HEX(a)	a
62652061	 a
6266206120	 a
626761202020	a
6268616263	abc
62696162632020	abc
6270SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6271HEX(a)	a
62722061	 a
6273206120	 a
627461202020	a
6275616263	abc
62766162632020	abc
6277SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6278HEX(a)	a
62796162632020	abc
6280616263	abc
628161202020	a
6282206120	 a
62832061	 a
6284#
6285# UNION
6286#
6287CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1257_general_nopad_ci';
6288INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6289SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6290HEX(a)	a
62912061	 a
6292206120	 a
62936120	a
629461202020	a
6295616263	abc
629661626320	abc
62976162632020	abc
6298DROP TABLE t1;
6299DROP TABLE t2;
6300#
6301# DISTINCT, COUNT, MAX
6302#
6303CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_general_nopad_ci';
6304INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6305SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6306HEX(a)	a
63072061	 a
6308206120	 a
630961	a
6310612020	a
631161202020	a
6312SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6313COUNT(DISTINCT a)
63145
6315SELECT HEX(MAX(a)), MAX(a) FROM t1;
6316HEX(MAX(a))	MAX(a)
631761202020	a
6318#
6319# GROUP BY
6320#
6321CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1257_general_nopad_ci';
6322INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6323SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6324HEX(a)	cnt
63256161	1
632661612020	1
63276162	2
6328DROP TABLE t2;
6329#
6330# Weights
6331#
6332SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6333HEX(WEIGHT_STRING(a AS CHAR(10)))
633441000000000000000000
633541202000000000000000
633620410000000000000000
633720412000000000000000
633841202020000000000000
6339DROP TABLE t1;
6340#
6341# IF, CASE, LEAST
6342#
6343SELECT IF('abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ', 'pad', 'nopad');
6344IF('abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ', 'pad', 'nopad')
6345nopad
6346SELECT CASE 'abc' COLLATE 'cp1257_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6347CASE 'abc' COLLATE 'cp1257_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6348nopad
6349SELECT CASE WHEN 'abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6350CASE WHEN 'abc' COLLATE 'cp1257_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
6351nopad
6352SELECT HEX(LEAST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '));
6353HEX(LEAST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '))
635461626320
6355SELECT HEX(GREATEST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '));
6356HEX(GREATEST('abc ' COLLATE 'cp1257_general_nopad_ci', 'abc  '))
63576162632020
6358#
6359# Collation mix
6360#
6361CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_general_ci';
6362INSERT INTO t1 VALUES ('a'),('a ');
6363SELECT COUNT(*) FROM t1 WHERE a='a';
6364COUNT(*)
63652
6366SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_ci';
6367COUNT(*)
63682
6369SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_nopad_ci';
6370COUNT(*)
63711
6372ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1257_general_nopad_ci';
6373SELECT COUNT(*) FROM t1 WHERE a='a';
6374COUNT(*)
63751
6376SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_ci';
6377COUNT(*)
63782
6379SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_general_nopad_ci';
6380COUNT(*)
63811
6382DROP TABLE t1;
6383#
6384# End of ctype_pad.inc
6385#
6386SET DEFAULT_STORAGE_ENGINE=Default;
6387SET DEFAULT_STORAGE_ENGINE=MyISAM;
6388#
6389# Start of ctype_pad.inc
6390#
6391#
6392# Unique indexes
6393#
6394CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1257_nopad_bin';
6395SHOW CREATE TABLE t1;
6396Table	Create Table
6397t1	CREATE TABLE `t1` (
6398  `a` varchar(10) COLLATE cp1257_nopad_bin NOT NULL,
6399  PRIMARY KEY (`a`)
6400) ENGINE=MyISAM DEFAULT CHARSET=cp1257 COLLATE=cp1257_nopad_bin
6401INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6402SELECT HEX(a), a FROM t1 ORDER BY a;
6403HEX(a)	a
64042061	 a
6405206120	 a
640661202020	a
6407616263	abc
64086162632020	abc
6409SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6410HEX(a)	a
64112061	 a
6412206120	 a
641361202020	a
6414616263	abc
64156162632020	abc
6416SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6417HEX(a)	a
64186162632020	abc
6419616263	abc
642061202020	a
6421206120	 a
64222061	 a
6423#
6424# UNION
6425#
6426CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1257_nopad_bin';
6427INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6428SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6429HEX(a)	a
64302061	 a
6431206120	 a
64326120	a
643361202020	a
6434616263	abc
643561626320	abc
64366162632020	abc
6437DROP TABLE t1;
6438DROP TABLE t2;
6439#
6440# DISTINCT, COUNT, MAX
6441#
6442CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_nopad_bin';
6443INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6444SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6445HEX(a)	a
64462061	 a
6447206120	 a
644861	a
6449612020	a
645061202020	a
6451SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6452COUNT(DISTINCT a)
64535
6454SELECT HEX(MAX(a)), MAX(a) FROM t1;
6455HEX(MAX(a))	MAX(a)
645661202020	a
6457#
6458# GROUP BY
6459#
6460CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1257_nopad_bin';
6461INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6462SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6463HEX(a)	cnt
64646161	1
646561612020	1
64666162	2
6467DROP TABLE t2;
6468#
6469# Weights
6470#
6471SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6472HEX(WEIGHT_STRING(a AS CHAR(10)))
647361000000000000000000
647461202000000000000000
647520610000000000000000
647620612000000000000000
647761202020000000000000
6478DROP TABLE t1;
6479#
6480# IF, CASE, LEAST
6481#
6482SELECT IF('abc' COLLATE 'cp1257_nopad_bin' = 'abc ', 'pad', 'nopad');
6483IF('abc' COLLATE 'cp1257_nopad_bin' = 'abc ', 'pad', 'nopad')
6484nopad
6485SELECT CASE 'abc' COLLATE 'cp1257_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6486CASE 'abc' COLLATE 'cp1257_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6487nopad
6488SELECT CASE WHEN 'abc' COLLATE 'cp1257_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6489CASE WHEN 'abc' COLLATE 'cp1257_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
6490nopad
6491SELECT HEX(LEAST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '));
6492HEX(LEAST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '))
649361626320
6494SELECT HEX(GREATEST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '));
6495HEX(GREATEST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '))
64966162632020
6497#
6498# Collation mix
6499#
6500CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_bin';
6501INSERT INTO t1 VALUES ('a'),('a ');
6502SELECT COUNT(*) FROM t1 WHERE a='a';
6503COUNT(*)
65042
6505SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_bin';
6506COUNT(*)
65072
6508SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_nopad_bin';
6509COUNT(*)
65101
6511ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1257_nopad_bin';
6512SELECT COUNT(*) FROM t1 WHERE a='a';
6513COUNT(*)
65141
6515SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_bin';
6516COUNT(*)
65172
6518SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_nopad_bin';
6519COUNT(*)
65201
6521DROP TABLE t1;
6522#
6523# End of ctype_pad.inc
6524#
6525SET DEFAULT_STORAGE_ENGINE=HEAP;
6526#
6527# Start of ctype_pad.inc
6528#
6529#
6530# Unique indexes
6531#
6532CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1257_nopad_bin';
6533SHOW CREATE TABLE t1;
6534Table	Create Table
6535t1	CREATE TABLE `t1` (
6536  `a` varchar(10) COLLATE cp1257_nopad_bin NOT NULL,
6537  PRIMARY KEY (`a`)
6538) ENGINE=MEMORY DEFAULT CHARSET=cp1257 COLLATE=cp1257_nopad_bin
6539INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6540SELECT HEX(a), a FROM t1 ORDER BY a;
6541HEX(a)	a
65422061	 a
6543206120	 a
654461202020	a
6545616263	abc
65466162632020	abc
6547SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6548HEX(a)	a
65492061	 a
6550206120	 a
655161202020	a
6552616263	abc
65536162632020	abc
6554SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6555HEX(a)	a
65566162632020	abc
6557616263	abc
655861202020	a
6559206120	 a
65602061	 a
6561#
6562# UNION
6563#
6564CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1257_nopad_bin';
6565INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6566SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6567HEX(a)	a
65682061	 a
6569206120	 a
65706120	a
657161202020	a
6572616263	abc
657361626320	abc
65746162632020	abc
6575DROP TABLE t1;
6576DROP TABLE t2;
6577#
6578# DISTINCT, COUNT, MAX
6579#
6580CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_nopad_bin';
6581INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6582SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6583HEX(a)	a
65842061	 a
6585206120	 a
658661	a
6587612020	a
658861202020	a
6589SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6590COUNT(DISTINCT a)
65915
6592SELECT HEX(MAX(a)), MAX(a) FROM t1;
6593HEX(MAX(a))	MAX(a)
659461202020	a
6595#
6596# GROUP BY
6597#
6598CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1257_nopad_bin';
6599INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6600SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6601HEX(a)	cnt
66026161	1
660361612020	1
66046162	2
6605DROP TABLE t2;
6606#
6607# Weights
6608#
6609SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6610HEX(WEIGHT_STRING(a AS CHAR(10)))
661161000000000000000000
661261202000000000000000
661320610000000000000000
661420612000000000000000
661561202020000000000000
6616DROP TABLE t1;
6617#
6618# IF, CASE, LEAST
6619#
6620SELECT IF('abc' COLLATE 'cp1257_nopad_bin' = 'abc ', 'pad', 'nopad');
6621IF('abc' COLLATE 'cp1257_nopad_bin' = 'abc ', 'pad', 'nopad')
6622nopad
6623SELECT CASE 'abc' COLLATE 'cp1257_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6624CASE 'abc' COLLATE 'cp1257_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6625nopad
6626SELECT CASE WHEN 'abc' COLLATE 'cp1257_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6627CASE WHEN 'abc' COLLATE 'cp1257_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
6628nopad
6629SELECT HEX(LEAST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '));
6630HEX(LEAST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '))
663161626320
6632SELECT HEX(GREATEST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '));
6633HEX(GREATEST('abc ' COLLATE 'cp1257_nopad_bin', 'abc  '))
66346162632020
6635#
6636# Collation mix
6637#
6638CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1257_bin';
6639INSERT INTO t1 VALUES ('a'),('a ');
6640SELECT COUNT(*) FROM t1 WHERE a='a';
6641COUNT(*)
66422
6643SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_bin';
6644COUNT(*)
66452
6646SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_nopad_bin';
6647COUNT(*)
66481
6649ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1257_nopad_bin';
6650SELECT COUNT(*) FROM t1 WHERE a='a';
6651COUNT(*)
66521
6653SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_bin';
6654COUNT(*)
66552
6656SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1257_nopad_bin';
6657COUNT(*)
66581
6659DROP TABLE t1;
6660#
6661# End of ctype_pad.inc
6662#
6663SET DEFAULT_STORAGE_ENGINE=Default;
6664SET character_set_connection=latin5;
6665SET DEFAULT_STORAGE_ENGINE=MyISAM;
6666#
6667# Start of ctype_pad.inc
6668#
6669#
6670# Unique indexes
6671#
6672CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin5_turkish_nopad_ci';
6673SHOW CREATE TABLE t1;
6674Table	Create Table
6675t1	CREATE TABLE `t1` (
6676  `a` varchar(10) COLLATE latin5_turkish_nopad_ci NOT NULL,
6677  PRIMARY KEY (`a`)
6678) ENGINE=MyISAM DEFAULT CHARSET=latin5 COLLATE=latin5_turkish_nopad_ci
6679INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6680SELECT HEX(a), a FROM t1 ORDER BY a;
6681HEX(a)	a
66822061	 a
6683206120	 a
668461202020	a
6685616263	abc
66866162632020	abc
6687SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6688HEX(a)	a
66892061	 a
6690206120	 a
669161202020	a
6692616263	abc
66936162632020	abc
6694SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6695HEX(a)	a
66966162632020	abc
6697616263	abc
669861202020	a
6699206120	 a
67002061	 a
6701#
6702# UNION
6703#
6704CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin5_turkish_nopad_ci';
6705INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6706SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6707HEX(a)	a
67082061	 a
6709206120	 a
67106120	a
671161202020	a
6712616263	abc
671361626320	abc
67146162632020	abc
6715DROP TABLE t1;
6716DROP TABLE t2;
6717#
6718# DISTINCT, COUNT, MAX
6719#
6720CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_turkish_nopad_ci';
6721INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6722SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6723HEX(a)	a
67242061	 a
6725206120	 a
672661	a
6727612020	a
672861202020	a
6729SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6730COUNT(DISTINCT a)
67315
6732SELECT HEX(MAX(a)), MAX(a) FROM t1;
6733HEX(MAX(a))	MAX(a)
673461202020	a
6735#
6736# GROUP BY
6737#
6738CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin5_turkish_nopad_ci';
6739INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6740SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6741HEX(a)	cnt
67426161	1
674361612020	1
67446162	2
6745DROP TABLE t2;
6746#
6747# Weights
6748#
6749SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6750HEX(WEIGHT_STRING(a AS CHAR(10)))
675141000000000000000000
675241202000000000000000
675320410000000000000000
675420412000000000000000
675541202020000000000000
6756DROP TABLE t1;
6757#
6758# IF, CASE, LEAST
6759#
6760SELECT IF('abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ', 'pad', 'nopad');
6761IF('abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ', 'pad', 'nopad')
6762nopad
6763SELECT CASE 'abc' COLLATE 'latin5_turkish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6764CASE 'abc' COLLATE 'latin5_turkish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6765nopad
6766SELECT CASE WHEN 'abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6767CASE WHEN 'abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
6768nopad
6769SELECT HEX(LEAST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '));
6770HEX(LEAST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '))
677161626320
6772SELECT HEX(GREATEST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '));
6773HEX(GREATEST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '))
67746162632020
6775#
6776# Collation mix
6777#
6778CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_turkish_ci';
6779INSERT INTO t1 VALUES ('a'),('a ');
6780SELECT COUNT(*) FROM t1 WHERE a='a';
6781COUNT(*)
67822
6783SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_ci';
6784COUNT(*)
67852
6786SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_nopad_ci';
6787COUNT(*)
67881
6789ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin5_turkish_nopad_ci';
6790SELECT COUNT(*) FROM t1 WHERE a='a';
6791COUNT(*)
67921
6793SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_ci';
6794COUNT(*)
67952
6796SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_nopad_ci';
6797COUNT(*)
67981
6799DROP TABLE t1;
6800#
6801# End of ctype_pad.inc
6802#
6803SET DEFAULT_STORAGE_ENGINE=HEAP;
6804#
6805# Start of ctype_pad.inc
6806#
6807#
6808# Unique indexes
6809#
6810CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin5_turkish_nopad_ci';
6811SHOW CREATE TABLE t1;
6812Table	Create Table
6813t1	CREATE TABLE `t1` (
6814  `a` varchar(10) COLLATE latin5_turkish_nopad_ci NOT NULL,
6815  PRIMARY KEY (`a`)
6816) ENGINE=MEMORY DEFAULT CHARSET=latin5 COLLATE=latin5_turkish_nopad_ci
6817INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6818SELECT HEX(a), a FROM t1 ORDER BY a;
6819HEX(a)	a
68202061	 a
6821206120	 a
682261202020	a
6823616263	abc
68246162632020	abc
6825SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6826HEX(a)	a
68272061	 a
6828206120	 a
682961202020	a
6830616263	abc
68316162632020	abc
6832SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6833HEX(a)	a
68346162632020	abc
6835616263	abc
683661202020	a
6837206120	 a
68382061	 a
6839#
6840# UNION
6841#
6842CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin5_turkish_nopad_ci';
6843INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6844SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6845HEX(a)	a
68462061	 a
6847206120	 a
68486120	a
684961202020	a
6850616263	abc
685161626320	abc
68526162632020	abc
6853DROP TABLE t1;
6854DROP TABLE t2;
6855#
6856# DISTINCT, COUNT, MAX
6857#
6858CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_turkish_nopad_ci';
6859INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6860SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
6861HEX(a)	a
68622061	 a
6863206120	 a
686461	a
6865612020	a
686661202020	a
6867SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
6868COUNT(DISTINCT a)
68695
6870SELECT HEX(MAX(a)), MAX(a) FROM t1;
6871HEX(MAX(a))	MAX(a)
687261202020	a
6873#
6874# GROUP BY
6875#
6876CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin5_turkish_nopad_ci';
6877INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
6878SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
6879HEX(a)	cnt
68806161	1
688161612020	1
68826162	2
6883DROP TABLE t2;
6884#
6885# Weights
6886#
6887SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
6888HEX(WEIGHT_STRING(a AS CHAR(10)))
688941000000000000000000
689041202000000000000000
689120410000000000000000
689220412000000000000000
689341202020000000000000
6894DROP TABLE t1;
6895#
6896# IF, CASE, LEAST
6897#
6898SELECT IF('abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ', 'pad', 'nopad');
6899IF('abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ', 'pad', 'nopad')
6900nopad
6901SELECT CASE 'abc' COLLATE 'latin5_turkish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
6902CASE 'abc' COLLATE 'latin5_turkish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
6903nopad
6904SELECT CASE WHEN 'abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
6905CASE WHEN 'abc' COLLATE 'latin5_turkish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
6906nopad
6907SELECT HEX(LEAST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '));
6908HEX(LEAST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '))
690961626320
6910SELECT HEX(GREATEST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '));
6911HEX(GREATEST('abc ' COLLATE 'latin5_turkish_nopad_ci', 'abc  '))
69126162632020
6913#
6914# Collation mix
6915#
6916CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_turkish_ci';
6917INSERT INTO t1 VALUES ('a'),('a ');
6918SELECT COUNT(*) FROM t1 WHERE a='a';
6919COUNT(*)
69202
6921SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_ci';
6922COUNT(*)
69232
6924SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_nopad_ci';
6925COUNT(*)
69261
6927ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin5_turkish_nopad_ci';
6928SELECT COUNT(*) FROM t1 WHERE a='a';
6929COUNT(*)
69301
6931SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_ci';
6932COUNT(*)
69332
6934SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_turkish_nopad_ci';
6935COUNT(*)
69361
6937DROP TABLE t1;
6938#
6939# End of ctype_pad.inc
6940#
6941SET DEFAULT_STORAGE_ENGINE=Default;
6942SET DEFAULT_STORAGE_ENGINE=MyISAM;
6943#
6944# Start of ctype_pad.inc
6945#
6946#
6947# Unique indexes
6948#
6949CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin5_nopad_bin';
6950SHOW CREATE TABLE t1;
6951Table	Create Table
6952t1	CREATE TABLE `t1` (
6953  `a` varchar(10) COLLATE latin5_nopad_bin NOT NULL,
6954  PRIMARY KEY (`a`)
6955) ENGINE=MyISAM DEFAULT CHARSET=latin5 COLLATE=latin5_nopad_bin
6956INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
6957SELECT HEX(a), a FROM t1 ORDER BY a;
6958HEX(a)	a
69592061	 a
6960206120	 a
696161202020	a
6962616263	abc
69636162632020	abc
6964SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
6965HEX(a)	a
69662061	 a
6967206120	 a
696861202020	a
6969616263	abc
69706162632020	abc
6971SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
6972HEX(a)	a
69736162632020	abc
6974616263	abc
697561202020	a
6976206120	 a
69772061	 a
6978#
6979# UNION
6980#
6981CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin5_nopad_bin';
6982INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
6983SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
6984HEX(a)	a
69852061	 a
6986206120	 a
69876120	a
698861202020	a
6989616263	abc
699061626320	abc
69916162632020	abc
6992DROP TABLE t1;
6993DROP TABLE t2;
6994#
6995# DISTINCT, COUNT, MAX
6996#
6997CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_nopad_bin';
6998INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
6999SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7000HEX(a)	a
70012061	 a
7002206120	 a
700361	a
7004612020	a
700561202020	a
7006SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7007COUNT(DISTINCT a)
70085
7009SELECT HEX(MAX(a)), MAX(a) FROM t1;
7010HEX(MAX(a))	MAX(a)
701161202020	a
7012#
7013# GROUP BY
7014#
7015CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin5_nopad_bin';
7016INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7017SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7018HEX(a)	cnt
70196161	1
702061612020	1
70216162	2
7022DROP TABLE t2;
7023#
7024# Weights
7025#
7026SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7027HEX(WEIGHT_STRING(a AS CHAR(10)))
702861000000000000000000
702961202000000000000000
703020610000000000000000
703120612000000000000000
703261202020000000000000
7033DROP TABLE t1;
7034#
7035# IF, CASE, LEAST
7036#
7037SELECT IF('abc' COLLATE 'latin5_nopad_bin' = 'abc ', 'pad', 'nopad');
7038IF('abc' COLLATE 'latin5_nopad_bin' = 'abc ', 'pad', 'nopad')
7039nopad
7040SELECT CASE 'abc' COLLATE 'latin5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7041CASE 'abc' COLLATE 'latin5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7042nopad
7043SELECT CASE WHEN 'abc' COLLATE 'latin5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7044CASE WHEN 'abc' COLLATE 'latin5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
7045nopad
7046SELECT HEX(LEAST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '));
7047HEX(LEAST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '))
704861626320
7049SELECT HEX(GREATEST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '));
7050HEX(GREATEST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '))
70516162632020
7052#
7053# Collation mix
7054#
7055CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_bin';
7056INSERT INTO t1 VALUES ('a'),('a ');
7057SELECT COUNT(*) FROM t1 WHERE a='a';
7058COUNT(*)
70592
7060SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_bin';
7061COUNT(*)
70622
7063SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_nopad_bin';
7064COUNT(*)
70651
7066ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin5_nopad_bin';
7067SELECT COUNT(*) FROM t1 WHERE a='a';
7068COUNT(*)
70691
7070SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_bin';
7071COUNT(*)
70722
7073SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_nopad_bin';
7074COUNT(*)
70751
7076DROP TABLE t1;
7077#
7078# End of ctype_pad.inc
7079#
7080SET DEFAULT_STORAGE_ENGINE=HEAP;
7081#
7082# Start of ctype_pad.inc
7083#
7084#
7085# Unique indexes
7086#
7087CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin5_nopad_bin';
7088SHOW CREATE TABLE t1;
7089Table	Create Table
7090t1	CREATE TABLE `t1` (
7091  `a` varchar(10) COLLATE latin5_nopad_bin NOT NULL,
7092  PRIMARY KEY (`a`)
7093) ENGINE=MEMORY DEFAULT CHARSET=latin5 COLLATE=latin5_nopad_bin
7094INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7095SELECT HEX(a), a FROM t1 ORDER BY a;
7096HEX(a)	a
70972061	 a
7098206120	 a
709961202020	a
7100616263	abc
71016162632020	abc
7102SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7103HEX(a)	a
71042061	 a
7105206120	 a
710661202020	a
7107616263	abc
71086162632020	abc
7109SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7110HEX(a)	a
71116162632020	abc
7112616263	abc
711361202020	a
7114206120	 a
71152061	 a
7116#
7117# UNION
7118#
7119CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin5_nopad_bin';
7120INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7121SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7122HEX(a)	a
71232061	 a
7124206120	 a
71256120	a
712661202020	a
7127616263	abc
712861626320	abc
71296162632020	abc
7130DROP TABLE t1;
7131DROP TABLE t2;
7132#
7133# DISTINCT, COUNT, MAX
7134#
7135CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_nopad_bin';
7136INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7137SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7138HEX(a)	a
71392061	 a
7140206120	 a
714161	a
7142612020	a
714361202020	a
7144SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7145COUNT(DISTINCT a)
71465
7147SELECT HEX(MAX(a)), MAX(a) FROM t1;
7148HEX(MAX(a))	MAX(a)
714961202020	a
7150#
7151# GROUP BY
7152#
7153CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin5_nopad_bin';
7154INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7155SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7156HEX(a)	cnt
71576161	1
715861612020	1
71596162	2
7160DROP TABLE t2;
7161#
7162# Weights
7163#
7164SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7165HEX(WEIGHT_STRING(a AS CHAR(10)))
716661000000000000000000
716761202000000000000000
716820610000000000000000
716920612000000000000000
717061202020000000000000
7171DROP TABLE t1;
7172#
7173# IF, CASE, LEAST
7174#
7175SELECT IF('abc' COLLATE 'latin5_nopad_bin' = 'abc ', 'pad', 'nopad');
7176IF('abc' COLLATE 'latin5_nopad_bin' = 'abc ', 'pad', 'nopad')
7177nopad
7178SELECT CASE 'abc' COLLATE 'latin5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7179CASE 'abc' COLLATE 'latin5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7180nopad
7181SELECT CASE WHEN 'abc' COLLATE 'latin5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7182CASE WHEN 'abc' COLLATE 'latin5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
7183nopad
7184SELECT HEX(LEAST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '));
7185HEX(LEAST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '))
718661626320
7187SELECT HEX(GREATEST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '));
7188HEX(GREATEST('abc ' COLLATE 'latin5_nopad_bin', 'abc  '))
71896162632020
7190#
7191# Collation mix
7192#
7193CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin5_bin';
7194INSERT INTO t1 VALUES ('a'),('a ');
7195SELECT COUNT(*) FROM t1 WHERE a='a';
7196COUNT(*)
71972
7198SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_bin';
7199COUNT(*)
72002
7201SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_nopad_bin';
7202COUNT(*)
72031
7204ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin5_nopad_bin';
7205SELECT COUNT(*) FROM t1 WHERE a='a';
7206COUNT(*)
72071
7208SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_bin';
7209COUNT(*)
72102
7211SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin5_nopad_bin';
7212COUNT(*)
72131
7214DROP TABLE t1;
7215#
7216# End of ctype_pad.inc
7217#
7218SET DEFAULT_STORAGE_ENGINE=Default;
7219SET character_set_connection=armscii8;
7220SET DEFAULT_STORAGE_ENGINE=MyISAM;
7221#
7222# Start of ctype_pad.inc
7223#
7224#
7225# Unique indexes
7226#
7227CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'armscii8_general_nopad_ci';
7228SHOW CREATE TABLE t1;
7229Table	Create Table
7230t1	CREATE TABLE `t1` (
7231  `a` varchar(10) COLLATE armscii8_general_nopad_ci NOT NULL,
7232  PRIMARY KEY (`a`)
7233) ENGINE=MyISAM DEFAULT CHARSET=armscii8 COLLATE=armscii8_general_nopad_ci
7234INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7235SELECT HEX(a), a FROM t1 ORDER BY a;
7236HEX(a)	a
72372061	 a
7238206120	 a
723961202020	a
7240616263	abc
72416162632020	abc
7242SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7243HEX(a)	a
72442061	 a
7245206120	 a
724661202020	a
7247616263	abc
72486162632020	abc
7249SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7250HEX(a)	a
72516162632020	abc
7252616263	abc
725361202020	a
7254206120	 a
72552061	 a
7256#
7257# UNION
7258#
7259CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'armscii8_general_nopad_ci';
7260INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7261SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7262HEX(a)	a
72632061	 a
7264206120	 a
72656120	a
726661202020	a
7267616263	abc
726861626320	abc
72696162632020	abc
7270DROP TABLE t1;
7271DROP TABLE t2;
7272#
7273# DISTINCT, COUNT, MAX
7274#
7275CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_general_nopad_ci';
7276INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7277SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7278HEX(a)	a
72792061	 a
7280206120	 a
728161	a
7282612020	a
728361202020	a
7284SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7285COUNT(DISTINCT a)
72865
7287SELECT HEX(MAX(a)), MAX(a) FROM t1;
7288HEX(MAX(a))	MAX(a)
728961202020	a
7290#
7291# GROUP BY
7292#
7293CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'armscii8_general_nopad_ci';
7294INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7295SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7296HEX(a)	cnt
72976161	1
729861612020	1
72996162	2
7300DROP TABLE t2;
7301#
7302# Weights
7303#
7304SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7305HEX(WEIGHT_STRING(a AS CHAR(10)))
730641000000000000000000
730741202000000000000000
730820410000000000000000
730920412000000000000000
731041202020000000000000
7311DROP TABLE t1;
7312#
7313# IF, CASE, LEAST
7314#
7315SELECT IF('abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ', 'pad', 'nopad');
7316IF('abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ', 'pad', 'nopad')
7317nopad
7318SELECT CASE 'abc' COLLATE 'armscii8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7319CASE 'abc' COLLATE 'armscii8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7320nopad
7321SELECT CASE WHEN 'abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7322CASE WHEN 'abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
7323nopad
7324SELECT HEX(LEAST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '));
7325HEX(LEAST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '))
732661626320
7327SELECT HEX(GREATEST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '));
7328HEX(GREATEST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '))
73296162632020
7330#
7331# Collation mix
7332#
7333CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_general_ci';
7334INSERT INTO t1 VALUES ('a'),('a ');
7335SELECT COUNT(*) FROM t1 WHERE a='a';
7336COUNT(*)
73372
7338SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_ci';
7339COUNT(*)
73402
7341SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_nopad_ci';
7342COUNT(*)
73431
7344ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'armscii8_general_nopad_ci';
7345SELECT COUNT(*) FROM t1 WHERE a='a';
7346COUNT(*)
73471
7348SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_ci';
7349COUNT(*)
73502
7351SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_nopad_ci';
7352COUNT(*)
73531
7354DROP TABLE t1;
7355#
7356# End of ctype_pad.inc
7357#
7358SET DEFAULT_STORAGE_ENGINE=HEAP;
7359#
7360# Start of ctype_pad.inc
7361#
7362#
7363# Unique indexes
7364#
7365CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'armscii8_general_nopad_ci';
7366SHOW CREATE TABLE t1;
7367Table	Create Table
7368t1	CREATE TABLE `t1` (
7369  `a` varchar(10) COLLATE armscii8_general_nopad_ci NOT NULL,
7370  PRIMARY KEY (`a`)
7371) ENGINE=MEMORY DEFAULT CHARSET=armscii8 COLLATE=armscii8_general_nopad_ci
7372INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7373SELECT HEX(a), a FROM t1 ORDER BY a;
7374HEX(a)	a
73752061	 a
7376206120	 a
737761202020	a
7378616263	abc
73796162632020	abc
7380SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7381HEX(a)	a
73822061	 a
7383206120	 a
738461202020	a
7385616263	abc
73866162632020	abc
7387SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7388HEX(a)	a
73896162632020	abc
7390616263	abc
739161202020	a
7392206120	 a
73932061	 a
7394#
7395# UNION
7396#
7397CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'armscii8_general_nopad_ci';
7398INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7399SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7400HEX(a)	a
74012061	 a
7402206120	 a
74036120	a
740461202020	a
7405616263	abc
740661626320	abc
74076162632020	abc
7408DROP TABLE t1;
7409DROP TABLE t2;
7410#
7411# DISTINCT, COUNT, MAX
7412#
7413CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_general_nopad_ci';
7414INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7415SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7416HEX(a)	a
74172061	 a
7418206120	 a
741961	a
7420612020	a
742161202020	a
7422SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7423COUNT(DISTINCT a)
74245
7425SELECT HEX(MAX(a)), MAX(a) FROM t1;
7426HEX(MAX(a))	MAX(a)
742761202020	a
7428#
7429# GROUP BY
7430#
7431CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'armscii8_general_nopad_ci';
7432INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7433SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7434HEX(a)	cnt
74356161	1
743661612020	1
74376162	2
7438DROP TABLE t2;
7439#
7440# Weights
7441#
7442SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7443HEX(WEIGHT_STRING(a AS CHAR(10)))
744441000000000000000000
744541202000000000000000
744620410000000000000000
744720412000000000000000
744841202020000000000000
7449DROP TABLE t1;
7450#
7451# IF, CASE, LEAST
7452#
7453SELECT IF('abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ', 'pad', 'nopad');
7454IF('abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ', 'pad', 'nopad')
7455nopad
7456SELECT CASE 'abc' COLLATE 'armscii8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7457CASE 'abc' COLLATE 'armscii8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7458nopad
7459SELECT CASE WHEN 'abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7460CASE WHEN 'abc' COLLATE 'armscii8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
7461nopad
7462SELECT HEX(LEAST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '));
7463HEX(LEAST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '))
746461626320
7465SELECT HEX(GREATEST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '));
7466HEX(GREATEST('abc ' COLLATE 'armscii8_general_nopad_ci', 'abc  '))
74676162632020
7468#
7469# Collation mix
7470#
7471CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_general_ci';
7472INSERT INTO t1 VALUES ('a'),('a ');
7473SELECT COUNT(*) FROM t1 WHERE a='a';
7474COUNT(*)
74752
7476SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_ci';
7477COUNT(*)
74782
7479SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_nopad_ci';
7480COUNT(*)
74811
7482ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'armscii8_general_nopad_ci';
7483SELECT COUNT(*) FROM t1 WHERE a='a';
7484COUNT(*)
74851
7486SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_ci';
7487COUNT(*)
74882
7489SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_general_nopad_ci';
7490COUNT(*)
74911
7492DROP TABLE t1;
7493#
7494# End of ctype_pad.inc
7495#
7496SET DEFAULT_STORAGE_ENGINE=Default;
7497SET DEFAULT_STORAGE_ENGINE=MyISAM;
7498#
7499# Start of ctype_pad.inc
7500#
7501#
7502# Unique indexes
7503#
7504CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'armscii8_nopad_bin';
7505SHOW CREATE TABLE t1;
7506Table	Create Table
7507t1	CREATE TABLE `t1` (
7508  `a` varchar(10) COLLATE armscii8_nopad_bin NOT NULL,
7509  PRIMARY KEY (`a`)
7510) ENGINE=MyISAM DEFAULT CHARSET=armscii8 COLLATE=armscii8_nopad_bin
7511INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7512SELECT HEX(a), a FROM t1 ORDER BY a;
7513HEX(a)	a
75142061	 a
7515206120	 a
751661202020	a
7517616263	abc
75186162632020	abc
7519SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7520HEX(a)	a
75212061	 a
7522206120	 a
752361202020	a
7524616263	abc
75256162632020	abc
7526SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7527HEX(a)	a
75286162632020	abc
7529616263	abc
753061202020	a
7531206120	 a
75322061	 a
7533#
7534# UNION
7535#
7536CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'armscii8_nopad_bin';
7537INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7538SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7539HEX(a)	a
75402061	 a
7541206120	 a
75426120	a
754361202020	a
7544616263	abc
754561626320	abc
75466162632020	abc
7547DROP TABLE t1;
7548DROP TABLE t2;
7549#
7550# DISTINCT, COUNT, MAX
7551#
7552CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_nopad_bin';
7553INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7554SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7555HEX(a)	a
75562061	 a
7557206120	 a
755861	a
7559612020	a
756061202020	a
7561SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7562COUNT(DISTINCT a)
75635
7564SELECT HEX(MAX(a)), MAX(a) FROM t1;
7565HEX(MAX(a))	MAX(a)
756661202020	a
7567#
7568# GROUP BY
7569#
7570CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'armscii8_nopad_bin';
7571INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7572SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7573HEX(a)	cnt
75746161	1
757561612020	1
75766162	2
7577DROP TABLE t2;
7578#
7579# Weights
7580#
7581SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7582HEX(WEIGHT_STRING(a AS CHAR(10)))
758361000000000000000000
758461202000000000000000
758520610000000000000000
758620612000000000000000
758761202020000000000000
7588DROP TABLE t1;
7589#
7590# IF, CASE, LEAST
7591#
7592SELECT IF('abc' COLLATE 'armscii8_nopad_bin' = 'abc ', 'pad', 'nopad');
7593IF('abc' COLLATE 'armscii8_nopad_bin' = 'abc ', 'pad', 'nopad')
7594nopad
7595SELECT CASE 'abc' COLLATE 'armscii8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7596CASE 'abc' COLLATE 'armscii8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7597nopad
7598SELECT CASE WHEN 'abc' COLLATE 'armscii8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7599CASE WHEN 'abc' COLLATE 'armscii8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
7600nopad
7601SELECT HEX(LEAST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '));
7602HEX(LEAST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '))
760361626320
7604SELECT HEX(GREATEST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '));
7605HEX(GREATEST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '))
76066162632020
7607#
7608# Collation mix
7609#
7610CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_bin';
7611INSERT INTO t1 VALUES ('a'),('a ');
7612SELECT COUNT(*) FROM t1 WHERE a='a';
7613COUNT(*)
76142
7615SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_bin';
7616COUNT(*)
76172
7618SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_nopad_bin';
7619COUNT(*)
76201
7621ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'armscii8_nopad_bin';
7622SELECT COUNT(*) FROM t1 WHERE a='a';
7623COUNT(*)
76241
7625SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_bin';
7626COUNT(*)
76272
7628SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_nopad_bin';
7629COUNT(*)
76301
7631DROP TABLE t1;
7632#
7633# End of ctype_pad.inc
7634#
7635SET DEFAULT_STORAGE_ENGINE=HEAP;
7636#
7637# Start of ctype_pad.inc
7638#
7639#
7640# Unique indexes
7641#
7642CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'armscii8_nopad_bin';
7643SHOW CREATE TABLE t1;
7644Table	Create Table
7645t1	CREATE TABLE `t1` (
7646  `a` varchar(10) COLLATE armscii8_nopad_bin NOT NULL,
7647  PRIMARY KEY (`a`)
7648) ENGINE=MEMORY DEFAULT CHARSET=armscii8 COLLATE=armscii8_nopad_bin
7649INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7650SELECT HEX(a), a FROM t1 ORDER BY a;
7651HEX(a)	a
76522061	 a
7653206120	 a
765461202020	a
7655616263	abc
76566162632020	abc
7657SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7658HEX(a)	a
76592061	 a
7660206120	 a
766161202020	a
7662616263	abc
76636162632020	abc
7664SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7665HEX(a)	a
76666162632020	abc
7667616263	abc
766861202020	a
7669206120	 a
76702061	 a
7671#
7672# UNION
7673#
7674CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'armscii8_nopad_bin';
7675INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7676SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7677HEX(a)	a
76782061	 a
7679206120	 a
76806120	a
768161202020	a
7682616263	abc
768361626320	abc
76846162632020	abc
7685DROP TABLE t1;
7686DROP TABLE t2;
7687#
7688# DISTINCT, COUNT, MAX
7689#
7690CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_nopad_bin';
7691INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7692SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7693HEX(a)	a
76942061	 a
7695206120	 a
769661	a
7697612020	a
769861202020	a
7699SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7700COUNT(DISTINCT a)
77015
7702SELECT HEX(MAX(a)), MAX(a) FROM t1;
7703HEX(MAX(a))	MAX(a)
770461202020	a
7705#
7706# GROUP BY
7707#
7708CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'armscii8_nopad_bin';
7709INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7710SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7711HEX(a)	cnt
77126161	1
771361612020	1
77146162	2
7715DROP TABLE t2;
7716#
7717# Weights
7718#
7719SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7720HEX(WEIGHT_STRING(a AS CHAR(10)))
772161000000000000000000
772261202000000000000000
772320610000000000000000
772420612000000000000000
772561202020000000000000
7726DROP TABLE t1;
7727#
7728# IF, CASE, LEAST
7729#
7730SELECT IF('abc' COLLATE 'armscii8_nopad_bin' = 'abc ', 'pad', 'nopad');
7731IF('abc' COLLATE 'armscii8_nopad_bin' = 'abc ', 'pad', 'nopad')
7732nopad
7733SELECT CASE 'abc' COLLATE 'armscii8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7734CASE 'abc' COLLATE 'armscii8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7735nopad
7736SELECT CASE WHEN 'abc' COLLATE 'armscii8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7737CASE WHEN 'abc' COLLATE 'armscii8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
7738nopad
7739SELECT HEX(LEAST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '));
7740HEX(LEAST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '))
774161626320
7742SELECT HEX(GREATEST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '));
7743HEX(GREATEST('abc ' COLLATE 'armscii8_nopad_bin', 'abc  '))
77446162632020
7745#
7746# Collation mix
7747#
7748CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'armscii8_bin';
7749INSERT INTO t1 VALUES ('a'),('a ');
7750SELECT COUNT(*) FROM t1 WHERE a='a';
7751COUNT(*)
77522
7753SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_bin';
7754COUNT(*)
77552
7756SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_nopad_bin';
7757COUNT(*)
77581
7759ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'armscii8_nopad_bin';
7760SELECT COUNT(*) FROM t1 WHERE a='a';
7761COUNT(*)
77621
7763SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_bin';
7764COUNT(*)
77652
7766SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'armscii8_nopad_bin';
7767COUNT(*)
77681
7769DROP TABLE t1;
7770#
7771# End of ctype_pad.inc
7772#
7773SET DEFAULT_STORAGE_ENGINE=Default;
7774SET character_set_connection=cp866;
7775SET DEFAULT_STORAGE_ENGINE=MyISAM;
7776#
7777# Start of ctype_pad.inc
7778#
7779#
7780# Unique indexes
7781#
7782CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp866_general_nopad_ci';
7783SHOW CREATE TABLE t1;
7784Table	Create Table
7785t1	CREATE TABLE `t1` (
7786  `a` varchar(10) COLLATE cp866_general_nopad_ci NOT NULL,
7787  PRIMARY KEY (`a`)
7788) ENGINE=MyISAM DEFAULT CHARSET=cp866 COLLATE=cp866_general_nopad_ci
7789INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7790SELECT HEX(a), a FROM t1 ORDER BY a;
7791HEX(a)	a
77922061	 a
7793206120	 a
779461202020	a
7795616263	abc
77966162632020	abc
7797SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7798HEX(a)	a
77992061	 a
7800206120	 a
780161202020	a
7802616263	abc
78036162632020	abc
7804SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7805HEX(a)	a
78066162632020	abc
7807616263	abc
780861202020	a
7809206120	 a
78102061	 a
7811#
7812# UNION
7813#
7814CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp866_general_nopad_ci';
7815INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7816SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7817HEX(a)	a
78182061	 a
7819206120	 a
78206120	a
782161202020	a
7822616263	abc
782361626320	abc
78246162632020	abc
7825DROP TABLE t1;
7826DROP TABLE t2;
7827#
7828# DISTINCT, COUNT, MAX
7829#
7830CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_general_nopad_ci';
7831INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7832SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7833HEX(a)	a
78342061	 a
7835206120	 a
783661	a
7837612020	a
783861202020	a
7839SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7840COUNT(DISTINCT a)
78415
7842SELECT HEX(MAX(a)), MAX(a) FROM t1;
7843HEX(MAX(a))	MAX(a)
784461202020	a
7845#
7846# GROUP BY
7847#
7848CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp866_general_nopad_ci';
7849INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7850SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7851HEX(a)	cnt
78526161	1
785361612020	1
78546162	2
7855DROP TABLE t2;
7856#
7857# Weights
7858#
7859SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7860HEX(WEIGHT_STRING(a AS CHAR(10)))
786141000000000000000000
786241202000000000000000
786320410000000000000000
786420412000000000000000
786541202020000000000000
7866DROP TABLE t1;
7867#
7868# IF, CASE, LEAST
7869#
7870SELECT IF('abc' COLLATE 'cp866_general_nopad_ci' = 'abc ', 'pad', 'nopad');
7871IF('abc' COLLATE 'cp866_general_nopad_ci' = 'abc ', 'pad', 'nopad')
7872nopad
7873SELECT CASE 'abc' COLLATE 'cp866_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
7874CASE 'abc' COLLATE 'cp866_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
7875nopad
7876SELECT CASE WHEN 'abc' COLLATE 'cp866_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
7877CASE WHEN 'abc' COLLATE 'cp866_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
7878nopad
7879SELECT HEX(LEAST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '));
7880HEX(LEAST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '))
788161626320
7882SELECT HEX(GREATEST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '));
7883HEX(GREATEST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '))
78846162632020
7885#
7886# Collation mix
7887#
7888CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_general_ci';
7889INSERT INTO t1 VALUES ('a'),('a ');
7890SELECT COUNT(*) FROM t1 WHERE a='a';
7891COUNT(*)
78922
7893SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_ci';
7894COUNT(*)
78952
7896SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_nopad_ci';
7897COUNT(*)
78981
7899ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp866_general_nopad_ci';
7900SELECT COUNT(*) FROM t1 WHERE a='a';
7901COUNT(*)
79021
7903SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_ci';
7904COUNT(*)
79052
7906SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_nopad_ci';
7907COUNT(*)
79081
7909DROP TABLE t1;
7910#
7911# End of ctype_pad.inc
7912#
7913SET DEFAULT_STORAGE_ENGINE=HEAP;
7914#
7915# Start of ctype_pad.inc
7916#
7917#
7918# Unique indexes
7919#
7920CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp866_general_nopad_ci';
7921SHOW CREATE TABLE t1;
7922Table	Create Table
7923t1	CREATE TABLE `t1` (
7924  `a` varchar(10) COLLATE cp866_general_nopad_ci NOT NULL,
7925  PRIMARY KEY (`a`)
7926) ENGINE=MEMORY DEFAULT CHARSET=cp866 COLLATE=cp866_general_nopad_ci
7927INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
7928SELECT HEX(a), a FROM t1 ORDER BY a;
7929HEX(a)	a
79302061	 a
7931206120	 a
793261202020	a
7933616263	abc
79346162632020	abc
7935SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
7936HEX(a)	a
79372061	 a
7938206120	 a
793961202020	a
7940616263	abc
79416162632020	abc
7942SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
7943HEX(a)	a
79446162632020	abc
7945616263	abc
794661202020	a
7947206120	 a
79482061	 a
7949#
7950# UNION
7951#
7952CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp866_general_nopad_ci';
7953INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
7954SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
7955HEX(a)	a
79562061	 a
7957206120	 a
79586120	a
795961202020	a
7960616263	abc
796161626320	abc
79626162632020	abc
7963DROP TABLE t1;
7964DROP TABLE t2;
7965#
7966# DISTINCT, COUNT, MAX
7967#
7968CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_general_nopad_ci';
7969INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
7970SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
7971HEX(a)	a
79722061	 a
7973206120	 a
797461	a
7975612020	a
797661202020	a
7977SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
7978COUNT(DISTINCT a)
79795
7980SELECT HEX(MAX(a)), MAX(a) FROM t1;
7981HEX(MAX(a))	MAX(a)
798261202020	a
7983#
7984# GROUP BY
7985#
7986CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp866_general_nopad_ci';
7987INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
7988SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
7989HEX(a)	cnt
79906161	1
799161612020	1
79926162	2
7993DROP TABLE t2;
7994#
7995# Weights
7996#
7997SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
7998HEX(WEIGHT_STRING(a AS CHAR(10)))
799941000000000000000000
800041202000000000000000
800120410000000000000000
800220412000000000000000
800341202020000000000000
8004DROP TABLE t1;
8005#
8006# IF, CASE, LEAST
8007#
8008SELECT IF('abc' COLLATE 'cp866_general_nopad_ci' = 'abc ', 'pad', 'nopad');
8009IF('abc' COLLATE 'cp866_general_nopad_ci' = 'abc ', 'pad', 'nopad')
8010nopad
8011SELECT CASE 'abc' COLLATE 'cp866_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8012CASE 'abc' COLLATE 'cp866_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8013nopad
8014SELECT CASE WHEN 'abc' COLLATE 'cp866_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8015CASE WHEN 'abc' COLLATE 'cp866_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
8016nopad
8017SELECT HEX(LEAST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '));
8018HEX(LEAST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '))
801961626320
8020SELECT HEX(GREATEST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '));
8021HEX(GREATEST('abc ' COLLATE 'cp866_general_nopad_ci', 'abc  '))
80226162632020
8023#
8024# Collation mix
8025#
8026CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_general_ci';
8027INSERT INTO t1 VALUES ('a'),('a ');
8028SELECT COUNT(*) FROM t1 WHERE a='a';
8029COUNT(*)
80302
8031SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_ci';
8032COUNT(*)
80332
8034SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_nopad_ci';
8035COUNT(*)
80361
8037ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp866_general_nopad_ci';
8038SELECT COUNT(*) FROM t1 WHERE a='a';
8039COUNT(*)
80401
8041SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_ci';
8042COUNT(*)
80432
8044SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_general_nopad_ci';
8045COUNT(*)
80461
8047DROP TABLE t1;
8048#
8049# End of ctype_pad.inc
8050#
8051SET DEFAULT_STORAGE_ENGINE=Default;
8052SET DEFAULT_STORAGE_ENGINE=MyISAM;
8053#
8054# Start of ctype_pad.inc
8055#
8056#
8057# Unique indexes
8058#
8059CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp866_nopad_bin';
8060SHOW CREATE TABLE t1;
8061Table	Create Table
8062t1	CREATE TABLE `t1` (
8063  `a` varchar(10) COLLATE cp866_nopad_bin NOT NULL,
8064  PRIMARY KEY (`a`)
8065) ENGINE=MyISAM DEFAULT CHARSET=cp866 COLLATE=cp866_nopad_bin
8066INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8067SELECT HEX(a), a FROM t1 ORDER BY a;
8068HEX(a)	a
80692061	 a
8070206120	 a
807161202020	a
8072616263	abc
80736162632020	abc
8074SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8075HEX(a)	a
80762061	 a
8077206120	 a
807861202020	a
8079616263	abc
80806162632020	abc
8081SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8082HEX(a)	a
80836162632020	abc
8084616263	abc
808561202020	a
8086206120	 a
80872061	 a
8088#
8089# UNION
8090#
8091CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp866_nopad_bin';
8092INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8093SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8094HEX(a)	a
80952061	 a
8096206120	 a
80976120	a
809861202020	a
8099616263	abc
810061626320	abc
81016162632020	abc
8102DROP TABLE t1;
8103DROP TABLE t2;
8104#
8105# DISTINCT, COUNT, MAX
8106#
8107CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_nopad_bin';
8108INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8109SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8110HEX(a)	a
81112061	 a
8112206120	 a
811361	a
8114612020	a
811561202020	a
8116SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8117COUNT(DISTINCT a)
81185
8119SELECT HEX(MAX(a)), MAX(a) FROM t1;
8120HEX(MAX(a))	MAX(a)
812161202020	a
8122#
8123# GROUP BY
8124#
8125CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp866_nopad_bin';
8126INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8127SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8128HEX(a)	cnt
81296161	1
813061612020	1
81316162	2
8132DROP TABLE t2;
8133#
8134# Weights
8135#
8136SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8137HEX(WEIGHT_STRING(a AS CHAR(10)))
813861000000000000000000
813961202000000000000000
814020610000000000000000
814120612000000000000000
814261202020000000000000
8143DROP TABLE t1;
8144#
8145# IF, CASE, LEAST
8146#
8147SELECT IF('abc' COLLATE 'cp866_nopad_bin' = 'abc ', 'pad', 'nopad');
8148IF('abc' COLLATE 'cp866_nopad_bin' = 'abc ', 'pad', 'nopad')
8149nopad
8150SELECT CASE 'abc' COLLATE 'cp866_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8151CASE 'abc' COLLATE 'cp866_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8152nopad
8153SELECT CASE WHEN 'abc' COLLATE 'cp866_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8154CASE WHEN 'abc' COLLATE 'cp866_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
8155nopad
8156SELECT HEX(LEAST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '));
8157HEX(LEAST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '))
815861626320
8159SELECT HEX(GREATEST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '));
8160HEX(GREATEST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '))
81616162632020
8162#
8163# Collation mix
8164#
8165CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_bin';
8166INSERT INTO t1 VALUES ('a'),('a ');
8167SELECT COUNT(*) FROM t1 WHERE a='a';
8168COUNT(*)
81692
8170SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_bin';
8171COUNT(*)
81722
8173SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_nopad_bin';
8174COUNT(*)
81751
8176ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp866_nopad_bin';
8177SELECT COUNT(*) FROM t1 WHERE a='a';
8178COUNT(*)
81791
8180SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_bin';
8181COUNT(*)
81822
8183SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_nopad_bin';
8184COUNT(*)
81851
8186DROP TABLE t1;
8187#
8188# End of ctype_pad.inc
8189#
8190SET DEFAULT_STORAGE_ENGINE=HEAP;
8191#
8192# Start of ctype_pad.inc
8193#
8194#
8195# Unique indexes
8196#
8197CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp866_nopad_bin';
8198SHOW CREATE TABLE t1;
8199Table	Create Table
8200t1	CREATE TABLE `t1` (
8201  `a` varchar(10) COLLATE cp866_nopad_bin NOT NULL,
8202  PRIMARY KEY (`a`)
8203) ENGINE=MEMORY DEFAULT CHARSET=cp866 COLLATE=cp866_nopad_bin
8204INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8205SELECT HEX(a), a FROM t1 ORDER BY a;
8206HEX(a)	a
82072061	 a
8208206120	 a
820961202020	a
8210616263	abc
82116162632020	abc
8212SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8213HEX(a)	a
82142061	 a
8215206120	 a
821661202020	a
8217616263	abc
82186162632020	abc
8219SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8220HEX(a)	a
82216162632020	abc
8222616263	abc
822361202020	a
8224206120	 a
82252061	 a
8226#
8227# UNION
8228#
8229CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp866_nopad_bin';
8230INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8231SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8232HEX(a)	a
82332061	 a
8234206120	 a
82356120	a
823661202020	a
8237616263	abc
823861626320	abc
82396162632020	abc
8240DROP TABLE t1;
8241DROP TABLE t2;
8242#
8243# DISTINCT, COUNT, MAX
8244#
8245CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_nopad_bin';
8246INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8247SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8248HEX(a)	a
82492061	 a
8250206120	 a
825161	a
8252612020	a
825361202020	a
8254SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8255COUNT(DISTINCT a)
82565
8257SELECT HEX(MAX(a)), MAX(a) FROM t1;
8258HEX(MAX(a))	MAX(a)
825961202020	a
8260#
8261# GROUP BY
8262#
8263CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp866_nopad_bin';
8264INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8265SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8266HEX(a)	cnt
82676161	1
826861612020	1
82696162	2
8270DROP TABLE t2;
8271#
8272# Weights
8273#
8274SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8275HEX(WEIGHT_STRING(a AS CHAR(10)))
827661000000000000000000
827761202000000000000000
827820610000000000000000
827920612000000000000000
828061202020000000000000
8281DROP TABLE t1;
8282#
8283# IF, CASE, LEAST
8284#
8285SELECT IF('abc' COLLATE 'cp866_nopad_bin' = 'abc ', 'pad', 'nopad');
8286IF('abc' COLLATE 'cp866_nopad_bin' = 'abc ', 'pad', 'nopad')
8287nopad
8288SELECT CASE 'abc' COLLATE 'cp866_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8289CASE 'abc' COLLATE 'cp866_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8290nopad
8291SELECT CASE WHEN 'abc' COLLATE 'cp866_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8292CASE WHEN 'abc' COLLATE 'cp866_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
8293nopad
8294SELECT HEX(LEAST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '));
8295HEX(LEAST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '))
829661626320
8297SELECT HEX(GREATEST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '));
8298HEX(GREATEST('abc ' COLLATE 'cp866_nopad_bin', 'abc  '))
82996162632020
8300#
8301# Collation mix
8302#
8303CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp866_bin';
8304INSERT INTO t1 VALUES ('a'),('a ');
8305SELECT COUNT(*) FROM t1 WHERE a='a';
8306COUNT(*)
83072
8308SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_bin';
8309COUNT(*)
83102
8311SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_nopad_bin';
8312COUNT(*)
83131
8314ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp866_nopad_bin';
8315SELECT COUNT(*) FROM t1 WHERE a='a';
8316COUNT(*)
83171
8318SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_bin';
8319COUNT(*)
83202
8321SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp866_nopad_bin';
8322COUNT(*)
83231
8324DROP TABLE t1;
8325#
8326# End of ctype_pad.inc
8327#
8328SET DEFAULT_STORAGE_ENGINE=Default;
8329SET character_set_connection=keybcs2;
8330SET DEFAULT_STORAGE_ENGINE=MyISAM;
8331#
8332# Start of ctype_pad.inc
8333#
8334#
8335# Unique indexes
8336#
8337CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'keybcs2_general_nopad_ci';
8338SHOW CREATE TABLE t1;
8339Table	Create Table
8340t1	CREATE TABLE `t1` (
8341  `a` varchar(10) COLLATE keybcs2_general_nopad_ci NOT NULL,
8342  PRIMARY KEY (`a`)
8343) ENGINE=MyISAM DEFAULT CHARSET=keybcs2 COLLATE=keybcs2_general_nopad_ci
8344INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8345SELECT HEX(a), a FROM t1 ORDER BY a;
8346HEX(a)	a
83472061	 a
8348206120	 a
834961202020	a
8350616263	abc
83516162632020	abc
8352SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8353HEX(a)	a
83542061	 a
8355206120	 a
835661202020	a
8357616263	abc
83586162632020	abc
8359SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8360HEX(a)	a
83616162632020	abc
8362616263	abc
836361202020	a
8364206120	 a
83652061	 a
8366#
8367# UNION
8368#
8369CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'keybcs2_general_nopad_ci';
8370INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8371SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8372HEX(a)	a
83732061	 a
8374206120	 a
83756120	a
837661202020	a
8377616263	abc
837861626320	abc
83796162632020	abc
8380DROP TABLE t1;
8381DROP TABLE t2;
8382#
8383# DISTINCT, COUNT, MAX
8384#
8385CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_general_nopad_ci';
8386INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8387SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8388HEX(a)	a
83892061	 a
8390206120	 a
839161	a
8392612020	a
839361202020	a
8394SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8395COUNT(DISTINCT a)
83965
8397SELECT HEX(MAX(a)), MAX(a) FROM t1;
8398HEX(MAX(a))	MAX(a)
839961202020	a
8400#
8401# GROUP BY
8402#
8403CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'keybcs2_general_nopad_ci';
8404INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8405SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8406HEX(a)	cnt
84076161	1
840861612020	1
84096162	2
8410DROP TABLE t2;
8411#
8412# Weights
8413#
8414SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8415HEX(WEIGHT_STRING(a AS CHAR(10)))
841641000000000000000000
841741202000000000000000
841820410000000000000000
841920412000000000000000
842041202020000000000000
8421DROP TABLE t1;
8422#
8423# IF, CASE, LEAST
8424#
8425SELECT IF('abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ', 'pad', 'nopad');
8426IF('abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ', 'pad', 'nopad')
8427nopad
8428SELECT CASE 'abc' COLLATE 'keybcs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8429CASE 'abc' COLLATE 'keybcs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8430nopad
8431SELECT CASE WHEN 'abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8432CASE WHEN 'abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
8433nopad
8434SELECT HEX(LEAST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '));
8435HEX(LEAST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '))
843661626320
8437SELECT HEX(GREATEST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '));
8438HEX(GREATEST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '))
84396162632020
8440#
8441# Collation mix
8442#
8443CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_general_ci';
8444INSERT INTO t1 VALUES ('a'),('a ');
8445SELECT COUNT(*) FROM t1 WHERE a='a';
8446COUNT(*)
84472
8448SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_ci';
8449COUNT(*)
84502
8451SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_nopad_ci';
8452COUNT(*)
84531
8454ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'keybcs2_general_nopad_ci';
8455SELECT COUNT(*) FROM t1 WHERE a='a';
8456COUNT(*)
84571
8458SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_ci';
8459COUNT(*)
84602
8461SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_nopad_ci';
8462COUNT(*)
84631
8464DROP TABLE t1;
8465#
8466# End of ctype_pad.inc
8467#
8468SET DEFAULT_STORAGE_ENGINE=HEAP;
8469#
8470# Start of ctype_pad.inc
8471#
8472#
8473# Unique indexes
8474#
8475CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'keybcs2_general_nopad_ci';
8476SHOW CREATE TABLE t1;
8477Table	Create Table
8478t1	CREATE TABLE `t1` (
8479  `a` varchar(10) COLLATE keybcs2_general_nopad_ci NOT NULL,
8480  PRIMARY KEY (`a`)
8481) ENGINE=MEMORY DEFAULT CHARSET=keybcs2 COLLATE=keybcs2_general_nopad_ci
8482INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8483SELECT HEX(a), a FROM t1 ORDER BY a;
8484HEX(a)	a
84852061	 a
8486206120	 a
848761202020	a
8488616263	abc
84896162632020	abc
8490SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8491HEX(a)	a
84922061	 a
8493206120	 a
849461202020	a
8495616263	abc
84966162632020	abc
8497SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8498HEX(a)	a
84996162632020	abc
8500616263	abc
850161202020	a
8502206120	 a
85032061	 a
8504#
8505# UNION
8506#
8507CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'keybcs2_general_nopad_ci';
8508INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8509SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8510HEX(a)	a
85112061	 a
8512206120	 a
85136120	a
851461202020	a
8515616263	abc
851661626320	abc
85176162632020	abc
8518DROP TABLE t1;
8519DROP TABLE t2;
8520#
8521# DISTINCT, COUNT, MAX
8522#
8523CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_general_nopad_ci';
8524INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8525SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8526HEX(a)	a
85272061	 a
8528206120	 a
852961	a
8530612020	a
853161202020	a
8532SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8533COUNT(DISTINCT a)
85345
8535SELECT HEX(MAX(a)), MAX(a) FROM t1;
8536HEX(MAX(a))	MAX(a)
853761202020	a
8538#
8539# GROUP BY
8540#
8541CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'keybcs2_general_nopad_ci';
8542INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8543SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8544HEX(a)	cnt
85456161	1
854661612020	1
85476162	2
8548DROP TABLE t2;
8549#
8550# Weights
8551#
8552SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8553HEX(WEIGHT_STRING(a AS CHAR(10)))
855441000000000000000000
855541202000000000000000
855620410000000000000000
855720412000000000000000
855841202020000000000000
8559DROP TABLE t1;
8560#
8561# IF, CASE, LEAST
8562#
8563SELECT IF('abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ', 'pad', 'nopad');
8564IF('abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ', 'pad', 'nopad')
8565nopad
8566SELECT CASE 'abc' COLLATE 'keybcs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8567CASE 'abc' COLLATE 'keybcs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8568nopad
8569SELECT CASE WHEN 'abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8570CASE WHEN 'abc' COLLATE 'keybcs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
8571nopad
8572SELECT HEX(LEAST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '));
8573HEX(LEAST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '))
857461626320
8575SELECT HEX(GREATEST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '));
8576HEX(GREATEST('abc ' COLLATE 'keybcs2_general_nopad_ci', 'abc  '))
85776162632020
8578#
8579# Collation mix
8580#
8581CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_general_ci';
8582INSERT INTO t1 VALUES ('a'),('a ');
8583SELECT COUNT(*) FROM t1 WHERE a='a';
8584COUNT(*)
85852
8586SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_ci';
8587COUNT(*)
85882
8589SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_nopad_ci';
8590COUNT(*)
85911
8592ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'keybcs2_general_nopad_ci';
8593SELECT COUNT(*) FROM t1 WHERE a='a';
8594COUNT(*)
85951
8596SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_ci';
8597COUNT(*)
85982
8599SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_general_nopad_ci';
8600COUNT(*)
86011
8602DROP TABLE t1;
8603#
8604# End of ctype_pad.inc
8605#
8606SET DEFAULT_STORAGE_ENGINE=Default;
8607SET DEFAULT_STORAGE_ENGINE=MyISAM;
8608#
8609# Start of ctype_pad.inc
8610#
8611#
8612# Unique indexes
8613#
8614CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'keybcs2_nopad_bin';
8615SHOW CREATE TABLE t1;
8616Table	Create Table
8617t1	CREATE TABLE `t1` (
8618  `a` varchar(10) COLLATE keybcs2_nopad_bin NOT NULL,
8619  PRIMARY KEY (`a`)
8620) ENGINE=MyISAM DEFAULT CHARSET=keybcs2 COLLATE=keybcs2_nopad_bin
8621INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8622SELECT HEX(a), a FROM t1 ORDER BY a;
8623HEX(a)	a
86242061	 a
8625206120	 a
862661202020	a
8627616263	abc
86286162632020	abc
8629SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8630HEX(a)	a
86312061	 a
8632206120	 a
863361202020	a
8634616263	abc
86356162632020	abc
8636SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8637HEX(a)	a
86386162632020	abc
8639616263	abc
864061202020	a
8641206120	 a
86422061	 a
8643#
8644# UNION
8645#
8646CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'keybcs2_nopad_bin';
8647INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8648SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8649HEX(a)	a
86502061	 a
8651206120	 a
86526120	a
865361202020	a
8654616263	abc
865561626320	abc
86566162632020	abc
8657DROP TABLE t1;
8658DROP TABLE t2;
8659#
8660# DISTINCT, COUNT, MAX
8661#
8662CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_nopad_bin';
8663INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8664SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8665HEX(a)	a
86662061	 a
8667206120	 a
866861	a
8669612020	a
867061202020	a
8671SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8672COUNT(DISTINCT a)
86735
8674SELECT HEX(MAX(a)), MAX(a) FROM t1;
8675HEX(MAX(a))	MAX(a)
867661202020	a
8677#
8678# GROUP BY
8679#
8680CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'keybcs2_nopad_bin';
8681INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8682SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8683HEX(a)	cnt
86846161	1
868561612020	1
86866162	2
8687DROP TABLE t2;
8688#
8689# Weights
8690#
8691SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8692HEX(WEIGHT_STRING(a AS CHAR(10)))
869361000000000000000000
869461202000000000000000
869520610000000000000000
869620612000000000000000
869761202020000000000000
8698DROP TABLE t1;
8699#
8700# IF, CASE, LEAST
8701#
8702SELECT IF('abc' COLLATE 'keybcs2_nopad_bin' = 'abc ', 'pad', 'nopad');
8703IF('abc' COLLATE 'keybcs2_nopad_bin' = 'abc ', 'pad', 'nopad')
8704nopad
8705SELECT CASE 'abc' COLLATE 'keybcs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8706CASE 'abc' COLLATE 'keybcs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8707nopad
8708SELECT CASE WHEN 'abc' COLLATE 'keybcs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8709CASE WHEN 'abc' COLLATE 'keybcs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
8710nopad
8711SELECT HEX(LEAST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '));
8712HEX(LEAST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '))
871361626320
8714SELECT HEX(GREATEST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '));
8715HEX(GREATEST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '))
87166162632020
8717#
8718# Collation mix
8719#
8720CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_bin';
8721INSERT INTO t1 VALUES ('a'),('a ');
8722SELECT COUNT(*) FROM t1 WHERE a='a';
8723COUNT(*)
87242
8725SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_bin';
8726COUNT(*)
87272
8728SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_nopad_bin';
8729COUNT(*)
87301
8731ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'keybcs2_nopad_bin';
8732SELECT COUNT(*) FROM t1 WHERE a='a';
8733COUNT(*)
87341
8735SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_bin';
8736COUNT(*)
87372
8738SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_nopad_bin';
8739COUNT(*)
87401
8741DROP TABLE t1;
8742#
8743# End of ctype_pad.inc
8744#
8745SET DEFAULT_STORAGE_ENGINE=HEAP;
8746#
8747# Start of ctype_pad.inc
8748#
8749#
8750# Unique indexes
8751#
8752CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'keybcs2_nopad_bin';
8753SHOW CREATE TABLE t1;
8754Table	Create Table
8755t1	CREATE TABLE `t1` (
8756  `a` varchar(10) COLLATE keybcs2_nopad_bin NOT NULL,
8757  PRIMARY KEY (`a`)
8758) ENGINE=MEMORY DEFAULT CHARSET=keybcs2 COLLATE=keybcs2_nopad_bin
8759INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8760SELECT HEX(a), a FROM t1 ORDER BY a;
8761HEX(a)	a
87622061	 a
8763206120	 a
876461202020	a
8765616263	abc
87666162632020	abc
8767SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8768HEX(a)	a
87692061	 a
8770206120	 a
877161202020	a
8772616263	abc
87736162632020	abc
8774SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8775HEX(a)	a
87766162632020	abc
8777616263	abc
877861202020	a
8779206120	 a
87802061	 a
8781#
8782# UNION
8783#
8784CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'keybcs2_nopad_bin';
8785INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8786SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8787HEX(a)	a
87882061	 a
8789206120	 a
87906120	a
879161202020	a
8792616263	abc
879361626320	abc
87946162632020	abc
8795DROP TABLE t1;
8796DROP TABLE t2;
8797#
8798# DISTINCT, COUNT, MAX
8799#
8800CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_nopad_bin';
8801INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8802SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8803HEX(a)	a
88042061	 a
8805206120	 a
880661	a
8807612020	a
880861202020	a
8809SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8810COUNT(DISTINCT a)
88115
8812SELECT HEX(MAX(a)), MAX(a) FROM t1;
8813HEX(MAX(a))	MAX(a)
881461202020	a
8815#
8816# GROUP BY
8817#
8818CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'keybcs2_nopad_bin';
8819INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8820SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8821HEX(a)	cnt
88226161	1
882361612020	1
88246162	2
8825DROP TABLE t2;
8826#
8827# Weights
8828#
8829SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8830HEX(WEIGHT_STRING(a AS CHAR(10)))
883161000000000000000000
883261202000000000000000
883320610000000000000000
883420612000000000000000
883561202020000000000000
8836DROP TABLE t1;
8837#
8838# IF, CASE, LEAST
8839#
8840SELECT IF('abc' COLLATE 'keybcs2_nopad_bin' = 'abc ', 'pad', 'nopad');
8841IF('abc' COLLATE 'keybcs2_nopad_bin' = 'abc ', 'pad', 'nopad')
8842nopad
8843SELECT CASE 'abc' COLLATE 'keybcs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8844CASE 'abc' COLLATE 'keybcs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8845nopad
8846SELECT CASE WHEN 'abc' COLLATE 'keybcs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8847CASE WHEN 'abc' COLLATE 'keybcs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
8848nopad
8849SELECT HEX(LEAST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '));
8850HEX(LEAST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '))
885161626320
8852SELECT HEX(GREATEST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '));
8853HEX(GREATEST('abc ' COLLATE 'keybcs2_nopad_bin', 'abc  '))
88546162632020
8855#
8856# Collation mix
8857#
8858CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'keybcs2_bin';
8859INSERT INTO t1 VALUES ('a'),('a ');
8860SELECT COUNT(*) FROM t1 WHERE a='a';
8861COUNT(*)
88622
8863SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_bin';
8864COUNT(*)
88652
8866SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_nopad_bin';
8867COUNT(*)
88681
8869ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'keybcs2_nopad_bin';
8870SELECT COUNT(*) FROM t1 WHERE a='a';
8871COUNT(*)
88721
8873SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_bin';
8874COUNT(*)
88752
8876SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'keybcs2_nopad_bin';
8877COUNT(*)
88781
8879DROP TABLE t1;
8880#
8881# End of ctype_pad.inc
8882#
8883SET DEFAULT_STORAGE_ENGINE=Default;
8884SET character_set_connection=macce;
8885SET DEFAULT_STORAGE_ENGINE=MyISAM;
8886#
8887# Start of ctype_pad.inc
8888#
8889#
8890# Unique indexes
8891#
8892CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macce_general_nopad_ci';
8893SHOW CREATE TABLE t1;
8894Table	Create Table
8895t1	CREATE TABLE `t1` (
8896  `a` varchar(10) COLLATE macce_general_nopad_ci NOT NULL,
8897  PRIMARY KEY (`a`)
8898) ENGINE=MyISAM DEFAULT CHARSET=macce COLLATE=macce_general_nopad_ci
8899INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
8900SELECT HEX(a), a FROM t1 ORDER BY a;
8901HEX(a)	a
89022061	 a
8903206120	 a
890461202020	a
8905616263	abc
89066162632020	abc
8907SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
8908HEX(a)	a
89092061	 a
8910206120	 a
891161202020	a
8912616263	abc
89136162632020	abc
8914SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
8915HEX(a)	a
89166162632020	abc
8917616263	abc
891861202020	a
8919206120	 a
89202061	 a
8921#
8922# UNION
8923#
8924CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macce_general_nopad_ci';
8925INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
8926SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
8927HEX(a)	a
89282061	 a
8929206120	 a
89306120	a
893161202020	a
8932616263	abc
893361626320	abc
89346162632020	abc
8935DROP TABLE t1;
8936DROP TABLE t2;
8937#
8938# DISTINCT, COUNT, MAX
8939#
8940CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_general_nopad_ci';
8941INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
8942SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
8943HEX(a)	a
89442061	 a
8945206120	 a
894661	a
8947612020	a
894861202020	a
8949SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
8950COUNT(DISTINCT a)
89515
8952SELECT HEX(MAX(a)), MAX(a) FROM t1;
8953HEX(MAX(a))	MAX(a)
895461202020	a
8955#
8956# GROUP BY
8957#
8958CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macce_general_nopad_ci';
8959INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
8960SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
8961HEX(a)	cnt
89626161	1
896361612020	1
89646162	2
8965DROP TABLE t2;
8966#
8967# Weights
8968#
8969SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
8970HEX(WEIGHT_STRING(a AS CHAR(10)))
897141000000000000000000
897241202000000000000000
897320410000000000000000
897420412000000000000000
897541202020000000000000
8976DROP TABLE t1;
8977#
8978# IF, CASE, LEAST
8979#
8980SELECT IF('abc' COLLATE 'macce_general_nopad_ci' = 'abc ', 'pad', 'nopad');
8981IF('abc' COLLATE 'macce_general_nopad_ci' = 'abc ', 'pad', 'nopad')
8982nopad
8983SELECT CASE 'abc' COLLATE 'macce_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
8984CASE 'abc' COLLATE 'macce_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
8985nopad
8986SELECT CASE WHEN 'abc' COLLATE 'macce_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
8987CASE WHEN 'abc' COLLATE 'macce_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
8988nopad
8989SELECT HEX(LEAST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '));
8990HEX(LEAST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '))
899161626320
8992SELECT HEX(GREATEST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '));
8993HEX(GREATEST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '))
89946162632020
8995#
8996# Collation mix
8997#
8998CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_general_ci';
8999INSERT INTO t1 VALUES ('a'),('a ');
9000SELECT COUNT(*) FROM t1 WHERE a='a';
9001COUNT(*)
90022
9003SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_ci';
9004COUNT(*)
90052
9006SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_nopad_ci';
9007COUNT(*)
90081
9009ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macce_general_nopad_ci';
9010SELECT COUNT(*) FROM t1 WHERE a='a';
9011COUNT(*)
90121
9013SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_ci';
9014COUNT(*)
90152
9016SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_nopad_ci';
9017COUNT(*)
90181
9019DROP TABLE t1;
9020#
9021# End of ctype_pad.inc
9022#
9023SET DEFAULT_STORAGE_ENGINE=HEAP;
9024#
9025# Start of ctype_pad.inc
9026#
9027#
9028# Unique indexes
9029#
9030CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macce_general_nopad_ci';
9031SHOW CREATE TABLE t1;
9032Table	Create Table
9033t1	CREATE TABLE `t1` (
9034  `a` varchar(10) COLLATE macce_general_nopad_ci NOT NULL,
9035  PRIMARY KEY (`a`)
9036) ENGINE=MEMORY DEFAULT CHARSET=macce COLLATE=macce_general_nopad_ci
9037INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9038SELECT HEX(a), a FROM t1 ORDER BY a;
9039HEX(a)	a
90402061	 a
9041206120	 a
904261202020	a
9043616263	abc
90446162632020	abc
9045SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9046HEX(a)	a
90472061	 a
9048206120	 a
904961202020	a
9050616263	abc
90516162632020	abc
9052SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9053HEX(a)	a
90546162632020	abc
9055616263	abc
905661202020	a
9057206120	 a
90582061	 a
9059#
9060# UNION
9061#
9062CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macce_general_nopad_ci';
9063INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9064SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9065HEX(a)	a
90662061	 a
9067206120	 a
90686120	a
906961202020	a
9070616263	abc
907161626320	abc
90726162632020	abc
9073DROP TABLE t1;
9074DROP TABLE t2;
9075#
9076# DISTINCT, COUNT, MAX
9077#
9078CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_general_nopad_ci';
9079INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9080SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9081HEX(a)	a
90822061	 a
9083206120	 a
908461	a
9085612020	a
908661202020	a
9087SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9088COUNT(DISTINCT a)
90895
9090SELECT HEX(MAX(a)), MAX(a) FROM t1;
9091HEX(MAX(a))	MAX(a)
909261202020	a
9093#
9094# GROUP BY
9095#
9096CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macce_general_nopad_ci';
9097INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9098SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9099HEX(a)	cnt
91006161	1
910161612020	1
91026162	2
9103DROP TABLE t2;
9104#
9105# Weights
9106#
9107SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9108HEX(WEIGHT_STRING(a AS CHAR(10)))
910941000000000000000000
911041202000000000000000
911120410000000000000000
911220412000000000000000
911341202020000000000000
9114DROP TABLE t1;
9115#
9116# IF, CASE, LEAST
9117#
9118SELECT IF('abc' COLLATE 'macce_general_nopad_ci' = 'abc ', 'pad', 'nopad');
9119IF('abc' COLLATE 'macce_general_nopad_ci' = 'abc ', 'pad', 'nopad')
9120nopad
9121SELECT CASE 'abc' COLLATE 'macce_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9122CASE 'abc' COLLATE 'macce_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9123nopad
9124SELECT CASE WHEN 'abc' COLLATE 'macce_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9125CASE WHEN 'abc' COLLATE 'macce_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
9126nopad
9127SELECT HEX(LEAST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '));
9128HEX(LEAST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '))
912961626320
9130SELECT HEX(GREATEST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '));
9131HEX(GREATEST('abc ' COLLATE 'macce_general_nopad_ci', 'abc  '))
91326162632020
9133#
9134# Collation mix
9135#
9136CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_general_ci';
9137INSERT INTO t1 VALUES ('a'),('a ');
9138SELECT COUNT(*) FROM t1 WHERE a='a';
9139COUNT(*)
91402
9141SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_ci';
9142COUNT(*)
91432
9144SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_nopad_ci';
9145COUNT(*)
91461
9147ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macce_general_nopad_ci';
9148SELECT COUNT(*) FROM t1 WHERE a='a';
9149COUNT(*)
91501
9151SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_ci';
9152COUNT(*)
91532
9154SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_general_nopad_ci';
9155COUNT(*)
91561
9157DROP TABLE t1;
9158#
9159# End of ctype_pad.inc
9160#
9161SET DEFAULT_STORAGE_ENGINE=Default;
9162SET DEFAULT_STORAGE_ENGINE=MyISAM;
9163#
9164# Start of ctype_pad.inc
9165#
9166#
9167# Unique indexes
9168#
9169CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macce_nopad_bin';
9170SHOW CREATE TABLE t1;
9171Table	Create Table
9172t1	CREATE TABLE `t1` (
9173  `a` varchar(10) COLLATE macce_nopad_bin NOT NULL,
9174  PRIMARY KEY (`a`)
9175) ENGINE=MyISAM DEFAULT CHARSET=macce COLLATE=macce_nopad_bin
9176INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9177SELECT HEX(a), a FROM t1 ORDER BY a;
9178HEX(a)	a
91792061	 a
9180206120	 a
918161202020	a
9182616263	abc
91836162632020	abc
9184SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9185HEX(a)	a
91862061	 a
9187206120	 a
918861202020	a
9189616263	abc
91906162632020	abc
9191SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9192HEX(a)	a
91936162632020	abc
9194616263	abc
919561202020	a
9196206120	 a
91972061	 a
9198#
9199# UNION
9200#
9201CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macce_nopad_bin';
9202INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9203SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9204HEX(a)	a
92052061	 a
9206206120	 a
92076120	a
920861202020	a
9209616263	abc
921061626320	abc
92116162632020	abc
9212DROP TABLE t1;
9213DROP TABLE t2;
9214#
9215# DISTINCT, COUNT, MAX
9216#
9217CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_nopad_bin';
9218INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9219SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9220HEX(a)	a
92212061	 a
9222206120	 a
922361	a
9224612020	a
922561202020	a
9226SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9227COUNT(DISTINCT a)
92285
9229SELECT HEX(MAX(a)), MAX(a) FROM t1;
9230HEX(MAX(a))	MAX(a)
923161202020	a
9232#
9233# GROUP BY
9234#
9235CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macce_nopad_bin';
9236INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9237SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9238HEX(a)	cnt
92396161	1
924061612020	1
92416162	2
9242DROP TABLE t2;
9243#
9244# Weights
9245#
9246SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9247HEX(WEIGHT_STRING(a AS CHAR(10)))
924861000000000000000000
924961202000000000000000
925020610000000000000000
925120612000000000000000
925261202020000000000000
9253DROP TABLE t1;
9254#
9255# IF, CASE, LEAST
9256#
9257SELECT IF('abc' COLLATE 'macce_nopad_bin' = 'abc ', 'pad', 'nopad');
9258IF('abc' COLLATE 'macce_nopad_bin' = 'abc ', 'pad', 'nopad')
9259nopad
9260SELECT CASE 'abc' COLLATE 'macce_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9261CASE 'abc' COLLATE 'macce_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9262nopad
9263SELECT CASE WHEN 'abc' COLLATE 'macce_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9264CASE WHEN 'abc' COLLATE 'macce_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
9265nopad
9266SELECT HEX(LEAST('abc ' COLLATE 'macce_nopad_bin', 'abc  '));
9267HEX(LEAST('abc ' COLLATE 'macce_nopad_bin', 'abc  '))
926861626320
9269SELECT HEX(GREATEST('abc ' COLLATE 'macce_nopad_bin', 'abc  '));
9270HEX(GREATEST('abc ' COLLATE 'macce_nopad_bin', 'abc  '))
92716162632020
9272#
9273# Collation mix
9274#
9275CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_bin';
9276INSERT INTO t1 VALUES ('a'),('a ');
9277SELECT COUNT(*) FROM t1 WHERE a='a';
9278COUNT(*)
92792
9280SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_bin';
9281COUNT(*)
92822
9283SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_nopad_bin';
9284COUNT(*)
92851
9286ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macce_nopad_bin';
9287SELECT COUNT(*) FROM t1 WHERE a='a';
9288COUNT(*)
92891
9290SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_bin';
9291COUNT(*)
92922
9293SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_nopad_bin';
9294COUNT(*)
92951
9296DROP TABLE t1;
9297#
9298# End of ctype_pad.inc
9299#
9300SET DEFAULT_STORAGE_ENGINE=HEAP;
9301#
9302# Start of ctype_pad.inc
9303#
9304#
9305# Unique indexes
9306#
9307CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macce_nopad_bin';
9308SHOW CREATE TABLE t1;
9309Table	Create Table
9310t1	CREATE TABLE `t1` (
9311  `a` varchar(10) COLLATE macce_nopad_bin NOT NULL,
9312  PRIMARY KEY (`a`)
9313) ENGINE=MEMORY DEFAULT CHARSET=macce COLLATE=macce_nopad_bin
9314INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9315SELECT HEX(a), a FROM t1 ORDER BY a;
9316HEX(a)	a
93172061	 a
9318206120	 a
931961202020	a
9320616263	abc
93216162632020	abc
9322SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9323HEX(a)	a
93242061	 a
9325206120	 a
932661202020	a
9327616263	abc
93286162632020	abc
9329SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9330HEX(a)	a
93316162632020	abc
9332616263	abc
933361202020	a
9334206120	 a
93352061	 a
9336#
9337# UNION
9338#
9339CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macce_nopad_bin';
9340INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9341SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9342HEX(a)	a
93432061	 a
9344206120	 a
93456120	a
934661202020	a
9347616263	abc
934861626320	abc
93496162632020	abc
9350DROP TABLE t1;
9351DROP TABLE t2;
9352#
9353# DISTINCT, COUNT, MAX
9354#
9355CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_nopad_bin';
9356INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9357SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9358HEX(a)	a
93592061	 a
9360206120	 a
936161	a
9362612020	a
936361202020	a
9364SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9365COUNT(DISTINCT a)
93665
9367SELECT HEX(MAX(a)), MAX(a) FROM t1;
9368HEX(MAX(a))	MAX(a)
936961202020	a
9370#
9371# GROUP BY
9372#
9373CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macce_nopad_bin';
9374INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9375SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9376HEX(a)	cnt
93776161	1
937861612020	1
93796162	2
9380DROP TABLE t2;
9381#
9382# Weights
9383#
9384SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9385HEX(WEIGHT_STRING(a AS CHAR(10)))
938661000000000000000000
938761202000000000000000
938820610000000000000000
938920612000000000000000
939061202020000000000000
9391DROP TABLE t1;
9392#
9393# IF, CASE, LEAST
9394#
9395SELECT IF('abc' COLLATE 'macce_nopad_bin' = 'abc ', 'pad', 'nopad');
9396IF('abc' COLLATE 'macce_nopad_bin' = 'abc ', 'pad', 'nopad')
9397nopad
9398SELECT CASE 'abc' COLLATE 'macce_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9399CASE 'abc' COLLATE 'macce_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9400nopad
9401SELECT CASE WHEN 'abc' COLLATE 'macce_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9402CASE WHEN 'abc' COLLATE 'macce_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
9403nopad
9404SELECT HEX(LEAST('abc ' COLLATE 'macce_nopad_bin', 'abc  '));
9405HEX(LEAST('abc ' COLLATE 'macce_nopad_bin', 'abc  '))
940661626320
9407SELECT HEX(GREATEST('abc ' COLLATE 'macce_nopad_bin', 'abc  '));
9408HEX(GREATEST('abc ' COLLATE 'macce_nopad_bin', 'abc  '))
94096162632020
9410#
9411# Collation mix
9412#
9413CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macce_bin';
9414INSERT INTO t1 VALUES ('a'),('a ');
9415SELECT COUNT(*) FROM t1 WHERE a='a';
9416COUNT(*)
94172
9418SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_bin';
9419COUNT(*)
94202
9421SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_nopad_bin';
9422COUNT(*)
94231
9424ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macce_nopad_bin';
9425SELECT COUNT(*) FROM t1 WHERE a='a';
9426COUNT(*)
94271
9428SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_bin';
9429COUNT(*)
94302
9431SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macce_nopad_bin';
9432COUNT(*)
94331
9434DROP TABLE t1;
9435#
9436# End of ctype_pad.inc
9437#
9438SET DEFAULT_STORAGE_ENGINE=Default;
9439SET character_set_connection=macroman;
9440SET DEFAULT_STORAGE_ENGINE=MyISAM;
9441#
9442# Start of ctype_pad.inc
9443#
9444#
9445# Unique indexes
9446#
9447CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macroman_general_nopad_ci';
9448SHOW CREATE TABLE t1;
9449Table	Create Table
9450t1	CREATE TABLE `t1` (
9451  `a` varchar(10) COLLATE macroman_general_nopad_ci NOT NULL,
9452  PRIMARY KEY (`a`)
9453) ENGINE=MyISAM DEFAULT CHARSET=macroman COLLATE=macroman_general_nopad_ci
9454INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9455SELECT HEX(a), a FROM t1 ORDER BY a;
9456HEX(a)	a
94572061	 a
9458206120	 a
945961202020	a
9460616263	abc
94616162632020	abc
9462SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9463HEX(a)	a
94642061	 a
9465206120	 a
946661202020	a
9467616263	abc
94686162632020	abc
9469SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9470HEX(a)	a
94716162632020	abc
9472616263	abc
947361202020	a
9474206120	 a
94752061	 a
9476#
9477# UNION
9478#
9479CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macroman_general_nopad_ci';
9480INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9481SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9482HEX(a)	a
94832061	 a
9484206120	 a
94856120	a
948661202020	a
9487616263	abc
948861626320	abc
94896162632020	abc
9490DROP TABLE t1;
9491DROP TABLE t2;
9492#
9493# DISTINCT, COUNT, MAX
9494#
9495CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_general_nopad_ci';
9496INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9497SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9498HEX(a)	a
94992061	 a
9500206120	 a
950161	a
9502612020	a
950361202020	a
9504SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9505COUNT(DISTINCT a)
95065
9507SELECT HEX(MAX(a)), MAX(a) FROM t1;
9508HEX(MAX(a))	MAX(a)
950961202020	a
9510#
9511# GROUP BY
9512#
9513CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macroman_general_nopad_ci';
9514INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9515SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9516HEX(a)	cnt
95176161	1
951861612020	1
95196162	2
9520DROP TABLE t2;
9521#
9522# Weights
9523#
9524SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9525HEX(WEIGHT_STRING(a AS CHAR(10)))
952641000000000000000000
952741202000000000000000
952820410000000000000000
952920412000000000000000
953041202020000000000000
9531DROP TABLE t1;
9532#
9533# IF, CASE, LEAST
9534#
9535SELECT IF('abc' COLLATE 'macroman_general_nopad_ci' = 'abc ', 'pad', 'nopad');
9536IF('abc' COLLATE 'macroman_general_nopad_ci' = 'abc ', 'pad', 'nopad')
9537nopad
9538SELECT CASE 'abc' COLLATE 'macroman_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9539CASE 'abc' COLLATE 'macroman_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9540nopad
9541SELECT CASE WHEN 'abc' COLLATE 'macroman_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9542CASE WHEN 'abc' COLLATE 'macroman_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
9543nopad
9544SELECT HEX(LEAST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '));
9545HEX(LEAST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '))
954661626320
9547SELECT HEX(GREATEST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '));
9548HEX(GREATEST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '))
95496162632020
9550#
9551# Collation mix
9552#
9553CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_general_ci';
9554INSERT INTO t1 VALUES ('a'),('a ');
9555SELECT COUNT(*) FROM t1 WHERE a='a';
9556COUNT(*)
95572
9558SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_ci';
9559COUNT(*)
95602
9561SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_nopad_ci';
9562COUNT(*)
95631
9564ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macroman_general_nopad_ci';
9565SELECT COUNT(*) FROM t1 WHERE a='a';
9566COUNT(*)
95671
9568SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_ci';
9569COUNT(*)
95702
9571SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_nopad_ci';
9572COUNT(*)
95731
9574DROP TABLE t1;
9575#
9576# End of ctype_pad.inc
9577#
9578SET DEFAULT_STORAGE_ENGINE=HEAP;
9579#
9580# Start of ctype_pad.inc
9581#
9582#
9583# Unique indexes
9584#
9585CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macroman_general_nopad_ci';
9586SHOW CREATE TABLE t1;
9587Table	Create Table
9588t1	CREATE TABLE `t1` (
9589  `a` varchar(10) COLLATE macroman_general_nopad_ci NOT NULL,
9590  PRIMARY KEY (`a`)
9591) ENGINE=MEMORY DEFAULT CHARSET=macroman COLLATE=macroman_general_nopad_ci
9592INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9593SELECT HEX(a), a FROM t1 ORDER BY a;
9594HEX(a)	a
95952061	 a
9596206120	 a
959761202020	a
9598616263	abc
95996162632020	abc
9600SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9601HEX(a)	a
96022061	 a
9603206120	 a
960461202020	a
9605616263	abc
96066162632020	abc
9607SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9608HEX(a)	a
96096162632020	abc
9610616263	abc
961161202020	a
9612206120	 a
96132061	 a
9614#
9615# UNION
9616#
9617CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macroman_general_nopad_ci';
9618INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9619SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9620HEX(a)	a
96212061	 a
9622206120	 a
96236120	a
962461202020	a
9625616263	abc
962661626320	abc
96276162632020	abc
9628DROP TABLE t1;
9629DROP TABLE t2;
9630#
9631# DISTINCT, COUNT, MAX
9632#
9633CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_general_nopad_ci';
9634INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9635SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9636HEX(a)	a
96372061	 a
9638206120	 a
963961	a
9640612020	a
964161202020	a
9642SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9643COUNT(DISTINCT a)
96445
9645SELECT HEX(MAX(a)), MAX(a) FROM t1;
9646HEX(MAX(a))	MAX(a)
964761202020	a
9648#
9649# GROUP BY
9650#
9651CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macroman_general_nopad_ci';
9652INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9653SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9654HEX(a)	cnt
96556161	1
965661612020	1
96576162	2
9658DROP TABLE t2;
9659#
9660# Weights
9661#
9662SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9663HEX(WEIGHT_STRING(a AS CHAR(10)))
966441000000000000000000
966541202000000000000000
966620410000000000000000
966720412000000000000000
966841202020000000000000
9669DROP TABLE t1;
9670#
9671# IF, CASE, LEAST
9672#
9673SELECT IF('abc' COLLATE 'macroman_general_nopad_ci' = 'abc ', 'pad', 'nopad');
9674IF('abc' COLLATE 'macroman_general_nopad_ci' = 'abc ', 'pad', 'nopad')
9675nopad
9676SELECT CASE 'abc' COLLATE 'macroman_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9677CASE 'abc' COLLATE 'macroman_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9678nopad
9679SELECT CASE WHEN 'abc' COLLATE 'macroman_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9680CASE WHEN 'abc' COLLATE 'macroman_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
9681nopad
9682SELECT HEX(LEAST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '));
9683HEX(LEAST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '))
968461626320
9685SELECT HEX(GREATEST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '));
9686HEX(GREATEST('abc ' COLLATE 'macroman_general_nopad_ci', 'abc  '))
96876162632020
9688#
9689# Collation mix
9690#
9691CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_general_ci';
9692INSERT INTO t1 VALUES ('a'),('a ');
9693SELECT COUNT(*) FROM t1 WHERE a='a';
9694COUNT(*)
96952
9696SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_ci';
9697COUNT(*)
96982
9699SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_nopad_ci';
9700COUNT(*)
97011
9702ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macroman_general_nopad_ci';
9703SELECT COUNT(*) FROM t1 WHERE a='a';
9704COUNT(*)
97051
9706SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_ci';
9707COUNT(*)
97082
9709SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_general_nopad_ci';
9710COUNT(*)
97111
9712DROP TABLE t1;
9713#
9714# End of ctype_pad.inc
9715#
9716SET DEFAULT_STORAGE_ENGINE=Default;
9717SET DEFAULT_STORAGE_ENGINE=MyISAM;
9718#
9719# Start of ctype_pad.inc
9720#
9721#
9722# Unique indexes
9723#
9724CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macroman_nopad_bin';
9725SHOW CREATE TABLE t1;
9726Table	Create Table
9727t1	CREATE TABLE `t1` (
9728  `a` varchar(10) COLLATE macroman_nopad_bin NOT NULL,
9729  PRIMARY KEY (`a`)
9730) ENGINE=MyISAM DEFAULT CHARSET=macroman COLLATE=macroman_nopad_bin
9731INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9732SELECT HEX(a), a FROM t1 ORDER BY a;
9733HEX(a)	a
97342061	 a
9735206120	 a
973661202020	a
9737616263	abc
97386162632020	abc
9739SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9740HEX(a)	a
97412061	 a
9742206120	 a
974361202020	a
9744616263	abc
97456162632020	abc
9746SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9747HEX(a)	a
97486162632020	abc
9749616263	abc
975061202020	a
9751206120	 a
97522061	 a
9753#
9754# UNION
9755#
9756CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macroman_nopad_bin';
9757INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9758SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9759HEX(a)	a
97602061	 a
9761206120	 a
97626120	a
976361202020	a
9764616263	abc
976561626320	abc
97666162632020	abc
9767DROP TABLE t1;
9768DROP TABLE t2;
9769#
9770# DISTINCT, COUNT, MAX
9771#
9772CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_nopad_bin';
9773INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9774SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9775HEX(a)	a
97762061	 a
9777206120	 a
977861	a
9779612020	a
978061202020	a
9781SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9782COUNT(DISTINCT a)
97835
9784SELECT HEX(MAX(a)), MAX(a) FROM t1;
9785HEX(MAX(a))	MAX(a)
978661202020	a
9787#
9788# GROUP BY
9789#
9790CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macroman_nopad_bin';
9791INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9792SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9793HEX(a)	cnt
97946161	1
979561612020	1
97966162	2
9797DROP TABLE t2;
9798#
9799# Weights
9800#
9801SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9802HEX(WEIGHT_STRING(a AS CHAR(10)))
980361000000000000000000
980461202000000000000000
980520610000000000000000
980620612000000000000000
980761202020000000000000
9808DROP TABLE t1;
9809#
9810# IF, CASE, LEAST
9811#
9812SELECT IF('abc' COLLATE 'macroman_nopad_bin' = 'abc ', 'pad', 'nopad');
9813IF('abc' COLLATE 'macroman_nopad_bin' = 'abc ', 'pad', 'nopad')
9814nopad
9815SELECT CASE 'abc' COLLATE 'macroman_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9816CASE 'abc' COLLATE 'macroman_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9817nopad
9818SELECT CASE WHEN 'abc' COLLATE 'macroman_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9819CASE WHEN 'abc' COLLATE 'macroman_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
9820nopad
9821SELECT HEX(LEAST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '));
9822HEX(LEAST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '))
982361626320
9824SELECT HEX(GREATEST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '));
9825HEX(GREATEST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '))
98266162632020
9827#
9828# Collation mix
9829#
9830CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_bin';
9831INSERT INTO t1 VALUES ('a'),('a ');
9832SELECT COUNT(*) FROM t1 WHERE a='a';
9833COUNT(*)
98342
9835SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_bin';
9836COUNT(*)
98372
9838SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_nopad_bin';
9839COUNT(*)
98401
9841ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macroman_nopad_bin';
9842SELECT COUNT(*) FROM t1 WHERE a='a';
9843COUNT(*)
98441
9845SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_bin';
9846COUNT(*)
98472
9848SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_nopad_bin';
9849COUNT(*)
98501
9851DROP TABLE t1;
9852#
9853# End of ctype_pad.inc
9854#
9855SET DEFAULT_STORAGE_ENGINE=HEAP;
9856#
9857# Start of ctype_pad.inc
9858#
9859#
9860# Unique indexes
9861#
9862CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'macroman_nopad_bin';
9863SHOW CREATE TABLE t1;
9864Table	Create Table
9865t1	CREATE TABLE `t1` (
9866  `a` varchar(10) COLLATE macroman_nopad_bin NOT NULL,
9867  PRIMARY KEY (`a`)
9868) ENGINE=MEMORY DEFAULT CHARSET=macroman COLLATE=macroman_nopad_bin
9869INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
9870SELECT HEX(a), a FROM t1 ORDER BY a;
9871HEX(a)	a
98722061	 a
9873206120	 a
987461202020	a
9875616263	abc
98766162632020	abc
9877SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
9878HEX(a)	a
98792061	 a
9880206120	 a
988161202020	a
9882616263	abc
98836162632020	abc
9884SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
9885HEX(a)	a
98866162632020	abc
9887616263	abc
988861202020	a
9889206120	 a
98902061	 a
9891#
9892# UNION
9893#
9894CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'macroman_nopad_bin';
9895INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
9896SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
9897HEX(a)	a
98982061	 a
9899206120	 a
99006120	a
990161202020	a
9902616263	abc
990361626320	abc
99046162632020	abc
9905DROP TABLE t1;
9906DROP TABLE t2;
9907#
9908# DISTINCT, COUNT, MAX
9909#
9910CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_nopad_bin';
9911INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
9912SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
9913HEX(a)	a
99142061	 a
9915206120	 a
991661	a
9917612020	a
991861202020	a
9919SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
9920COUNT(DISTINCT a)
99215
9922SELECT HEX(MAX(a)), MAX(a) FROM t1;
9923HEX(MAX(a))	MAX(a)
992461202020	a
9925#
9926# GROUP BY
9927#
9928CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'macroman_nopad_bin';
9929INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
9930SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
9931HEX(a)	cnt
99326161	1
993361612020	1
99346162	2
9935DROP TABLE t2;
9936#
9937# Weights
9938#
9939SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
9940HEX(WEIGHT_STRING(a AS CHAR(10)))
994161000000000000000000
994261202000000000000000
994320610000000000000000
994420612000000000000000
994561202020000000000000
9946DROP TABLE t1;
9947#
9948# IF, CASE, LEAST
9949#
9950SELECT IF('abc' COLLATE 'macroman_nopad_bin' = 'abc ', 'pad', 'nopad');
9951IF('abc' COLLATE 'macroman_nopad_bin' = 'abc ', 'pad', 'nopad')
9952nopad
9953SELECT CASE 'abc' COLLATE 'macroman_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
9954CASE 'abc' COLLATE 'macroman_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
9955nopad
9956SELECT CASE WHEN 'abc' COLLATE 'macroman_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
9957CASE WHEN 'abc' COLLATE 'macroman_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
9958nopad
9959SELECT HEX(LEAST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '));
9960HEX(LEAST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '))
996161626320
9962SELECT HEX(GREATEST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '));
9963HEX(GREATEST('abc ' COLLATE 'macroman_nopad_bin', 'abc  '))
99646162632020
9965#
9966# Collation mix
9967#
9968CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'macroman_bin';
9969INSERT INTO t1 VALUES ('a'),('a ');
9970SELECT COUNT(*) FROM t1 WHERE a='a';
9971COUNT(*)
99722
9973SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_bin';
9974COUNT(*)
99752
9976SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_nopad_bin';
9977COUNT(*)
99781
9979ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'macroman_nopad_bin';
9980SELECT COUNT(*) FROM t1 WHERE a='a';
9981COUNT(*)
99821
9983SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_bin';
9984COUNT(*)
99852
9986SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'macroman_nopad_bin';
9987COUNT(*)
99881
9989DROP TABLE t1;
9990#
9991# End of ctype_pad.inc
9992#
9993SET DEFAULT_STORAGE_ENGINE=Default;
9994SET character_set_connection=cp852;
9995SET DEFAULT_STORAGE_ENGINE=MyISAM;
9996#
9997# Start of ctype_pad.inc
9998#
9999#
10000# Unique indexes
10001#
10002CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp852_general_nopad_ci';
10003SHOW CREATE TABLE t1;
10004Table	Create Table
10005t1	CREATE TABLE `t1` (
10006  `a` varchar(10) COLLATE cp852_general_nopad_ci NOT NULL,
10007  PRIMARY KEY (`a`)
10008) ENGINE=MyISAM DEFAULT CHARSET=cp852 COLLATE=cp852_general_nopad_ci
10009INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10010SELECT HEX(a), a FROM t1 ORDER BY a;
10011HEX(a)	a
100122061	 a
10013206120	 a
1001461202020	a
10015616263	abc
100166162632020	abc
10017SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10018HEX(a)	a
100192061	 a
10020206120	 a
1002161202020	a
10022616263	abc
100236162632020	abc
10024SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10025HEX(a)	a
100266162632020	abc
10027616263	abc
1002861202020	a
10029206120	 a
100302061	 a
10031#
10032# UNION
10033#
10034CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp852_general_nopad_ci';
10035INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10036SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10037HEX(a)	a
100382061	 a
10039206120	 a
100406120	a
1004161202020	a
10042616263	abc
1004361626320	abc
100446162632020	abc
10045DROP TABLE t1;
10046DROP TABLE t2;
10047#
10048# DISTINCT, COUNT, MAX
10049#
10050CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_general_nopad_ci';
10051INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10052SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10053HEX(a)	a
100542061	 a
10055206120	 a
1005661	a
10057612020	a
1005861202020	a
10059SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10060COUNT(DISTINCT a)
100615
10062SELECT HEX(MAX(a)), MAX(a) FROM t1;
10063HEX(MAX(a))	MAX(a)
1006461202020	a
10065#
10066# GROUP BY
10067#
10068CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp852_general_nopad_ci';
10069INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10070SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10071HEX(a)	cnt
100726161	1
1007361612020	1
100746162	2
10075DROP TABLE t2;
10076#
10077# Weights
10078#
10079SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10080HEX(WEIGHT_STRING(a AS CHAR(10)))
1008141000000000000000000
1008241202000000000000000
1008320410000000000000000
1008420412000000000000000
1008541202020000000000000
10086DROP TABLE t1;
10087#
10088# IF, CASE, LEAST
10089#
10090SELECT IF('abc' COLLATE 'cp852_general_nopad_ci' = 'abc ', 'pad', 'nopad');
10091IF('abc' COLLATE 'cp852_general_nopad_ci' = 'abc ', 'pad', 'nopad')
10092nopad
10093SELECT CASE 'abc' COLLATE 'cp852_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10094CASE 'abc' COLLATE 'cp852_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10095nopad
10096SELECT CASE WHEN 'abc' COLLATE 'cp852_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10097CASE WHEN 'abc' COLLATE 'cp852_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
10098nopad
10099SELECT HEX(LEAST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '));
10100HEX(LEAST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '))
1010161626320
10102SELECT HEX(GREATEST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '));
10103HEX(GREATEST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '))
101046162632020
10105#
10106# Collation mix
10107#
10108CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_general_ci';
10109INSERT INTO t1 VALUES ('a'),('a ');
10110SELECT COUNT(*) FROM t1 WHERE a='a';
10111COUNT(*)
101122
10113SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_ci';
10114COUNT(*)
101152
10116SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_nopad_ci';
10117COUNT(*)
101181
10119ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp852_general_nopad_ci';
10120SELECT COUNT(*) FROM t1 WHERE a='a';
10121COUNT(*)
101221
10123SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_ci';
10124COUNT(*)
101252
10126SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_nopad_ci';
10127COUNT(*)
101281
10129DROP TABLE t1;
10130#
10131# End of ctype_pad.inc
10132#
10133SET DEFAULT_STORAGE_ENGINE=HEAP;
10134#
10135# Start of ctype_pad.inc
10136#
10137#
10138# Unique indexes
10139#
10140CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp852_general_nopad_ci';
10141SHOW CREATE TABLE t1;
10142Table	Create Table
10143t1	CREATE TABLE `t1` (
10144  `a` varchar(10) COLLATE cp852_general_nopad_ci NOT NULL,
10145  PRIMARY KEY (`a`)
10146) ENGINE=MEMORY DEFAULT CHARSET=cp852 COLLATE=cp852_general_nopad_ci
10147INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10148SELECT HEX(a), a FROM t1 ORDER BY a;
10149HEX(a)	a
101502061	 a
10151206120	 a
1015261202020	a
10153616263	abc
101546162632020	abc
10155SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10156HEX(a)	a
101572061	 a
10158206120	 a
1015961202020	a
10160616263	abc
101616162632020	abc
10162SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10163HEX(a)	a
101646162632020	abc
10165616263	abc
1016661202020	a
10167206120	 a
101682061	 a
10169#
10170# UNION
10171#
10172CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp852_general_nopad_ci';
10173INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10174SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10175HEX(a)	a
101762061	 a
10177206120	 a
101786120	a
1017961202020	a
10180616263	abc
1018161626320	abc
101826162632020	abc
10183DROP TABLE t1;
10184DROP TABLE t2;
10185#
10186# DISTINCT, COUNT, MAX
10187#
10188CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_general_nopad_ci';
10189INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10190SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10191HEX(a)	a
101922061	 a
10193206120	 a
1019461	a
10195612020	a
1019661202020	a
10197SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10198COUNT(DISTINCT a)
101995
10200SELECT HEX(MAX(a)), MAX(a) FROM t1;
10201HEX(MAX(a))	MAX(a)
1020261202020	a
10203#
10204# GROUP BY
10205#
10206CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp852_general_nopad_ci';
10207INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10208SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10209HEX(a)	cnt
102106161	1
1021161612020	1
102126162	2
10213DROP TABLE t2;
10214#
10215# Weights
10216#
10217SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10218HEX(WEIGHT_STRING(a AS CHAR(10)))
1021941000000000000000000
1022041202000000000000000
1022120410000000000000000
1022220412000000000000000
1022341202020000000000000
10224DROP TABLE t1;
10225#
10226# IF, CASE, LEAST
10227#
10228SELECT IF('abc' COLLATE 'cp852_general_nopad_ci' = 'abc ', 'pad', 'nopad');
10229IF('abc' COLLATE 'cp852_general_nopad_ci' = 'abc ', 'pad', 'nopad')
10230nopad
10231SELECT CASE 'abc' COLLATE 'cp852_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10232CASE 'abc' COLLATE 'cp852_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10233nopad
10234SELECT CASE WHEN 'abc' COLLATE 'cp852_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10235CASE WHEN 'abc' COLLATE 'cp852_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
10236nopad
10237SELECT HEX(LEAST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '));
10238HEX(LEAST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '))
1023961626320
10240SELECT HEX(GREATEST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '));
10241HEX(GREATEST('abc ' COLLATE 'cp852_general_nopad_ci', 'abc  '))
102426162632020
10243#
10244# Collation mix
10245#
10246CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_general_ci';
10247INSERT INTO t1 VALUES ('a'),('a ');
10248SELECT COUNT(*) FROM t1 WHERE a='a';
10249COUNT(*)
102502
10251SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_ci';
10252COUNT(*)
102532
10254SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_nopad_ci';
10255COUNT(*)
102561
10257ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp852_general_nopad_ci';
10258SELECT COUNT(*) FROM t1 WHERE a='a';
10259COUNT(*)
102601
10261SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_ci';
10262COUNT(*)
102632
10264SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_general_nopad_ci';
10265COUNT(*)
102661
10267DROP TABLE t1;
10268#
10269# End of ctype_pad.inc
10270#
10271SET DEFAULT_STORAGE_ENGINE=Default;
10272SET DEFAULT_STORAGE_ENGINE=MyISAM;
10273#
10274# Start of ctype_pad.inc
10275#
10276#
10277# Unique indexes
10278#
10279CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp852_nopad_bin';
10280SHOW CREATE TABLE t1;
10281Table	Create Table
10282t1	CREATE TABLE `t1` (
10283  `a` varchar(10) COLLATE cp852_nopad_bin NOT NULL,
10284  PRIMARY KEY (`a`)
10285) ENGINE=MyISAM DEFAULT CHARSET=cp852 COLLATE=cp852_nopad_bin
10286INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10287SELECT HEX(a), a FROM t1 ORDER BY a;
10288HEX(a)	a
102892061	 a
10290206120	 a
1029161202020	a
10292616263	abc
102936162632020	abc
10294SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10295HEX(a)	a
102962061	 a
10297206120	 a
1029861202020	a
10299616263	abc
103006162632020	abc
10301SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10302HEX(a)	a
103036162632020	abc
10304616263	abc
1030561202020	a
10306206120	 a
103072061	 a
10308#
10309# UNION
10310#
10311CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp852_nopad_bin';
10312INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10313SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10314HEX(a)	a
103152061	 a
10316206120	 a
103176120	a
1031861202020	a
10319616263	abc
1032061626320	abc
103216162632020	abc
10322DROP TABLE t1;
10323DROP TABLE t2;
10324#
10325# DISTINCT, COUNT, MAX
10326#
10327CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_nopad_bin';
10328INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10329SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10330HEX(a)	a
103312061	 a
10332206120	 a
1033361	a
10334612020	a
1033561202020	a
10336SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10337COUNT(DISTINCT a)
103385
10339SELECT HEX(MAX(a)), MAX(a) FROM t1;
10340HEX(MAX(a))	MAX(a)
1034161202020	a
10342#
10343# GROUP BY
10344#
10345CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp852_nopad_bin';
10346INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10347SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10348HEX(a)	cnt
103496161	1
1035061612020	1
103516162	2
10352DROP TABLE t2;
10353#
10354# Weights
10355#
10356SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10357HEX(WEIGHT_STRING(a AS CHAR(10)))
1035861000000000000000000
1035961202000000000000000
1036020610000000000000000
1036120612000000000000000
1036261202020000000000000
10363DROP TABLE t1;
10364#
10365# IF, CASE, LEAST
10366#
10367SELECT IF('abc' COLLATE 'cp852_nopad_bin' = 'abc ', 'pad', 'nopad');
10368IF('abc' COLLATE 'cp852_nopad_bin' = 'abc ', 'pad', 'nopad')
10369nopad
10370SELECT CASE 'abc' COLLATE 'cp852_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10371CASE 'abc' COLLATE 'cp852_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10372nopad
10373SELECT CASE WHEN 'abc' COLLATE 'cp852_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10374CASE WHEN 'abc' COLLATE 'cp852_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
10375nopad
10376SELECT HEX(LEAST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '));
10377HEX(LEAST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '))
1037861626320
10379SELECT HEX(GREATEST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '));
10380HEX(GREATEST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '))
103816162632020
10382#
10383# Collation mix
10384#
10385CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_bin';
10386INSERT INTO t1 VALUES ('a'),('a ');
10387SELECT COUNT(*) FROM t1 WHERE a='a';
10388COUNT(*)
103892
10390SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_bin';
10391COUNT(*)
103922
10393SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_nopad_bin';
10394COUNT(*)
103951
10396ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp852_nopad_bin';
10397SELECT COUNT(*) FROM t1 WHERE a='a';
10398COUNT(*)
103991
10400SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_bin';
10401COUNT(*)
104022
10403SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_nopad_bin';
10404COUNT(*)
104051
10406DROP TABLE t1;
10407#
10408# End of ctype_pad.inc
10409#
10410SET DEFAULT_STORAGE_ENGINE=HEAP;
10411#
10412# Start of ctype_pad.inc
10413#
10414#
10415# Unique indexes
10416#
10417CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp852_nopad_bin';
10418SHOW CREATE TABLE t1;
10419Table	Create Table
10420t1	CREATE TABLE `t1` (
10421  `a` varchar(10) COLLATE cp852_nopad_bin NOT NULL,
10422  PRIMARY KEY (`a`)
10423) ENGINE=MEMORY DEFAULT CHARSET=cp852 COLLATE=cp852_nopad_bin
10424INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10425SELECT HEX(a), a FROM t1 ORDER BY a;
10426HEX(a)	a
104272061	 a
10428206120	 a
1042961202020	a
10430616263	abc
104316162632020	abc
10432SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10433HEX(a)	a
104342061	 a
10435206120	 a
1043661202020	a
10437616263	abc
104386162632020	abc
10439SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10440HEX(a)	a
104416162632020	abc
10442616263	abc
1044361202020	a
10444206120	 a
104452061	 a
10446#
10447# UNION
10448#
10449CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp852_nopad_bin';
10450INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10451SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10452HEX(a)	a
104532061	 a
10454206120	 a
104556120	a
1045661202020	a
10457616263	abc
1045861626320	abc
104596162632020	abc
10460DROP TABLE t1;
10461DROP TABLE t2;
10462#
10463# DISTINCT, COUNT, MAX
10464#
10465CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_nopad_bin';
10466INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10467SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10468HEX(a)	a
104692061	 a
10470206120	 a
1047161	a
10472612020	a
1047361202020	a
10474SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10475COUNT(DISTINCT a)
104765
10477SELECT HEX(MAX(a)), MAX(a) FROM t1;
10478HEX(MAX(a))	MAX(a)
1047961202020	a
10480#
10481# GROUP BY
10482#
10483CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp852_nopad_bin';
10484INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10485SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10486HEX(a)	cnt
104876161	1
1048861612020	1
104896162	2
10490DROP TABLE t2;
10491#
10492# Weights
10493#
10494SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10495HEX(WEIGHT_STRING(a AS CHAR(10)))
1049661000000000000000000
1049761202000000000000000
1049820610000000000000000
1049920612000000000000000
1050061202020000000000000
10501DROP TABLE t1;
10502#
10503# IF, CASE, LEAST
10504#
10505SELECT IF('abc' COLLATE 'cp852_nopad_bin' = 'abc ', 'pad', 'nopad');
10506IF('abc' COLLATE 'cp852_nopad_bin' = 'abc ', 'pad', 'nopad')
10507nopad
10508SELECT CASE 'abc' COLLATE 'cp852_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10509CASE 'abc' COLLATE 'cp852_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10510nopad
10511SELECT CASE WHEN 'abc' COLLATE 'cp852_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10512CASE WHEN 'abc' COLLATE 'cp852_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
10513nopad
10514SELECT HEX(LEAST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '));
10515HEX(LEAST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '))
1051661626320
10517SELECT HEX(GREATEST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '));
10518HEX(GREATEST('abc ' COLLATE 'cp852_nopad_bin', 'abc  '))
105196162632020
10520#
10521# Collation mix
10522#
10523CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp852_bin';
10524INSERT INTO t1 VALUES ('a'),('a ');
10525SELECT COUNT(*) FROM t1 WHERE a='a';
10526COUNT(*)
105272
10528SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_bin';
10529COUNT(*)
105302
10531SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_nopad_bin';
10532COUNT(*)
105331
10534ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp852_nopad_bin';
10535SELECT COUNT(*) FROM t1 WHERE a='a';
10536COUNT(*)
105371
10538SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_bin';
10539COUNT(*)
105402
10541SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp852_nopad_bin';
10542COUNT(*)
105431
10544DROP TABLE t1;
10545#
10546# End of ctype_pad.inc
10547#
10548SET DEFAULT_STORAGE_ENGINE=Default;
10549SET character_set_connection=latin7;
10550SET DEFAULT_STORAGE_ENGINE=MyISAM;
10551#
10552# Start of ctype_pad.inc
10553#
10554#
10555# Unique indexes
10556#
10557CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin7_general_nopad_ci';
10558SHOW CREATE TABLE t1;
10559Table	Create Table
10560t1	CREATE TABLE `t1` (
10561  `a` varchar(10) COLLATE latin7_general_nopad_ci NOT NULL,
10562  PRIMARY KEY (`a`)
10563) ENGINE=MyISAM DEFAULT CHARSET=latin7 COLLATE=latin7_general_nopad_ci
10564INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10565SELECT HEX(a), a FROM t1 ORDER BY a;
10566HEX(a)	a
105672061	 a
10568206120	 a
1056961202020	a
10570616263	abc
105716162632020	abc
10572SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10573HEX(a)	a
105742061	 a
10575206120	 a
1057661202020	a
10577616263	abc
105786162632020	abc
10579SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10580HEX(a)	a
105816162632020	abc
10582616263	abc
1058361202020	a
10584206120	 a
105852061	 a
10586#
10587# UNION
10588#
10589CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin7_general_nopad_ci';
10590INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10591SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10592HEX(a)	a
105932061	 a
10594206120	 a
105956120	a
1059661202020	a
10597616263	abc
1059861626320	abc
105996162632020	abc
10600DROP TABLE t1;
10601DROP TABLE t2;
10602#
10603# DISTINCT, COUNT, MAX
10604#
10605CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_general_nopad_ci';
10606INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10607SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10608HEX(a)	a
106092061	 a
10610206120	 a
1061161	a
10612612020	a
1061361202020	a
10614SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10615COUNT(DISTINCT a)
106165
10617SELECT HEX(MAX(a)), MAX(a) FROM t1;
10618HEX(MAX(a))	MAX(a)
1061961202020	a
10620#
10621# GROUP BY
10622#
10623CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin7_general_nopad_ci';
10624INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10625SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10626HEX(a)	cnt
106276161	1
1062861612020	1
106296162	2
10630DROP TABLE t2;
10631#
10632# Weights
10633#
10634SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10635HEX(WEIGHT_STRING(a AS CHAR(10)))
1063686000000000000000000
1063786303000000000000000
1063830860000000000000000
1063930863000000000000000
1064086303030000000000000
10641DROP TABLE t1;
10642#
10643# IF, CASE, LEAST
10644#
10645SELECT IF('abc' COLLATE 'latin7_general_nopad_ci' = 'abc ', 'pad', 'nopad');
10646IF('abc' COLLATE 'latin7_general_nopad_ci' = 'abc ', 'pad', 'nopad')
10647nopad
10648SELECT CASE 'abc' COLLATE 'latin7_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10649CASE 'abc' COLLATE 'latin7_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10650nopad
10651SELECT CASE WHEN 'abc' COLLATE 'latin7_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10652CASE WHEN 'abc' COLLATE 'latin7_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
10653nopad
10654SELECT HEX(LEAST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '));
10655HEX(LEAST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '))
1065661626320
10657SELECT HEX(GREATEST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '));
10658HEX(GREATEST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '))
106596162632020
10660#
10661# Collation mix
10662#
10663CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_general_ci';
10664INSERT INTO t1 VALUES ('a'),('a ');
10665SELECT COUNT(*) FROM t1 WHERE a='a';
10666COUNT(*)
106672
10668SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_ci';
10669COUNT(*)
106702
10671SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_nopad_ci';
10672COUNT(*)
106731
10674ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin7_general_nopad_ci';
10675SELECT COUNT(*) FROM t1 WHERE a='a';
10676COUNT(*)
106771
10678SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_ci';
10679COUNT(*)
106802
10681SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_nopad_ci';
10682COUNT(*)
106831
10684DROP TABLE t1;
10685#
10686# End of ctype_pad.inc
10687#
10688SET DEFAULT_STORAGE_ENGINE=HEAP;
10689#
10690# Start of ctype_pad.inc
10691#
10692#
10693# Unique indexes
10694#
10695CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin7_general_nopad_ci';
10696SHOW CREATE TABLE t1;
10697Table	Create Table
10698t1	CREATE TABLE `t1` (
10699  `a` varchar(10) COLLATE latin7_general_nopad_ci NOT NULL,
10700  PRIMARY KEY (`a`)
10701) ENGINE=MEMORY DEFAULT CHARSET=latin7 COLLATE=latin7_general_nopad_ci
10702INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10703SELECT HEX(a), a FROM t1 ORDER BY a;
10704HEX(a)	a
107052061	 a
10706206120	 a
1070761202020	a
10708616263	abc
107096162632020	abc
10710SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10711HEX(a)	a
107122061	 a
10713206120	 a
1071461202020	a
10715616263	abc
107166162632020	abc
10717SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10718HEX(a)	a
107196162632020	abc
10720616263	abc
1072161202020	a
10722206120	 a
107232061	 a
10724#
10725# UNION
10726#
10727CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin7_general_nopad_ci';
10728INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10729SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10730HEX(a)	a
107312061	 a
10732206120	 a
107336120	a
1073461202020	a
10735616263	abc
1073661626320	abc
107376162632020	abc
10738DROP TABLE t1;
10739DROP TABLE t2;
10740#
10741# DISTINCT, COUNT, MAX
10742#
10743CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_general_nopad_ci';
10744INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10745SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10746HEX(a)	a
107472061	 a
10748206120	 a
1074961	a
10750612020	a
1075161202020	a
10752SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10753COUNT(DISTINCT a)
107545
10755SELECT HEX(MAX(a)), MAX(a) FROM t1;
10756HEX(MAX(a))	MAX(a)
1075761202020	a
10758#
10759# GROUP BY
10760#
10761CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin7_general_nopad_ci';
10762INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10763SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10764HEX(a)	cnt
107656161	1
1076661612020	1
107676162	2
10768DROP TABLE t2;
10769#
10770# Weights
10771#
10772SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10773HEX(WEIGHT_STRING(a AS CHAR(10)))
1077486000000000000000000
1077586303000000000000000
1077630860000000000000000
1077730863000000000000000
1077886303030000000000000
10779DROP TABLE t1;
10780#
10781# IF, CASE, LEAST
10782#
10783SELECT IF('abc' COLLATE 'latin7_general_nopad_ci' = 'abc ', 'pad', 'nopad');
10784IF('abc' COLLATE 'latin7_general_nopad_ci' = 'abc ', 'pad', 'nopad')
10785nopad
10786SELECT CASE 'abc' COLLATE 'latin7_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10787CASE 'abc' COLLATE 'latin7_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10788nopad
10789SELECT CASE WHEN 'abc' COLLATE 'latin7_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10790CASE WHEN 'abc' COLLATE 'latin7_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
10791nopad
10792SELECT HEX(LEAST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '));
10793HEX(LEAST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '))
1079461626320
10795SELECT HEX(GREATEST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '));
10796HEX(GREATEST('abc ' COLLATE 'latin7_general_nopad_ci', 'abc  '))
107976162632020
10798#
10799# Collation mix
10800#
10801CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_general_ci';
10802INSERT INTO t1 VALUES ('a'),('a ');
10803SELECT COUNT(*) FROM t1 WHERE a='a';
10804COUNT(*)
108052
10806SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_ci';
10807COUNT(*)
108082
10809SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_nopad_ci';
10810COUNT(*)
108111
10812ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin7_general_nopad_ci';
10813SELECT COUNT(*) FROM t1 WHERE a='a';
10814COUNT(*)
108151
10816SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_ci';
10817COUNT(*)
108182
10819SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_general_nopad_ci';
10820COUNT(*)
108211
10822DROP TABLE t1;
10823#
10824# End of ctype_pad.inc
10825#
10826SET DEFAULT_STORAGE_ENGINE=Default;
10827SET DEFAULT_STORAGE_ENGINE=MyISAM;
10828#
10829# Start of ctype_pad.inc
10830#
10831#
10832# Unique indexes
10833#
10834CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin7_nopad_bin';
10835SHOW CREATE TABLE t1;
10836Table	Create Table
10837t1	CREATE TABLE `t1` (
10838  `a` varchar(10) COLLATE latin7_nopad_bin NOT NULL,
10839  PRIMARY KEY (`a`)
10840) ENGINE=MyISAM DEFAULT CHARSET=latin7 COLLATE=latin7_nopad_bin
10841INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10842SELECT HEX(a), a FROM t1 ORDER BY a;
10843HEX(a)	a
108442061	 a
10845206120	 a
1084661202020	a
10847616263	abc
108486162632020	abc
10849SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10850HEX(a)	a
108512061	 a
10852206120	 a
1085361202020	a
10854616263	abc
108556162632020	abc
10856SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10857HEX(a)	a
108586162632020	abc
10859616263	abc
1086061202020	a
10861206120	 a
108622061	 a
10863#
10864# UNION
10865#
10866CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin7_nopad_bin';
10867INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
10868SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
10869HEX(a)	a
108702061	 a
10871206120	 a
108726120	a
1087361202020	a
10874616263	abc
1087561626320	abc
108766162632020	abc
10877DROP TABLE t1;
10878DROP TABLE t2;
10879#
10880# DISTINCT, COUNT, MAX
10881#
10882CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_nopad_bin';
10883INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
10884SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
10885HEX(a)	a
108862061	 a
10887206120	 a
1088861	a
10889612020	a
1089061202020	a
10891SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
10892COUNT(DISTINCT a)
108935
10894SELECT HEX(MAX(a)), MAX(a) FROM t1;
10895HEX(MAX(a))	MAX(a)
1089661202020	a
10897#
10898# GROUP BY
10899#
10900CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin7_nopad_bin';
10901INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
10902SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
10903HEX(a)	cnt
109046161	1
1090561612020	1
109066162	2
10907DROP TABLE t2;
10908#
10909# Weights
10910#
10911SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
10912HEX(WEIGHT_STRING(a AS CHAR(10)))
1091361000000000000000000
1091461202000000000000000
1091520610000000000000000
1091620612000000000000000
1091761202020000000000000
10918DROP TABLE t1;
10919#
10920# IF, CASE, LEAST
10921#
10922SELECT IF('abc' COLLATE 'latin7_nopad_bin' = 'abc ', 'pad', 'nopad');
10923IF('abc' COLLATE 'latin7_nopad_bin' = 'abc ', 'pad', 'nopad')
10924nopad
10925SELECT CASE 'abc' COLLATE 'latin7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
10926CASE 'abc' COLLATE 'latin7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
10927nopad
10928SELECT CASE WHEN 'abc' COLLATE 'latin7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
10929CASE WHEN 'abc' COLLATE 'latin7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
10930nopad
10931SELECT HEX(LEAST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '));
10932HEX(LEAST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '))
1093361626320
10934SELECT HEX(GREATEST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '));
10935HEX(GREATEST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '))
109366162632020
10937#
10938# Collation mix
10939#
10940CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_bin';
10941INSERT INTO t1 VALUES ('a'),('a ');
10942SELECT COUNT(*) FROM t1 WHERE a='a';
10943COUNT(*)
109442
10945SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_bin';
10946COUNT(*)
109472
10948SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_nopad_bin';
10949COUNT(*)
109501
10951ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin7_nopad_bin';
10952SELECT COUNT(*) FROM t1 WHERE a='a';
10953COUNT(*)
109541
10955SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_bin';
10956COUNT(*)
109572
10958SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_nopad_bin';
10959COUNT(*)
109601
10961DROP TABLE t1;
10962#
10963# End of ctype_pad.inc
10964#
10965SET DEFAULT_STORAGE_ENGINE=HEAP;
10966#
10967# Start of ctype_pad.inc
10968#
10969#
10970# Unique indexes
10971#
10972CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'latin7_nopad_bin';
10973SHOW CREATE TABLE t1;
10974Table	Create Table
10975t1	CREATE TABLE `t1` (
10976  `a` varchar(10) COLLATE latin7_nopad_bin NOT NULL,
10977  PRIMARY KEY (`a`)
10978) ENGINE=MEMORY DEFAULT CHARSET=latin7 COLLATE=latin7_nopad_bin
10979INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
10980SELECT HEX(a), a FROM t1 ORDER BY a;
10981HEX(a)	a
109822061	 a
10983206120	 a
1098461202020	a
10985616263	abc
109866162632020	abc
10987SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
10988HEX(a)	a
109892061	 a
10990206120	 a
1099161202020	a
10992616263	abc
109936162632020	abc
10994SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
10995HEX(a)	a
109966162632020	abc
10997616263	abc
1099861202020	a
10999206120	 a
110002061	 a
11001#
11002# UNION
11003#
11004CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'latin7_nopad_bin';
11005INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11006SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11007HEX(a)	a
110082061	 a
11009206120	 a
110106120	a
1101161202020	a
11012616263	abc
1101361626320	abc
110146162632020	abc
11015DROP TABLE t1;
11016DROP TABLE t2;
11017#
11018# DISTINCT, COUNT, MAX
11019#
11020CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_nopad_bin';
11021INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11022SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11023HEX(a)	a
110242061	 a
11025206120	 a
1102661	a
11027612020	a
1102861202020	a
11029SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11030COUNT(DISTINCT a)
110315
11032SELECT HEX(MAX(a)), MAX(a) FROM t1;
11033HEX(MAX(a))	MAX(a)
1103461202020	a
11035#
11036# GROUP BY
11037#
11038CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'latin7_nopad_bin';
11039INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11040SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11041HEX(a)	cnt
110426161	1
1104361612020	1
110446162	2
11045DROP TABLE t2;
11046#
11047# Weights
11048#
11049SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11050HEX(WEIGHT_STRING(a AS CHAR(10)))
1105161000000000000000000
1105261202000000000000000
1105320610000000000000000
1105420612000000000000000
1105561202020000000000000
11056DROP TABLE t1;
11057#
11058# IF, CASE, LEAST
11059#
11060SELECT IF('abc' COLLATE 'latin7_nopad_bin' = 'abc ', 'pad', 'nopad');
11061IF('abc' COLLATE 'latin7_nopad_bin' = 'abc ', 'pad', 'nopad')
11062nopad
11063SELECT CASE 'abc' COLLATE 'latin7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11064CASE 'abc' COLLATE 'latin7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11065nopad
11066SELECT CASE WHEN 'abc' COLLATE 'latin7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11067CASE WHEN 'abc' COLLATE 'latin7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
11068nopad
11069SELECT HEX(LEAST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '));
11070HEX(LEAST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '))
1107161626320
11072SELECT HEX(GREATEST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '));
11073HEX(GREATEST('abc ' COLLATE 'latin7_nopad_bin', 'abc  '))
110746162632020
11075#
11076# Collation mix
11077#
11078CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'latin7_bin';
11079INSERT INTO t1 VALUES ('a'),('a ');
11080SELECT COUNT(*) FROM t1 WHERE a='a';
11081COUNT(*)
110822
11083SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_bin';
11084COUNT(*)
110852
11086SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_nopad_bin';
11087COUNT(*)
110881
11089ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'latin7_nopad_bin';
11090SELECT COUNT(*) FROM t1 WHERE a='a';
11091COUNT(*)
110921
11093SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_bin';
11094COUNT(*)
110952
11096SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'latin7_nopad_bin';
11097COUNT(*)
110981
11099DROP TABLE t1;
11100#
11101# End of ctype_pad.inc
11102#
11103SET DEFAULT_STORAGE_ENGINE=Default;
11104SET character_set_connection=cp1251;
11105SET DEFAULT_STORAGE_ENGINE=MyISAM;
11106#
11107# Start of ctype_pad.inc
11108#
11109#
11110# Unique indexes
11111#
11112CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1251_general_nopad_ci';
11113SHOW CREATE TABLE t1;
11114Table	Create Table
11115t1	CREATE TABLE `t1` (
11116  `a` varchar(10) COLLATE cp1251_general_nopad_ci NOT NULL,
11117  PRIMARY KEY (`a`)
11118) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_nopad_ci
11119INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11120SELECT HEX(a), a FROM t1 ORDER BY a;
11121HEX(a)	a
111222061	 a
11123206120	 a
1112461202020	a
11125616263	abc
111266162632020	abc
11127SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11128HEX(a)	a
111292061	 a
11130206120	 a
1113161202020	a
11132616263	abc
111336162632020	abc
11134SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11135HEX(a)	a
111366162632020	abc
11137616263	abc
1113861202020	a
11139206120	 a
111402061	 a
11141#
11142# UNION
11143#
11144CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1251_general_nopad_ci';
11145INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11146SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11147HEX(a)	a
111482061	 a
11149206120	 a
111506120	a
1115161202020	a
11152616263	abc
1115361626320	abc
111546162632020	abc
11155DROP TABLE t1;
11156DROP TABLE t2;
11157#
11158# DISTINCT, COUNT, MAX
11159#
11160CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_general_nopad_ci';
11161INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11162SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11163HEX(a)	a
111642061	 a
11165206120	 a
1116661	a
11167612020	a
1116861202020	a
11169SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11170COUNT(DISTINCT a)
111715
11172SELECT HEX(MAX(a)), MAX(a) FROM t1;
11173HEX(MAX(a))	MAX(a)
1117461202020	a
11175#
11176# GROUP BY
11177#
11178CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1251_general_nopad_ci';
11179INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11180SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11181HEX(a)	cnt
111826161	1
1118361612020	1
111846162	2
11185DROP TABLE t2;
11186#
11187# Weights
11188#
11189SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11190HEX(WEIGHT_STRING(a AS CHAR(10)))
1119141000000000000000000
1119241202000000000000000
1119320410000000000000000
1119420412000000000000000
1119541202020000000000000
11196DROP TABLE t1;
11197#
11198# IF, CASE, LEAST
11199#
11200SELECT IF('abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ', 'pad', 'nopad');
11201IF('abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ', 'pad', 'nopad')
11202nopad
11203SELECT CASE 'abc' COLLATE 'cp1251_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11204CASE 'abc' COLLATE 'cp1251_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11205nopad
11206SELECT CASE WHEN 'abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11207CASE WHEN 'abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
11208nopad
11209SELECT HEX(LEAST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '));
11210HEX(LEAST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '))
1121161626320
11212SELECT HEX(GREATEST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '));
11213HEX(GREATEST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '))
112146162632020
11215#
11216# Collation mix
11217#
11218CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_general_ci';
11219INSERT INTO t1 VALUES ('a'),('a ');
11220SELECT COUNT(*) FROM t1 WHERE a='a';
11221COUNT(*)
112222
11223SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_ci';
11224COUNT(*)
112252
11226SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_nopad_ci';
11227COUNT(*)
112281
11229ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1251_general_nopad_ci';
11230SELECT COUNT(*) FROM t1 WHERE a='a';
11231COUNT(*)
112321
11233SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_ci';
11234COUNT(*)
112352
11236SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_nopad_ci';
11237COUNT(*)
112381
11239DROP TABLE t1;
11240#
11241# End of ctype_pad.inc
11242#
11243SET DEFAULT_STORAGE_ENGINE=HEAP;
11244#
11245# Start of ctype_pad.inc
11246#
11247#
11248# Unique indexes
11249#
11250CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1251_general_nopad_ci';
11251SHOW CREATE TABLE t1;
11252Table	Create Table
11253t1	CREATE TABLE `t1` (
11254  `a` varchar(10) COLLATE cp1251_general_nopad_ci NOT NULL,
11255  PRIMARY KEY (`a`)
11256) ENGINE=MEMORY DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_nopad_ci
11257INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11258SELECT HEX(a), a FROM t1 ORDER BY a;
11259HEX(a)	a
112602061	 a
11261206120	 a
1126261202020	a
11263616263	abc
112646162632020	abc
11265SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11266HEX(a)	a
112672061	 a
11268206120	 a
1126961202020	a
11270616263	abc
112716162632020	abc
11272SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11273HEX(a)	a
112746162632020	abc
11275616263	abc
1127661202020	a
11277206120	 a
112782061	 a
11279#
11280# UNION
11281#
11282CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1251_general_nopad_ci';
11283INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11284SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11285HEX(a)	a
112862061	 a
11287206120	 a
112886120	a
1128961202020	a
11290616263	abc
1129161626320	abc
112926162632020	abc
11293DROP TABLE t1;
11294DROP TABLE t2;
11295#
11296# DISTINCT, COUNT, MAX
11297#
11298CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_general_nopad_ci';
11299INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11300SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11301HEX(a)	a
113022061	 a
11303206120	 a
1130461	a
11305612020	a
1130661202020	a
11307SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11308COUNT(DISTINCT a)
113095
11310SELECT HEX(MAX(a)), MAX(a) FROM t1;
11311HEX(MAX(a))	MAX(a)
1131261202020	a
11313#
11314# GROUP BY
11315#
11316CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1251_general_nopad_ci';
11317INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11318SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11319HEX(a)	cnt
113206161	1
1132161612020	1
113226162	2
11323DROP TABLE t2;
11324#
11325# Weights
11326#
11327SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11328HEX(WEIGHT_STRING(a AS CHAR(10)))
1132941000000000000000000
1133041202000000000000000
1133120410000000000000000
1133220412000000000000000
1133341202020000000000000
11334DROP TABLE t1;
11335#
11336# IF, CASE, LEAST
11337#
11338SELECT IF('abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ', 'pad', 'nopad');
11339IF('abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ', 'pad', 'nopad')
11340nopad
11341SELECT CASE 'abc' COLLATE 'cp1251_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11342CASE 'abc' COLLATE 'cp1251_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11343nopad
11344SELECT CASE WHEN 'abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11345CASE WHEN 'abc' COLLATE 'cp1251_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
11346nopad
11347SELECT HEX(LEAST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '));
11348HEX(LEAST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '))
1134961626320
11350SELECT HEX(GREATEST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '));
11351HEX(GREATEST('abc ' COLLATE 'cp1251_general_nopad_ci', 'abc  '))
113526162632020
11353#
11354# Collation mix
11355#
11356CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_general_ci';
11357INSERT INTO t1 VALUES ('a'),('a ');
11358SELECT COUNT(*) FROM t1 WHERE a='a';
11359COUNT(*)
113602
11361SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_ci';
11362COUNT(*)
113632
11364SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_nopad_ci';
11365COUNT(*)
113661
11367ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1251_general_nopad_ci';
11368SELECT COUNT(*) FROM t1 WHERE a='a';
11369COUNT(*)
113701
11371SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_ci';
11372COUNT(*)
113732
11374SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_general_nopad_ci';
11375COUNT(*)
113761
11377DROP TABLE t1;
11378#
11379# End of ctype_pad.inc
11380#
11381SET DEFAULT_STORAGE_ENGINE=Default;
11382SET DEFAULT_STORAGE_ENGINE=MyISAM;
11383#
11384# Start of ctype_pad.inc
11385#
11386#
11387# Unique indexes
11388#
11389CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1251_nopad_bin';
11390SHOW CREATE TABLE t1;
11391Table	Create Table
11392t1	CREATE TABLE `t1` (
11393  `a` varchar(10) COLLATE cp1251_nopad_bin NOT NULL,
11394  PRIMARY KEY (`a`)
11395) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_nopad_bin
11396INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11397SELECT HEX(a), a FROM t1 ORDER BY a;
11398HEX(a)	a
113992061	 a
11400206120	 a
1140161202020	a
11402616263	abc
114036162632020	abc
11404SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11405HEX(a)	a
114062061	 a
11407206120	 a
1140861202020	a
11409616263	abc
114106162632020	abc
11411SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11412HEX(a)	a
114136162632020	abc
11414616263	abc
1141561202020	a
11416206120	 a
114172061	 a
11418#
11419# UNION
11420#
11421CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1251_nopad_bin';
11422INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11423SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11424HEX(a)	a
114252061	 a
11426206120	 a
114276120	a
1142861202020	a
11429616263	abc
1143061626320	abc
114316162632020	abc
11432DROP TABLE t1;
11433DROP TABLE t2;
11434#
11435# DISTINCT, COUNT, MAX
11436#
11437CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_nopad_bin';
11438INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11439SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11440HEX(a)	a
114412061	 a
11442206120	 a
1144361	a
11444612020	a
1144561202020	a
11446SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11447COUNT(DISTINCT a)
114485
11449SELECT HEX(MAX(a)), MAX(a) FROM t1;
11450HEX(MAX(a))	MAX(a)
1145161202020	a
11452#
11453# GROUP BY
11454#
11455CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1251_nopad_bin';
11456INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11457SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11458HEX(a)	cnt
114596161	1
1146061612020	1
114616162	2
11462DROP TABLE t2;
11463#
11464# Weights
11465#
11466SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11467HEX(WEIGHT_STRING(a AS CHAR(10)))
1146861000000000000000000
1146961202000000000000000
1147020610000000000000000
1147120612000000000000000
1147261202020000000000000
11473DROP TABLE t1;
11474#
11475# IF, CASE, LEAST
11476#
11477SELECT IF('abc' COLLATE 'cp1251_nopad_bin' = 'abc ', 'pad', 'nopad');
11478IF('abc' COLLATE 'cp1251_nopad_bin' = 'abc ', 'pad', 'nopad')
11479nopad
11480SELECT CASE 'abc' COLLATE 'cp1251_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11481CASE 'abc' COLLATE 'cp1251_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11482nopad
11483SELECT CASE WHEN 'abc' COLLATE 'cp1251_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11484CASE WHEN 'abc' COLLATE 'cp1251_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
11485nopad
11486SELECT HEX(LEAST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '));
11487HEX(LEAST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '))
1148861626320
11489SELECT HEX(GREATEST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '));
11490HEX(GREATEST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '))
114916162632020
11492#
11493# Collation mix
11494#
11495CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_bin';
11496INSERT INTO t1 VALUES ('a'),('a ');
11497SELECT COUNT(*) FROM t1 WHERE a='a';
11498COUNT(*)
114992
11500SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_bin';
11501COUNT(*)
115022
11503SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_nopad_bin';
11504COUNT(*)
115051
11506ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1251_nopad_bin';
11507SELECT COUNT(*) FROM t1 WHERE a='a';
11508COUNT(*)
115091
11510SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_bin';
11511COUNT(*)
115122
11513SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_nopad_bin';
11514COUNT(*)
115151
11516DROP TABLE t1;
11517#
11518# End of ctype_pad.inc
11519#
11520SET DEFAULT_STORAGE_ENGINE=HEAP;
11521#
11522# Start of ctype_pad.inc
11523#
11524#
11525# Unique indexes
11526#
11527CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1251_nopad_bin';
11528SHOW CREATE TABLE t1;
11529Table	Create Table
11530t1	CREATE TABLE `t1` (
11531  `a` varchar(10) COLLATE cp1251_nopad_bin NOT NULL,
11532  PRIMARY KEY (`a`)
11533) ENGINE=MEMORY DEFAULT CHARSET=cp1251 COLLATE=cp1251_nopad_bin
11534INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11535SELECT HEX(a), a FROM t1 ORDER BY a;
11536HEX(a)	a
115372061	 a
11538206120	 a
1153961202020	a
11540616263	abc
115416162632020	abc
11542SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11543HEX(a)	a
115442061	 a
11545206120	 a
1154661202020	a
11547616263	abc
115486162632020	abc
11549SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11550HEX(a)	a
115516162632020	abc
11552616263	abc
1155361202020	a
11554206120	 a
115552061	 a
11556#
11557# UNION
11558#
11559CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1251_nopad_bin';
11560INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11561SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11562HEX(a)	a
115632061	 a
11564206120	 a
115656120	a
1156661202020	a
11567616263	abc
1156861626320	abc
115696162632020	abc
11570DROP TABLE t1;
11571DROP TABLE t2;
11572#
11573# DISTINCT, COUNT, MAX
11574#
11575CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_nopad_bin';
11576INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11577SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11578HEX(a)	a
115792061	 a
11580206120	 a
1158161	a
11582612020	a
1158361202020	a
11584SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11585COUNT(DISTINCT a)
115865
11587SELECT HEX(MAX(a)), MAX(a) FROM t1;
11588HEX(MAX(a))	MAX(a)
1158961202020	a
11590#
11591# GROUP BY
11592#
11593CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1251_nopad_bin';
11594INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11595SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11596HEX(a)	cnt
115976161	1
1159861612020	1
115996162	2
11600DROP TABLE t2;
11601#
11602# Weights
11603#
11604SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11605HEX(WEIGHT_STRING(a AS CHAR(10)))
1160661000000000000000000
1160761202000000000000000
1160820610000000000000000
1160920612000000000000000
1161061202020000000000000
11611DROP TABLE t1;
11612#
11613# IF, CASE, LEAST
11614#
11615SELECT IF('abc' COLLATE 'cp1251_nopad_bin' = 'abc ', 'pad', 'nopad');
11616IF('abc' COLLATE 'cp1251_nopad_bin' = 'abc ', 'pad', 'nopad')
11617nopad
11618SELECT CASE 'abc' COLLATE 'cp1251_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11619CASE 'abc' COLLATE 'cp1251_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11620nopad
11621SELECT CASE WHEN 'abc' COLLATE 'cp1251_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11622CASE WHEN 'abc' COLLATE 'cp1251_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
11623nopad
11624SELECT HEX(LEAST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '));
11625HEX(LEAST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '))
1162661626320
11627SELECT HEX(GREATEST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '));
11628HEX(GREATEST('abc ' COLLATE 'cp1251_nopad_bin', 'abc  '))
116296162632020
11630#
11631# Collation mix
11632#
11633CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1251_bin';
11634INSERT INTO t1 VALUES ('a'),('a ');
11635SELECT COUNT(*) FROM t1 WHERE a='a';
11636COUNT(*)
116372
11638SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_bin';
11639COUNT(*)
116402
11641SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_nopad_bin';
11642COUNT(*)
116431
11644ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1251_nopad_bin';
11645SELECT COUNT(*) FROM t1 WHERE a='a';
11646COUNT(*)
116471
11648SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_bin';
11649COUNT(*)
116502
11651SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1251_nopad_bin';
11652COUNT(*)
116531
11654DROP TABLE t1;
11655#
11656# End of ctype_pad.inc
11657#
11658SET DEFAULT_STORAGE_ENGINE=Default;
11659SET character_set_connection=cp1256;
11660SET DEFAULT_STORAGE_ENGINE=MyISAM;
11661#
11662# Start of ctype_pad.inc
11663#
11664#
11665# Unique indexes
11666#
11667CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1256_general_nopad_ci';
11668SHOW CREATE TABLE t1;
11669Table	Create Table
11670t1	CREATE TABLE `t1` (
11671  `a` varchar(10) COLLATE cp1256_general_nopad_ci NOT NULL,
11672  PRIMARY KEY (`a`)
11673) ENGINE=MyISAM DEFAULT CHARSET=cp1256 COLLATE=cp1256_general_nopad_ci
11674INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11675SELECT HEX(a), a FROM t1 ORDER BY a;
11676HEX(a)	a
116772061	 a
11678206120	 a
1167961202020	a
11680616263	abc
116816162632020	abc
11682SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11683HEX(a)	a
116842061	 a
11685206120	 a
1168661202020	a
11687616263	abc
116886162632020	abc
11689SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11690HEX(a)	a
116916162632020	abc
11692616263	abc
1169361202020	a
11694206120	 a
116952061	 a
11696#
11697# UNION
11698#
11699CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1256_general_nopad_ci';
11700INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11701SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11702HEX(a)	a
117032061	 a
11704206120	 a
117056120	a
1170661202020	a
11707616263	abc
1170861626320	abc
117096162632020	abc
11710DROP TABLE t1;
11711DROP TABLE t2;
11712#
11713# DISTINCT, COUNT, MAX
11714#
11715CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_general_nopad_ci';
11716INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11717SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11718HEX(a)	a
117192061	 a
11720206120	 a
1172161	a
11722612020	a
1172361202020	a
11724SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11725COUNT(DISTINCT a)
117265
11727SELECT HEX(MAX(a)), MAX(a) FROM t1;
11728HEX(MAX(a))	MAX(a)
1172961202020	a
11730#
11731# GROUP BY
11732#
11733CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1256_general_nopad_ci';
11734INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11735SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11736HEX(a)	cnt
117376161	1
1173861612020	1
117396162	2
11740DROP TABLE t2;
11741#
11742# Weights
11743#
11744SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11745HEX(WEIGHT_STRING(a AS CHAR(10)))
1174641000000000000000000
1174741202000000000000000
1174820410000000000000000
1174920412000000000000000
1175041202020000000000000
11751DROP TABLE t1;
11752#
11753# IF, CASE, LEAST
11754#
11755SELECT IF('abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ', 'pad', 'nopad');
11756IF('abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ', 'pad', 'nopad')
11757nopad
11758SELECT CASE 'abc' COLLATE 'cp1256_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11759CASE 'abc' COLLATE 'cp1256_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11760nopad
11761SELECT CASE WHEN 'abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11762CASE WHEN 'abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
11763nopad
11764SELECT HEX(LEAST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '));
11765HEX(LEAST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '))
1176661626320
11767SELECT HEX(GREATEST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '));
11768HEX(GREATEST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '))
117696162632020
11770#
11771# Collation mix
11772#
11773CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_general_ci';
11774INSERT INTO t1 VALUES ('a'),('a ');
11775SELECT COUNT(*) FROM t1 WHERE a='a';
11776COUNT(*)
117772
11778SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_ci';
11779COUNT(*)
117802
11781SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_nopad_ci';
11782COUNT(*)
117831
11784ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1256_general_nopad_ci';
11785SELECT COUNT(*) FROM t1 WHERE a='a';
11786COUNT(*)
117871
11788SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_ci';
11789COUNT(*)
117902
11791SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_nopad_ci';
11792COUNT(*)
117931
11794DROP TABLE t1;
11795#
11796# End of ctype_pad.inc
11797#
11798SET DEFAULT_STORAGE_ENGINE=HEAP;
11799#
11800# Start of ctype_pad.inc
11801#
11802#
11803# Unique indexes
11804#
11805CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1256_general_nopad_ci';
11806SHOW CREATE TABLE t1;
11807Table	Create Table
11808t1	CREATE TABLE `t1` (
11809  `a` varchar(10) COLLATE cp1256_general_nopad_ci NOT NULL,
11810  PRIMARY KEY (`a`)
11811) ENGINE=MEMORY DEFAULT CHARSET=cp1256 COLLATE=cp1256_general_nopad_ci
11812INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11813SELECT HEX(a), a FROM t1 ORDER BY a;
11814HEX(a)	a
118152061	 a
11816206120	 a
1181761202020	a
11818616263	abc
118196162632020	abc
11820SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11821HEX(a)	a
118222061	 a
11823206120	 a
1182461202020	a
11825616263	abc
118266162632020	abc
11827SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11828HEX(a)	a
118296162632020	abc
11830616263	abc
1183161202020	a
11832206120	 a
118332061	 a
11834#
11835# UNION
11836#
11837CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1256_general_nopad_ci';
11838INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11839SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11840HEX(a)	a
118412061	 a
11842206120	 a
118436120	a
1184461202020	a
11845616263	abc
1184661626320	abc
118476162632020	abc
11848DROP TABLE t1;
11849DROP TABLE t2;
11850#
11851# DISTINCT, COUNT, MAX
11852#
11853CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_general_nopad_ci';
11854INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11855SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11856HEX(a)	a
118572061	 a
11858206120	 a
1185961	a
11860612020	a
1186161202020	a
11862SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
11863COUNT(DISTINCT a)
118645
11865SELECT HEX(MAX(a)), MAX(a) FROM t1;
11866HEX(MAX(a))	MAX(a)
1186761202020	a
11868#
11869# GROUP BY
11870#
11871CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1256_general_nopad_ci';
11872INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
11873SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
11874HEX(a)	cnt
118756161	1
1187661612020	1
118776162	2
11878DROP TABLE t2;
11879#
11880# Weights
11881#
11882SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
11883HEX(WEIGHT_STRING(a AS CHAR(10)))
1188441000000000000000000
1188541202000000000000000
1188620410000000000000000
1188720412000000000000000
1188841202020000000000000
11889DROP TABLE t1;
11890#
11891# IF, CASE, LEAST
11892#
11893SELECT IF('abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ', 'pad', 'nopad');
11894IF('abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ', 'pad', 'nopad')
11895nopad
11896SELECT CASE 'abc' COLLATE 'cp1256_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
11897CASE 'abc' COLLATE 'cp1256_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
11898nopad
11899SELECT CASE WHEN 'abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
11900CASE WHEN 'abc' COLLATE 'cp1256_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
11901nopad
11902SELECT HEX(LEAST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '));
11903HEX(LEAST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '))
1190461626320
11905SELECT HEX(GREATEST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '));
11906HEX(GREATEST('abc ' COLLATE 'cp1256_general_nopad_ci', 'abc  '))
119076162632020
11908#
11909# Collation mix
11910#
11911CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_general_ci';
11912INSERT INTO t1 VALUES ('a'),('a ');
11913SELECT COUNT(*) FROM t1 WHERE a='a';
11914COUNT(*)
119152
11916SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_ci';
11917COUNT(*)
119182
11919SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_nopad_ci';
11920COUNT(*)
119211
11922ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1256_general_nopad_ci';
11923SELECT COUNT(*) FROM t1 WHERE a='a';
11924COUNT(*)
119251
11926SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_ci';
11927COUNT(*)
119282
11929SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_general_nopad_ci';
11930COUNT(*)
119311
11932DROP TABLE t1;
11933#
11934# End of ctype_pad.inc
11935#
11936SET DEFAULT_STORAGE_ENGINE=Default;
11937SET DEFAULT_STORAGE_ENGINE=MyISAM;
11938#
11939# Start of ctype_pad.inc
11940#
11941#
11942# Unique indexes
11943#
11944CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1256_nopad_bin';
11945SHOW CREATE TABLE t1;
11946Table	Create Table
11947t1	CREATE TABLE `t1` (
11948  `a` varchar(10) COLLATE cp1256_nopad_bin NOT NULL,
11949  PRIMARY KEY (`a`)
11950) ENGINE=MyISAM DEFAULT CHARSET=cp1256 COLLATE=cp1256_nopad_bin
11951INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
11952SELECT HEX(a), a FROM t1 ORDER BY a;
11953HEX(a)	a
119542061	 a
11955206120	 a
1195661202020	a
11957616263	abc
119586162632020	abc
11959SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
11960HEX(a)	a
119612061	 a
11962206120	 a
1196361202020	a
11964616263	abc
119656162632020	abc
11966SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
11967HEX(a)	a
119686162632020	abc
11969616263	abc
1197061202020	a
11971206120	 a
119722061	 a
11973#
11974# UNION
11975#
11976CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1256_nopad_bin';
11977INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
11978SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
11979HEX(a)	a
119802061	 a
11981206120	 a
119826120	a
1198361202020	a
11984616263	abc
1198561626320	abc
119866162632020	abc
11987DROP TABLE t1;
11988DROP TABLE t2;
11989#
11990# DISTINCT, COUNT, MAX
11991#
11992CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_nopad_bin';
11993INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
11994SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
11995HEX(a)	a
119962061	 a
11997206120	 a
1199861	a
11999612020	a
1200061202020	a
12001SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
12002COUNT(DISTINCT a)
120035
12004SELECT HEX(MAX(a)), MAX(a) FROM t1;
12005HEX(MAX(a))	MAX(a)
1200661202020	a
12007#
12008# GROUP BY
12009#
12010CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1256_nopad_bin';
12011INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
12012SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
12013HEX(a)	cnt
120146161	1
1201561612020	1
120166162	2
12017DROP TABLE t2;
12018#
12019# Weights
12020#
12021SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
12022HEX(WEIGHT_STRING(a AS CHAR(10)))
1202361000000000000000000
1202461202000000000000000
1202520610000000000000000
1202620612000000000000000
1202761202020000000000000
12028DROP TABLE t1;
12029#
12030# IF, CASE, LEAST
12031#
12032SELECT IF('abc' COLLATE 'cp1256_nopad_bin' = 'abc ', 'pad', 'nopad');
12033IF('abc' COLLATE 'cp1256_nopad_bin' = 'abc ', 'pad', 'nopad')
12034nopad
12035SELECT CASE 'abc' COLLATE 'cp1256_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
12036CASE 'abc' COLLATE 'cp1256_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
12037nopad
12038SELECT CASE WHEN 'abc' COLLATE 'cp1256_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
12039CASE WHEN 'abc' COLLATE 'cp1256_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
12040nopad
12041SELECT HEX(LEAST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '));
12042HEX(LEAST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '))
1204361626320
12044SELECT HEX(GREATEST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '));
12045HEX(GREATEST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '))
120466162632020
12047#
12048# Collation mix
12049#
12050CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_bin';
12051INSERT INTO t1 VALUES ('a'),('a ');
12052SELECT COUNT(*) FROM t1 WHERE a='a';
12053COUNT(*)
120542
12055SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_bin';
12056COUNT(*)
120572
12058SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_nopad_bin';
12059COUNT(*)
120601
12061ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1256_nopad_bin';
12062SELECT COUNT(*) FROM t1 WHERE a='a';
12063COUNT(*)
120641
12065SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_bin';
12066COUNT(*)
120672
12068SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_nopad_bin';
12069COUNT(*)
120701
12071DROP TABLE t1;
12072#
12073# End of ctype_pad.inc
12074#
12075SET DEFAULT_STORAGE_ENGINE=HEAP;
12076#
12077# Start of ctype_pad.inc
12078#
12079#
12080# Unique indexes
12081#
12082CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'cp1256_nopad_bin';
12083SHOW CREATE TABLE t1;
12084Table	Create Table
12085t1	CREATE TABLE `t1` (
12086  `a` varchar(10) COLLATE cp1256_nopad_bin NOT NULL,
12087  PRIMARY KEY (`a`)
12088) ENGINE=MEMORY DEFAULT CHARSET=cp1256 COLLATE=cp1256_nopad_bin
12089INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
12090SELECT HEX(a), a FROM t1 ORDER BY a;
12091HEX(a)	a
120922061	 a
12093206120	 a
1209461202020	a
12095616263	abc
120966162632020	abc
12097SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
12098HEX(a)	a
120992061	 a
12100206120	 a
1210161202020	a
12102616263	abc
121036162632020	abc
12104SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
12105HEX(a)	a
121066162632020	abc
12107616263	abc
1210861202020	a
12109206120	 a
121102061	 a
12111#
12112# UNION
12113#
12114CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'cp1256_nopad_bin';
12115INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
12116SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
12117HEX(a)	a
121182061	 a
12119206120	 a
121206120	a
1212161202020	a
12122616263	abc
1212361626320	abc
121246162632020	abc
12125DROP TABLE t1;
12126DROP TABLE t2;
12127#
12128# DISTINCT, COUNT, MAX
12129#
12130CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_nopad_bin';
12131INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
12132SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
12133HEX(a)	a
121342061	 a
12135206120	 a
1213661	a
12137612020	a
1213861202020	a
12139SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
12140COUNT(DISTINCT a)
121415
12142SELECT HEX(MAX(a)), MAX(a) FROM t1;
12143HEX(MAX(a))	MAX(a)
1214461202020	a
12145#
12146# GROUP BY
12147#
12148CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'cp1256_nopad_bin';
12149INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
12150SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
12151HEX(a)	cnt
121526161	1
1215361612020	1
121546162	2
12155DROP TABLE t2;
12156#
12157# Weights
12158#
12159SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
12160HEX(WEIGHT_STRING(a AS CHAR(10)))
1216161000000000000000000
1216261202000000000000000
1216320610000000000000000
1216420612000000000000000
1216561202020000000000000
12166DROP TABLE t1;
12167#
12168# IF, CASE, LEAST
12169#
12170SELECT IF('abc' COLLATE 'cp1256_nopad_bin' = 'abc ', 'pad', 'nopad');
12171IF('abc' COLLATE 'cp1256_nopad_bin' = 'abc ', 'pad', 'nopad')
12172nopad
12173SELECT CASE 'abc' COLLATE 'cp1256_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
12174CASE 'abc' COLLATE 'cp1256_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
12175nopad
12176SELECT CASE WHEN 'abc' COLLATE 'cp1256_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
12177CASE WHEN 'abc' COLLATE 'cp1256_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
12178nopad
12179SELECT HEX(LEAST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '));
12180HEX(LEAST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '))
1218161626320
12182SELECT HEX(GREATEST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '));
12183HEX(GREATEST('abc ' COLLATE 'cp1256_nopad_bin', 'abc  '))
121846162632020
12185#
12186# Collation mix
12187#
12188CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'cp1256_bin';
12189INSERT INTO t1 VALUES ('a'),('a ');
12190SELECT COUNT(*) FROM t1 WHERE a='a';
12191COUNT(*)
121922
12193SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_bin';
12194COUNT(*)
121952
12196SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_nopad_bin';
12197COUNT(*)
121981
12199ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'cp1256_nopad_bin';
12200SELECT COUNT(*) FROM t1 WHERE a='a';
12201COUNT(*)
122021
12203SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_bin';
12204COUNT(*)
122052
12206SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'cp1256_nopad_bin';
12207COUNT(*)
122081
12209DROP TABLE t1;
12210#
12211# End of ctype_pad.inc
12212#
12213SET DEFAULT_STORAGE_ENGINE=Default;
12214SET character_set_connection=geostd8;
12215SET DEFAULT_STORAGE_ENGINE=MyISAM;
12216#
12217# Start of ctype_pad.inc
12218#
12219#
12220# Unique indexes
12221#
12222CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'geostd8_general_nopad_ci';
12223SHOW CREATE TABLE t1;
12224Table	Create Table
12225t1	CREATE TABLE `t1` (
12226  `a` varchar(10) COLLATE geostd8_general_nopad_ci NOT NULL,
12227  PRIMARY KEY (`a`)
12228) ENGINE=MyISAM DEFAULT CHARSET=geostd8 COLLATE=geostd8_general_nopad_ci
12229INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
12230SELECT HEX(a), a FROM t1 ORDER BY a;
12231HEX(a)	a
122322061	 a
12233206120	 a
1223461202020	a
12235616263	abc
122366162632020	abc
12237SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
12238HEX(a)	a
122392061	 a
12240206120	 a
1224161202020	a
12242616263	abc
122436162632020	abc
12244SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
12245HEX(a)	a
122466162632020	abc
12247616263	abc
1224861202020	a
12249206120	 a
122502061	 a
12251#
12252# UNION
12253#
12254CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'geostd8_general_nopad_ci';
12255INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
12256SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
12257HEX(a)	a
122582061	 a
12259206120	 a
122606120	a
1226161202020	a
12262616263	abc
1226361626320	abc
122646162632020	abc
12265DROP TABLE t1;
12266DROP TABLE t2;
12267#
12268# DISTINCT, COUNT, MAX
12269#
12270CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_general_nopad_ci';
12271INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
12272SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
12273HEX(a)	a
122742061	 a
12275206120	 a
1227661	a
12277612020	a
1227861202020	a
12279SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
12280COUNT(DISTINCT a)
122815
12282SELECT HEX(MAX(a)), MAX(a) FROM t1;
12283HEX(MAX(a))	MAX(a)
1228461202020	a
12285#
12286# GROUP BY
12287#
12288CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'geostd8_general_nopad_ci';
12289INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
12290SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
12291HEX(a)	cnt
122926161	1
1229361612020	1
122946162	2
12295DROP TABLE t2;
12296#
12297# Weights
12298#
12299SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
12300HEX(WEIGHT_STRING(a AS CHAR(10)))
1230141000000000000000000
1230241202000000000000000
1230320410000000000000000
1230420412000000000000000
1230541202020000000000000
12306DROP TABLE t1;
12307#
12308# IF, CASE, LEAST
12309#
12310SELECT IF('abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ', 'pad', 'nopad');
12311IF('abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ', 'pad', 'nopad')
12312nopad
12313SELECT CASE 'abc' COLLATE 'geostd8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
12314CASE 'abc' COLLATE 'geostd8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
12315nopad
12316SELECT CASE WHEN 'abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
12317CASE WHEN 'abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
12318nopad
12319SELECT HEX(LEAST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '));
12320HEX(LEAST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '))
1232161626320
12322SELECT HEX(GREATEST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '));
12323HEX(GREATEST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '))
123246162632020
12325#
12326# Collation mix
12327#
12328CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_general_ci';
12329INSERT INTO t1 VALUES ('a'),('a ');
12330SELECT COUNT(*) FROM t1 WHERE a='a';
12331COUNT(*)
123322
12333SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_ci';
12334COUNT(*)
123352
12336SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_nopad_ci';
12337COUNT(*)
123381
12339ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'geostd8_general_nopad_ci';
12340SELECT COUNT(*) FROM t1 WHERE a='a';
12341COUNT(*)
123421
12343SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_ci';
12344COUNT(*)
123452
12346SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_nopad_ci';
12347COUNT(*)
123481
12349DROP TABLE t1;
12350#
12351# End of ctype_pad.inc
12352#
12353SET DEFAULT_STORAGE_ENGINE=HEAP;
12354#
12355# Start of ctype_pad.inc
12356#
12357#
12358# Unique indexes
12359#
12360CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'geostd8_general_nopad_ci';
12361SHOW CREATE TABLE t1;
12362Table	Create Table
12363t1	CREATE TABLE `t1` (
12364  `a` varchar(10) COLLATE geostd8_general_nopad_ci NOT NULL,
12365  PRIMARY KEY (`a`)
12366) ENGINE=MEMORY DEFAULT CHARSET=geostd8 COLLATE=geostd8_general_nopad_ci
12367INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
12368SELECT HEX(a), a FROM t1 ORDER BY a;
12369HEX(a)	a
123702061	 a
12371206120	 a
1237261202020	a
12373616263	abc
123746162632020	abc
12375SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
12376HEX(a)	a
123772061	 a
12378206120	 a
1237961202020	a
12380616263	abc
123816162632020	abc
12382SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
12383HEX(a)	a
123846162632020	abc
12385616263	abc
1238661202020	a
12387206120	 a
123882061	 a
12389#
12390# UNION
12391#
12392CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'geostd8_general_nopad_ci';
12393INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
12394SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
12395HEX(a)	a
123962061	 a
12397206120	 a
123986120	a
1239961202020	a
12400616263	abc
1240161626320	abc
124026162632020	abc
12403DROP TABLE t1;
12404DROP TABLE t2;
12405#
12406# DISTINCT, COUNT, MAX
12407#
12408CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_general_nopad_ci';
12409INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
12410SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
12411HEX(a)	a
124122061	 a
12413206120	 a
1241461	a
12415612020	a
1241661202020	a
12417SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
12418COUNT(DISTINCT a)
124195
12420SELECT HEX(MAX(a)), MAX(a) FROM t1;
12421HEX(MAX(a))	MAX(a)
1242261202020	a
12423#
12424# GROUP BY
12425#
12426CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'geostd8_general_nopad_ci';
12427INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
12428SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
12429HEX(a)	cnt
124306161	1
1243161612020	1
124326162	2
12433DROP TABLE t2;
12434#
12435# Weights
12436#
12437SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
12438HEX(WEIGHT_STRING(a AS CHAR(10)))
1243941000000000000000000
1244041202000000000000000
1244120410000000000000000
1244220412000000000000000
1244341202020000000000000
12444DROP TABLE t1;
12445#
12446# IF, CASE, LEAST
12447#
12448SELECT IF('abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ', 'pad', 'nopad');
12449IF('abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ', 'pad', 'nopad')
12450nopad
12451SELECT CASE 'abc' COLLATE 'geostd8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
12452CASE 'abc' COLLATE 'geostd8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
12453nopad
12454SELECT CASE WHEN 'abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END;
12455CASE WHEN 'abc' COLLATE 'geostd8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END
12456nopad
12457SELECT HEX(LEAST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '));
12458HEX(LEAST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '))
1245961626320
12460SELECT HEX(GREATEST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '));
12461HEX(GREATEST('abc ' COLLATE 'geostd8_general_nopad_ci', 'abc  '))
124626162632020
12463#
12464# Collation mix
12465#
12466CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_general_ci';
12467INSERT INTO t1 VALUES ('a'),('a ');
12468SELECT COUNT(*) FROM t1 WHERE a='a';
12469COUNT(*)
124702
12471SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_ci';
12472COUNT(*)
124732
12474SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_nopad_ci';
12475COUNT(*)
124761
12477ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'geostd8_general_nopad_ci';
12478SELECT COUNT(*) FROM t1 WHERE a='a';
12479COUNT(*)
124801
12481SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_ci';
12482COUNT(*)
124832
12484SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_general_nopad_ci';
12485COUNT(*)
124861
12487DROP TABLE t1;
12488#
12489# End of ctype_pad.inc
12490#
12491SET DEFAULT_STORAGE_ENGINE=Default;
12492SET DEFAULT_STORAGE_ENGINE=MyISAM;
12493#
12494# Start of ctype_pad.inc
12495#
12496#
12497# Unique indexes
12498#
12499CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'geostd8_nopad_bin';
12500SHOW CREATE TABLE t1;
12501Table	Create Table
12502t1	CREATE TABLE `t1` (
12503  `a` varchar(10) COLLATE geostd8_nopad_bin NOT NULL,
12504  PRIMARY KEY (`a`)
12505) ENGINE=MyISAM DEFAULT CHARSET=geostd8 COLLATE=geostd8_nopad_bin
12506INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
12507SELECT HEX(a), a FROM t1 ORDER BY a;
12508HEX(a)	a
125092061	 a
12510206120	 a
1251161202020	a
12512616263	abc
125136162632020	abc
12514SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
12515HEX(a)	a
125162061	 a
12517206120	 a
1251861202020	a
12519616263	abc
125206162632020	abc
12521SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
12522HEX(a)	a
125236162632020	abc
12524616263	abc
1252561202020	a
12526206120	 a
125272061	 a
12528#
12529# UNION
12530#
12531CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'geostd8_nopad_bin';
12532INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
12533SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
12534HEX(a)	a
125352061	 a
12536206120	 a
125376120	a
1253861202020	a
12539616263	abc
1254061626320	abc
125416162632020	abc
12542DROP TABLE t1;
12543DROP TABLE t2;
12544#
12545# DISTINCT, COUNT, MAX
12546#
12547CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_nopad_bin';
12548INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
12549SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
12550HEX(a)	a
125512061	 a
12552206120	 a
1255361	a
12554612020	a
1255561202020	a
12556SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
12557COUNT(DISTINCT a)
125585
12559SELECT HEX(MAX(a)), MAX(a) FROM t1;
12560HEX(MAX(a))	MAX(a)
1256161202020	a
12562#
12563# GROUP BY
12564#
12565CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'geostd8_nopad_bin';
12566INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
12567SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
12568HEX(a)	cnt
125696161	1
1257061612020	1
125716162	2
12572DROP TABLE t2;
12573#
12574# Weights
12575#
12576SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
12577HEX(WEIGHT_STRING(a AS CHAR(10)))
1257861000000000000000000
1257961202000000000000000
1258020610000000000000000
1258120612000000000000000
1258261202020000000000000
12583DROP TABLE t1;
12584#
12585# IF, CASE, LEAST
12586#
12587SELECT IF('abc' COLLATE 'geostd8_nopad_bin' = 'abc ', 'pad', 'nopad');
12588IF('abc' COLLATE 'geostd8_nopad_bin' = 'abc ', 'pad', 'nopad')
12589nopad
12590SELECT CASE 'abc' COLLATE 'geostd8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
12591CASE 'abc' COLLATE 'geostd8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
12592nopad
12593SELECT CASE WHEN 'abc' COLLATE 'geostd8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
12594CASE WHEN 'abc' COLLATE 'geostd8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
12595nopad
12596SELECT HEX(LEAST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '));
12597HEX(LEAST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '))
1259861626320
12599SELECT HEX(GREATEST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '));
12600HEX(GREATEST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '))
126016162632020
12602#
12603# Collation mix
12604#
12605CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_bin';
12606INSERT INTO t1 VALUES ('a'),('a ');
12607SELECT COUNT(*) FROM t1 WHERE a='a';
12608COUNT(*)
126092
12610SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_bin';
12611COUNT(*)
126122
12613SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_nopad_bin';
12614COUNT(*)
126151
12616ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'geostd8_nopad_bin';
12617SELECT COUNT(*) FROM t1 WHERE a='a';
12618COUNT(*)
126191
12620SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_bin';
12621COUNT(*)
126222
12623SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_nopad_bin';
12624COUNT(*)
126251
12626DROP TABLE t1;
12627#
12628# End of ctype_pad.inc
12629#
12630SET DEFAULT_STORAGE_ENGINE=HEAP;
12631#
12632# Start of ctype_pad.inc
12633#
12634#
12635# Unique indexes
12636#
12637CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE 'geostd8_nopad_bin';
12638SHOW CREATE TABLE t1;
12639Table	Create Table
12640t1	CREATE TABLE `t1` (
12641  `a` varchar(10) COLLATE geostd8_nopad_bin NOT NULL,
12642  PRIMARY KEY (`a`)
12643) ENGINE=MEMORY DEFAULT CHARSET=geostd8 COLLATE=geostd8_nopad_bin
12644INSERT INTO t1 VALUES ('abc'),('abc  '),(' a'),(' a '),('a   ');
12645SELECT HEX(a), a FROM t1 ORDER BY a;
12646HEX(a)	a
126472061	 a
12648206120	 a
1264961202020	a
12650616263	abc
126516162632020	abc
12652SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a;
12653HEX(a)	a
126542061	 a
12655206120	 a
1265661202020	a
12657616263	abc
126586162632020	abc
12659SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC;
12660HEX(a)	a
126616162632020	abc
12662616263	abc
1266361202020	a
12664206120	 a
126652061	 a
12666#
12667# UNION
12668#
12669CREATE TABLE t2 (a VARCHAR(10)) COLLATE 'geostd8_nopad_bin';
12670INSERT INTO t2 VALUES ('abc '),('abc  '),(' a'),('a ');
12671SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td;
12672HEX(a)	a
126732061	 a
12674206120	 a
126756120	a
1267661202020	a
12677616263	abc
1267861626320	abc
126796162632020	abc
12680DROP TABLE t1;
12681DROP TABLE t2;
12682#
12683# DISTINCT, COUNT, MAX
12684#
12685CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_nopad_bin';
12686INSERT INTO t1 VALUES ('a'),('a  '),(' a'),(' a '),('a   ');
12687SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td;
12688HEX(a)	a
126892061	 a
12690206120	 a
1269161	a
12692612020	a
1269361202020	a
12694SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a;
12695COUNT(DISTINCT a)
126965
12697SELECT HEX(MAX(a)), MAX(a) FROM t1;
12698HEX(MAX(a))	MAX(a)
1269961202020	a
12700#
12701# GROUP BY
12702#
12703CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE 'geostd8_nopad_bin';
12704INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa  ', 0, 'er ');
12705SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td;
12706HEX(a)	cnt
127076161	1
1270861612020	1
127096162	2
12710DROP TABLE t2;
12711#
12712# Weights
12713#
12714SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1;
12715HEX(WEIGHT_STRING(a AS CHAR(10)))
1271661000000000000000000
1271761202000000000000000
1271820610000000000000000
1271920612000000000000000
1272061202020000000000000
12721DROP TABLE t1;
12722#
12723# IF, CASE, LEAST
12724#
12725SELECT IF('abc' COLLATE 'geostd8_nopad_bin' = 'abc ', 'pad', 'nopad');
12726IF('abc' COLLATE 'geostd8_nopad_bin' = 'abc ', 'pad', 'nopad')
12727nopad
12728SELECT CASE 'abc' COLLATE 'geostd8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END;
12729CASE 'abc' COLLATE 'geostd8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END
12730nopad
12731SELECT CASE WHEN 'abc' COLLATE 'geostd8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END;
12732CASE WHEN 'abc' COLLATE 'geostd8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END
12733nopad
12734SELECT HEX(LEAST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '));
12735HEX(LEAST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '))
1273661626320
12737SELECT HEX(GREATEST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '));
12738HEX(GREATEST('abc ' COLLATE 'geostd8_nopad_bin', 'abc  '))
127396162632020
12740#
12741# Collation mix
12742#
12743CREATE TABLE t1 (a VARCHAR(10)) COLLATE 'geostd8_bin';
12744INSERT INTO t1 VALUES ('a'),('a ');
12745SELECT COUNT(*) FROM t1 WHERE a='a';
12746COUNT(*)
127472
12748SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_bin';
12749COUNT(*)
127502
12751SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_nopad_bin';
12752COUNT(*)
127531
12754ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE 'geostd8_nopad_bin';
12755SELECT COUNT(*) FROM t1 WHERE a='a';
12756COUNT(*)
127571
12758SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_bin';
12759COUNT(*)
127602
12761SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE 'geostd8_nopad_bin';
12762COUNT(*)
127631
12764DROP TABLE t1;
12765#
12766# End of ctype_pad.inc
12767#
12768SET DEFAULT_STORAGE_ENGINE=Default;
12769#
12770# End of 10.2 tests
12771#
12772