1 /* src/interfaces/ecpg/include/pgtypes_interval.h */
2 
3 #ifndef PGTYPES_INTERVAL
4 #define PGTYPES_INTERVAL
5 
6 #include <ecpg_config.h>
7 #include <pgtypes.h>
8 
9 #ifndef C_H
10 
11 #ifdef HAVE_LONG_INT_64
12 #ifndef HAVE_INT64
13 typedef long int int64;
14 #endif
15 #elif defined(HAVE_LONG_LONG_INT_64)
16 #ifndef HAVE_INT64
17 typedef long long int int64;
18 #endif
19 #else
20 /* neither HAVE_LONG_INT_64 nor HAVE_LONG_LONG_INT_64 */
21 #error must have a working 64-bit integer datatype
22 #endif
23 
24 #define HAVE_INT64_TIMESTAMP
25 #endif							/* C_H */
26 
27 typedef struct
28 {
29 	int64		time;			/* all time units other than months and years */
30 	long		month;			/* months and years, after time for alignment */
31 }			interval;
32 
33 #ifdef __cplusplus
34 extern "C"
35 {
36 #endif
37 
38 extern interval * PGTYPESinterval_new(void);
39 extern void PGTYPESinterval_free(interval *);
40 extern interval * PGTYPESinterval_from_asc(char *, char **);
41 extern char *PGTYPESinterval_to_asc(interval *);
42 extern int	PGTYPESinterval_copy(interval *, interval *);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif							/* PGTYPES_INTERVAL */
49