1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
--
-- create user defined conversion
--
CREATE USER foo WITH NOCREATEDB NOCREATEUSER;
SET SESSION AUTHORIZATION foo;
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
--
-- cannot make same name conversion in same schema
--
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
--
-- create default conversion with qualified name
--
CREATE DEFAULT CONVERSION public.mydef FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
--
-- cannot make default conversion with same shcema/for_encoding/to_encoding
--
CREATE DEFAULT CONVERSION public.mydef2 FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
--
-- drop user defined conversion
--
DROP CONVERSION myconv;
DROP CONVERSION mydef;
--
-- make sure all pre-defined conversions are fine.
--
-- UNICODE -> SQL_ASCII
SELECT CONVERT('foo', 'UNICODE', 'SQL_ASCII');
-- SQL_ASCII -> UNICODE
SELECT CONVERT('foo', 'SQL_ASCII', 'UNICODE');
-- UNICODE -> LATIN1
SELECT CONVERT('foo', 'UNICODE', 'LATIN1');
-- LATIN1 -> UNICODE
SELECT CONVERT('foo', 'LATIN1', 'UNICODE');
-- EUC_JP -> UNICODE
SELECT CONVERT('foo', 'EUC_JP', 'UNICODE');
-- UNICODE -> EUC_JP
SELECT CONVERT('foo', 'UNICODE', 'EUC_JP');
-- EUC_KR -> UNICODE
SELECT CONVERT('foo', 'EUC_KR', 'UNICODE');
-- UNICODE -> EUC_KR
SELECT CONVERT('foo', 'UNICODE', 'EUC_KR');
-- EUC_CN -> UNICODE
SELECT CONVERT('foo', 'EUC_CN', 'UNICODE');
-- UNICODE -> EUC_CN
SELECT CONVERT('foo', 'UNICODE', 'EUC_CN');
-- EUC_TW -> UNICODE
SELECT CONVERT('foo', 'EUC_TW', 'UNICODE');
-- UNICODE -> EUC_TW
SELECT CONVERT('foo', 'UNICODE', 'EUC_TW');
-- SJIS -> UNICODE
SELECT CONVERT('foo', 'SJIS', 'UNICODE');
-- UNICODE -> SJIS
SELECT CONVERT('foo', 'UNICODE', 'SJIS');
-- BIG5 -> UNICODE
SELECT CONVERT('foo', 'BIG5', 'UNICODE');
-- UNICODE -> BIG5
SELECT CONVERT('foo', 'UNICODE', 'BIG5');
-- GBK -> UNICODE
SELECT CONVERT('foo', 'GBK', 'UNICODE');
-- UNICODE -> GBK
SELECT CONVERT('foo', 'UNICODE', 'GBK');
-- GB18030 -> UNICODE
SELECT CONVERT('foo', 'GB18030', 'UNICODE');
-- UNICODE -> GB18030
SELECT CONVERT('foo', 'UNICODE', 'GB18030');
-- UHC -> UNICODE
SELECT CONVERT('foo', 'UHC', 'UNICODE');
-- UNICODE -> UHC
SELECT CONVERT('foo', 'UNICODE', 'UHC');
-- JOHAB -> UNICODE
SELECT CONVERT('foo', 'JOHAB', 'UNICODE');
-- UNICODE -> JOHAB
SELECT CONVERT('foo', 'UNICODE', 'JOHAB');
-- TCVN -> UNICODE
SELECT CONVERT('foo', 'TCVN', 'UNICODE');
-- UNICODE -> TCVN
SELECT CONVERT('foo', 'UNICODE', 'TCVN');
-- UNICODE -> LATIN2
SELECT CONVERT('foo', 'UNICODE', 'LATIN2');
-- LATIN2 -> UNICODE
SELECT CONVERT('foo', 'LATIN2', 'UNICODE');
-- UNICODE -> LATIN3
SELECT CONVERT('foo', 'UNICODE', 'LATIN3');
-- LATIN3 -> UNICODE
SELECT CONVERT('foo', 'LATIN3', 'UNICODE');
-- UNICODE -> LATIN4
SELECT CONVERT('foo', 'UNICODE', 'LATIN4');
-- LATIN4 -> UNICODE
SELECT CONVERT('foo', 'LATIN4', 'UNICODE');
-- UNICODE -> LATIN5
SELECT CONVERT('foo', 'UNICODE', 'LATIN5');
-- LATIN5 -> UNICODE
SELECT CONVERT('foo', 'LATIN5', 'UNICODE');
-- UNICODE -> LATIN6
SELECT CONVERT('foo', 'UNICODE', 'LATIN6');
-- LATIN6 -> UNICODE
SELECT CONVERT('foo', 'LATIN6', 'UNICODE');
-- UNICODE -> LATIN7
SELECT CONVERT('foo', 'UNICODE', 'LATIN7');
-- LATIN7 -> UNICODE
SELECT CONVERT('foo', 'LATIN7', 'UNICODE');
-- UNICODE -> LATIN8
SELECT CONVERT('foo', 'UNICODE', 'LATIN8');
-- LATIN8 -> UNICODE
SELECT CONVERT('foo', 'LATIN8', 'UNICODE');
-- UNICODE -> LATIN9
SELECT CONVERT('foo', 'UNICODE', 'LATIN9');
-- LATIN9 -> UNICODE
SELECT CONVERT('foo', 'LATIN9', 'UNICODE');
-- UNICODE -> LATIN10
SELECT CONVERT('foo', 'UNICODE', 'LATIN10');
-- LATIN10 -> UNICODE
SELECT CONVERT('foo', 'LATIN10', 'UNICODE');
-- UNICODE -> ISO-8859-5
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-5');
-- ISO-8859-5 -> UNICODE
SELECT CONVERT('foo', 'ISO-8859-5', 'UNICODE');
-- UNICODE -> ISO-8859-6
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-6');
-- ISO-8859-6 -> UNICODE
SELECT CONVERT('foo', 'ISO-8859-6', 'UNICODE');
-- UNICODE -> ISO-8859-7
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-7');
-- ISO-8859-7 -> UNICODE
SELECT CONVERT('foo', 'ISO-8859-7', 'UNICODE');
-- UNICODE -> ISO-8859-8
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-8');
-- ISO-8859-8 -> UNICODE
SELECT CONVERT('foo', 'ISO-8859-8', 'UNICODE');
-- EUC_JP -> SJIS
SELECT CONVERT('foo', 'EUC_JP', 'SJIS');
-- SJIS -> EUC_JP
SELECT CONVERT('foo', 'SJIS', 'EUC_JP');
-- EUC_JP -> MULE_INTERNAL
SELECT CONVERT('foo', 'EUC_JP', 'MULE_INTERNAL');
-- SJIS -> MULE_INTERNAL
SELECT CONVERT('foo', 'SJIS', 'MULE_INTERNAL');
-- MULE_INTERNAL -> EUC_JP
SELECT CONVERT('foo', 'MULE_INTERNAL', 'EUC_JP');
-- MULE_INTERNAL -> SJIS
SELECT CONVERT('foo', 'MULE_INTERNAL', 'SJIS');
-- EUC_TW -> BIG5
SELECT CONVERT('foo', 'EUC_TW', 'BIG5');
-- BIG5 -> EUC_TW
SELECT CONVERT('foo', 'BIG5', 'EUC_TW');
-- EUC_TW -> MULE_INTERNAL
SELECT CONVERT('foo', 'EUC_TW', 'MULE_INTERNAL');
-- BIG5 -> MULE_INTERNAL
SELECT CONVERT('foo', 'BIG5', 'MULE_INTERNAL');
-- MULE_INTERNAL -> EUC_TW
SELECT CONVERT('foo', 'MULE_INTERNAL', 'EUC_TW');
-- MULE_INTERNAL -> BIG5
SELECT CONVERT('foo', 'MULE_INTERNAL', 'BIG5');
RESET SESSION AUTHORIZATION;
DROP USER foo;
|