@@ -23,6 +23,160 @@ set(procs_list
23
23
euc2004_sjis2004
24
24
)
25
25
26
+ # conversion_name source_encoding destination_encoding function object
27
+ set (conversions_list
28
+ "ascii_to_mic\; SQL_ASCII\; MULE_INTERNAL\; ascii_to_mic\; ascii_and_mic"
29
+ "mic_to_ascii\; MULE_INTERNAL\; SQL_ASCII\; mic_to_ascii\; ascii_and_mic"
30
+ "koi8_r_to_mic\; KOI8R\; MULE_INTERNAL\; koi8r_to_mic\; cyrillic_and_mic"
31
+ "mic_to_koi8_r\; MULE_INTERNAL\; KOI8R\; mic_to_koi8r\; cyrillic_and_mic"
32
+ "iso_8859_5_to_mic\; ISO-8859-5\; MULE_INTERNAL\; iso_to_mic\; cyrillic_and_mic"
33
+ "mic_to_iso_8859_5\; MULE_INTERNAL\; ISO-8859-5\; mic_to_iso\; cyrillic_and_mic"
34
+ "windows_1251_to_mic\; WIN1251\; MULE_INTERNAL\; win1251_to_mic\; cyrillic_and_mic"
35
+ "mic_to_windows_1251\; MULE_INTERNAL\; WIN1251\; mic_to_win1251\; cyrillic_and_mic"
36
+ "windows_866_to_mic\; WIN866\; MULE_INTERNAL\; win866_to_mic\; cyrillic_and_mic"
37
+ "mic_to_windows_866\; MULE_INTERNAL\; WIN866\; mic_to_win866\; cyrillic_and_mic"
38
+ "koi8_r_to_windows_1251\; KOI8R\; WIN1251\; koi8r_to_win1251\; cyrillic_and_mic"
39
+ "windows_1251_to_koi8_r\; WIN1251\; KOI8R\; win1251_to_koi8r\; cyrillic_and_mic"
40
+ "koi8_r_to_windows_866\; KOI8R\; WIN866\; koi8r_to_win866\; cyrillic_and_mic"
41
+ "windows_866_to_koi8_r\; WIN866\; KOI8R\; win866_to_koi8r\; cyrillic_and_mic"
42
+ "windows_866_to_windows_1251\; WIN866\; WIN1251\; win866_to_win1251\; cyrillic_and_mic"
43
+ "windows_1251_to_windows_866\; WIN1251\; WIN866\; win1251_to_win866\; cyrillic_and_mic"
44
+ "iso_8859_5_to_koi8_r\; ISO-8859-5\; KOI8R\; iso_to_koi8r\; cyrillic_and_mic"
45
+ "koi8_r_to_iso_8859_5\; KOI8R\; ISO-8859-5\; koi8r_to_iso\; cyrillic_and_mic"
46
+ "iso_8859_5_to_windows_1251\; ISO-8859-5\; WIN1251\; iso_to_win1251\; cyrillic_and_mic"
47
+ "windows_1251_to_iso_8859_5\; WIN1251\; ISO-8859-5\; win1251_to_iso\; cyrillic_and_mic"
48
+ "iso_8859_5_to_windows_866\; ISO-8859-5\; WIN866\; iso_to_win866\; cyrillic_and_mic"
49
+ "windows_866_to_iso_8859_5\; WIN866\; ISO-8859-5\; win866_to_iso\; cyrillic_and_mic"
50
+ "euc_cn_to_mic\; EUC_CN\; MULE_INTERNAL\; euc_cn_to_mic\; euc_cn_and_mic"
51
+ "mic_to_euc_cn\; MULE_INTERNAL\; EUC_CN\; mic_to_euc_cn\; euc_cn_and_mic"
52
+ "euc_jp_to_sjis\; EUC_JP\; SJIS\; euc_jp_to_sjis\; euc_jp_and_sjis"
53
+ "sjis_to_euc_jp\; SJIS\; EUC_JP\; sjis_to_euc_jp\; euc_jp_and_sjis"
54
+ "euc_jp_to_mic\; EUC_JP\; MULE_INTERNAL\; euc_jp_to_mic\; euc_jp_and_sjis"
55
+ "sjis_to_mic\; SJIS\; MULE_INTERNAL\; sjis_to_mic\; euc_jp_and_sjis"
56
+ "mic_to_euc_jp\; MULE_INTERNAL\; EUC_JP\; mic_to_euc_jp\; euc_jp_and_sjis"
57
+ "mic_to_sjis\; MULE_INTERNAL\; SJIS\; mic_to_sjis\; euc_jp_and_sjis"
58
+ "euc_kr_to_mic\; EUC_KR\; MULE_INTERNAL\; euc_kr_to_mic\; euc_kr_and_mic"
59
+ "mic_to_euc_kr\; MULE_INTERNAL\; EUC_KR\; mic_to_euc_kr\; euc_kr_and_mic"
60
+ "euc_tw_to_big5\; EUC_TW\; BIG5\; euc_tw_to_big5\; euc_tw_and_big5"
61
+ "big5_to_euc_tw\; BIG5\; EUC_TW\; big5_to_euc_tw\; euc_tw_and_big5"
62
+ "euc_tw_to_mic\; EUC_TW\; MULE_INTERNAL\; euc_tw_to_mic\; euc_tw_and_big5"
63
+ "big5_to_mic\; BIG5\; MULE_INTERNAL\; big5_to_mic\; euc_tw_and_big5"
64
+ "mic_to_euc_tw\; MULE_INTERNAL\; EUC_TW\; mic_to_euc_tw\; euc_tw_and_big5"
65
+ "mic_to_big5\; MULE_INTERNAL\; BIG5\; mic_to_big5\; euc_tw_and_big5"
66
+ "iso_8859_2_to_mic\; LATIN2\; MULE_INTERNAL\; latin2_to_mic\; latin2_and_win1250"
67
+ "mic_to_iso_8859_2\; MULE_INTERNAL\; LATIN2\; mic_to_latin2\; latin2_and_win1250"
68
+ "windows_1250_to_mic\; WIN1250\; MULE_INTERNAL\; win1250_to_mic\; latin2_and_win1250"
69
+ "mic_to_windows_1250\; MULE_INTERNAL\; WIN1250\; mic_to_win1250\; latin2_and_win1250"
70
+ "iso_8859_2_to_windows_1250\; LATIN2\; WIN1250\; latin2_to_win1250\; latin2_and_win1250"
71
+ "windows_1250_to_iso_8859_2\; WIN1250\; LATIN2\; win1250_to_latin2\; latin2_and_win1250"
72
+ "iso_8859_1_to_mic\; LATIN1\; MULE_INTERNAL\; latin1_to_mic\; latin_and_mic"
73
+ "mic_to_iso_8859_1\; MULE_INTERNAL\; LATIN1\; mic_to_latin1\; latin_and_mic"
74
+ "iso_8859_3_to_mic\; LATIN3\; MULE_INTERNAL\; latin3_to_mic\; latin_and_mic"
75
+ "mic_to_iso_8859_3\; MULE_INTERNAL\; LATIN3\; mic_to_latin3\; latin_and_mic"
76
+ "iso_8859_4_to_mic\; LATIN4\; MULE_INTERNAL\; latin4_to_mic\; latin_and_mic"
77
+ "mic_to_iso_8859_4\; MULE_INTERNAL\; LATIN4\; mic_to_latin4\; latin_and_mic"
78
+ "ascii_to_utf8\; SQL_ASCII\; UTF8\; ascii_to_utf8\; utf8_and_ascii"
79
+ "utf8_to_ascii\; UTF8\; SQL_ASCII\; utf8_to_ascii\; utf8_and_ascii"
80
+ "big5_to_utf8\; BIG5\; UTF8\; big5_to_utf8\; utf8_and_big5"
81
+ "utf8_to_big5\; UTF8\; BIG5\; utf8_to_big5\; utf8_and_big5"
82
+ "utf8_to_koi8_r\; UTF8\; KOI8R\; utf8_to_koi8r\; utf8_and_cyrillic"
83
+ "koi8_r_to_utf8\; KOI8R\; UTF8\; koi8r_to_utf8\; utf8_and_cyrillic"
84
+ "utf8_to_koi8_u\; UTF8\; KOI8U\; utf8_to_koi8u\; utf8_and_cyrillic"
85
+ "koi8_u_to_utf8\; KOI8U\; UTF8\; koi8u_to_utf8\; utf8_and_cyrillic"
86
+ "utf8_to_windows_866\; UTF8\; WIN866\; utf8_to_win\; utf8_and_win"
87
+ "windows_866_to_utf8\; WIN866\; UTF8\; win_to_utf8\; utf8_and_win"
88
+ "utf8_to_windows_874\; UTF8\; WIN874\; utf8_to_win\; utf8_and_win"
89
+ "windows_874_to_utf8\; WIN874\; UTF8\; win_to_utf8\; utf8_and_win"
90
+ "utf8_to_windows_1250\; UTF8\; WIN1250\; utf8_to_win\; utf8_and_win"
91
+ "windows_1250_to_utf8\; WIN1250\; UTF8\; win_to_utf8\; utf8_and_win"
92
+ "utf8_to_windows_1251\; UTF8\; WIN1251\; utf8_to_win\; utf8_and_win"
93
+ "windows_1251_to_utf8\; WIN1251\; UTF8\; win_to_utf8\; utf8_and_win"
94
+ "utf8_to_windows_1252\; UTF8\; WIN1252\; utf8_to_win\; utf8_and_win"
95
+ "windows_1252_to_utf8\; WIN1252\; UTF8\; win_to_utf8\; utf8_and_win"
96
+ "utf8_to_windows_1253\; UTF8\; WIN1253\; utf8_to_win\; utf8_and_win"
97
+ "windows_1253_to_utf8\; WIN1253\; UTF8\; win_to_utf8\; utf8_and_win"
98
+ "utf8_to_windows_1254\; UTF8\; WIN1254\; utf8_to_win\; utf8_and_win"
99
+ "windows_1254_to_utf8\; WIN1254\; UTF8\; win_to_utf8\; utf8_and_win"
100
+ "utf8_to_windows_1255\; UTF8\; WIN1255\; utf8_to_win\; utf8_and_win"
101
+ "windows_1255_to_utf8\; WIN1255\; UTF8\; win_to_utf8\; utf8_and_win"
102
+ "utf8_to_windows_1256\; UTF8\; WIN1256\; utf8_to_win\; utf8_and_win"
103
+ "windows_1256_to_utf8\; WIN1256\; UTF8\; win_to_utf8\; utf8_and_win"
104
+ "utf8_to_windows_1257\; UTF8\; WIN1257\; utf8_to_win\; utf8_and_win"
105
+ "windows_1257_to_utf8\; WIN1257\; UTF8\; win_to_utf8\; utf8_and_win"
106
+ "utf8_to_windows_1258\; UTF8\; WIN1258\; utf8_to_win\; utf8_and_win"
107
+ "windows_1258_to_utf8\; WIN1258\; UTF8\; win_to_utf8\; utf8_and_win"
108
+ "euc_cn_to_utf8\; EUC_CN\; UTF8\; euc_cn_to_utf8\; utf8_and_euc_cn"
109
+ "utf8_to_euc_cn\; UTF8\; EUC_CN\; utf8_to_euc_cn\; utf8_and_euc_cn"
110
+ "euc_jp_to_utf8\; EUC_JP\; UTF8\; euc_jp_to_utf8\; utf8_and_euc_jp"
111
+ "utf8_to_euc_jp\; UTF8\; EUC_JP\; utf8_to_euc_jp\; utf8_and_euc_jp"
112
+ "euc_kr_to_utf8\; EUC_KR\; UTF8\; euc_kr_to_utf8\; utf8_and_euc_kr"
113
+ "utf8_to_euc_kr\; UTF8\; EUC_KR\; utf8_to_euc_kr\; utf8_and_euc_kr"
114
+ "euc_tw_to_utf8\; EUC_TW\; UTF8\; euc_tw_to_utf8\; utf8_and_euc_tw"
115
+ "utf8_to_euc_tw\; UTF8\; EUC_TW\; utf8_to_euc_tw\; utf8_and_euc_tw"
116
+ "gb18030_to_utf8\; GB18030\; UTF8\; gb18030_to_utf8\; utf8_and_gb18030"
117
+ "utf8_to_gb18030\; UTF8\; GB18030\; utf8_to_gb18030\; utf8_and_gb18030"
118
+ "gbk_to_utf8\; GBK\; UTF8\; gbk_to_utf8\; utf8_and_gbk"
119
+ "utf8_to_g
9E88
bk\; UTF8\; GBK\; utf8_to_gbk\; utf8_and_gbk"
120
+ "utf8_to_iso_8859_2\; UTF8\; LATIN2\; utf8_to_iso8859\; utf8_and_iso8859"
121
+ "iso_8859_2_to_utf8\; LATIN2\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
122
+ "utf8_to_iso_8859_3\; UTF8\; LATIN3\; utf8_to_iso8859\; utf8_and_iso8859"
123
+ "iso_8859_3_to_utf8\; LATIN3\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
124
+ "utf8_to_iso_8859_4\; UTF8\; LATIN4\; utf8_to_iso8859\; utf8_and_iso8859"
125
+ "iso_8859_4_to_utf8\; LATIN4\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
126
+ "utf8_to_iso_8859_9\; UTF8\; LATIN5\; utf8_to_iso8859\; utf8_and_iso8859"
127
+ "iso_8859_9_to_utf8\; LATIN5\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
128
+ "utf8_to_iso_8859_10\; UTF8\; LATIN6\; utf8_to_iso8859\; utf8_and_iso8859"
129
+ "iso_8859_10_to_utf8\; LATIN6\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
130
+ "utf8_to_iso_8859_13\; UTF8\; LATIN7\; utf8_to_iso8859\; utf8_and_iso8859"
131
+ "iso_8859_13_to_utf8\; LATIN7\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
132
+ "utf8_to_iso_8859_14\; UTF8\; LATIN8\; utf8_to_iso8859\; utf8_and_iso8859"
133
+ "iso_8859_14_to_utf8\; LATIN8\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
134
+ "utf8_to_iso_8859_15\; UTF8\; LATIN9\; utf8_to_iso8859\; utf8_and_iso8859"
135
+ "iso_8859_15_to_utf8\; LATIN9\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
136
+ "utf8_to_iso_8859_16\; UTF8\; LATIN10\; utf8_to_iso8859\; utf8_and_iso8859"
137
+ "iso_8859_16_to_utf8\; LATIN10\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
138
+ "utf8_to_iso_8859_5\; UTF8\; ISO-8859-5\; utf8_to_iso8859\; utf8_and_iso8859"
139
+ "iso_8859_5_to_utf8\; ISO-8859-5\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
140
+ "utf8_to_iso_8859_6\; UTF8\; ISO-8859-6\; utf8_to_iso8859\; utf8_and_iso8859"
141
+ "iso_8859_6_to_utf8\; ISO-8859-6\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
142
+ "utf8_to_iso_8859_7\; UTF8\; ISO-8859-7\; utf8_to_iso8859\; utf8_and_iso8859"
143
+ "iso_8859_7_to_utf8\; ISO-8859-7\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
144
+ "utf8_to_iso_8859_8\; UTF8\; ISO-8859-8\; utf8_to_iso8859\; utf8_and_iso8859"
145
+ "iso_8859_8_to_utf8\; ISO-8859-8\; UTF8\; iso8859_to_utf8\; utf8_and_iso8859"
146
+ "iso_8859_1_to_utf8\; LATIN1\; UTF8\; iso8859_1_to_utf8\; utf8_and_iso8859_1"
147
+ "utf8_to_iso_8859_1\; UTF8\; LATIN1\; utf8_to_iso8859_1\; utf8_and_iso8859_1"
148
+ "johab_to_utf8\; JOHAB\; UTF8\; johab_to_utf8\; utf8_and_johab"
149
+ "utf8_to_johab\; UTF8\; JOHAB\; utf8_to_johab\; utf8_and_johab"
150
+ "sjis_to_utf8\; SJIS\; UTF8\; sjis_to_utf8\; utf8_and_sjis"
151
+ "utf8_to_sjis\; UTF8\; SJIS\; utf8_to_sjis\; utf8_and_sjis"
152
+ "uhc_to_utf8\; UHC\; UTF8\; uhc_to_utf8\; utf8_and_uhc"
153
+ "utf8_to_uhc\; UTF8\; UHC\; utf8_to_uhc\; utf8_and_uhc"
154
+ "euc_jis_2004_to_utf8\; EUC_JIS_2004\; UTF8\; euc_jis_2004_to_utf8\; utf8_and_euc2004"
155
+ "utf8_to_euc_jis_2004\; UTF8\; EUC_JIS_2004\; utf8_to_euc_jis_2004\; utf8_and_euc2004"
156
+ "shift_jis_2004_to_utf8\; SHIFT_JIS_2004\; UTF8\; shift_jis_2004_to_utf8\; utf8_and_sjis2004"
157
+ "utf8_to_shift_jis_2004\; UTF8\; SHIFT_JIS_2004\; utf8_to_shift_jis_2004\; utf8_and_sjis2004"
158
+ "euc_jis_2004_to_shift_jis_2004\; EUC_JIS_2004\; SHIFT_JIS_2004\; euc_jis_2004_to_shift_jis_2004\; euc2004_sjis2004"
159
+ "shift_jis_2004_to_euc_jis_2004\; SHIFT_JIS_2004\; EUC_JIS_2004\; shift_jis_2004_to_euc_jis_2004\; euc2004_sjis2004"
160
+ )
161
+
162
+ file (WRITE "conversion_create.sql" "" )
163
+ foreach (pair_conversion ${conversions_list} )
164
+ LIST (GET pair_conversion 0 con_name)
165
+ LIST (GET pair_conversion 1 se)
166
+ LIST (GET pair_conversion 2 de)
167
+ LIST (GET pair_conversion 3 func)
168
+ LIST (GET pair_conversion 4 obj)
169
+
170
+ file (APPEND "conversion_create.sql"
171
+ "-- ${se} --> ${de} \n\
172
+ CREATE OR REPLACE FUNCTION ${func} (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/${obj} ', '${func} ' LANGUAGE C STRICT;\n\
173
+ COMMENT ON FUNCTION ${func} (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) IS 'internal conversion function for ${se} to ${de} ';\n\
174
+ DROP CONVERSION pg_catalog.${con_name} ;\n\
175
+ CREATE DEFAULT CONVERSION pg_catalog.${con_name} FOR '${se} ' TO '${de} ' FROM ${func} ;\n\
176
+ COMMENT ON CONVERSION pg_catalog.${con_name} IS 'conversion for ${se} to ${de} ';\n "
177
+ )
178
+ endforeach ()
179
+
26
180
foreach (loop_var IN ITEMS ${procs_list} )
27
181
message (STATUS "procs ${loop_var} " )
28
182
add_library (${loop_var} SHARED ${loop_var} /${loop_var} .c)
0 commit comments