PostgreSQL Source Code git master
ecpg_informix.h
Go to the documentation of this file.
1/*
2 * This file contains stuff needed to be as compatible to Informix as possible.
3 * src/interfaces/ecpg/include/ecpg_informix.h
4 */
5#ifndef _ECPG_INFORMIX_H
6#define _ECPG_INFORMIX_H
7
8#include <ecpglib.h>
9#include <pgtypes_date.h>
10#include <pgtypes_interval.h>
11#include <pgtypes_numeric.h>
12#include <pgtypes_timestamp.h>
13
14#define SQLNOTFOUND 100
15
16#define ECPG_INFORMIX_NUM_OVERFLOW -1200
17#define ECPG_INFORMIX_NUM_UNDERFLOW -1201
18#define ECPG_INFORMIX_DIVIDE_ZERO -1202
19#define ECPG_INFORMIX_BAD_YEAR -1204
20#define ECPG_INFORMIX_BAD_MONTH -1205
21#define ECPG_INFORMIX_BAD_DAY -1206
22#define ECPG_INFORMIX_ENOSHORTDATE -1209
23#define ECPG_INFORMIX_DATE_CONVERT -1210
24#define ECPG_INFORMIX_OUT_OF_MEMORY -1211
25#define ECPG_INFORMIX_ENOTDMY -1212
26#define ECPG_INFORMIX_BAD_NUMERIC -1213
27#define ECPG_INFORMIX_BAD_EXPONENT -1216
28#define ECPG_INFORMIX_BAD_DATE -1218
29#define ECPG_INFORMIX_EXTRA_CHARS -1264
30
31#ifdef __cplusplus
32extern "C"
33{
34#endif
35
36extern int rdatestr(date d, char *str);
37extern void rtoday(date * d);
38extern int rjulmdy(date d, short *mdy);
39extern int rdefmtdate(date * d, const char *fmt, const char *str);
40extern int rfmtdate(date d, const char *fmt, char *str);
41extern int rmdyjul(short *mdy, date * d);
42extern int rstrdate(const char *str, date * d);
43extern int rdayofweek(date d);
44
45extern int rfmtlong(long lng_val, const char *fmt, char *outbuf);
46extern int rgetmsg(int msgnum, char *s, int maxsize);
47extern int risnull(int t, const char *ptr);
48extern int rsetnull(int t, char *ptr);
49extern int rtypalign(int offset, int type);
50extern int rtypmsize(int type, int len);
51extern int rtypwidth(int sqltype, int sqllen);
52extern void rupshift(char *str);
53
54extern int byleng(char *str, int len);
55extern void ldchar(char *src, int len, char *dest);
56
57extern void ECPG_informix_set_var(int number, void *pointer, int lineno);
58extern void *ECPG_informix_get_var(int number);
59extern void ECPG_informix_reset_sqlca(void);
60
61/* Informix defines these in decimal.h */
62int decadd(decimal *arg1, decimal *arg2, decimal *sum);
63int deccmp(decimal *arg1, decimal *arg2);
64void deccopy(decimal *src, decimal *target);
65int deccvasc(const char *cp, int len, decimal *np);
66int deccvdbl(double dbl, decimal *np);
67int deccvint(int in, decimal *np);
68int deccvlong(long lng, decimal *np);
69int decdiv(decimal *n1, decimal *n2, decimal *result);
70int decmul(decimal *n1, decimal *n2, decimal *result);
71int decsub(decimal *n1, decimal *n2, decimal *result);
72int dectoasc(decimal *np, char *cp, int len, int right);
73int dectodbl(decimal *np, double *dblp);
74int dectoint(decimal *np, int *ip);
75int dectolong(decimal *np, long *lngp);
76
77/* Informix defines these in datetime.h */
78extern void dtcurrent(timestamp * ts);
79extern int dtcvasc(char *str, timestamp * ts);
80extern int dtsub(timestamp * ts1, timestamp * ts2, interval * iv);
81extern int dttoasc(timestamp * ts, char *output);
82extern int dttofmtasc(timestamp * ts, char *output, int str_len, char *fmtstr);
83extern int intoasc(interval * i, char *str);
84extern int dtcvfmtasc(char *inbuf, char *fmtstr, timestamp * dtvalue);
85
86#ifdef __cplusplus
87}
88#endif
89
90#endif /* ndef _ECPG_INFORMIX_H */
int deccvasc(const char *cp, int len, decimal *np)
Definition: informix.c:198
int rstrdate(const char *str, date *d)
Definition: informix.c:529
int dttofmtasc(timestamp *ts, char *output, int str_len, char *fmtstr)
Definition: informix.c:666
int decadd(decimal *arg1, decimal *arg2, decimal *sum)
Definition: informix.c:151
int rtypwidth(int sqltype, int sqllen)
Definition: informix.c:1011
void ldchar(char *src, int len, char *dest)
Definition: informix.c:977
int rdatestr(date d, char *str)
Definition: informix.c:508
int dtsub(timestamp *ts1, timestamp *ts2, interval *iv)
Definition: informix.c:650
int rfmtlong(long lng_val, const char *fmt, char *outbuf)
Definition: informix.c:768
int deccvlong(long lng, decimal *np)
Definition: informix.c:290
int rtypalign(int offset, int type)
Definition: informix.c:995
int deccvint(int in, decimal *np)
Definition: informix.c:268
int rjulmdy(date d, short *mdy)
Definition: informix.c:541
int dectoasc(decimal *np, char *cp, int len, int right)
Definition: informix.c:381
int dectoint(decimal *np, int *ip)
Definition: informix.c:453
void rupshift(char *str)
Definition: informix.c:962
int dtcvfmtasc(char *inbuf, char *fmtstr, timestamp *dtvalue)
Definition: informix.c:644
void * ECPG_informix_get_var(int number)
Definition: informix.c:1025
int dtcvasc(char *str, timestamp *ts)
Definition: informix.c:618
int decmul(decimal *n1, decimal *n2, decimal *result)
Definition: informix.c:337
int risnull(int t, const char *ptr)
Definition: informix.c:1049
int byleng(char *str, int len)
Definition: informix.c:970
void ECPG_informix_reset_sqlca(void)
Definition: informix.c:1031
int rmdyjul(short *mdy, date *d)
Definition: informix.c:592
void ECPG_informix_set_var(int number, void *pointer, int lineno)
Definition: informix.c:1019
int rdayofweek(date d)
Definition: informix.c:604
int rfmtdate(date d, const char *fmt, char *str)
Definition: informix.c:579
int decsub(decimal *n1, decimal *n2, decimal *result)
Definition: informix.c:359
int dectolong(decimal *np, long *lngp)
Definition: informix.c:480
int deccvdbl(double dbl, decimal *np)
Definition: informix.c:246
int rtypmsize(int type, int len)
Definition: informix.c:1003
int deccmp(decimal *arg1, decimal *arg2)
Definition: informix.c:167
int decdiv(decimal *n1, decimal *n2, decimal *result)
Definition: informix.c:312
int dttoasc(timestamp *ts, char *output)
Definition: informix.c:656
int rsetnull(int t, char *ptr)
Definition: informix.c:1042
void rtoday(date *d)
Definition: informix.c:535
int rgetmsg(int msgnum, char *s, int maxsize)
Definition: informix.c:986
void dtcurrent(timestamp *ts)
Definition: informix.c:612
int rdefmtdate(date *d, const char *fmt, const char *str)
Definition: informix.c:553
int dectodbl(decimal *np, double *dblp)
Definition: informix.c:432
void deccopy(decimal *src, decimal *target)
Definition: informix.c:173
int intoasc(interval *i, char *str)
Definition: informix.c:672
const char * str
FILE * output
int i
Definition: isn.c:74
const void size_t len
long date
Definition: pgtypes_date.h:9
int64 timestamp
static void fmtstr(const char *value, int leftjust, int minlen, int maxwidth, int pointflag, PrintfTarget *target)
Definition: snprintf.c:1003
const char * type