FreeTDS API
encodings.h
1 /*
2  * This file produced from ./encodings.pl on Sun Jun 28 09:02:52 2020
3  */
4 #ifdef TDS_ICONV_ENCODING_TABLES
5 
6 static const TDS_ENCODING canonic_charsets[] = {
7  { "ISO-8859-1", 1, 1, 0}, /* 0 */
8  { "UTF-8", 1, 4, 1}, /* 1 */
9  { "UCS-2LE", 2, 2, 2}, /* 2 */
10  { "UCS-2BE", 2, 2, 3}, /* 3 */
11  { "ARMSCII-8", 1, 1, 4}, /* 4 */
12  { "BIG-5", 1, 2, 5}, /* 5 */
13  { "BIG5-HKSCS", 1, 2, 6}, /* 6 */
14  { "C99", 1, 1, 7}, /* 7 */
15  { "CHINESE", 1, 1, 8}, /* 8 */
16  { "CN", 1, 1, 9}, /* 9 */
17  { "CN-GB", 1, 2, 10}, /* 10 */
18  { "CN-GB-ISOIR165", 1, 1, 11}, /* 11 */
19  { "CP1133", 1, 1, 12}, /* 12 */
20  { "CP1250", 1, 1, 13}, /* 13 */
21  { "CP1251", 1, 1, 14}, /* 14 */
22  { "CP1252", 1, 1, 15}, /* 15 */
23  { "CP1253", 1, 1, 16}, /* 16 */
24  { "CP1254", 1, 1, 17}, /* 17 */
25  { "CP1255", 1, 1, 18}, /* 18 */
26  { "CP1256", 1, 1, 19}, /* 19 */
27  { "CP1257", 1, 1, 20}, /* 20 */
28  { "CP1258", 1, 1, 21}, /* 21 */
29  { "CP1361", 1, 2, 22}, /* 22 */
30  { "CP437", 1, 1, 23}, /* 23 */
31  { "CP850", 1, 1, 24}, /* 24 */
32  { "CP862", 1, 1, 25}, /* 25 */
33  { "CP866", 1, 1, 26}, /* 26 */
34  { "CP874", 1, 1, 27}, /* 27 */
35  { "CP932", 1, 2, 28}, /* 28 */
36  { "CP936", 1, 2, 29}, /* 29 */
37  { "CP949", 1, 2, 30}, /* 30 */
38  { "CP950", 1, 2, 31}, /* 31 */
39  { "EUC-JP", 1, 3, 32}, /* 32 */
40  { "EUC-KR", 1, 2, 33}, /* 33 */
41  { "EUC-TW", 1, 4, 34}, /* 34 */
42  { "GB18030", 1, 4, 35}, /* 35 */
43  { "GEORGIAN-ACADEMY", 1, 1, 36}, /* 36 */
44  { "GEORGIAN-PS", 1, 1, 37}, /* 37 */
45  { "HZ", 1, 1, 38}, /* 38 */
46  { "ISO-2022-CN", 1, 4, 39}, /* 39 */
47  { "ISO-2022-CN-EXT", 1, 4, 40}, /* 40 */
48  { "ISO-2022-JP", 1, 1, 41}, /* 41 */
49  { "ISO-2022-JP-1", 1, 1, 42}, /* 42 */
50  { "ISO-2022-JP-2", 1, 1, 43}, /* 43 */
51  { "ISO-2022-KR", 1, 2, 44}, /* 44 */
52  { "ISO-8859-10", 1, 1, 45}, /* 45 */
53  { "ISO-8859-13", 1, 1, 46}, /* 46 */
54  { "ISO-8859-14", 1, 1, 47}, /* 47 */
55  { "ISO-8859-15", 1, 1, 48}, /* 48 */
56  { "ISO-8859-16", 1, 1, 49}, /* 49 */
57  { "ISO-8859-2", 1, 1, 50}, /* 50 */
58  { "ISO-8859-3", 1, 1, 51}, /* 51 */
59  { "ISO-8859-4", 1, 1, 52}, /* 52 */
60  { "ISO-8859-5", 1, 1, 53}, /* 53 */
61  { "ISO-8859-6", 1, 1, 54}, /* 54 */
62  { "ISO-8859-7", 1, 1, 55}, /* 55 */
63  { "ISO-8859-8", 1, 1, 56}, /* 56 */
64  { "ISO-8859-9", 1, 1, 57}, /* 57 */
65  { "ISO-IR-14", 1, 1, 58}, /* 58 */
66  { "ISO-IR-149", 1, 1, 59}, /* 59 */
67  { "ISO-IR-159", 1, 1, 60}, /* 60 */
68  { "ISO-IR-166", 1, 1, 61}, /* 61 */
69  { "ISO-IR-87", 1, 1, 62}, /* 62 */
70  { "JAVA", 1, 1, 63}, /* 63 */
71  { "JISX0201-1976", 1, 1, 64}, /* 64 */
72  { "KOI8-R", 1, 1, 65}, /* 65 */
73  { "KOI8-RU", 1, 1, 66}, /* 66 */
74  { "KOI8-T", 1, 1, 67}, /* 67 */
75  { "KOI8-U", 1, 1, 68}, /* 68 */
76  { "MAC", 1, 1, 69}, /* 69 */
77  { "MACARABIC", 1, 1, 70}, /* 70 */
78  { "MACCENTRALEUROPE", 1, 1, 71}, /* 71 */
79  { "MACCROATIAN", 1, 1, 72}, /* 72 */
80  { "MACCYRILLIC", 1, 1, 73}, /* 73 */
81  { "MACGREEK", 1, 1, 74}, /* 74 */
82  { "MACHEBREW", 1, 1, 75}, /* 75 */
83  { "MACICELAND", 1, 1, 76}, /* 76 */
84  { "MACROMANIA", 1, 1, 77}, /* 77 */
85  { "MACTHAI", 1, 1, 78}, /* 78 */
86  { "MACTURKISH", 1, 1, 79}, /* 79 */
87  { "MACUKRAINE", 1, 1, 80}, /* 80 */
88  { "MULELAO-1", 1, 1, 81}, /* 81 */
89  { "NEXTSTEP", 1, 1, 82}, /* 82 */
90  { "ROMAN8", 1, 1, 83}, /* 83 */
91  { "SJIS", 1, 2, 84}, /* 84 */
92  { "TCVN", 1, 1, 85}, /* 85 */
93  { "UCS-4BE", 4, 4, 86}, /* 86 */
94  { "UCS-4LE", 4, 4, 87}, /* 87 */
95  { "US-ASCII", 1, 1, 88}, /* 88 */
96  { "UTF-16BE", 2, 4, 89}, /* 89 */
97  { "UTF-16LE", 2, 4, 90}, /* 90 */
98  { "UTF-32BE", 4, 4, 91}, /* 91 */
99  { "UTF-32LE", 4, 4, 92}, /* 92 */
100  { "UTF-7", 1, 4, 93}, /* 93 */
101  { "VISCII", 1, 1, 94}, /* 94 */
102 };
103 
104 static const CHARACTER_SET_ALIAS iconv_aliases[] = {
105  { "646", 88 },
106  { "850", 24 },
107  { "862", 25 },
108  { "866", 26 },
109  { "ANSI_X3.4-1968", 88 },
110  { "ANSI_X3.4-1986", 88 },
111  { "ARABIC", 54 },
112  { "ARMSCII-8", 4 },
113  { "ASCII", 88 },
114  { "ASMO-708", 54 },
115  { "BIG-5", 5 },
116  { "BIG-FIVE", 5 },
117  { "BIG5", 5 },
118  { "BIG5-HKSCS", 6 },
119  { "BIG5HKSCS", 6 },
120  { "BIGFIVE", 5 },
121  { "C99", 7 },
122  { "CHINESE", 8 },
123  { "CN", 9 },
124  { "CN-BIG5", 5 },
125  { "CN-GB", 10 },
126  { "CN-GB-ISOIR165", 11 },
127  { "CP1133", 12 },
128  { "CP1250", 13 },
129  { "CP1251", 14 },
130  { "CP1252", 15 },
131  { "CP1253", 16 },
132  { "CP1254", 17 },
133  { "CP1255", 18 },
134  { "CP1256", 19 },
135  { "CP1257", 20 },
136  { "CP1258", 21 },
137  { "CP1361", 22 },
138  { "CP367", 88 },
139  { "CP437", 23 },
140  { "CP819", 0 },
141  { "CP850", 24 },
142  { "CP862", 25 },
143  { "CP866", 26 },
144  { "CP874", 27 },
145  { "CP932", 28 },
146  { "CP936", 29 },
147  { "CP949", 30 },
148  { "CP950", 31 },
149  { "CSASCII", 88 },
150  { "CSBIG5", 5 },
151  { "CSEUCKR", 33 },
152  { "CSEUCPKDFMTJAPANESE", 32 },
153  { "CSEUCTW", 34 },
154  { "CSGB2312", 10 },
155  { "CSHALFWIDTHKATAKANA", 64 },
156  { "CSHPROMAN8", 83 },
157  { "CSIBM866", 26 },
158  { "CSISO14JISC6220RO", 58 },
159  { "CSISO159JISX02121990", 60 },
160  { "CSISO2022CN", 39 },
161  { "CSISO2022JP", 41 },
162  { "CSISO2022JP2", 43 },
163  { "CSISO2022KR", 44 },
164  { "CSISO57GB1988", 9 },
165  { "CSISO58GB231280", 8 },
166  { "CSISO87JISX0208", 62 },
167  { "CSISOLATIN1", 0 },
168  { "CSISOLATIN2", 50 },
169  { "CSISOLATIN3", 51 },
170  { "CSISOLATIN4", 52 },
171  { "CSISOLATIN5", 57 },
172  { "CSISOLATIN6", 45 },
173  { "CSISOLATINARABIC", 54 },
174  { "CSISOLATINCYRILLIC", 53 },
175  { "CSISOLATINGREEK", 55 },
176  { "CSISOLATINHEBREW", 56 },
177  { "CSKOI8R", 65 },
178  { "CSKSC56011987", 59 },
179  { "CSMACINTOSH", 69 },
180  { "CSPC850MULTILINGUAL", 24 },
181  { "CSPC862LATINHEBREW", 25 },
182  { "CSSHIFTJIS", 84 },
183  { "CSUNICODE11", 3 },
184  { "CSUNICODE11UTF7", 93 },
185  { "CSVISCII", 94 },
186  { "CYRILLIC", 53 },
187  { "ECMA-114", 54 },
188  { "ECMA-118", 55 },
189  { "ELOT_928", 55 },
190  { "EUC-CN", 10 },
191  { "EUC-JP", 32 },
192  { "EUC-KR", 33 },
193  { "EUC-TW", 34 },
194  { "EUCCN", 10 },
195  { "EUCJP", 32 },
196  { "EUCKR", 33 },
197  { "EUCTW", 34 },
198  {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", 32 },
199  { "GB18030", 35 },
200  { "GB2312", 10 },
201  { "GBK", 29 },
202  { "GB_1988-80", 9 },
203  { "GB_2312-80", 8 },
204  { "GEORGIAN-ACADEMY", 36 },
205  { "GEORGIAN-PS", 37 },
206  { "GREEK", 55 },
207  { "GREEK8", 55 },
208  { "HEBREW", 56 },
209  { "HP-ROMAN8", 83 },
210  { "HZ", 38 },
211  { "HZ-GB-2312", 38 },
212  { "IBM-CP1133", 12 },
213  { "IBM367", 88 },
214  { "IBM437", 23 },
215  { "IBM819", 0 },
216  { "IBM850", 24 },
217  { "IBM862", 25 },
218  { "IBM866", 26 },
219  { "ISO-2022-CN", 39 },
220  { "ISO-2022-CN-EXT", 40 },
221  { "ISO-2022-JP", 41 },
222  { "ISO-2022-JP-1", 42 },
223  { "ISO-2022-JP-2", 43 },
224  { "ISO-2022-KR", 44 },
225  { "ISO-8859-1", 0 },
226  { "ISO-8859-10", 45 },
227  { "ISO-8859-13", 46 },
228  { "ISO-8859-14", 47 },
229  { "ISO-8859-15", 48 },
230  { "ISO-8859-16", 49 },
231  { "ISO-8859-2", 50 },
232  { "ISO-8859-3", 51 },
233  { "ISO-8859-4", 52 },
234  { "ISO-8859-5", 53 },
235  { "ISO-8859-6", 54 },
236  { "ISO-8859-7", 55 },
237  { "ISO-8859-8", 56 },
238  { "ISO-8859-9", 57 },
239  { "ISO-CELTIC", 47 },
240  { "ISO-IR-100", 0 },
241  { "ISO-IR-101", 50 },
242  { "ISO-IR-109", 51 },
243  { "ISO-IR-110", 52 },
244  { "ISO-IR-126", 55 },
245  { "ISO-IR-127", 54 },
246  { "ISO-IR-138", 56 },
247  { "ISO-IR-14", 58 },
248  { "ISO-IR-144", 53 },
249  { "ISO-IR-148", 57 },
250  { "ISO-IR-149", 59 },
251  { "ISO-IR-157", 45 },
252  { "ISO-IR-159", 60 },
253  { "ISO-IR-165", 11 },
254  { "ISO-IR-166", 61 },
255  { "ISO-IR-179", 46 },
256  { "ISO-IR-199", 47 },
257  { "ISO-IR-203", 48 },
258  { "ISO-IR-226", 49 },
259  { "ISO-IR-57", 9 },
260  { "ISO-IR-58", 8 },
261  { "ISO-IR-6", 88 },
262  { "ISO-IR-87", 62 },
263  { "ISO646-CN", 9 },
264  { "ISO646-JP", 58 },
265  { "ISO646-US", 88 },
266  { "ISO8859-1", 0 },
267  { "ISO8859-10", 45 },
268  { "ISO8859-15", 48 },
269  { "ISO8859-2", 50 },
270  { "ISO8859-4", 52 },
271  { "ISO8859-5", 53 },
272  { "ISO8859-6", 54 },
273  { "ISO8859-7", 55 },
274  { "ISO8859-8", 56 },
275  { "ISO8859-9", 57 },
276  { "ISO_646.IRV:1991", 88 },
277  { "ISO_8859-1", 0 },
278  { "ISO_8859-10", 45 },
279  { "ISO_8859-10:1992", 45 },
280  { "ISO_8859-13", 46 },
281  { "ISO_8859-14", 47 },
282  { "ISO_8859-14:1998", 47 },
283  { "ISO_8859-15", 48 },
284  { "ISO_8859-15:1998", 48 },
285  { "ISO_8859-16", 49 },
286  { "ISO_8859-16:2000", 49 },
287  { "ISO_8859-1:1987", 0 },
288  { "ISO_8859-2", 50 },
289  { "ISO_8859-2:1987", 50 },
290  { "ISO_8859-3", 51 },
291  { "ISO_8859-3:1988", 51 },
292  { "ISO_8859-4", 52 },
293  { "ISO_8859-4:1988", 52 },
294  { "ISO_8859-5", 53 },
295  { "ISO_8859-5:1988", 53 },
296  { "ISO_8859-6", 54 },
297  { "ISO_8859-6:1987", 54 },
298  { "ISO_8859-7", 55 },
299  { "ISO_8859-7:1987", 55 },
300  { "ISO_8859-8", 56 },
301  { "ISO_8859-8:1988", 56 },
302  { "ISO_8859-9", 57 },
303  { "ISO_8859-9:1989", 57 },
304  { "JAVA", 63 },
305  { "JIS0208", 62 },
306  { "JISX0201-1976", 64 },
307  { "JIS_C6220-1969-RO", 58 },
308  { "JIS_C6226-1983", 62 },
309  { "JIS_X0201", 64 },
310  { "JIS_X0208", 62 },
311  { "JIS_X0208-1983", 62 },
312  { "JIS_X0208-1990", 62 },
313  { "JIS_X0212", 60 },
314  { "JIS_X0212-1990", 60 },
315  { "JIS_X0212.1990-0", 60 },
316  { "JOHAB", 22 },
317  { "JP", 58 },
318  { "KOI8-R", 65 },
319  { "KOI8-RU", 66 },
320  { "KOI8-T", 67 },
321  { "KOI8-U", 68 },
322  { "KOREAN", 59 },
323  { "KSC_5601", 59 },
324  { "KS_C_5601-1987", 59 },
325  { "KS_C_5601-1989", 59 },
326  { "L1", 0 },
327  { "L2", 50 },
328  { "L3", 51 },
329  { "L4", 52 },
330  { "L5", 57 },
331  { "L6", 45 },
332  { "L7", 46 },
333  { "L8", 47 },
334  { "LATIN1", 0 },
335  { "LATIN2", 50 },
336  { "LATIN3", 51 },
337  { "LATIN4", 52 },
338  { "LATIN5", 57 },
339  { "LATIN6", 45 },
340  { "LATIN7", 46 },
341  { "LATIN8", 47 },
342  { "MAC", 69 },
343  { "MACARABIC", 70 },
344  { "MACCENTRALEUROPE", 71 },
345  { "MACCROATIAN", 72 },
346  { "MACCYRILLIC", 73 },
347  { "MACGREEK", 74 },
348  { "MACHEBREW", 75 },
349  { "MACICELAND", 76 },
350  { "MACINTOSH", 69 },
351  { "MACROMAN", 69 },
352  { "MACROMANIA", 77 },
353  { "MACTHAI", 78 },
354  { "MACTURKISH", 79 },
355  { "MACUKRAINE", 80 },
356  { "MS-ANSI", 15 },
357  { "MS-ARAB", 19 },
358  { "MS-CYRL", 14 },
359  { "MS-EE", 13 },
360  { "MS-GREEK", 16 },
361  { "MS-HEBR", 18 },
362  { "MS-TURK", 17 },
363  { "MS_KANJI", 84 },
364  { "MULELAO-1", 81 },
365  { "NEXTSTEP", 82 },
366  { "R8", 83 },
367  { "ROMAN8", 83 },
368  { "SHIFT-JIS", 84 },
369  { "SHIFT_JIS", 84 },
370  { "SJIS", 84 },
371  { "TCVN", 85 },
372  { "TCVN-5712", 85 },
373  { "TCVN5712-1", 85 },
374  { "TCVN5712-1:1993", 85 },
375  { "TIS-620", 61 },
376  { "TIS620", 61 },
377  { "TIS620-0", 61 },
378  { "TIS620.2529-1", 61 },
379  { "TIS620.2533-0", 61 },
380  { "TIS620.2533-1", 61 },
381  { "UCS-2BE", 3 },
382  { "UCS-2LE", 2 },
383  { "UCS-4BE", 86 },
384  { "UCS-4LE", 87 },
385  { "UHC", 30 },
386  { "UNICODE-1-1", 3 },
387  { "UNICODE-1-1-UTF-7", 93 },
388  { "UNICODEBIG", 3 },
389  { "UNICODELITTLE", 2 },
390  { "US", 88 },
391  { "US-ASCII", 88 },
392  { "UTF-16BE", 89 },
393  { "UTF-16LE", 90 },
394  { "UTF-32BE", 91 },
395  { "UTF-32LE", 92 },
396  { "UTF-7", 93 },
397  { "UTF-8", 1 },
398  { "UTF7", 93 },
399  { "UTF8", 1 },
400  { "VISCII", 94 },
401  { "VISCII1.1-1", 94 },
402  { "WINBALTRIM", 20 },
403  { "WINDOWS-1250", 13 },
404  { "WINDOWS-1251", 14 },
405  { "WINDOWS-1252", 15 },
406  { "WINDOWS-1253", 16 },
407  { "WINDOWS-1254", 17 },
408  { "WINDOWS-1255", 18 },
409  { "WINDOWS-1256", 19 },
410  { "WINDOWS-1257", 20 },
411  { "WINDOWS-1258", 21 },
412  { "WINDOWS-874", 27 },
413  { "X0201", 64 },
414  { "X0208", 62 },
415  { "X0212", 60 },
416  { "big5", 5 },
417  { "cp1250", 13 },
418  { "cp1251", 14 },
419  { "cp1252", 15 },
420  { "cp1253", 16 },
421  { "cp1254", 17 },
422  { "cp1255", 18 },
423  { "cp1256", 19 },
424  { "cp1257", 20 },
425  { "cp1258", 21 },
426  { "cp437", 23 },
427  { "cp850", 24 },
428  { "cp862", 25 },
429  { "cp866", 26 },
430  { "cp874", 27 },
431  { "eucJP", 32 },
432  { "eucKR", 33 },
433  { "eucTW", 34 },
434  { "hp15CN", 8 },
435  { "iso81", 0 },
436  { "iso815", 48 },
437  { "iso82", 50 },
438  { "iso83", 51 },
439  { "iso84", 52 },
440  { "iso85", 53 },
441  { "iso86", 54 },
442  { "iso87", 55 },
443  { "iso88", 56 },
444  { "iso88591", 0 },
445  { "iso885915", 48 },
446  { "iso88592", 50 },
447  { "iso88593", 51 },
448  { "iso88594", 52 },
449  { "iso88595", 53 },
450  { "iso88596", 54 },
451  { "iso88597", 55 },
452  { "iso88598", 56 },
453  { "iso88599", 57 },
454  { "iso89", 57 },
455  { "roma8", 83 },
456  { "roman8", 83 },
457  { "sjis", 84 },
458  { "thai8", 61 },
459  { "tis620", 61 },
460  { "utf8", 1 },
461  {NULL, 0}
462 };
463 
464 #endif
465 
466 enum {
467  TDS_CHARSET_ISO_8859_1 = 0,
468  TDS_CHARSET_UTF_8 = 1,
469  TDS_CHARSET_UCS_2LE = 2,
470  TDS_CHARSET_UCS_2BE = 3,
471  TDS_CHARSET_ARMSCII_8 = 4,
472  TDS_CHARSET_BIG_5 = 5,
473  TDS_CHARSET_BIG5_HKSCS = 6,
474  TDS_CHARSET_C99 = 7,
475  TDS_CHARSET_CHINESE = 8,
476  TDS_CHARSET_CN = 9,
477  TDS_CHARSET_CN_GB = 10,
478  TDS_CHARSET_CN_GB_ISOIR165 = 11,
479  TDS_CHARSET_CP1133 = 12,
480  TDS_CHARSET_CP1250 = 13,
481  TDS_CHARSET_CP1251 = 14,
482  TDS_CHARSET_CP1252 = 15,
483  TDS_CHARSET_CP1253 = 16,
484  TDS_CHARSET_CP1254 = 17,
485  TDS_CHARSET_CP1255 = 18,
486  TDS_CHARSET_CP1256 = 19,
487  TDS_CHARSET_CP1257 = 20,
488  TDS_CHARSET_CP1258 = 21,
489  TDS_CHARSET_CP1361 = 22,
490  TDS_CHARSET_CP437 = 23,
491  TDS_CHARSET_CP850 = 24,
492  TDS_CHARSET_CP862 = 25,
493  TDS_CHARSET_CP866 = 26,
494  TDS_CHARSET_CP874 = 27,
495  TDS_CHARSET_CP932 = 28,
496  TDS_CHARSET_CP936 = 29,
497  TDS_CHARSET_CP949 = 30,
498  TDS_CHARSET_CP950 = 31,
499  TDS_CHARSET_EUC_JP = 32,
500  TDS_CHARSET_EUC_KR = 33,
501  TDS_CHARSET_EUC_TW = 34,
502  TDS_CHARSET_GB18030 = 35,
503  TDS_CHARSET_GEORGIAN_ACADEMY = 36,
504  TDS_CHARSET_GEORGIAN_PS = 37,
505  TDS_CHARSET_HZ = 38,
506  TDS_CHARSET_ISO_2022_CN = 39,
507  TDS_CHARSET_ISO_2022_CN_EXT = 40,
508  TDS_CHARSET_ISO_2022_JP = 41,
509  TDS_CHARSET_ISO_2022_JP_1 = 42,
510  TDS_CHARSET_ISO_2022_JP_2 = 43,
511  TDS_CHARSET_ISO_2022_KR = 44,
512  TDS_CHARSET_ISO_8859_10 = 45,
513  TDS_CHARSET_ISO_8859_13 = 46,
514  TDS_CHARSET_ISO_8859_14 = 47,
515  TDS_CHARSET_ISO_8859_15 = 48,
516  TDS_CHARSET_ISO_8859_16 = 49,
517  TDS_CHARSET_ISO_8859_2 = 50,
518  TDS_CHARSET_ISO_8859_3 = 51,
519  TDS_CHARSET_ISO_8859_4 = 52,
520  TDS_CHARSET_ISO_8859_5 = 53,
521  TDS_CHARSET_ISO_8859_6 = 54,
522  TDS_CHARSET_ISO_8859_7 = 55,
523  TDS_CHARSET_ISO_8859_8 = 56,
524  TDS_CHARSET_ISO_8859_9 = 57,
525  TDS_CHARSET_ISO_IR_14 = 58,
526  TDS_CHARSET_ISO_IR_149 = 59,
527  TDS_CHARSET_ISO_IR_159 = 60,
528  TDS_CHARSET_ISO_IR_166 = 61,
529  TDS_CHARSET_ISO_IR_87 = 62,
530  TDS_CHARSET_JAVA = 63,
531  TDS_CHARSET_JISX0201_1976 = 64,
532  TDS_CHARSET_KOI8_R = 65,
533  TDS_CHARSET_KOI8_RU = 66,
534  TDS_CHARSET_KOI8_T = 67,
535  TDS_CHARSET_KOI8_U = 68,
536  TDS_CHARSET_MAC = 69,
537  TDS_CHARSET_MACARABIC = 70,
538  TDS_CHARSET_MACCENTRALEUROPE = 71,
539  TDS_CHARSET_MACCROATIAN = 72,
540  TDS_CHARSET_MACCYRILLIC = 73,
541  TDS_CHARSET_MACGREEK = 74,
542  TDS_CHARSET_MACHEBREW = 75,
543  TDS_CHARSET_MACICELAND = 76,
544  TDS_CHARSET_MACROMANIA = 77,
545  TDS_CHARSET_MACTHAI = 78,
546  TDS_CHARSET_MACTURKISH = 79,
547  TDS_CHARSET_MACUKRAINE = 80,
548  TDS_CHARSET_MULELAO_1 = 81,
549  TDS_CHARSET_NEXTSTEP = 82,
550  TDS_CHARSET_ROMAN8 = 83,
551  TDS_CHARSET_SJIS = 84,
552  TDS_CHARSET_TCVN = 85,
553  TDS_CHARSET_UCS_4BE = 86,
554  TDS_CHARSET_UCS_4LE = 87,
555  TDS_CHARSET_US_ASCII = 88,
556  TDS_CHARSET_UTF_16BE = 89,
557  TDS_CHARSET_UTF_16LE = 90,
558  TDS_CHARSET_UTF_32BE = 91,
559  TDS_CHARSET_UTF_32LE = 92,
560  TDS_CHARSET_UTF_7 = 93,
561  TDS_CHARSET_VISCII = 94,
562  TDS_NUM_CHARSETS = 95
563 };
564 
tds_dynamic_stream_init
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition: stream.c:354
tdsmoney
Definition: proto.h:39
tds_time::tm_mon
int tm_mon
month (0-11)
Definition: convert.c:57
tds_variant
Store variant informations.
Definition: tds.h:605
tds_get_char_data
TDSRET tds_get_char_data(TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition: read.c:195
tdsdaterec::month
TDS_INT month
month number (0-11)
Definition: tds.h:163
tdsdaterec::second
TDS_INT second
0-59
Definition: tds.h:169
tds_time::tm_sec
int tm_sec
seconds (0-59)
Definition: convert.c:61
tds_dynamic_stream::size
size_t size
size of data inside buffer
Definition: stream.h:106
tds_socket::in_buf
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
tds_copy_stream
TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream to another.
Definition: stream.c:163
tds.h
tdsdaterec::timezone
TDS_INT timezone
-840 - 840 minutes from UTC
Definition: tds.h:171
tds_convert_stream
TDSRET tds_convert_stream(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream converting characters.
Definition: stream.c:71
tds_input_stream::read
int(* read)(struct tds_input_stream *stream, void *ptr, size_t len)
read some data Return 0 if end of stream Return <0 if error (actually not defined)
Definition: stream.h:35
tds_blob
Information about blobs (e.g.
Definition: tds.h:594
tdsdaterec::year
TDS_INT year
year
Definition: tds.h:161
tds_varmax_stream
Definition: data.c:489
tds_time::tm_mday
int tm_mday
month day (1-31)
Definition: convert.c:58
tds_column::column_prec
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
tds_time::tm_min
int tm_min
minutes (0-59)
Definition: convert.c:60
TDS_DATETIMEALL
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
tds_get_varint_size
int tds_get_varint_size(TDSCONNECTION *conn, int datatype)
tds_get_varint_size() returns the size of a variable length integer returned in a result string
Definition: tds_types.h:57
tds_socket
Information for a server connection.
Definition: tds.h:1164
tds_generic_get
TDSRET tds_generic_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
Read a data from wire.
Definition: data.c:709
tds_convert_string
const char * tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len)
Convert a string in an allocated buffer.
Definition: query.c:126
tds_numeric_bytes_per_prec
const int tds_numeric_bytes_per_prec[]
The following little table is indexed by precision and will tell us the number of bytes required to s...
Definition: numeric.c:41
tds_get_uint
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:127
tdsmoney4
Definition: proto.h:45
tds_encoding
Information relevant to libiconv.
Definition: tds.h:619
tds_willconvert
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
parse_numeric
static const char * parse_numeric(const char *buf, const char *pend, bool *p_negative, size_t *p_digits, size_t *p_decimals)
Parse a string for numbers.
Definition: convert.c:3385
tds_set_param_type
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
tds_prtype
const char * tds_prtype(int type)
Returns string representation of the given type.
Definition: token.c:3052
string_to_uint8
static TDS_INT string_to_uint8(const char *buf, const char *pend, TDS_UINT8 *res)
convert a number in string to TDS_UINT8
Definition: convert.c:3347
tds_generic_put_info
TDSRET tds_generic_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
Put data information to wire.
Definition: data.c:871
tds_context
Definition: tds.h:1030
tds_strftime
size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *dr, int prec)
format a date string according to an "extended" strftime(3) formatting definition.
Definition: convert.c:2968
tds_get_byte
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
tdsdatetime4
Definition: proto.h:56
TDSBLOB
struct tds_blob TDSBLOB
Information about blobs (e.g.
tds_column_funcs
Definition: tds.h:644
string_to_numeric
static int string_to_numeric(const char *instr, const char *pend, CONV_RESULT *cr)
convert a number in string to a TDSNUMERIC
Definition: convert.c:2266
tds_get_n
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
tdsdump_log
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
tds_convert
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
tds_column::column_size
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
stringz_to_numeric
static int stringz_to_numeric(const char *instr, CONV_RESULT *cr)
convert a zero terminated string to NUMERIC
Definition: convert.c:2260
tds_get_null_type
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2913
tds_dstr_get
DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len)
Reads a string from wire and put in a DSTR.
Definition: read.c:293
string_to_result
static TDS_INT string_to_result(int desttype, const char *s, CONV_RESULT *cr)
Copy a terminated string to result and return len or TDS_CONVERT_NOMEM.
Definition: convert.c:161
tds_datain_stream_init
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
tdsdaterec::quarter
TDS_INT quarter
quarter (0-3)
Definition: tds.h:162
tds_get_string
size_t tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
Fetch a string from the wire.
Definition: read.c:166
tdsdaterec::minute
TDS_INT minute
0-59
Definition: tds.h:168
tds_datain_stream::wire_size
size_t wire_size
bytes still to read
Definition: stream.h:65
string_to_int8
static TDS_INT string_to_int8(const char *buf, const char *pend, TDS_INT8 *res)
convert a number in string to TDS_INT8
Definition: convert.c:3318
tds_generic_put
TDSRET tds_generic_put(TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
Write data to wire.
Definition: data.c:915
_character_set_alias
Definition: iconv.h:73
tds_column::column_scale
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
tdsdaterec::decimicrosecond
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
conv_result
Definition: convert.h:34
tds_input_stream
define a stream of data used for input
Definition: stream.h:30
tdsdaterec::day
TDS_INT day
day of month (1-31)
Definition: tds.h:164
tds_get_conversion_type
TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
Return type suitable for conversions (convert all nullable types to fixed type)
Definition: tds_types.h:125
tds_strndup
char * tds_strndup(const void *s, TDS_INTPTR len)
Copy a string of length len to a new allocated buffer This function does not read more than len bytes...
Definition: util.c:408
tds_iconv_from_collate
TDSICONV * tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5])
Get iconv information from a LCID (to support different column encoding under MSSQL2K)
Definition: iconv.c:1234
tds_column::column_cur_size
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
tds_column::char_conv
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
tds_column::column_varint_size
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
tdsdatetime
Definition: proto.h:50
TDS_DATETIMEALL::offset
TDS_SMALLINT offset
time offset
Definition: tds.h:150
tdsdaterec::weekday
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:166
parse_int8
static TDS_INT parse_int8(const char *buf, const char *pend, TDS_UINT8 *res, bool *p_negative)
convert a number in string to TDS_INT8
Definition: convert.c:3288
tds_datain_stream
input stream to read data from tds protocol
Definition: stream.h:63
TDS_DATETIMEALL::time
TDS_UINT8 time
time, 7 digit precision
Definition: tds.h:148
tdsdaterec
Used by tds_datecrack.
Definition: tds.h:160
tdsnumeric
Definition: proto.h:26
tds_get_size_by_type
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
tds_set_column_type
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
tds_get_usmallint
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
tds_datecrack
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
tdsunique
Definition: proto.h:62
tds_column
Metadata about columns in regular and compute rows.
Definition: tds.h:690
tdsdaterec::hour
TDS_INT hour
0-23
Definition: tds.h:167
tds_fix_column_size
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition: query.c:1491
tds_connection
Definition: tds.h:1092
tds_time::tm_hour
int tm_hour
hours (0-23)
Definition: convert.c:59
tdsdaterec::dayofyear
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:165
tds_column::column_type
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
tds_time
Definition: convert.c:55
binary_to_result
static TDS_INT binary_to_result(int desttype, const void *data, size_t len, CONV_RESULT *cr)
Copy binary data to to result and return len or TDS_CONVERT_NOMEM.
Definition: convert.c:179
tds_time::tm_year
int tm_year
year (0=1900)
Definition: convert.c:56
tds_swap_numeric
static void tds_swap_numeric(TDS_NUMERIC *num)
Converts numeric from Microsoft representation to internal one (Sybase).
Definition: data.c:1667
tds_time::tm_ns
int tm_ns
nanoseconds (0-999999999)
Definition: convert.c:62
tds_dynamic_stream
output stream to write data to a dynamic buffer
Definition: stream.h:99
tds_socket::in_pos
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
TDS_DATETIMEALL::date
TDS_INT date
date, 0 = 1900-01-01
Definition: tds.h:149
tds_numeric_to_string
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition: numeric.c:95
store_monthname
static int store_monthname(const char *, struct tds_time *)
Test if a string is a month name and store correct month number.
Definition: convert.c:2706
string_to_int
static TDS_INT string_to_int(const char *buf, const char *pend, TDS_INT *res)
convert a number in string to TDS_INT
Definition: convert.c:3249