~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

Viewing changes to mysql-test/t/ctype_latin1.test

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
Import upstream version 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Tests with the latin1 character set
 
3
#
 
4
--disable_warnings
 
5
drop table if exists t1;
 
6
--enable_warnings
 
7
 
 
8
#
 
9
# WL 1494: Treat latin1 as cp1252 for unicode conversion
 
10
#
 
11
 
 
12
SET NAMES latin1;
 
13
CREATE TABLE t1 (a char(1) character set latin1);
 
14
INSERT INTO t1 VALUES (0x00),(0x01),(0x02),(0x03),(0x04),(0x05),(0x06),(0x07);
 
15
INSERT INTO t1 VALUES (0x08),(0x09),(0x0A),(0x0B),(0x0C),(0x0D),(0x0E),(0x0F);
 
16
INSERT INTO t1 VALUES (0x10),(0x11),(0x12),(0x13),(0x14),(0x15),(0x16),(0x17);
 
17
INSERT INTO t1 VALUES (0x18),(0x19),(0x1A),(0x1B),(0x1C),(0x1D),(0x1E),(0x1F);
 
18
INSERT INTO t1 VALUES (0x20),(0x21),(0x22),(0x23),(0x24),(0x25),(0x26),(0x27);
 
19
INSERT INTO t1 VALUES (0x28),(0x29),(0x2A),(0x2B),(0x2C),(0x2D),(0x2E),(0x2F);
 
20
INSERT INTO t1 VALUES (0x30),(0x31),(0x32),(0x33),(0x34),(0x35),(0x36),(0x37);
 
21
INSERT INTO t1 VALUES (0x38),(0x39),(0x3A),(0x3B),(0x3C),(0x3D),(0x3E),(0x3F);
 
22
INSERT INTO t1 VALUES (0x40),(0x41),(0x42),(0x43),(0x44),(0x45),(0x46),(0x47);
 
23
INSERT INTO t1 VALUES (0x48),(0x49),(0x4A),(0x4B),(0x4C),(0x4D),(0x4E),(0x4F);
 
24
INSERT INTO t1 VALUES (0x50),(0x51),(0x52),(0x53),(0x54),(0x55),(0x56),(0x57);
 
25
INSERT INTO t1 VALUES (0x58),(0x59),(0x5A),(0x5B),(0x5C),(0x5D),(0x5E),(0x5F);
 
26
INSERT INTO t1 VALUES (0x60),(0x61),(0x62),(0x63),(0x64),(0x65),(0x66),(0x67);
 
27
INSERT INTO t1 VALUES (0x68),(0x69),(0x6A),(0x6B),(0x6C),(0x6D),(0x6E),(0x6F);
 
28
INSERT INTO t1 VALUES (0x70),(0x71),(0x72),(0x73),(0x74),(0x75),(0x76),(0x77);
 
29
INSERT INTO t1 VALUES (0x78),(0x79),(0x7A),(0x7B),(0x7C),(0x7D),(0x7E),(0x7F);
 
30
INSERT INTO t1 VALUES (0x80),(0x81),(0x82),(0x83),(0x84),(0x85),(0x86),(0x87);
 
31
INSERT INTO t1 VALUES (0x88),(0x89),(0x8A),(0x8B),(0x8C),(0x8D),(0x8E),(0x8F);
 
32
INSERT INTO t1 VALUES (0x90),(0x91),(0x92),(0x93),(0x94),(0x95),(0x96),(0x97);
 
33
INSERT INTO t1 VALUES (0x98),(0x99),(0x9A),(0x9B),(0x9C),(0x9D),(0x9E),(0x9F);
 
34
INSERT INTO t1 VALUES (0xA0),(0xA1),(0xA2),(0xA3),(0xA4),(0xA5),(0xA6),(0xA7);
 
35
INSERT INTO t1 VALUES (0xA8),(0xA9),(0xAA),(0xAB),(0xAC),(0xAD),(0xAE),(0xAF);
 
36
INSERT INTO t1 VALUES (0xB0),(0xB1),(0xB2),(0xB3),(0xB4),(0xB5),(0xB6),(0xB7);
 
37
INSERT INTO t1 VALUES (0xB8),(0xB9),(0xBA),(0xBB),(0xBC),(0xBD),(0xBE),(0xBF);
 
38
INSERT INTO t1 VALUES (0xC0),(0xC1),(0xC2),(0xC3),(0xC4),(0xC5),(0xC6),(0xC7);
 
39
INSERT INTO t1 VALUES (0xC8),(0xC9),(0xCA),(0xCB),(0xCC),(0xCD),(0xCE),(0xCF);
 
40
INSERT INTO t1 VALUES (0xD0),(0xD1),(0xD2),(0xD3),(0xD4),(0xD5),(0xD6),(0xD7);
 
41
INSERT INTO t1 VALUES (0xD8),(0xD9),(0xDA),(0xDB),(0xDC),(0xDD),(0xDE),(0xDF);
 
42
INSERT INTO t1 VALUES (0xE0),(0xE1),(0xE2),(0xE3),(0xE4),(0xE5),(0xE6),(0xE7);
 
43
INSERT INTO t1 VALUES (0xE8),(0xE9),(0xEA),(0xEB),(0xEC),(0xED),(0xEE),(0xEF);
 
44
INSERT INTO t1 VALUES (0xF0),(0xF1),(0xF2),(0xF3),(0xF4),(0xF5),(0xF6),(0xF7);
 
45
INSERT INTO t1 VALUES (0xF8),(0xF9),(0xFA),(0xFB),(0xFC),(0xFD),(0xFE),(0xFF);
 
46
 
 
47
#
 
48
# 0x81 0x8D 0x8F 0x90 0x9D are undefined in cp1252
 
49
#
 
50
SELECT 
 
51
  hex(a), 
 
52
  hex(@u:=convert(a using utf8)),
 
53
  hex(@l:=convert(@u using latin1)),
 
54
  a=@l FROM t1;
 
55
DROP TABLE t1;
 
56
 
 
57
#
 
58
# Bug#13145: A table named "C-cedilla" can't be dropped.
 
59
# Accept extended cp1252 letters as valid identifiers.
 
60
# This test partially checks that "ctype" array is correct
 
61
# for cp1252 extended characters 0x80-0x9F.
 
62
#
 
63
# 0x83 0x0192  #LATIN SMALL LETTER F WITH HOOK
 
64
# 0x8A 0x0160  #LATIN CAPITAL LETTER S WITH CARON
 
65
# 0x8C 0x0152  #LATIN CAPITAL LIGATURE OE
 
66
# 0x8E 0x017D  #LATIN CAPITAL LETTER Z WITH CARON
 
67
# 0x9A 0x0161  #LATIN SMALL LETTER S WITH CARON
 
68
# 0x9C 0x0153  #LATIN SMALL LIGATURE OE
 
69
# 0x9E 0x017E  #LATIN SMALL LETTER Z WITH CARON
 
70
# 0x9F 0x0178  #LATIN CAPITAL LETTER Y WITH DIAERESIS
 
71
#
 
72
SELECT 1 as �, 2 as �, 3 as �, 4 as �, 5 as �, 6 as �, 7 as �, 8 as �;
 
73
 
 
74
#
 
75
# Bug #6737: REGEXP gives wrong result with case sensitive collation
 
76
#
 
77
select 'a' regexp 'A' collate latin1_general_ci;
 
78
select 'a' regexp 'A' collate latin1_general_cs;
 
79
select 'a' regexp 'A' collate latin1_bin;
 
80
 
 
81
 
 
82
SET collation_connection='latin1_swedish_ci';
 
83
-- source include/ctype_filesort.inc
 
84
-- source include/ctype_like_escape.inc
 
85
SET collation_connection='latin1_bin';
 
86
-- source include/ctype_filesort.inc
 
87
-- source include/ctype_like_escape.inc
 
88
 
 
89
#
 
90
# Bug#8041
 
91
# An unknown character (e.g. 0x84) should result in ERROR,
 
92
# It was treated like a space character earlier.
 
93
# Howerver, it should still work fine as a string part.
 
94
--error 1064
 
95
CREATE TABLE �a (a int);
 
96
SELECT '�a' as str;
 
97
 
 
98
 
 
99
#
 
100
# Bug#18321: Can't store EuroSign with latin1_german1_ci and latin1_general_ci
 
101
# The problem was in latin1->utf8->latin1 round trip.
 
102
#
 
103
set @str= _latin1 'ABC ���߲��~ ������ ����� ����� @ abc';
 
104
SELECT convert(@str collate latin1_bin using utf8);
 
105
SELECT convert(@str collate latin1_general_ci using utf8);
 
106
SELECT convert(@str collate latin1_german1_ci using utf8);
 
107
SELECT convert(@str collate latin1_danish_ci using utf8);
 
108
SELECT convert(@str collate latin1_spanish_ci using utf8);
 
109
SELECT convert(@str collate latin1_german2_ci using utf8);
 
110
SELECT convert(@str collate latin1_swedish_ci using utf8);
 
111
 
 
112
# End of 4.1 tests
 
113
 
 
114
SET NAMES latin1;
 
115
--disable_warnings
 
116
DROP TABLE IF EXISTS `abc�def`;
 
117
--enable_warnings
 
118
CREATE TABLE `abc�def` (i int);
 
119
INSERT INTO `abc�def` VALUES (1);
 
120
INSERT INTO abc�def VALUES (2);
 
121
SELECT * FROM `abc�def`;
 
122
SELECT * FROM abc�def;
 
123
DROP TABLE `abc�def`;
 
124
#
 
125
# Bug#29499 Converting 'del' from ascii to Unicode results in 'question mark'
 
126
#
 
127
select hex(cast(_ascii 0x7f as char(1) character set latin1));
 
128
 
 
129
--echo End of 5.0 tests