Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes16kdownloads
ecpgtype.h110 linesDownload Raw Back to include
1/*2 * This file implements a data structure that is built and maintained by the3 * preprocessor.4 *5 * All types that can be handled for host variable declarations has to6 * be handled eventually.7 *8 * src/interfaces/ecpg/include/ecpgtype.h9 */10 11/*12 * Here are all the types that we are to handle. Note that it is the type13 * that is registered and that has nothing whatsoever to do with the storage14 * class.15 *16 * Simple types17 * integers: char, short, int, long (signed and unsigned)18 * floats: float, double19 *20 * Complex types:21 * VARCHAR, VARCHAR2 - Strings with length (maxlen is given in the declaration)22 * Arrays of simple types and of VARCHAR, VARCHAR2 (size given in declaration)23 * Records build of simple types, arrays and other structs.24 *25 * Complicating things:26 * typedefs and struct names!27 *28 * Conclusion:29 * This is a typically recursive definition. A structure of typed list elements30 * would probably work fine:31 */32 33#ifndef _ECPGTYPE_H34#define _ECPGTYPE_H35 36#ifdef __cplusplus37extern "C"38{39#endif40 41enum ECPGttype42{43	ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,44	ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,45	ECPGt_long_long, ECPGt_unsigned_long_long,46	ECPGt_bool,47	ECPGt_float, ECPGt_double,48	ECPGt_varchar, ECPGt_varchar2,49	ECPGt_numeric,				/* this is a decimal that stores its digits in50								 * a malloced array */51	ECPGt_decimal,				/* this is a decimal that stores its digits in52								 * a fixed array */53	ECPGt_date,54	ECPGt_timestamp,55	ECPGt_interval,56	ECPGt_array,57	ECPGt_struct,58	ECPGt_union,59	ECPGt_descriptor,			/* sql descriptor, no C variable */60	ECPGt_char_variable,61	ECPGt_const,				/* a constant is needed sometimes */62	ECPGt_EOIT,					/* End of insert types. */63	ECPGt_EORT,					/* End of result types. */64	ECPGt_NO_INDICATOR,			/* no indicator */65	ECPGt_string,				/* trimmed (char *) type */66	ECPGt_sqlda,				/* C struct descriptor */67	ECPGt_bytea68};69 70 /* descriptor items */71enum ECPGdtype72{73	ECPGd_count = 1,74	ECPGd_data,75	ECPGd_di_code,76	ECPGd_di_precision,77	ECPGd_indicator,78	ECPGd_key_member,79	ECPGd_length,80	ECPGd_name,81	ECPGd_nullable,82	ECPGd_octet,83	ECPGd_precision,84	ECPGd_ret_length,85	ECPGd_ret_octet,86	ECPGd_scale,87	ECPGd_type,88	ECPGd_EODT,					/* End of descriptor types. */89	ECPGd_cardinality90};91 92#define IS_SIMPLE_TYPE(type) (((type) >= ECPGt_char && (type) <= ECPGt_interval) || ((type) == ECPGt_string) || ((type) == ECPGt_bytea))93 94/* we also have to handle different statement types */95enum ECPG_statement_type96{97	ECPGst_normal,98	ECPGst_execute,99	ECPGst_exec_immediate,100	ECPGst_prepnormal,101	ECPGst_prepare,102	ECPGst_exec_with_exprlist103};104 105#ifdef __cplusplus106}107#endif108 109#endif							/* _ECPGTYPE_H */110 
codekingpro/portable-devtools · Team Ai