From 1bd5e054ed24fc755c0b28a46474ad00c6c36742 Mon Sep 17 00:00:00 2001 From: Michael Meskes <meskes@postgresql.org> Date: Fri, 3 Oct 2003 10:07:28 +0000 Subject: [PATCH] Hide Informix datatypes. They are not seen by our built process anymore. --- src/interfaces/ecpg/ChangeLog | 4 + src/interfaces/ecpg/compatlib/informix.c | 5 +- src/interfaces/ecpg/include/Makefile | 2 +- src/interfaces/ecpg/include/compatlib.h | 82 +++++++++++++++++++++ src/interfaces/ecpg/include/datetime.h | 11 +-- src/interfaces/ecpg/include/decimal.h | 17 +---- src/interfaces/ecpg/include/ecpg_informix.h | 44 +---------- src/interfaces/ecpg/pgtypeslib/interval.c | 1 - 8 files changed, 93 insertions(+), 73 deletions(-) create mode 100644 src/interfaces/ecpg/include/compatlib.h diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 15b7af94c6d..e69457d673e 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -1661,6 +1661,10 @@ Fri Sep 26 17:14:07 CEST 2003 - Incorrect datatype with precision argument should not create a segfault. + +Fri Oct 3 12:04:57 CEST 2003 + + - Hide Informix datatypes in PostgreSQL built process. - Set ecpg version to 3.0.0 - Set ecpg library to 4.0.0 - Set pgtypes library to 1.0.0 diff --git a/src/interfaces/ecpg/compatlib/informix.c b/src/interfaces/ecpg/compatlib/informix.c index e3559a7a4a8..63f43a7ec9b 100644 --- a/src/interfaces/ecpg/compatlib/informix.c +++ b/src/interfaces/ecpg/compatlib/informix.c @@ -5,9 +5,10 @@ #include <ctype.h> #include <ecpgtype.h> -#include <ecpg_informix.h> +#include <compatlib.h> #include <pgtypes_error.h> #include <pgtypes_date.h> +#include <pgtypes_numeric.h> #include <sqltypes.h> char *ECPGalloc(long, int); @@ -886,7 +887,7 @@ rtypwidth(int sqltype, int sqllen) } int -dtcvfmtasc(char *inbuf, char *fmtstr, dtime_t * dtvalue) +dtcvfmtasc(char *inbuf, char *fmtstr, timestamp * dtvalue) { return PGTYPEStimestamp_defmt_asc(inbuf, fmtstr, dtvalue); } diff --git a/src/interfaces/ecpg/include/Makefile b/src/interfaces/ecpg/include/Makefile index 7320a76c2ea..e7462126bb6 100644 --- a/src/interfaces/ecpg/include/Makefile +++ b/src/interfaces/ecpg/include/Makefile @@ -5,7 +5,7 @@ include $(top_builddir)/src/Makefile.global install: all installdirs install-headers .PHONY: install-headers -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 +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 install-headers: $(ecpg_headers) for i in $^; do $(INSTALL_DATA) $$i $(DESTDIR)$(includedir); done diff --git a/src/interfaces/ecpg/include/compatlib.h b/src/interfaces/ecpg/include/compatlib.h new file mode 100644 index 00000000000..2cb85fdf1ab --- /dev/null +++ b/src/interfaces/ecpg/include/compatlib.h @@ -0,0 +1,82 @@ +#ifndef _COMPATLIB_H +#define _COMPATLIB_H +/* + * This file contains stuff needed to be as compatible to other DBMS as possible. + */ + +#include <ecpglib.h> +#include <pgtypes_date.h> +#include <pgtypes_interval.h> +#include <pgtypes_numeric.h> +#include <pgtypes_timestamp.h> + +/* The following stuff is for Informix compatibility */ + +#define SQLNOTFOUND 100 + +#define ECPG_INFORMIX_NUM_OVERFLOW -1200 +#define ECPG_INFORMIX_NUM_UNDERFLOW -1201 +#define ECPG_INFORMIX_DIVIDE_ZERO -1202 +#define ECPG_INFORMIX_BAD_YEAR -1204 +#define ECPG_INFORMIX_BAD_MONTH -1205 +#define ECPG_INFORMIX_BAD_DAY -1206 +#define ECPG_INFORMIX_ENOSHORTDATE -1209 +#define ECPG_INFORMIX_DATE_CONVERT -1210 +#define ECPG_INFORMIX_OUT_OF_MEMORY -1211 +#define ECPG_INFORMIX_ENOTDMY -1212 +#define ECPG_INFORMIX_BAD_NUMERIC -1213 +#define ECPG_INFORMIX_BAD_EXPONENT -1216 +#define ECPG_INFORMIX_BAD_DATE -1218 +#define ECPG_INFORMIX_EXTRA_CHARS -1264 + +extern int rdatestr(date, char *); +extern void rtoday(date *); +extern int rjulmdy(date, short *); +extern int rdefmtdate(date *, char *, char *); +extern int rfmtdate(date, char *, char *); +extern int rmdyjul(short *, date *); +extern int rstrdate(char *, date *); +extern int rdayofweek(date); + +extern int rfmtlong(long, char *, char *); +extern int rgetmsg(int, char *, int); +extern int risnull(int, char *); +extern int rsetnull(int, char *); +extern int rtypalign(int, int); +extern int rtypmsize(int, int); +extern int rtypwidth(int, int); +extern void rupshift(char *); + +extern int byleng(char *, int); +extern void ldchar(char *, int, char *); + +extern void ECPG_informix_set_var(int, void *, int); +extern void *ECPG_informix_get_var(int); + +/* Informix defines these in decimal.h */ +int decadd(decimal *, decimal *, decimal *); +int deccmp(decimal *, decimal *); +void deccopy(decimal *, decimal *); +int deccvasc(char *, int, decimal *); +int deccvdbl(double, decimal *); +int deccvint(int, decimal *); +int deccvlong(long, decimal *); +int decdiv(decimal *, decimal *, decimal *); +int decmul(decimal *, decimal *, decimal *); +int decsub(decimal *, decimal *, decimal *); +int dectoasc(decimal *, char *, int, int); +int dectodbl(decimal *, double *); +int dectoint(decimal *, int *); +int dectolong(decimal *, long *); + +/* Informix defines these in datetime.h */ + +extern void dtcurrent(timestamp *); +extern int dtcvasc(char *, timestamp *); +extern int dtsub(timestamp *, timestamp *, interval *); +extern int dttoasc(timestamp *, char *); +extern int dttofmtasc(timestamp *, char *, int, char *); +extern int intoasc(interval *, char *); +extern int dtcvfmtasc(char *, char *, timestamp *); + +#endif /* ndef _COMPATLIB_H */ diff --git a/src/interfaces/ecpg/include/datetime.h b/src/interfaces/ecpg/include/datetime.h index c40398da0f4..dd5824a4668 100644 --- a/src/interfaces/ecpg/include/datetime.h +++ b/src/interfaces/ecpg/include/datetime.h @@ -1,18 +1,9 @@ #ifndef _ECPG_DATETIME_H #define _ECPG_DATETIME_H -#include <pgtypes_timestamp.h> -#include <pgtypes_interval.h> +#include <compatlib.h> typedef timestamp dtime_t; typedef interval intrvl_t; -extern void dtcurrent(dtime_t *); -extern int dtcvasc(char *, dtime_t *); -extern int dtsub(dtime_t *, dtime_t *, intrvl_t *); -extern int dttoasc(dtime_t *, char *); -extern int dttofmtasc(dtime_t *, char *, int, char *); -extern int intoasc(intrvl_t *, char *); -extern int dtcvfmtasc(char *, char *, dtime_t *); - #endif /* ndef _ECPG_DATETIME_H */ diff --git a/src/interfaces/ecpg/include/decimal.h b/src/interfaces/ecpg/include/decimal.h index eff42c22ca3..96901927cdd 100644 --- a/src/interfaces/ecpg/include/decimal.h +++ b/src/interfaces/ecpg/include/decimal.h @@ -1,23 +1,8 @@ #ifndef _ECPG_DECIMAL_H #define _ECPG_DECIMAL_H -#include <pgtypes_numeric.h> +#include <compatlib.h> typedef decimal dec_t; -int decadd(dec_t *, dec_t *, dec_t *); -int deccmp(dec_t *, dec_t *); -void deccopy(dec_t *, dec_t *); -int deccvasc(char *, int, dec_t *); -int deccvdbl(double, dec_t *); -int deccvint(int, dec_t *); -int deccvlong(long, dec_t *); -int decdiv(dec_t *, dec_t *, dec_t *); -int decmul(dec_t *, dec_t *, dec_t *); -int decsub(dec_t *, dec_t *, dec_t *); -int dectoasc(dec_t *, char *, int, int); -int dectodbl(dec_t *, double *); -int dectoint(dec_t *, int *); -int dectolong(dec_t *, long *); - #endif /* ndef _ECPG_DECIMAL_H */ diff --git a/src/interfaces/ecpg/include/ecpg_informix.h b/src/interfaces/ecpg/include/ecpg_informix.h index 102db4bc16d..7f8ee28adf2 100644 --- a/src/interfaces/ecpg/include/ecpg_informix.h +++ b/src/interfaces/ecpg/include/ecpg_informix.h @@ -6,48 +6,6 @@ #include <decimal.h> #include <datetime.h> -#include <ecpglib.h> -#include <pgtypes_date.h> - -#define SQLNOTFOUND 100 - -#define ECPG_INFORMIX_NUM_OVERFLOW -1200 -#define ECPG_INFORMIX_NUM_UNDERFLOW -1201 -#define ECPG_INFORMIX_DIVIDE_ZERO -1202 -#define ECPG_INFORMIX_BAD_YEAR -1204 -#define ECPG_INFORMIX_BAD_MONTH -1205 -#define ECPG_INFORMIX_BAD_DAY -1206 -#define ECPG_INFORMIX_ENOSHORTDATE -1209 -#define ECPG_INFORMIX_DATE_CONVERT -1210 -#define ECPG_INFORMIX_OUT_OF_MEMORY -1211 -#define ECPG_INFORMIX_ENOTDMY -1212 -#define ECPG_INFORMIX_BAD_NUMERIC -1213 -#define ECPG_INFORMIX_BAD_EXPONENT -1216 -#define ECPG_INFORMIX_BAD_DATE -1218 -#define ECPG_INFORMIX_EXTRA_CHARS -1264 - -extern int rdatestr(date, char *); -extern void rtoday(date *); -extern int rjulmdy(date, short *); -extern int rdefmtdate(date *, char *, char *); -extern int rfmtdate(date, char *, char *); -extern int rmdyjul(short *, date *); -extern int rstrdate(char *, date *); -extern int rdayofweek(date); - -extern int rfmtlong(long, char *, char *); -extern int rgetmsg(int, char *, int); -extern int risnull(int, char *); -extern int rsetnull(int, char *); -extern int rtypalign(int, int); -extern int rtypmsize(int, int); -extern int rtypwidth(int, int); -extern void rupshift(char *); - -extern int byleng(char *, int); -extern void ldchar(char *, int, char *); - -extern void ECPG_informix_set_var(int, void *, int); -extern void *ECPG_informix_get_var(int); +#include <compatlib.h> #endif /* ndef _ECPG_INFORMIX_H */ diff --git a/src/interfaces/ecpg/pgtypeslib/interval.c b/src/interfaces/ecpg/pgtypeslib/interval.c index cbf60606966..c49cd0e9979 100644 --- a/src/interfaces/ecpg/pgtypeslib/interval.c +++ b/src/interfaces/ecpg/pgtypeslib/interval.c @@ -10,7 +10,6 @@ #include "dt.h" #include "pgtypes_error.h" #include "pgtypes_interval.h" -#include "datetime.h" /* TrimTrailingZeros() * ... resulting from printing numbers with full precision. -- GitLab