Skip to content

Commit ad8c09c

Browse files
committed
Move Informix compatibility include files out of the way. compatlib.h
was integrated into ecpg_informix.h, the other ones go into their own subdirectory that is automatically considered by the embedded preprocessor when in Informix mode.
1 parent b4ed1ed commit ad8c09c

File tree

7 files changed

+93
-97
lines changed

7 files changed

+93
-97
lines changed

src/interfaces/ecpg/include/Makefile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,22 @@ subdir = src/interfaces/ecpg/include
22
top_builddir = ../../../..
33
include $(top_builddir)/src/Makefile.global
44

5+
informix_esql_dir = $(pkgincludedir)/informix/esql
6+
57
install: all installdirs install-headers
68

79
.PHONY: install-headers
8-
ecpg_headers = ecpgerrno.h ecpglib.h ecpgtype.h sqlca.h sql3types.h ecpg_informix.h pgtypes_error.h pgtypes_numeric.h pgtypes_timestamp.h pgtypes_date.h datetime.h decimal.h pgtypes_interval.h sqltypes.h compatlib.h sqlda.h
10+
ecpg_headers = ecpgerrno.h ecpglib.h ecpgtype.h sqlca.h sql3types.h ecpg_informix.h \
11+
pgtypes_error.h pgtypes_numeric.h pgtypes_timestamp.h pgtypes_date.h pgtypes_interval.h
12+
informix_headers = datetime.h decimal.h sqltypes.h sqlda.h
913

10-
install-headers: $(ecpg_headers)
11-
for i in $^; do $(INSTALL_DATA) $$i $(DESTDIR)$(includedir); done
14+
install-headers: $(ecpg_headers) $(informix_headers)
15+
for i in $(ecpg_headers); do $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir) || exit; done
16+
for i in $(informix_headers); do $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(informix_esql_dir) || exit; done
1217

1318
installdirs:
14-
$(mkinstalldirs) $(DESTDIR)$(includedir)
19+
$(mkinstalldirs) $(DESTDIR)$(includedir) $(DESTDIR)$(informix_esql_dir)
1520

1621
uninstall:
1722
rm -f $(addprefix $(DESTDIR)$(includedir)/, $(ecpg_headers))
23+
rm -f $(addprefix $(DESTDIR)$(informix_esql_dir)/, $(informix_headers))

src/interfaces/ecpg/include/compatlib.h

Lines changed: 0 additions & 82 deletions
This file was deleted.

src/interfaces/ecpg/include/datetime.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef _ECPG_DATETIME_H
22
#define _ECPG_DATETIME_H
33

4-
#include <compatlib.h>
4+
#include <ecpg_informix.h>
55

66
typedef timestamp dtime_t;
77
typedef interval intrvl_t;

src/interfaces/ecpg/include/decimal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef _ECPG_DECIMAL_H
22
#define _ECPG_DECIMAL_H
33

4-
#include <compatlib.h>
4+
#include <ecpg_informix.h>
55

66
typedef decimal dec_t;
77

Lines changed: 75 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,81 @@
1-
#ifndef _ECPG_INFORMIX_H
2-
#define _ECPG_INFORMIX_H
31
/*
42
* This file contains stuff needed to be as compatible to Informix as possible.
3+
*
4+
* $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg_informix.h,v 1.14 2003/12/18 18:55:09 petere Exp $
55
*/
6+
#ifndef _ECPG_INFORMIX_H
7+
#define _ECPG_INFORMIX_H
8+
9+
#include <ecpglib.h>
10+
#include <pgtypes_date.h>
11+
#include <pgtypes_interval.h>
12+
#include <pgtypes_numeric.h>
13+
#include <pgtypes_timestamp.h>
14+
15+
#define SQLNOTFOUND 100
16+
17+
#define ECPG_INFORMIX_NUM_OVERFLOW -1200
18+
#define ECPG_INFORMIX_NUM_UNDERFLOW -1201
19+
#define ECPG_INFORMIX_DIVIDE_ZERO -1202
20+
#define ECPG_INFORMIX_BAD_YEAR -1204
21+
#define ECPG_INFORMIX_BAD_MONTH -1205
22+
#define ECPG_INFORMIX_BAD_DAY -1206
23+
#define ECPG_INFORMIX_ENOSHORTDATE -1209
24+
#define ECPG_INFORMIX_DATE_CONVERT -1210
25+
#define ECPG_INFORMIX_OUT_OF_MEMORY -1211
26+
#define ECPG_INFORMIX_ENOTDMY -1212
27+
#define ECPG_INFORMIX_BAD_NUMERIC -1213
28+
#define ECPG_INFORMIX_BAD_EXPONENT -1216
29+
#define ECPG_INFORMIX_BAD_DATE -1218
30+
#define ECPG_INFORMIX_EXTRA_CHARS -1264
31+
32+
extern int rdatestr(date, char *);
33+
extern void rtoday(date *);
34+
extern int rjulmdy(date, short *);
35+
extern int rdefmtdate(date *, char *, char *);
36+
extern int rfmtdate(date, char *, char *);
37+
extern int rmdyjul(short *, date *);
38+
extern int rstrdate(char *, date *);
39+
extern int rdayofweek(date);
40+
41+
extern int rfmtlong(long, char *, char *);
42+
extern int rgetmsg(int, char *, int);
43+
extern int risnull(int, char *);
44+
extern int rsetnull(int, char *);
45+
extern int rtypalign(int, int);
46+
extern int rtypmsize(int, int);
47+
extern int rtypwidth(int, int);
48+
extern void rupshift(char *);
49+
50+
extern int byleng(char *, int);
51+
extern void ldchar(char *, int, char *);
52+
53+
extern void ECPG_informix_set_var(int, void *, int);
54+
extern void *ECPG_informix_get_var(int);
55+
56+
/* Informix defines these in decimal.h */
57+
int decadd(decimal *, decimal *, decimal *);
58+
int deccmp(decimal *, decimal *);
59+
void deccopy(decimal *, decimal *);
60+
int deccvasc(char *, int, decimal *);
61+
int deccvdbl(double, decimal *);
62+
int deccvint(int, decimal *);
63+
int deccvlong(long, decimal *);
64+
int decdiv(decimal *, decimal *, decimal *);
65+
int decmul(decimal *, decimal *, decimal *);
66+
int decsub(decimal *, decimal *, decimal *);
67+
int dectoasc(decimal *, char *, int, int);
68+
int dectodbl(decimal *, double *);
69+
int dectoint(decimal *, int *);
70+
int dectolong(decimal *, long *);
671

7-
#include <decimal.h>
8-
#include <datetime.h>
9-
#include <compatlib.h>
72+
/* Informix defines these in datetime.h */
73+
extern void dtcurrent(timestamp *);
74+
extern int dtcvasc(char *, timestamp *);
75+
extern int dtsub(timestamp *, timestamp *, interval *);
76+
extern int dttoasc(timestamp *, char *);
77+
extern int dttofmtasc(timestamp *, char *, int, char *);
78+
extern int intoasc(interval *, char *);
79+
extern int dtcvfmtasc(char *, char *, timestamp *);
1080

1181
#endif /* ndef _ECPG_INFORMIX_H */

src/interfaces/ecpg/preproc/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.96 2003/11/30 06:09:47 momjian Exp $
1+
# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.97 2003/12/18 18:55:09 petere Exp $
22

33
subdir = src/interfaces/ecpg/preproc
44
top_builddir = ../../../..
@@ -11,7 +11,8 @@ PATCHLEVEL=0
1111
override CPPFLAGS := -I$(srcdir)/../include -I$(srcdir) $(CPPFLAGS) $(THREAD_CPPFLAGS) \
1212
-DMAJOR_VERSION=$(MAJOR_VERSION) \
1313
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
14-
-DINCLUDE_PATH=\"$(includedir)\"
14+
-DINCLUDEDIR=\"$(includedir)\" \
15+
-DPKGINCLUDEDIR=\"$(pkgincludedir)\"
1516

1617
ifeq ($(GCC), yes)
1718
override CFLAGS += -Wno-error

src/interfaces/ecpg/preproc/ecpg.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.82 2003/11/29 19:52:08 pgsql Exp $ */
1+
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.83 2003/12/18 18:55:09 petere Exp $ */
22

33
/* New main for ecpg, the PostgreSQL embedded SQL precompiler. */
44
/* (C) Michael Meskes <meskes@postgresql.org> Feb 5th, 1998 */
@@ -174,6 +174,7 @@ main(int argc, char *const argv[])
174174
add_preprocessor_define("dec_t=decimal");
175175
add_preprocessor_define("intrvl_t=interval");
176176
add_preprocessor_define("dtime_t=timestamp");
177+
add_include_path(PKGINCLUDEDIR "/informix/esql");
177178
}
178179
else
179180
{
@@ -209,7 +210,7 @@ main(int argc, char *const argv[])
209210

210211
add_include_path(".");
211212
add_include_path("/usr/local/include");
212-
add_include_path(INCLUDE_PATH);
213+
add_include_path(INCLUDEDIR);
213214
add_include_path("/usr/include");
214215

215216
if (verbose)

0 commit comments

Comments
 (0)