FreeTDS API
tds_types.h
1 /*
2  * This file produced from ./types.pl
3  */
4 
8 int
9 tds_get_size_by_type(TDS_SERVER_TYPE servertype)
10 {
11  switch (servertype) {
12  case SYBVOID:
13  return 0;
14  case SYBBIT:
15  case SYBBITN:
16  case SYBINT1:
17  case SYBSINT1:
18  case SYBUINT1:
19  return 1;
20  case SYBINT2:
21  case SYBUINT2:
22  return 2;
23  case SYBMSDATE:
24  return 3;
25  case SYBDATE:
26  case SYBDATEN:
27  case SYBDATETIME4:
28  case SYBINT4:
29  case SYBMONEY4:
30  case SYBREAL:
31  case SYBTIME:
32  case SYBTIMEN:
33  case SYBUINT4:
34  return 4;
35  case SYB5BIGDATETIME:
36  case SYB5BIGTIME:
37  case SYB5INT8:
38  case SYBDATETIME:
39  case SYBFLT8:
40  case SYBINT8:
41  case SYBINTERVAL:
42  case SYBMONEY:
43  case SYBUINT8:
44  return 8;
45  case SYBUNIQUE:
46  return 16;
47  default:
48  return 0;
49  }
50 }
51 
56 int
57 tds_get_varint_size(TDSCONNECTION *conn, int datatype)
58 {
59  switch (datatype) {
60  case SYBBIT:
61  case SYBDATETIME:
62  case SYBDATETIME4:
63  case SYBFLT8:
64  case SYBINT1:
65  case SYBINT2:
66  case SYBINT4:
67  case SYBMONEY:
68  case SYBMONEY4:
69  case SYBREAL:
70  case SYBVOID:
71  return 0;
72  case SYBIMAGE:
73  case SYBTEXT:
74  return 5;
75  }
76 
77  if (IS_TDS7_PLUS(conn)) {
78  switch (datatype) {
79  case SYBINT8:
80  return 0;
81  case XSYBBINARY:
82  case XSYBCHAR:
83  case XSYBNCHAR:
84  case XSYBNVARCHAR:
85  case XSYBVARBINARY:
86  case XSYBVARCHAR:
87  return 2;
88  case SYBVARIANT:
89  return 4;
90  case SYBNTEXT:
91  return 5;
92  case SYBMSUDT:
93  case SYBMSXML:
94  return 8;
95  }
96  } else if (IS_TDS50(conn)) {
97  switch (datatype) {
98  case SYB5INT8:
99  case SYBDATE:
100  case SYBINTERVAL:
101  case SYBSINT1:
102  case SYBTIME:
103  case SYBUINT1:
104  case SYBUINT2:
105  case SYBUINT4:
106  case SYBUINT8:
107  return 0;
108  case SYBLONGBINARY:
109  case SYBLONGCHAR:
110  return 4;
111  case SYBUNITEXT:
112  case SYBXML:
113  return 5;
114  }
115  }
116  return 1;
117 }
118 
125 TDS_SERVER_TYPE
126 tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
127 {
128  switch (srctype) {
129  case SYBBITN:
130  return SYBBIT;
131  case SYBDATEN:
132  return SYBDATE;
133  case SYBDATETIMN:
134  switch (colsize) {
135  case 8:
136  return SYBDATETIME;
137  case 4:
138  return SYBDATETIME4;
139  }
140  break;
141  case SYBFLTN:
142  switch (colsize) {
143  case 8:
144  return SYBFLT8;
145  case 4:
146  return SYBREAL;
147  }
148  break;
149  case SYBINTN:
150  switch (colsize) {
151  case 8:
152  return SYBINT8;
153  case 4:
154  return SYBINT4;
155  case 2:
156  return SYBINT2;
157  case 1:
158  return SYBINT1;
159  }
160  break;
161  case SYBMONEYN:
162  switch (colsize) {
163  case 8:
164  return SYBMONEY;
165  case 4:
166  return SYBMONEY4;
167  }
168  break;
169  case SYBTIMEN:
170  return SYBTIME;
171  case SYBUINTN:
172  switch (colsize) {
173  case 8:
174  return SYBUINT8;
175  case 4:
176  return SYBUINT4;
177  case 2:
178  return SYBUINT2;
179  case 1:
180  return SYBUINT1;
181  }
182  break;
183  case SYB5INT8:
184  return SYBINT8;
185  default:
186  break;
187  }
188  return srctype;
189 }
190 
191 const uint16_t tds_type_flags_ms[256] = {
192  /* 0 empty */
193  TDS_TYPEFLAG_INVALID,
194  /* 1 empty */
195  TDS_TYPEFLAG_INVALID,
196  /* 2 empty */
197  TDS_TYPEFLAG_INVALID,
198  /* 3 empty */
199  TDS_TYPEFLAG_INVALID,
200  /* 4 empty */
201  TDS_TYPEFLAG_INVALID,
202  /* 5 empty */
203  TDS_TYPEFLAG_INVALID,
204  /* 6 empty */
205  TDS_TYPEFLAG_INVALID,
206  /* 7 empty */
207  TDS_TYPEFLAG_INVALID,
208  /* 8 empty */
209  TDS_TYPEFLAG_INVALID,
210  /* 9 empty */
211  TDS_TYPEFLAG_INVALID,
212  /* 10 empty */
213  TDS_TYPEFLAG_INVALID,
214  /* 11 empty */
215  TDS_TYPEFLAG_INVALID,
216  /* 12 empty */
217  TDS_TYPEFLAG_INVALID,
218  /* 13 empty */
219  TDS_TYPEFLAG_INVALID,
220  /* 14 empty */
221  TDS_TYPEFLAG_INVALID,
222  /* 15 empty */
223  TDS_TYPEFLAG_INVALID,
224  /* 16 empty */
225  TDS_TYPEFLAG_INVALID,
226  /* 17 empty */
227  TDS_TYPEFLAG_INVALID,
228  /* 18 empty */
229  TDS_TYPEFLAG_INVALID,
230  /* 19 empty */
231  TDS_TYPEFLAG_INVALID,
232  /* 20 empty */
233  TDS_TYPEFLAG_INVALID,
234  /* 21 empty */
235  TDS_TYPEFLAG_INVALID,
236  /* 22 empty */
237  TDS_TYPEFLAG_INVALID,
238  /* 23 empty */
239  TDS_TYPEFLAG_INVALID,
240  /* 24 empty */
241  TDS_TYPEFLAG_INVALID,
242  /* 25 empty */
243  TDS_TYPEFLAG_INVALID,
244  /* 26 empty */
245  TDS_TYPEFLAG_INVALID,
246  /* 27 empty */
247  TDS_TYPEFLAG_INVALID,
248  /* 28 empty */
249  TDS_TYPEFLAG_INVALID,
250  /* 29 empty */
251  TDS_TYPEFLAG_INVALID,
252  /* 30 empty */
253  TDS_TYPEFLAG_INVALID,
254  /* 31 SYBVOID */
255  TDS_TYPEFLAG_FIXED,
256  /* 32 empty */
257  TDS_TYPEFLAG_INVALID,
258  /* 33 empty */
259  TDS_TYPEFLAG_INVALID,
260  /* 34 SYBIMAGE */
261  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_TEXTPTR,
262  /* 35 SYBTEXT */
263  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_TEXTPTR,
264  /* 36 SYBUNIQUE */
265  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
266  /* 37 SYBVARBINARY */
267  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_VARIANT,
268  /* 38 SYBINTN */
269  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
270  /* 39 SYBVARCHAR */
271  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_VARIANT,
272  /* 40 SYBMSDATE */
273  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
274  /* 41 SYBMSTIME */
275  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
276  /* 42 SYBMSDATETIME2 */
277  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
278  /* 43 SYBMSDATETIMEOFFSET */
279  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
280  /* 44 empty */
281  TDS_TYPEFLAG_INVALID,
282  /* 45 SYBBINARY */
283  TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_VARIANT,
284  /* 46 empty */
285  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
286  /* 47 SYBCHAR */
287  TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_VARIANT,
288  /* 48 SYBINT1 */
289  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
290  /* 49 empty */
291  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME,
292  /* 50 SYBBIT */
293  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
294  /* 51 empty */
295  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME,
296  /* 52 SYBINT2 */
297  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
298  /* 53 empty */
299  TDS_TYPEFLAG_INVALID,
300  /* 54 empty */
301  TDS_TYPEFLAG_INVALID,
302  /* 55 empty */
303  TDS_TYPEFLAG_INVALID,
304  /* 56 SYBINT4 */
305  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
306  /* 57 empty */
307  TDS_TYPEFLAG_INVALID,
308  /* 58 SYBDATETIME4 */
309  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
310  /* 59 SYBREAL */
311  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
312  /* 60 SYBMONEY */
313  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
314  /* 61 SYBDATETIME */
315  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
316  /* 62 SYBFLT8 */
317  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
318  /* 63 empty */
319  TDS_TYPEFLAG_INVALID,
320  /* 64 empty */
321  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
322  /* 65 empty */
323  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
324  /* 66 empty */
325  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
326  /* 67 empty */
327  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
328  /* 68 empty */
329  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE,
330  /* 69 empty */
331  TDS_TYPEFLAG_INVALID,
332  /* 70 empty */
333  TDS_TYPEFLAG_INVALID,
334  /* 71 empty */
335  TDS_TYPEFLAG_INVALID,
336  /* 72 empty */
337  TDS_TYPEFLAG_INVALID,
338  /* 73 empty */
339  TDS_TYPEFLAG_INVALID,
340  /* 74 empty */
341  TDS_TYPEFLAG_INVALID,
342  /* 75 empty */
343  TDS_TYPEFLAG_INVALID,
344  /* 76 empty */
345  TDS_TYPEFLAG_INVALID,
346  /* 77 empty */
347  TDS_TYPEFLAG_INVALID,
348  /* 78 empty */
349  TDS_TYPEFLAG_INVALID,
350  /* 79 empty */
351  TDS_TYPEFLAG_INVALID,
352  /* 80 empty */
353  TDS_TYPEFLAG_INVALID,
354  /* 81 empty */
355  TDS_TYPEFLAG_INVALID,
356  /* 82 empty */
357  TDS_TYPEFLAG_INVALID,
358  /* 83 empty */
359  TDS_TYPEFLAG_INVALID,
360  /* 84 empty */
361  TDS_TYPEFLAG_INVALID,
362  /* 85 empty */
363  TDS_TYPEFLAG_INVALID,
364  /* 86 empty */
365  TDS_TYPEFLAG_INVALID,
366  /* 87 empty */
367  TDS_TYPEFLAG_INVALID,
368  /* 88 empty */
369  TDS_TYPEFLAG_INVALID,
370  /* 89 empty */
371  TDS_TYPEFLAG_INVALID,
372  /* 90 empty */
373  TDS_TYPEFLAG_INVALID,
374  /* 91 empty */
375  TDS_TYPEFLAG_INVALID,
376  /* 92 empty */
377  TDS_TYPEFLAG_INVALID,
378  /* 93 empty */
379  TDS_TYPEFLAG_INVALID,
380  /* 94 empty */
381  TDS_TYPEFLAG_INVALID,
382  /* 95 empty */
383  TDS_TYPEFLAG_INVALID,
384  /* 96 empty */
385  TDS_TYPEFLAG_INVALID,
386  /* 97 empty */
387  TDS_TYPEFLAG_INVALID,
388  /* 98 SYBVARIANT */
389  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE,
390  /* 99 SYBNTEXT */
391  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_TEXTPTR,
392  /* 100 empty */
393  TDS_TYPEFLAG_INVALID,
394  /* 101 empty */
395  TDS_TYPEFLAG_INVALID,
396  /* 102 empty */
397  TDS_TYPEFLAG_INVALID,
398  /* 103 SYBNVARCHAR */
399  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_VARIANT,
400  /* 104 SYBBITN */
401  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
402  /* 105 empty */
403  TDS_TYPEFLAG_INVALID,
404  /* 106 SYBDECIMAL */
405  TDS_TYPEFLAG_NUMERIC | TDS_TYPEFLAG_VARIANT,
406  /* 107 empty */
407  TDS_TYPEFLAG_INVALID,
408  /* 108 SYBNUMERIC */
409  TDS_TYPEFLAG_NUMERIC | TDS_TYPEFLAG_VARIANT,
410  /* 109 SYBFLTN */
411  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
412  /* 110 SYBMONEYN */
413  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
414  /* 111 SYBDATETIMN */
415  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
416  /* 112 empty */
417  TDS_TYPEFLAG_INVALID,
418  /* 113 empty */
419  TDS_TYPEFLAG_INVALID,
420  /* 114 empty */
421  TDS_TYPEFLAG_INVALID,
422  /* 115 empty */
423  TDS_TYPEFLAG_INVALID,
424  /* 116 empty */
425  TDS_TYPEFLAG_INVALID,
426  /* 117 empty */
427  TDS_TYPEFLAG_INVALID,
428  /* 118 empty */
429  TDS_TYPEFLAG_INVALID,
430  /* 119 empty */
431  TDS_TYPEFLAG_INVALID,
432  /* 120 empty */
433  TDS_TYPEFLAG_INVALID,
434  /* 121 empty */
435  TDS_TYPEFLAG_INVALID,
436  /* 122 SYBMONEY4 */
437  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
438  /* 123 empty */
439  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
440  /* 124 empty */
441  TDS_TYPEFLAG_INVALID,
442  /* 125 empty */
443  TDS_TYPEFLAG_INVALID,
444  /* 126 empty */
445  TDS_TYPEFLAG_INVALID,
446  /* 127 SYBINT8 */
447  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
448  /* 128 empty */
449  TDS_TYPEFLAG_INVALID,
450  /* 129 empty */
451  TDS_TYPEFLAG_INVALID,
452  /* 130 empty */
453  TDS_TYPEFLAG_INVALID,
454  /* 131 empty */
455  TDS_TYPEFLAG_INVALID,
456  /* 132 empty */
457  TDS_TYPEFLAG_INVALID,
458  /* 133 empty */
459  TDS_TYPEFLAG_INVALID,
460  /* 134 empty */
461  TDS_TYPEFLAG_INVALID,
462  /* 135 empty */
463  TDS_TYPEFLAG_INVALID,
464  /* 136 empty */
465  TDS_TYPEFLAG_INVALID,
466  /* 137 empty */
467  TDS_TYPEFLAG_INVALID,
468  /* 138 empty */
469  TDS_TYPEFLAG_INVALID,
470  /* 139 empty */
471  TDS_TYPEFLAG_INVALID,
472  /* 140 empty */
473  TDS_TYPEFLAG_INVALID,
474  /* 141 empty */
475  TDS_TYPEFLAG_INVALID,
476  /* 142 empty */
477  TDS_TYPEFLAG_INVALID,
478  /* 143 empty */
479  TDS_TYPEFLAG_INVALID,
480  /* 144 empty */
481  TDS_TYPEFLAG_INVALID,
482  /* 145 empty */
483  TDS_TYPEFLAG_INVALID,
484  /* 146 empty */
485  TDS_TYPEFLAG_INVALID,
486  /* 147 empty */
487  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
488  /* 148 empty */
489  TDS_TYPEFLAG_INVALID,
490  /* 149 empty */
491  TDS_TYPEFLAG_INVALID,
492  /* 150 empty */
493  TDS_TYPEFLAG_INVALID,
494  /* 151 empty */
495  TDS_TYPEFLAG_INVALID,
496  /* 152 empty */
497  TDS_TYPEFLAG_INVALID,
498  /* 153 empty */
499  TDS_TYPEFLAG_INVALID,
500  /* 154 empty */
501  TDS_TYPEFLAG_INVALID,
502  /* 155 empty */
503  TDS_TYPEFLAG_INVALID,
504  /* 156 empty */
505  TDS_TYPEFLAG_INVALID,
506  /* 157 empty */
507  TDS_TYPEFLAG_INVALID,
508  /* 158 empty */
509  TDS_TYPEFLAG_INVALID,
510  /* 159 empty */
511  TDS_TYPEFLAG_INVALID,
512  /* 160 empty */
513  TDS_TYPEFLAG_INVALID,
514  /* 161 empty */
515  TDS_TYPEFLAG_INVALID,
516  /* 162 empty */
517  TDS_TYPEFLAG_INVALID,
518  /* 163 empty */
519  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_TEXTPTR,
520  /* 164 empty */
521  TDS_TYPEFLAG_INVALID,
522  /* 165 XSYBVARBINARY */
523  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_VARIANT,
524  /* 166 empty */
525  TDS_TYPEFLAG_INVALID,
526  /* 167 XSYBVARCHAR */
527  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_VARIANT,
528  /* 168 empty */
529  TDS_TYPEFLAG_INVALID,
530  /* 169 empty */
531  TDS_TYPEFLAG_INVALID,
532  /* 170 empty */
533  TDS_TYPEFLAG_INVALID,
534  /* 171 empty */
535  TDS_TYPEFLAG_INVALID,
536  /* 172 empty */
537  TDS_TYPEFLAG_INVALID,
538  /* 173 XSYBBINARY */
539  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_VARIANT,
540  /* 174 empty */
541  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_TEXTPTR,
542  /* 175 XSYBCHAR */
543  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_VARIANT,
544  /* 176 empty */
545  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
546  /* 177 empty */
547  TDS_TYPEFLAG_INVALID,
548  /* 178 empty */
549  TDS_TYPEFLAG_INVALID,
550  /* 179 empty */
551  TDS_TYPEFLAG_INVALID,
552  /* 180 empty */
553  TDS_TYPEFLAG_INVALID,
554  /* 181 empty */
555  TDS_TYPEFLAG_INVALID,
556  /* 182 empty */
557  TDS_TYPEFLAG_INVALID,
558  /* 183 empty */
559  TDS_TYPEFLAG_INVALID,
560  /* 184 empty */
561  TDS_TYPEFLAG_INVALID,
562  /* 185 empty */
563  TDS_TYPEFLAG_INVALID,
564  /* 186 empty */
565  TDS_TYPEFLAG_INVALID,
566  /* 187 empty */
567  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
568  /* 188 empty */
569  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
570  /* 189 empty */
571  TDS_TYPEFLAG_INVALID,
572  /* 190 empty */
573  TDS_TYPEFLAG_INVALID,
574  /* 191 empty */
575  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
576  /* 192 empty */
577  TDS_TYPEFLAG_INVALID,
578  /* 193 empty */
579  TDS_TYPEFLAG_INVALID,
580  /* 194 empty */
581  TDS_TYPEFLAG_INVALID,
582  /* 195 empty */
583  TDS_TYPEFLAG_INVALID,
584  /* 196 empty */
585  TDS_TYPEFLAG_INVALID,
586  /* 197 empty */
587  TDS_TYPEFLAG_INVALID,
588  /* 198 empty */
589  TDS_TYPEFLAG_INVALID,
590  /* 199 empty */
591  TDS_TYPEFLAG_INVALID,
592  /* 200 empty */
593  TDS_TYPEFLAG_INVALID,
594  /* 201 empty */
595  TDS_TYPEFLAG_INVALID,
596  /* 202 empty */
597  TDS_TYPEFLAG_INVALID,
598  /* 203 empty */
599  TDS_TYPEFLAG_INVALID,
600  /* 204 empty */
601  TDS_TYPEFLAG_INVALID,
602  /* 205 empty */
603  TDS_TYPEFLAG_INVALID,
604  /* 206 empty */
605  TDS_TYPEFLAG_INVALID,
606  /* 207 empty */
607  TDS_TYPEFLAG_INVALID,
608  /* 208 empty */
609  TDS_TYPEFLAG_INVALID,
610  /* 209 empty */
611  TDS_TYPEFLAG_INVALID,
612  /* 210 empty */
613  TDS_TYPEFLAG_INVALID,
614  /* 211 empty */
615  TDS_TYPEFLAG_INVALID,
616  /* 212 empty */
617  TDS_TYPEFLAG_INVALID,
618  /* 213 empty */
619  TDS_TYPEFLAG_INVALID,
620  /* 214 empty */
621  TDS_TYPEFLAG_INVALID,
622  /* 215 empty */
623  TDS_TYPEFLAG_INVALID,
624  /* 216 empty */
625  TDS_TYPEFLAG_INVALID,
626  /* 217 empty */
627  TDS_TYPEFLAG_INVALID,
628  /* 218 empty */
629  TDS_TYPEFLAG_INVALID,
630  /* 219 empty */
631  TDS_TYPEFLAG_INVALID,
632  /* 220 empty */
633  TDS_TYPEFLAG_INVALID,
634  /* 221 empty */
635  TDS_TYPEFLAG_INVALID,
636  /* 222 empty */
637  TDS_TYPEFLAG_INVALID,
638  /* 223 empty */
639  TDS_TYPEFLAG_INVALID,
640  /* 224 empty */
641  TDS_TYPEFLAG_INVALID,
642  /* 225 empty */
643  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY,
644  /* 226 empty */
645  TDS_TYPEFLAG_INVALID,
646  /* 227 empty */
647  TDS_TYPEFLAG_INVALID,
648  /* 228 empty */
649  TDS_TYPEFLAG_INVALID,
650  /* 229 empty */
651  TDS_TYPEFLAG_INVALID,
652  /* 230 empty */
653  TDS_TYPEFLAG_INVALID,
654  /* 231 XSYBNVARCHAR */
655  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_VARIANT,
656  /* 232 empty */
657  TDS_TYPEFLAG_INVALID,
658  /* 233 empty */
659  TDS_TYPEFLAG_INVALID,
660  /* 234 empty */
661  TDS_TYPEFLAG_INVALID,
662  /* 235 empty */
663  TDS_TYPEFLAG_INVALID,
664  /* 236 empty */
665  TDS_TYPEFLAG_INVALID,
666  /* 237 empty */
667  TDS_TYPEFLAG_INVALID,
668  /* 238 empty */
669  TDS_TYPEFLAG_INVALID,
670  /* 239 XSYBNCHAR */
671  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_VARIANT,
672  /* 240 SYBMSUDT */
673  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE,
674  /* 241 SYBMSXML */
675  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE,
676  /* 242 empty */
677  TDS_TYPEFLAG_INVALID,
678  /* 243 SYBMSTABLE */
679  0,
680  /* 244 empty */
681  TDS_TYPEFLAG_INVALID,
682  /* 245 empty */
683  TDS_TYPEFLAG_INVALID,
684  /* 246 empty */
685  TDS_TYPEFLAG_INVALID,
686  /* 247 empty */
687  TDS_TYPEFLAG_INVALID,
688  /* 248 empty */
689  TDS_TYPEFLAG_INVALID,
690  /* 249 empty */
691  TDS_TYPEFLAG_INVALID,
692  /* 250 empty */
693  TDS_TYPEFLAG_INVALID,
694  /* 251 empty */
695  TDS_TYPEFLAG_INVALID,
696  /* 252 empty */
697  TDS_TYPEFLAG_INVALID,
698  /* 253 empty */
699  TDS_TYPEFLAG_INVALID,
700  /* 254 empty */
701  TDS_TYPEFLAG_INVALID,
702  /* 255 empty */
703  TDS_TYPEFLAG_INVALID,
704 };
705 
706 #if 0
707 const uint16_t tds_type_flags_syb[256] = {
708  /* 0 empty */
709  TDS_TYPEFLAG_INVALID,
710  /* 1 empty */
711  TDS_TYPEFLAG_INVALID,
712  /* 2 empty */
713  TDS_TYPEFLAG_INVALID,
714  /* 3 empty */
715  TDS_TYPEFLAG_INVALID,
716  /* 4 empty */
717  TDS_TYPEFLAG_INVALID,
718  /* 5 empty */
719  TDS_TYPEFLAG_INVALID,
720  /* 6 empty */
721  TDS_TYPEFLAG_INVALID,
722  /* 7 empty */
723  TDS_TYPEFLAG_INVALID,
724  /* 8 empty */
725  TDS_TYPEFLAG_INVALID,
726  /* 9 empty */
727  TDS_TYPEFLAG_INVALID,
728  /* 10 empty */
729  TDS_TYPEFLAG_INVALID,
730  /* 11 empty */
731  TDS_TYPEFLAG_INVALID,
732  /* 12 empty */
733  TDS_TYPEFLAG_INVALID,
734  /* 13 empty */
735  TDS_TYPEFLAG_INVALID,
736  /* 14 empty */
737  TDS_TYPEFLAG_INVALID,
738  /* 15 empty */
739  TDS_TYPEFLAG_INVALID,
740  /* 16 empty */
741  TDS_TYPEFLAG_INVALID,
742  /* 17 empty */
743  TDS_TYPEFLAG_INVALID,
744  /* 18 empty */
745  TDS_TYPEFLAG_INVALID,
746  /* 19 empty */
747  TDS_TYPEFLAG_INVALID,
748  /* 20 empty */
749  TDS_TYPEFLAG_INVALID,
750  /* 21 empty */
751  TDS_TYPEFLAG_INVALID,
752  /* 22 empty */
753  TDS_TYPEFLAG_INVALID,
754  /* 23 empty */
755  TDS_TYPEFLAG_INVALID,
756  /* 24 empty */
757  TDS_TYPEFLAG_INVALID,
758  /* 25 empty */
759  TDS_TYPEFLAG_INVALID,
760  /* 26 empty */
761  TDS_TYPEFLAG_INVALID,
762  /* 27 empty */
763  TDS_TYPEFLAG_INVALID,
764  /* 28 empty */
765  TDS_TYPEFLAG_INVALID,
766  /* 29 empty */
767  TDS_TYPEFLAG_INVALID,
768  /* 30 empty */
769  TDS_TYPEFLAG_INVALID,
770  /* 31 SYBVOID */
771  TDS_TYPEFLAG_FIXED,
772  /* 32 empty */
773  TDS_TYPEFLAG_INVALID,
774  /* 33 empty */
775  TDS_TYPEFLAG_INVALID,
776  /* 34 SYBIMAGE */
777  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_TEXTPTR,
778  /* 35 SYBTEXT */
779  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_COLLATE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_TEXTPTR,
780  /* 36 empty */
781  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_NULLABLE,
782  /* 37 SYBVARBINARY */
783  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_VARIANT,
784  /* 38 SYBINTN */
785  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
786  /* 39 SYBVARCHAR */
787  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_VARIANT,
788  /* 40 empty */
789  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
790  /* 41 empty */
791  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
792  /* 42 empty */
793  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
794  /* 43 empty */
795  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
796  /* 44 empty */
797  TDS_TYPEFLAG_INVALID,
798  /* 45 SYBBINARY */
799  TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY | TDS_TYPEFLAG_VARIANT,
800  /* 46 SYBINTERVAL */
801  TDS_TYPEFLAG_FIXED,
802  /* 47 SYBCHAR */
803  TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII | TDS_TYPEFLAG_VARIANT,
804  /* 48 SYBINT1 */
805  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
806  /* 49 SYBDATE */
807  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME,
808  /* 50 SYBBIT */
809  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
810  /* 51 SYBTIME */
811  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME,
812  /* 52 SYBINT2 */
813  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
814  /* 53 empty */
815  TDS_TYPEFLAG_INVALID,
816  /* 54 empty */
817  TDS_TYPEFLAG_INVALID,
818  /* 55 empty */
819  TDS_TYPEFLAG_INVALID,
820  /* 56 SYBINT4 */
821  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
822  /* 57 empty */
823  TDS_TYPEFLAG_INVALID,
824  /* 58 SYBDATETIME4 */
825  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
826  /* 59 SYBREAL */
827  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
828  /* 60 SYBMONEY */
829  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
830  /* 61 SYBDATETIME */
831  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
832  /* 62 SYBFLT8 */
833  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
834  /* 63 empty */
835  TDS_TYPEFLAG_INVALID,
836  /* 64 SYBUINT1 */
837  TDS_TYPEFLAG_FIXED,
838  /* 65 SYBUINT2 */
839  TDS_TYPEFLAG_FIXED,
840  /* 66 SYBUINT4 */
841  TDS_TYPEFLAG_FIXED,
842  /* 67 SYBUINT8 */
843  TDS_TYPEFLAG_FIXED,
844  /* 68 SYBUINTN */
845  TDS_TYPEFLAG_NULLABLE,
846  /* 69 empty */
847  TDS_TYPEFLAG_INVALID,
848  /* 70 empty */
849  TDS_TYPEFLAG_INVALID,
850  /* 71 empty */
851  TDS_TYPEFLAG_INVALID,
852  /* 72 empty */
853  TDS_TYPEFLAG_INVALID,
854  /* 73 empty */
855  TDS_TYPEFLAG_INVALID,
856  /* 74 empty */
857  TDS_TYPEFLAG_INVALID,
858  /* 75 empty */
859  TDS_TYPEFLAG_INVALID,
860  /* 76 empty */
861  TDS_TYPEFLAG_INVALID,
862  /* 77 empty */
863  TDS_TYPEFLAG_INVALID,
864  /* 78 empty */
865  TDS_TYPEFLAG_INVALID,
866  /* 79 empty */
867  TDS_TYPEFLAG_INVALID,
868  /* 80 empty */
869  TDS_TYPEFLAG_INVALID,
870  /* 81 empty */
871  TDS_TYPEFLAG_INVALID,
872  /* 82 empty */
873  TDS_TYPEFLAG_INVALID,
874  /* 83 empty */
875  TDS_TYPEFLAG_INVALID,
876  /* 84 empty */
877  TDS_TYPEFLAG_INVALID,
878  /* 85 empty */
879  TDS_TYPEFLAG_INVALID,
880  /* 86 empty */
881  TDS_TYPEFLAG_INVALID,
882  /* 87 empty */
883  TDS_TYPEFLAG_INVALID,
884  /* 88 empty */
885  TDS_TYPEFLAG_INVALID,
886  /* 89 empty */
887  TDS_TYPEFLAG_INVALID,
888  /* 90 empty */
889  TDS_TYPEFLAG_INVALID,
890  /* 91 empty */
891  TDS_TYPEFLAG_INVALID,
892  /* 92 empty */
893  TDS_TYPEFLAG_INVALID,
894  /* 93 empty */
895  TDS_TYPEFLAG_INVALID,
896  /* 94 empty */
897  TDS_TYPEFLAG_INVALID,
898  /* 95 empty */
899  TDS_TYPEFLAG_INVALID,
900  /* 96 empty */
901  TDS_TYPEFLAG_INVALID,
902  /* 97 empty */
903  TDS_TYPEFLAG_INVALID,
904  /* 98 empty */
905  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE,
906  /* 99 empty */
907  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_TEXTPTR,
908  /* 100 empty */
909  TDS_TYPEFLAG_INVALID,
910  /* 101 empty */
911  TDS_TYPEFLAG_INVALID,
912  /* 102 empty */
913  TDS_TYPEFLAG_INVALID,
914  /* 103 SYBSENSITIVITY */
915  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII,
916  /* 104 SYBBOUNDARY */
917  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII,
918  /* 105 empty */
919  TDS_TYPEFLAG_INVALID,
920  /* 106 SYBDECIMAL */
921  TDS_TYPEFLAG_NUMERIC | TDS_TYPEFLAG_VARIANT,
922  /* 107 empty */
923  TDS_TYPEFLAG_INVALID,
924  /* 108 SYBNUMERIC */
925  TDS_TYPEFLAG_NUMERIC | TDS_TYPEFLAG_VARIANT,
926  /* 109 SYBFLTN */
927  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
928  /* 110 SYBMONEYN */
929  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIANT,
930  /* 111 SYBDATETIMN */
931  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME | TDS_TYPEFLAG_VARIANT,
932  /* 112 empty */
933  TDS_TYPEFLAG_INVALID,
934  /* 113 empty */
935  TDS_TYPEFLAG_INVALID,
936  /* 114 empty */
937  TDS_TYPEFLAG_INVALID,
938  /* 115 empty */
939  TDS_TYPEFLAG_INVALID,
940  /* 116 empty */
941  TDS_TYPEFLAG_INVALID,
942  /* 117 empty */
943  TDS_TYPEFLAG_INVALID,
944  /* 118 empty */
945  TDS_TYPEFLAG_INVALID,
946  /* 119 empty */
947  TDS_TYPEFLAG_INVALID,
948  /* 120 empty */
949  TDS_TYPEFLAG_INVALID,
950  /* 121 empty */
951  TDS_TYPEFLAG_INVALID,
952  /* 122 SYBMONEY4 */
953  TDS_TYPEFLAG_FIXED | TDS_TYPEFLAG_VARIANT,
954  /* 123 SYBDATEN */
955  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
956  /* 124 empty */
957  TDS_TYPEFLAG_INVALID,
958  /* 125 empty */
959  TDS_TYPEFLAG_INVALID,
960  /* 126 empty */
961  TDS_TYPEFLAG_INVALID,
962  /* 127 empty */
963  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_FIXED,
964  /* 128 empty */
965  TDS_TYPEFLAG_INVALID,
966  /* 129 empty */
967  TDS_TYPEFLAG_INVALID,
968  /* 130 empty */
969  TDS_TYPEFLAG_INVALID,
970  /* 131 empty */
971  TDS_TYPEFLAG_INVALID,
972  /* 132 empty */
973  TDS_TYPEFLAG_INVALID,
974  /* 133 empty */
975  TDS_TYPEFLAG_INVALID,
976  /* 134 empty */
977  TDS_TYPEFLAG_INVALID,
978  /* 135 empty */
979  TDS_TYPEFLAG_INVALID,
980  /* 136 empty */
981  TDS_TYPEFLAG_INVALID,
982  /* 137 empty */
983  TDS_TYPEFLAG_INVALID,
984  /* 138 empty */
985  TDS_TYPEFLAG_INVALID,
986  /* 139 empty */
987  TDS_TYPEFLAG_INVALID,
988  /* 140 empty */
989  TDS_TYPEFLAG_INVALID,
990  /* 141 empty */
991  TDS_TYPEFLAG_INVALID,
992  /* 142 empty */
993  TDS_TYPEFLAG_INVALID,
994  /* 143 empty */
995  TDS_TYPEFLAG_INVALID,
996  /* 144 empty */
997  TDS_TYPEFLAG_INVALID,
998  /* 145 empty */
999  TDS_TYPEFLAG_INVALID,
1000  /* 146 empty */
1001  TDS_TYPEFLAG_INVALID,
1002  /* 147 SYBTIMEN */
1003  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
1004  /* 148 empty */
1005  TDS_TYPEFLAG_INVALID,
1006  /* 149 empty */
1007  TDS_TYPEFLAG_INVALID,
1008  /* 150 empty */
1009  TDS_TYPEFLAG_INVALID,
1010  /* 151 empty */
1011  TDS_TYPEFLAG_INVALID,
1012  /* 152 empty */
1013  TDS_TYPEFLAG_INVALID,
1014  /* 153 empty */
1015  TDS_TYPEFLAG_INVALID,
1016  /* 154 empty */
1017  TDS_TYPEFLAG_INVALID,
1018  /* 155 empty */
1019  TDS_TYPEFLAG_INVALID,
1020  /* 156 empty */
1021  TDS_TYPEFLAG_INVALID,
1022  /* 157 empty */
1023  TDS_TYPEFLAG_INVALID,
1024  /* 158 empty */
1025  TDS_TYPEFLAG_INVALID,
1026  /* 159 empty */
1027  TDS_TYPEFLAG_INVALID,
1028  /* 160 empty */
1029  TDS_TYPEFLAG_INVALID,
1030  /* 161 empty */
1031  TDS_TYPEFLAG_INVALID,
1032  /* 162 empty */
1033  TDS_TYPEFLAG_INVALID,
1034  /* 163 SYBXML */
1035  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_TEXTPTR,
1036  /* 164 empty */
1037  TDS_TYPEFLAG_INVALID,
1038  /* 165 empty */
1039  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY,
1040  /* 166 empty */
1041  TDS_TYPEFLAG_INVALID,
1042  /* 167 empty */
1043  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE,
1044  /* 168 empty */
1045  TDS_TYPEFLAG_INVALID,
1046  /* 169 empty */
1047  TDS_TYPEFLAG_INVALID,
1048  /* 170 empty */
1049  TDS_TYPEFLAG_INVALID,
1050  /* 171 empty */
1051  TDS_TYPEFLAG_INVALID,
1052  /* 172 empty */
1053  TDS_TYPEFLAG_INVALID,
1054  /* 173 empty */
1055  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY,
1056  /* 174 SYBUNITEXT */
1057  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE | TDS_TYPEFLAG_TEXTPTR,
1058  /* 175 SYBLONGCHAR */
1059  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_ASCII,
1060  /* 176 SYBSINT1 */
1061  TDS_TYPEFLAG_FIXED,
1062  /* 177 empty */
1063  TDS_TYPEFLAG_INVALID,
1064  /* 178 empty */
1065  TDS_TYPEFLAG_INVALID,
1066  /* 179 empty */
1067  TDS_TYPEFLAG_INVALID,
1068  /* 180 empty */
1069  TDS_TYPEFLAG_INVALID,
1070  /* 181 empty */
1071  TDS_TYPEFLAG_INVALID,
1072  /* 182 empty */
1073  TDS_TYPEFLAG_INVALID,
1074  /* 183 empty */
1075  TDS_TYPEFLAG_INVALID,
1076  /* 184 empty */
1077  TDS_TYPEFLAG_INVALID,
1078  /* 185 empty */
1079  TDS_TYPEFLAG_INVALID,
1080  /* 186 empty */
1081  TDS_TYPEFLAG_INVALID,
1082  /* 187 SYB5BIGDATETIME */
1083  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
1084  /* 188 SYB5BIGTIME */
1085  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_DATETIME,
1086  /* 189 empty */
1087  TDS_TYPEFLAG_INVALID,
1088  /* 190 empty */
1089  TDS_TYPEFLAG_INVALID,
1090  /* 191 SYB5INT8 */
1091  TDS_TYPEFLAG_FIXED,
1092  /* 192 empty */
1093  TDS_TYPEFLAG_INVALID,
1094  /* 193 empty */
1095  TDS_TYPEFLAG_INVALID,
1096  /* 194 empty */
1097  TDS_TYPEFLAG_INVALID,
1098  /* 195 empty */
1099  TDS_TYPEFLAG_INVALID,
1100  /* 196 empty */
1101  TDS_TYPEFLAG_INVALID,
1102  /* 197 empty */
1103  TDS_TYPEFLAG_INVALID,
1104  /* 198 empty */
1105  TDS_TYPEFLAG_INVALID,
1106  /* 199 empty */
1107  TDS_TYPEFLAG_INVALID,
1108  /* 200 empty */
1109  TDS_TYPEFLAG_INVALID,
1110  /* 201 empty */
1111  TDS_TYPEFLAG_INVALID,
1112  /* 202 empty */
1113  TDS_TYPEFLAG_INVALID,
1114  /* 203 empty */
1115  TDS_TYPEFLAG_INVALID,
1116  /* 204 empty */
1117  TDS_TYPEFLAG_INVALID,
1118  /* 205 empty */
1119  TDS_TYPEFLAG_INVALID,
1120  /* 206 empty */
1121  TDS_TYPEFLAG_INVALID,
1122  /* 207 empty */
1123  TDS_TYPEFLAG_INVALID,
1124  /* 208 empty */
1125  TDS_TYPEFLAG_INVALID,
1126  /* 209 empty */
1127  TDS_TYPEFLAG_INVALID,
1128  /* 210 empty */
1129  TDS_TYPEFLAG_INVALID,
1130  /* 211 empty */
1131  TDS_TYPEFLAG_INVALID,
1132  /* 212 empty */
1133  TDS_TYPEFLAG_INVALID,
1134  /* 213 empty */
1135  TDS_TYPEFLAG_INVALID,
1136  /* 214 empty */
1137  TDS_TYPEFLAG_INVALID,
1138  /* 215 empty */
1139  TDS_TYPEFLAG_INVALID,
1140  /* 216 empty */
1141  TDS_TYPEFLAG_INVALID,
1142  /* 217 empty */
1143  TDS_TYPEFLAG_INVALID,
1144  /* 218 empty */
1145  TDS_TYPEFLAG_INVALID,
1146  /* 219 empty */
1147  TDS_TYPEFLAG_INVALID,
1148  /* 220 empty */
1149  TDS_TYPEFLAG_INVALID,
1150  /* 221 empty */
1151  TDS_TYPEFLAG_INVALID,
1152  /* 222 empty */
1153  TDS_TYPEFLAG_INVALID,
1154  /* 223 empty */
1155  TDS_TYPEFLAG_INVALID,
1156  /* 224 empty */
1157  TDS_TYPEFLAG_INVALID,
1158  /* 225 SYBLONGBINARY */
1159  TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_BINARY,
1160  /* 226 empty */
1161  TDS_TYPEFLAG_INVALID,
1162  /* 227 empty */
1163  TDS_TYPEFLAG_INVALID,
1164  /* 228 empty */
1165  TDS_TYPEFLAG_INVALID,
1166  /* 229 empty */
1167  TDS_TYPEFLAG_INVALID,
1168  /* 230 empty */
1169  TDS_TYPEFLAG_INVALID,
1170  /* 231 empty */
1171  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE,
1172  /* 232 empty */
1173  TDS_TYPEFLAG_INVALID,
1174  /* 233 empty */
1175  TDS_TYPEFLAG_INVALID,
1176  /* 234 empty */
1177  TDS_TYPEFLAG_INVALID,
1178  /* 235 empty */
1179  TDS_TYPEFLAG_INVALID,
1180  /* 236 empty */
1181  TDS_TYPEFLAG_INVALID,
1182  /* 237 empty */
1183  TDS_TYPEFLAG_INVALID,
1184  /* 238 empty */
1185  TDS_TYPEFLAG_INVALID,
1186  /* 239 empty */
1187  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE,
1188  /* 240 empty */
1189  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE,
1190  /* 241 empty */
1191  TDS_TYPEFLAG_INVALID | TDS_TYPEFLAG_NULLABLE | TDS_TYPEFLAG_VARIABLE | TDS_TYPEFLAG_UNICODE,
1192  /* 242 empty */
1193  TDS_TYPEFLAG_INVALID,
1194  /* 243 empty */
1195  TDS_TYPEFLAG_INVALID,
1196  /* 244 empty */
1197  TDS_TYPEFLAG_INVALID,
1198  /* 245 empty */
1199  TDS_TYPEFLAG_INVALID,
1200  /* 246 empty */
1201  TDS_TYPEFLAG_INVALID,
1202  /* 247 empty */
1203  TDS_TYPEFLAG_INVALID,
1204  /* 248 empty */
1205  TDS_TYPEFLAG_INVALID,
1206  /* 249 empty */
1207  TDS_TYPEFLAG_INVALID,
1208  /* 250 empty */
1209  TDS_TYPEFLAG_INVALID,
1210  /* 251 empty */
1211  TDS_TYPEFLAG_INVALID,
1212  /* 252 empty */
1213  TDS_TYPEFLAG_INVALID,
1214  /* 253 empty */
1215  TDS_TYPEFLAG_INVALID,
1216  /* 254 empty */
1217  TDS_TYPEFLAG_INVALID,
1218  /* 255 empty */
1219  TDS_TYPEFLAG_INVALID,
1220 };
1221 
1222 const char *const tds_type_names[256] = {
1223  /* 0 */
1224  "",
1225  /* 1 */
1226  "",
1227  /* 2 */
1228  "",
1229  /* 3 */
1230  "",
1231  /* 4 */
1232  "",
1233  /* 5 */
1234  "",
1235  /* 6 */
1236  "",
1237  /* 7 */
1238  "",
1239  /* 8 */
1240  "",
1241  /* 9 */
1242  "",
1243  /* 10 */
1244  "",
1245  /* 11 */
1246  "",
1247  /* 12 */
1248  "",
1249  /* 13 */
1250  "",
1251  /* 14 */
1252  "",
1253  /* 15 */
1254  "",
1255  /* 16 */
1256  "",
1257  /* 17 */
1258  "",
1259  /* 18 */
1260  "",
1261  /* 19 */
1262  "",
1263  /* 20 */
1264  "",
1265  /* 21 */
1266  "",
1267  /* 22 */
1268  "",
1269  /* 23 */
1270  "",
1271  /* 24 */
1272  "",
1273  /* 25 */
1274  "",
1275  /* 26 */
1276  "",
1277  /* 27 */
1278  "",
1279  /* 28 */
1280  "",
1281  /* 29 */
1282  "",
1283  /* 30 */
1284  "",
1285  /* 31 */
1286  "SYBVOID",
1287  /* 32 */
1288  "",
1289  /* 33 */
1290  "",
1291  /* 34 */
1292  "SYBIMAGE",
1293  /* 35 */
1294  "SYBTEXT",
1295  /* 36 */
1296  "SYBUNIQUE",
1297  /* 37 */
1298  "SYBVARBINARY",
1299  /* 38 */
1300  "SYBINTN",
1301  /* 39 */
1302  "SYBVARCHAR",
1303  /* 40 */
1304  "SYBMSDATE",
1305  /* 41 */
1306  "SYBMSTIME",
1307  /* 42 */
1308  "SYBMSDATETIME2",
1309  /* 43 */
1310  "SYBMSDATETIMEOFFSET",
1311  /* 44 */
1312  "",
1313  /* 45 */
1314  "SYBBINARY",
1315  /* 46 */
1316  "SYBINTERVAL",
1317  /* 47 */
1318  "SYBCHAR",
1319  /* 48 */
1320  "SYBINT1",
1321  /* 49 */
1322  "SYBDATE",
1323  /* 50 */
1324  "SYBBIT",
1325  /* 51 */
1326  "SYBTIME",
1327  /* 52 */
1328  "SYBINT2",
1329  /* 53 */
1330  "",
1331  /* 54 */
1332  "",
1333  /* 55 */
1334  "",
1335  /* 56 */
1336  "SYBINT4",
1337  /* 57 */
1338  "",
1339  /* 58 */
1340  "SYBDATETIME4",
1341  /* 59 */
1342  "SYBREAL",
1343  /* 60 */
1344  "SYBMONEY",
1345  /* 61 */
1346  "SYBDATETIME",
1347  /* 62 */
1348  "SYBFLT8",
1349  /* 63 */
1350  "",
1351  /* 64 */
1352  "SYBUINT1",
1353  /* 65 */
1354  "SYBUINT2",
1355  /* 66 */
1356  "SYBUINT4",
1357  /* 67 */
1358  "SYBUINT8",
1359  /* 68 */
1360  "SYBUINTN",
1361  /* 69 */
1362  "",
1363  /* 70 */
1364  "",
1365  /* 71 */
1366  "",
1367  /* 72 */
1368  "",
1369  /* 73 */
1370  "",
1371  /* 74 */
1372  "",
1373  /* 75 */
1374  "",
1375  /* 76 */
1376  "",
1377  /* 77 */
1378  "",
1379  /* 78 */
1380  "",
1381  /* 79 */
1382  "",
1383  /* 80 */
1384  "",
1385  /* 81 */
1386  "",
1387  /* 82 */
1388  "",
1389  /* 83 */
1390  "",
1391  /* 84 */
1392  "",
1393  /* 85 */
1394  "",
1395  /* 86 */
1396  "",
1397  /* 87 */
1398  "",
1399  /* 88 */
1400  "",
1401  /* 89 */
1402  "",
1403  /* 90 */
1404  "",
1405  /* 91 */
1406  "",
1407  /* 92 */
1408  "",
1409  /* 93 */
1410  "",
1411  /* 94 */
1412  "",
1413  /* 95 */
1414  "",
1415  /* 96 */
1416  "",
1417  /* 97 */
1418  "",
1419  /* 98 */
1420  "SYBVARIANT",
1421  /* 99 */
1422  "SYBNTEXT",
1423  /* 100 */
1424  "",
1425  /* 101 */
1426  "",
1427  /* 102 */
1428  "",
1429  /* 103 */
1430  "SYBNVARCHAR or SYBSENSITIVITY",
1431  /* 104 */
1432  "SYBBITN or SYBBOUNDARY",
1433  /* 105 */
1434  "",
1435  /* 106 */
1436  "SYBDECIMAL",
1437  /* 107 */
1438  "",
1439  /* 108 */
1440  "SYBNUMERIC",
1441  /* 109 */
1442  "SYBFLTN",
1443  /* 110 */
1444  "SYBMONEYN",
1445  /* 111 */
1446  "SYBDATETIMN",
1447  /* 112 */
1448  "",
1449  /* 113 */
1450  "",
1451  /* 114 */
1452  "",
1453  /* 115 */
1454  "",
1455  /* 116 */
1456  "",
1457  /* 117 */
1458  "",
1459  /* 118 */
1460  "",
1461  /* 119 */
1462  "",
1463  /* 120 */
1464  "",
1465  /* 121 */
1466  "",
1467  /* 122 */
1468  "SYBMONEY4",
1469  /* 123 */
1470  "SYBDATEN",
1471  /* 124 */
1472  "",
1473  /* 125 */
1474  "",
1475  /* 126 */
1476  "",
1477  /* 127 */
1478  "SYBINT8",
1479  /* 128 */
1480  "",
1481  /* 129 */
1482  "",
1483  /* 130 */
1484  "",
1485  /* 131 */
1486  "",
1487  /* 132 */
1488  "",
1489  /* 133 */
1490  "",
1491  /* 134 */
1492  "",
1493  /* 135 */
1494  "",
1495  /* 136 */
1496  "",
1497  /* 137 */
1498  "",
1499  /* 138 */
1500  "",
1501  /* 139 */
1502  "",
1503  /* 140 */
1504  "",
1505  /* 141 */
1506  "",
1507  /* 142 */
1508  "",
1509  /* 143 */
1510  "",
1511  /* 144 */
1512  "",
1513  /* 145 */
1514  "",
1515  /* 146 */
1516  "",
1517  /* 147 */
1518  "SYBTIMEN",
1519  /* 148 */
1520  "",
1521  /* 149 */
1522  "",
1523  /* 150 */
1524  "",
1525  /* 151 */
1526  "",
1527  /* 152 */
1528  "",
1529  /* 153 */
1530  "",
1531  /* 154 */
1532  "",
1533  /* 155 */
1534  "",
1535  /* 156 */
1536  "",
1537  /* 157 */
1538  "",
1539  /* 158 */
1540  "",
1541  /* 159 */
1542  "",
1543  /* 160 */
1544  "",
1545  /* 161 */
1546  "",
1547  /* 162 */
1548  "",
1549  /* 163 */
1550  "SYBXML",
1551  /* 164 */
1552  "",
1553  /* 165 */
1554  "XSYBVARBINARY",
1555  /* 166 */
1556  "",
1557  /* 167 */
1558  "XSYBVARCHAR",
1559  /* 168 */
1560  "",
1561  /* 169 */
1562  "",
1563  /* 170 */
1564  "",
1565  /* 171 */
1566  "",
1567  /* 172 */
1568  "",
1569  /* 173 */
1570  "XSYBBINARY",
1571  /* 174 */
1572  "SYBUNITEXT",
1573  /* 175 */
1574  "XSYBCHAR or SYBLONGCHAR",
1575  /* 176 */
1576  "SYBSINT1",
1577  /* 177 */
1578  "",
1579  /* 178 */
1580  "",
1581  /* 179 */
1582  "",
1583  /* 180 */
1584  "",
1585  /* 181 */
1586  "",
1587  /* 182 */
1588  "",
1589  /* 183 */
1590  "",
1591  /* 184 */
1592  "",
1593  /* 185 */
1594  "",
1595  /* 186 */
1596  "",
1597  /* 187 */
1598  "SYB5BIGDATETIME",
1599  /* 188 */
1600  "SYB5BIGTIME",
1601  /* 189 */
1602  "",
1603  /* 190 */
1604  "",
1605  /* 191 */
1606  "SYB5INT8",
1607  /* 192 */
1608  "",
1609  /* 193 */
1610  "",
1611  /* 194 */
1612  "",
1613  /* 195 */
1614  "",
1615  /* 196 */
1616  "",
1617  /* 197 */
1618  "",
1619  /* 198 */
1620  "",
1621  /* 199 */
1622  "",
1623  /* 200 */
1624  "",
1625  /* 201 */
1626  "",
1627  /* 202 */
1628  "",
1629  /* 203 */
1630  "",
1631  /* 204 */
1632  "",
1633  /* 205 */
1634  "",
1635  /* 206 */
1636  "",
1637  /* 207 */
1638  "",
1639  /* 208 */
1640  "",
1641  /* 209 */
1642  "",
1643  /* 210 */
1644  "",
1645  /* 211 */
1646  "",
1647  /* 212 */
1648  "",
1649  /* 213 */
1650  "",
1651  /* 214 */
1652  "",
1653  /* 215 */
1654  "",
1655  /* 216 */
1656  "",
1657  /* 217 */
1658  "",
1659  /* 218 */
1660  "",
1661  /* 219 */
1662  "",
1663  /* 220 */
1664  "",
1665  /* 221 */
1666  "",
1667  /* 222 */
1668  "",
1669  /* 223 */
1670  "",
1671  /* 224 */
1672  "",
1673  /* 225 */
1674  "SYBLONGBINARY",
1675  /* 226 */
1676  "",
1677  /* 227 */
1678  "",
1679  /* 228 */
1680  "",
1681  /* 229 */
1682  "",
1683  /* 230 */
1684  "",
1685  /* 231 */
1686  "XSYBNVARCHAR",
1687  /* 232 */
1688  "",
1689  /* 233 */
1690  "",
1691  /* 234 */
1692  "",
1693  /* 235 */
1694  "",
1695  /* 236 */
1696  "",
1697  /* 237 */
1698  "",
1699  /* 238 */
1700  "",
1701  /* 239 */
1702  "XSYBNCHAR",
1703  /* 240 */
1704  "SYBMSUDT",
1705  /* 241 */
1706  "SYBMSXML",
1707  /* 242 */
1708  "",
1709  /* 243 */
1710  "SYBMSTABLE",
1711  /* 244 */
1712  "",
1713  /* 245 */
1714  "",
1715  /* 246 */
1716  "",
1717  /* 247 */
1718  "",
1719  /* 248 */
1720  "",
1721  /* 249 */
1722  "",
1723  /* 250 */
1724  "",
1725  /* 251 */
1726  "",
1727  /* 252 */
1728  "",
1729  /* 253 */
1730  "",
1731  /* 254 */
1732  "",
1733  /* 255 */
1734  "",
1735 };
1736 #endif
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
Definition: tds.h:1103
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_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:126