Line data Source code
1 : /*
2 : * This file produced from ./types.pl
3 : */
4 :
5 : /**
6 : * Return the number of bytes needed by specified type.
7 : */
8 : int
9 13771832 : 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 :
52 : /**
53 : * tds_get_varint_size() returns the size of a variable length integer
54 : * returned in a result string
55 : */
56 : int
57 18440621 : tds_get_varint_size(TDSCONNECTION *conn, int datatype)
58 : {
59 18440621 : 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 76123 : case SYBIMAGE:
73 : case SYBTEXT:
74 76123 : return 5;
75 : }
76 :
77 14849336 : if (IS_TDS7_PLUS(conn)) {
78 4852815 : switch (datatype) {
79 : case SYBINT8:
80 : return 0;
81 4781981 : case XSYBBINARY:
82 : case XSYBCHAR:
83 : case XSYBNCHAR:
84 : case XSYBNVARCHAR:
85 : case XSYBVARBINARY:
86 : case XSYBVARCHAR:
87 4781981 : return 2;
88 10974 : case SYBVARIANT:
89 10974 : return 4;
90 29940 : case SYBNTEXT:
91 29940 : return 5;
92 1168 : case SYBMSUDT:
93 : case SYBMSXML:
94 1168 : return 8;
95 : }
96 9996521 : } else if (IS_TDS50(conn)) {
97 9996521 : 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 1453070 : case SYBLONGBINARY:
109 : case SYBLONGCHAR:
110 1453070 : return 4;
111 60 : case SYBUNITEXT:
112 : case SYBXML:
113 60 : return 5;
114 : }
115 : }
116 8566907 : return 1;
117 : }
118 :
119 : /**
120 : * Return type suitable for conversions (convert all nullable types to fixed type)
121 : * @param srctype type to convert
122 : * @param colsize size of type
123 : * @result type for conversion
124 : */
125 : TDS_SERVER_TYPE
126 17657743 : tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
127 : {
128 17657743 : switch (srctype) {
129 : case SYBBITN:
130 : return SYBBIT;
131 490 : case SYBDATEN:
132 490 : return SYBDATE;
133 128002 : case SYBDATETIMN:
134 128002 : switch (colsize) {
135 : case 8:
136 : return SYBDATETIME;
137 74796 : case 4:
138 74796 : return SYBDATETIME4;
139 : }
140 : break;
141 107331 : case SYBFLTN:
142 107331 : switch (colsize) {
143 : case 8:
144 : return SYBFLT8;
145 70125 : case 4:
146 70125 : return SYBREAL;
147 : }
148 : break;
149 6742663 : case SYBINTN:
150 6742663 : switch (colsize) {
151 : case 8:
152 : return SYBINT8;
153 6124819 : case 4:
154 6124819 : return SYBINT4;
155 592062 : case 2:
156 592062 : return SYBINT2;
157 20347 : case 1:
158 20347 : return SYBINT1;
159 : }
160 : break;
161 74312 : case SYBMONEYN:
162 74312 : switch (colsize) {
163 : case 8:
164 : return SYBMONEY;
165 50608 : case 4:
166 50608 : return SYBMONEY4;
167 : }
168 : break;
169 490 : case SYBTIMEN:
170 490 : return SYBTIME;
171 2024 : case SYBUINTN:
172 2024 : switch (colsize) {
173 : case 8:
174 : return SYBUINT8;
175 854 : case 4:
176 854 : return SYBUINT4;
177 390 : case 2:
178 390 : return SYBUINT2;
179 390 : case 1:
180 390 : return SYBUINT1;
181 : }
182 : break;
183 306 : case SYB5INT8:
184 306 : return SYBINT8;
185 : default:
186 : break;
187 : }
188 10584127 : 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
|