4 struct ECPGstruct_member
8 struct ECPGstruct_member *next;
14 long size; /* For array it is the number of elements.
15 * For varchar it is the maxsize of the
19 struct ECPGtype *element; /* For an array this is the type
22 struct ECPGstruct_member *members;
23 /* A pointer to a list of members. */
27 /* Everything is malloced. */
28 void ECPGmake_struct_member(char *, struct ECPGtype *, struct ECPGstruct_member **);
29 struct ECPGtype *ECPGmake_simple_type(enum ECPGttype, long);
30 struct ECPGtype *ECPGmake_varchar_type(enum ECPGttype, long);
31 struct ECPGtype *ECPGmake_array_type(struct ECPGtype *, long);
32 struct ECPGtype *ECPGmake_struct_type(struct ECPGstruct_member *);
35 void ECPGfree_struct_member(struct ECPGstruct_member *);
36 void ECPGfree_type(struct ECPGtype *);
39 The type is dumped as:
40 type-tag <comma> reference-to-variable <comma> arrsize <comma> size <comma>
42 type-tag is one of the simple types or varchar.
43 reference-to-variable can be a reference to a struct element.
44 arrsize is the size of the array in case of array fetches. Otherwise 0.
45 size is the maxsize in case it is a varchar. Otherwise it is the size of
46 the variable (required to do array fetches of structs).
48 void ECPGdump_a_type(FILE *, const char *, struct ECPGtype *, const char *, struct ECPGtype *, const char *, const char *);
50 /* A simple struct to keep a variable and its type. */
57 extern const char *ECPGtype_name(enum ECPGttype typ);
59 /* some stuff for whenever statements */
87 enum ECPGttype type_enum;