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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy