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:
41 ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
42 ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
43 ECPGt_long_long, ECPGt_unsigned_long_long,
45 ECPGt_float, ECPGt_double,
46 ECPGt_varchar, ECPGt_varchar2,
54 ECPGt_descriptor, /* sql descriptor, no C variable */
56 ECPGt_const, /* a constant is needed sometimes */
57 ECPGt_EOIT, /* End of insert types. */
58 ECPGt_EORT, /* End of result types. */
59 ECPGt_NO_INDICATOR /* no indicator */
62 /* descriptor items */
80 ECPGd_EODT, /* End of descriptor types. */
84 #define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_interval)
90 #endif /* _ECPGTYPE_H */