8000 Add generate conversion_create.sql issue #2 · roman0yurin/postgres@1675cea · GitHub
[go: up one dir, main page]

Skip to content

Commit 1675cea

Browse files
committed
Add generate conversion_create.sql issue postgres#2
1 parent 3d49dd6 commit 1675cea

File tree

1 file changed

+154
-0
lines changed

1 file changed

+154
-0
lines changed

src/backend/utils/mb/conversion_procs/CMakeLists.txt

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,160 @@ set(procs_list
2323
euc2004_sjis2004
2424
)
2525

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+
26180
foreach(loop_var IN ITEMS ${procs_list})
27181
message(STATUS "procs ${loop_var}")
28182
add_library(${loop_var} SHARED ${loop_var}/${loop_var}.c)

0 commit comments

Comments
 (0)
0