Fixed error handling in Informix compat str to date conversion.
authorMichael Meskes <meskes@postgresql.org>
Tue, 7 Oct 2003 05:46:56 +0000 (05:46 +0000)
committerMichael Meskes <meskes@postgresql.org>
Tue, 7 Oct 2003 05:46:56 +0000 (05:46 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/compatlib/informix.c
src/interfaces/ecpg/pgtypeslib/datetime.c

index 54d7abd8f893c2b3dcccb4ec040d24303ddc5e0f..ce7fe1e7111b492395cb2246a008b1f03670c697 100644 (file)
@@ -1675,6 +1675,10 @@ Mon Oct  6 08:41:45 CEST 2003
        - Fixed constant listing in execute using clause.
        - Fixed typo in ecpg for Informix dec_t type.
        - Fixed precision handling in Informix compat funxtions.
+       
+Tue Oct  7 07:45:09 CEST 2003
+
+       - Fixed error handling in rstrdate.
        - Set ecpg version to 3.0.0
        - Set ecpg library to 4.0.0
        - Set pgtypes library to 1.0.0
index 500786cbeded248d010c4fc09babb96b8f918e1d..59e4763ccd05e6de1f47ce73eccefa2f1fe70725 100644 (file)
@@ -436,7 +436,7 @@ rstrdate(char *str, date * d)
 {
        date            dat = PGTYPESdate_from_asc(str, NULL);
 
-       if (errno != PGTYPES_DATE_BAD_DATE && dat == 0)
+       if (errno && errno != PGTYPES_DATE_BAD_DATE)
                return ECPG_INFORMIX_BAD_DATE;
 
        *d = dat;
index 9e951022f9a47be599ddbd72c2d944a5d00b99f7..add4841c37c89171a296aba944e504184f0a359d 100644 (file)
@@ -53,14 +53,14 @@ PGTYPESdate_from_asc(char *str, char **endptr)
        if (strlen(str) >= sizeof(lowstr))
        {
                errno = PGTYPES_DATE_BAD_DATE;
-               return 0;
+               return INT_MIN;
        }
 
        if ((ParseDateTime(str, lowstr, field, ftype, MAXDATEFIELDS, &nf, ptr) != 0)
                || (DecodeDateTime(field, ftype, nf, &dtype, tm, &fsec, &tzp, EuroDates) != 0))
        {
                errno = PGTYPES_DATE_BAD_DATE;
-               return 0;
+               return INT_MIN;
        }
 
        switch (dtype)
@@ -74,7 +74,7 @@ PGTYPESdate_from_asc(char *str, char **endptr)
 
                default:
                        errno = PGTYPES_DATE_BAD_DATE;
-                       return -1;
+                       return INT_MIN;
        }
 
        dDate = (date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1));