]> granicus.if.org Git - postgresql/commitdiff
- Applied some bug fixing patches by Dave Cramer <dave@fastcrypt.com>.
authorMichael Meskes <meskes@postgresql.org>
Sat, 20 Sep 2003 09:10:09 +0000 (09:10 +0000)
committerMichael Meskes <meskes@postgresql.org>
Sat, 20 Sep 2003 09:10:09 +0000 (09:10 +0000)
- Added protecting defines to include files.

src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/ecpglib/data.c
src/interfaces/ecpg/include/datetime.h
src/interfaces/ecpg/include/decimal.h
src/interfaces/ecpg/include/ecpg_informix.h
src/interfaces/ecpg/include/ecpgerrno.h
src/interfaces/ecpg/include/sql3types.h
src/interfaces/ecpg/include/sqltypes.h
src/interfaces/ecpg/pgtypeslib/numeric.c
src/interfaces/ecpg/pgtypeslib/timestamp.c

index a8724fbd7ce082d4dae30ee0d7a53185af11d4a6..8146eb0e09eafec0f9e982518566c1ea46d5765b 100644 (file)
@@ -1639,6 +1639,12 @@ Thu Sep 18 14:54:47 CEST 2003
 Fri Sep 19 08:33:39 CEST 2003
 
        - Some code cleanup
+       
+Sat Sep 20 11:06:13 CEST 2003
+
+       - Applied some bug fixing patches by Dave Cramer <dave@fastcrypt.com>.
+       - Added protecting defines to include files.
+       - Renamed my own strndup() function because of a name clash.
        - Set ecpg version to 3.0.0
        - Set ecpg library to 4.0.0
        - Set pgtypes library to 1.0.0
index 8be86b0bc2d897134a44737220ad5e629687e719..e1cfc3d2e7c8c04d7dd57e031b63ae41d74aab21 100644 (file)
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.19 2003/09/19 14:06:21 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.20 2003/09/20 09:10:09 meskes Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -393,10 +393,12 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                                        /* did we get an error? */
                                        if (errno != 0)
                                        {
+                                               ECPGlog("ECPGget_data line %d: RESULT: %s errno %d\n", lineno, pval ? pval : "", errno);
+
                                                if (INFORMIX_MODE(compat))
                                                {
                                                        /* Informix wants its own NULL value here instead of an error */
-                                                       ECPGset_informix_null(ECPGt_numeric, &nres);
+                                                       ECPGset_informix_null(ECPGt_numeric, nres);
                                                }
                                                else
                                                {
@@ -440,7 +442,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
                                                if (INFORMIX_MODE(compat))
                                                {
                                                        /* Informix wants its own NULL value here instead of an error */
-                                                       ECPGset_informix_null(ECPGt_interval, &ires);
+                                                       ECPGset_informix_null(ECPGt_interval, ires);
                                                }
                                                else
                                                {
index 4e0773efad07090dd6e9f744cc0961e88c21fc91..c40398da0f4c84cadde6131ecf431c9c5b61122c 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef _ECPG_DATETIME_H
+#define _ECPG_DATETIME_H
+
 #include <pgtypes_timestamp.h>
 #include <pgtypes_interval.h>
 
@@ -11,3 +14,5 @@ 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 */
index c1f724fbd293f95925382c86e4af799f7f7c621a..eff42c22ca381bca7aab215a32d73edd17e59f41 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef _ECPG_DECIMAL_H
+#define _ECPG_DECIMAL_H
+
 #include <pgtypes_numeric.h>
 
 typedef decimal dec_t;
@@ -16,3 +19,5 @@ 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 */
index b7a57fab3b59f15b1c448eade9e1abf281453a33..aea118ef18d25890a3453140069f4b532576ab2c 100644 (file)
@@ -1,3 +1,5 @@
+#ifndef _ECPG_INFORMIX_H
+#define _ECPG_INFORMIX_H
 /*
  * This file contains stuff needed to be as compatible to Informix as possible.
  */
@@ -32,3 +34,5 @@ extern void ldchar(char *, int, char *);
 
 extern void ECPG_informix_set_var(int, void *, int);
 extern void *ECPG_informix_get_var(int);
+
+#endif /* ndef _ECPG_INFORMIX_H */
index 7a551551541a66c560314ae23d5d096abca53d35..87a30ef6ca78b3e3e11ee12a150df7f67a27c4eb 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _ECPG_ERROR_H
-#define _ECPG_ERROR_H
+#ifndef _ECPG_ERRNO_H
+#define _ECPG_ERRNO_H
 
 #include <errno.h>
 
@@ -74,4 +74,4 @@
  /* WARNING:  BlankPortalAssignName: portal * already exists */
 #define ECPG_WARNING_PORTAL_EXISTS        -605
 
-#endif   /* !_ECPG_ERROR_H */
+#endif   /* !_ECPG_ERRNO_H */
index 74a6d2192ec5a68532039dc6bab12a1dcf5d5e04..4dfaa2d494500684dff9b84342118f9e8586552e 100644 (file)
@@ -1,8 +1,11 @@
+#ifndef _ECPG_SQL3TYPES_H
+#define _ECPG_SQL3TYPES_H
+
 /* SQL3 dynamic type codes
  *
  * Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
  *
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/include/sql3types.h,v 1.7 2001/10/28 06:26:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/include/sql3types.h,v 1.8 2003/09/20 09:10:09 meskes Exp $
  */
 
 /* chapter 13.1 table 2: Codes used for SQL data types in Dynamic SQL */
@@ -41,3 +44,5 @@ enum
        SQL3_DDT_ILLEGAL                        /* not a datetime data type (not part of
                                                                 * standard) */
 };
+
+#endif /* !_ECPG_SQL3TYPES_H */
index f8e00c16844eb3c31264597214c53b5b6ece75b3..522e6977aa66c8ad6be61c65c88633727a9c1a22 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef ECPG_SQLTYPES_H
+#define ECPG_SQLTYPES_H
+
 #define CCHARTYPE      ECPGt_char
 #define CSHORTTYPE     ECPGt_short
 #define CINTTYPE       ECPGt_int
@@ -23,3 +26,5 @@
 #define CROWTYPE               123
 #define CLVCHARPTRTYPE 124
 #define CTYPEMAX       25
+
+#endif /* ndef ECPG_SQLTYPES_H */
index c4db798395293b72f54a5d23df43db8a20c989b7..569bcb23b4f2207cef0ba33a31b547a4214248df 100644 (file)
@@ -146,6 +146,7 @@ set_var_from_str(char *str, char **ptr, numeric *dest)
        bool            have_dp = FALSE;
        int                     i = 0;
 
+       errno = 0;
        *ptr = str;
        while (*(*ptr))
        {
@@ -1386,6 +1387,7 @@ PGTYPESnumeric_copy(numeric *src, numeric *dst)
 {
        int                     i;
 
+       if ( dst == NULL ) return -1;
        zero_var(dst);
 
        dst->weight = src->weight;
index 38f735167c2372040385db23bd955f621222c65f..473fad5af9703fae0daa832d44b3676d627bd0b8 100644 (file)
@@ -573,7 +573,7 @@ dttofmtasc_replace(timestamp *ts, date dDate, int dow, struct tm * tm,
                                        break;
                                case 'S':
                                        replace_val.uint_val = tm->tm_sec;
-                                       replace_type = PGTYPES_TYPE_UINT;
+                                       replace_type = PGTYPES_TYPE_UINT_2_LZ;
                                        break;
                                case 't':
                                        replace_val.char_val = '\t';