@@ -277,3 +277,281 @@ hex(a)
277
277
EE00
278
278
drop table t1;
279
279
End of 5.0 tests
280
+ #
281
+ # Start of 5.5 tests
282
+ #
283
+ #
284
+ # Testing WL#4583 Case conversion in Asian character sets
285
+ #
286
+ SET NAMES utf8;
287
+ SET collation_connection=big5_chinese_ci;
288
+ CREATE TABLE t1 (b VARCHAR(2));
289
+ INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
290
+ INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
291
+ CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
292
+ CREATE TEMPORARY TABLE tail AS SELECT concat(b1.b, b2.b) AS tail FROM t1 b1, t1 b2;
293
+ DROP TABLE t1;
294
+ CREATE TABLE t1 AS
295
+ SELECT concat(head, tail) AS code, ' ' AS a
296
+ FROM head, tail
297
+ WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '20' AND 'FF')
298
+ ORDER BY head, tail;
299
+ DROP TEMPORARY TABLE head, tail;
300
+ SHOW CREATE TABLE t1;
301
+ Table Create Table
302
+ t1 CREATE TABLE `t1` (
303
+ `code` varchar(8) DEFAULT NULL,
304
+ `a` varchar(1) CHARACTER SET big5 NOT NULL DEFAULT ''
305
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1
306
+ SELECT COUNT(*) FROM t1;
307
+ COUNT(*)
308
+ 28672
309
+ UPDATE t1 SET a=unhex(code) ORDER BY code;
310
+ Warnings:
311
+ Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
312
+ Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2
313
+ Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
314
+ Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
315
+ Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
316
+ Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
317
+ Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
318
+ Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
319
+ Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
320
+ Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
321
+ Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
322
+ Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
323
+ Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
324
+ Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
325
+ Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
326
+ Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
327
+ Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
328
+ Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
329
+ Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
330
+ Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
331
+ Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
332
+ Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
333
+ Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
334
+ Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
335
+ Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
336
+ Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
337
+ Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
338
+ Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
339
+ Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
340
+ Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
341
+ Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
342
+ Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
343
+ Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
344
+ Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
345
+ Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
346
+ Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
347
+ Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
348
+ Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
349
+ Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
350
+ Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
351
+ Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
352
+ Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
353
+ Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
354
+ Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
355
+ Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
356
+ Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
357
+ Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
358
+ Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
359
+ Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
360
+ Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
361
+ Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
362
+ Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
363
+ Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
364
+ Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
365
+ Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
366
+ Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
367
+ Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
368
+ Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
369
+ Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
370
+ Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
371
+ Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
372
+ Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
373
+ Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
374
+ Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
375
+ SELECT COUNT(*) FROM t1 WHERE a<>'';
376
+ COUNT(*)
377
+ 13973
378
+ SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
379
+ code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
380
+ A2CF A2CF A2E9 A A a
381
+ A2D0 A2D0 A2EA B B b
382
+ A2D1 A2D1 A2EB C C c
383
+ A2D2 A2D2 A2EC D D d
384
+ A2D3 A2D3 A2ED E E e
385
+ A2D4 A2D4 A2EE F F f
386
+ A2D5 A2D5 A2EF G G g
387
+ A2D6 A2D6 A2F0 H H h
388
+ A2D7 A2D7 A2F1 I I i
389
+ A2D8 A2D8 A2F2 J J j
390
+ A2D9 A2D9 A2F3 K K k
391
+ A2DA A2DA A2F4 L L l
392
+ A2DB A2DB A2F5 M M m
393
+ A2DC A2DC A2F6 N N n
394
+ A2DD A2DD A2F7 O O o
395
+ A2DE A2DE A2F8 P P p
396
+ A2DF A2DF A2F9 Q Q q
397
+ A2E0 A2E0 A2FA R R r
398
+ A2E1 A2E1 A2FB S S s
399
+ A2E2 A2E2 A2FC T T t
400
+ A2E3 A2E3 A2FD U U u
401
+ A2E4 A2E4 A2FE V V v
402
+ A2E5 A2E5 A340 W W w
403
+ A2E6 A2E6 A341 X X x
404
+ A2E7 A2E7 A342 Y Y y
405
+ A2E8 A2E8 A343 Z Z z
406
+ A2E9 A2CF A2E9 a A a
407
+ A2EA A2D0 A2EA b B b
408
+ A2EB A2D1 A2EB c C c
409
+ A2EC A2D2 A2EC d D d
410
+ A2ED A2D3 A2ED e E e
411
+ A2EE A2D4 A2EE f F f
412
+ A2EF A2D5 A2EF g G g
413
+ A2F0 A2D6 A2F0 h H h
414
+ A2F1 A2D7 A2F1 i I i
415
+ A2F2 A2D8 A2F2 j J j
416
+ A2F3 A2D9 A2F3 k K k
417
+ A2F4 A2DA A2F4 l L l
418
+ A2F5 A2DB A2F5 m M m
419
+ A2F6 A2DC A2F6 n N n
420
+ A2F7 A2DD A2F7 o O o
421
+ A2F8 A2DE A2F8 p P p
422
+ A2F9 A2DF A2F9 q Q q
423
+ A2FA A2E0 A2FA r R r
424
+ A2FB A2E1 A2FB s S s
425
+ A2FC A2E2 A2FC t T t
426
+ A2FD A2E3 A2FD u U u
427
+ A2FE A2E4 A2FE v V v
428
+ A340 A2E5 A340 w W w
429
+ A341 A2E6 A341 x X x
430
+ A342 A2E7 A342 y Y y
431
+ A343 A2E8 A343 z Z z
432
+ A344 A344 A35C Α Α α
433
+ A345 A345 A35D Β Β β
434
+ A346 A346 A35E Γ Γ γ
435
+ A347 A347 A35F Δ Δ δ
436
+ A348 A348 A360 Ε Ε ε
437
+ A349 A349 A361 Ζ Ζ ζ
438
+ A34A A34A A362 Η Η η
439
+ A34B A34B A363 Θ Θ θ
440
+ A34C A34C A364 Ι Ι ι
441
+ A34D A34D A365 Κ Κ κ
442
+ A34E A34E A366 Λ Λ λ
443
+ A34F A34F A367 Μ Μ μ
444
+ A350 A350 A368 Ν Ν ν
445
+ A351 A351 A369 Ξ Ξ ξ
446
+ A352 A352 A36A Ο Ο ο
447
+ A353 A353 A36B Π Π π
448
+ A354 A354 A36C Ρ Ρ ρ
449
+ A355 A355 A36D Σ Σ σ
450
+ A356 A356 A36E Τ Τ τ
451
+ A357 A357 A36F Υ Υ υ
452
+ A358 A358 A370 Φ Φ φ
453
+ A359 A359 A371 Χ Χ χ
454
+ A35A A35A A372 Ψ Ψ ψ
455
+ A35B A35B A373 Ω Ω ω
456
+ A35C A344 A35C α Α α
457
+ A35D A345 A35D β Β β
458
+ A35E A346 A35E γ Γ γ
459
+ A35F A347 A35F δ Δ δ
460
+ A360 A348 A360 ε Ε ε
461
+ A361 A349 A361 ζ Ζ ζ
462
+ A362 A34A A362 η Η η
463
+ A363 A34B A363 θ Θ θ
464
+ A364 A34C A364 ι Ι ι
465
+ A365 A34D A365 κ Κ κ
466
+ A366 A34E A366 λ Λ λ
467
+ A367 A34F A367 μ Μ μ
468
+ A368 A350 A368 ν Ν ν
469
+ A369 A351 A369 ξ Ξ ξ
470
+ A36A A352 A36A ο Ο ο
471
+ A36B A353 A36B π Π π
472
+ A36C A354 A36C ρ Ρ ρ
473
+ A36D A355 A36D σ Σ σ
474
+ A36E A356 A36E τ Τ τ
475
+ A36F A357 A36F υ Υ υ
476
+ A370 A358 A370 φ Φ φ
477
+ A371 A359 A371 χ Χ χ
478
+ A372 A35A A372 ψ Ψ ψ
479
+ A373 A35B A373 ω Ω ω
480
+ C7B1 C7B1 C7CC Д Д д
481
+ C7B2 C7B2 C7CD Е Е е
482
+ C7B3 C7B3 C7CE Ё Ё ё
483
+ C7B4 C7B4 C7CF Ж Ж ж
484
+ C7B5 C7B5 C7D0 З З з
485
+ C7B6 C7B6 C7D1 И И и
486
+ C7B7 C7B7 C7D2 Й Й й
487
+ C7B8 C7B8 C7D3 К К к
488
+ C7B9 C7B9 C7D4 Л Л л
489
+ C7BA C7BA C7D5 М М м
490
+ C7BB C7BB C7DC У У у
491
+ C7BC C7BC C7DD Ф Ф ф
492
+ C7BD C7BD C7DE Х Х х
493
+ C7BE C7BE C7DF Ц Ц ц
494
+ C7BF C7BF C7E0 Ч Ч ч
495
+ C7C0 C7C0 C7E1 Ш Ш ш
496
+ C7C1 C7C1 C7E2 Щ Щ щ
497
+ C7C2 C7C2 C7E3 Ъ Ъ ъ
498
+ C7C3 C7C3 C7E4 Ы Ы ы
499
+ C7C4 C7C4 C7E5 Ь Ь ь
500
+ C7C5 C7C5 C7E6 Э Э э
501
+ C7C6 C7C6 C7E7 Ю Ю ю
502
+ C7C7 C7C7 C7E8 Я Я я
503
+ C7CC C7B1 C7CC д Д д
504
+ C7CD C7B2 C7CD е Е е
505
+ C7CE C7B3 C7CE ё Ё ё
506
+ C7CF C7B4 C7CF ж Ж ж
507
+ C7D0 C7B5 C7D0 з З з
508
+ C7D1 C7B6 C7D1 и И и
509
+ C7D2 C7B7 C7D2 й Й й
510
+ C7D3 C7B8 C7D3 к К к
511
+ C7D4 C7B9 C7D4 л Л л
512
+ C7D5 C7BA C7D5 м М м
513
+ C7DC C7BB C7DC у У у
514
+ C7DD C7BC C7DD ф Ф ф
515
+ C7DE C7BD C7DE х Х х
516
+ C7DF C7BE C7DF ц Ц ц
517
+ C7E0 C7BF C7E0 ч Ч ч
518
+ C7E1 C7C0 C7E1 ш Ш ш
519
+ C7E2 C7C1 C7E2 щ Щ щ
520
+ C7E3 C7C2 C7E3 ъ Ъ ъ
521
+ C7E4 C7C3 C7E4 ы Ы ы
522
+ C7E5 C7C4 C7E5 ь Ь ь
523
+ C7E6 C7C5 C7E6 э Э э
524
+ C7E7 C7C6 C7E7 ю Ю ю
525
+ C7E8 C7C7 C7E8 я Я я
526
+ SELECT * FROM t1
527
+ WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
528
+ HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
529
+ code a
530
+ A2B9 Ⅰ
531
+ A2BA Ⅱ
532
+ A2BB Ⅲ
533
+ A2BC Ⅳ
534
+ A2BD Ⅴ
535
+ A2BE Ⅵ
536
+ A2BF Ⅶ
537
+ A2C0 Ⅷ
538
+ A2C1 Ⅸ
539
+ A2C2 Ⅹ
540
+ SELECT * FROM t1
541
+ WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <>
542
+ HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
543
+ code a
544
+ C7C8 а
545
+ C7C9 б
546
+ C7CA в
547
+ C7CB г
548
+ C7D6 н
549
+ C7D7 о
550
+ C7D8 п
551
+ C7D9 р
552
+ C7DA с
553
+ C7DB т
554
+ DROP TABLE t1;
555
+ #
556
+ # End of 5.5 tests
557
+ #
0 commit comments