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,
47 ECPGt_numeric, /* this is a decimal that stores its
48 * digits in a malloced array */
49 ECPGt_decimal, /* this is a decimal that stores its
50 * digits in a fixed array */
57 ECPGt_descriptor, /* sql descriptor, no C variable */
59 ECPGt_const, /* a constant is needed sometimes */
60 ECPGt_EOIT, /* End of insert types. */
61 ECPGt_EORT, /* End of result types. */
62 ECPGt_NO_INDICATOR /* no indicator */
65 /* descriptor items */
83 ECPGd_EODT, /* End of descriptor types. */
87 #define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_interval)
93 #endif /* _ECPGTYPE_H */