2 * This file implements a data structure that is built and maintained by the
5 * All types that can be handled for host variable declarations has to
6 * be handled eventually.
10 * Here are all the types that we are to handle. Note that it is the type
11 * that is registered and that has nothing whatsoever to do with the storage
15 * integers: char, short, int, long (signed and unsigned)
16 * floats: float, double
19 * VARCHAR, VARCHAR2 - Strings with length (maxlen is given in the declaration)
20 * Arrays of simple types and of VARCHAR, VARCHAR2 (size given in declaration)
21 * Records build of simple types, arrays and other structs.
23 * Complicating things:
24 * typedefs and struct names!
27 * This is a typically recursive definition. A structure of typed list elements
28 * would probably work fine:
37 ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
38 ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
40 ECPGt_float, ECPGt_double,
41 ECPGt_varchar, ECPGt_varchar2,
46 ECPGt_EOIT, /* End of insert types. */
47 ECPGt_EORT, /* End of result types. */
48 ECPGt_NO_INDICATOR, /* no indicator */
49 ECPGt_long_long, ECPGt_unsigned_long_long,
50 ECPGt_descriptor /* sql descriptor, no C variable */
53 /* descriptor items */
71 ECPGd_EODT, /* End of descriptor types. */
75 #define IS_SIMPLE_TYPE(type) (((type) >= ECPGt_char && (type) <= ECPGt_varchar2) || ((type)>=ECPGt_long_long && (type) <= ECPGt_unsigned_long_long))