]> granicus.if.org Git - postgresql/commitdiff
Fixed bug in day of week processing.
authorMichael Meskes <meskes@postgresql.org>
Sun, 5 Oct 2003 11:12:00 +0000 (11:12 +0000)
committerMichael Meskes <meskes@postgresql.org>
Sun, 5 Oct 2003 11:12:00 +0000 (11:12 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/pgtypeslib/datetime.c
src/interfaces/ecpg/pgtypeslib/dt.h
src/interfaces/ecpg/pgtypeslib/dt_common.c
src/interfaces/ecpg/pgtypeslib/timestamp.c

index e69457d673e6c7493bebbf40d03e0069c17164df..a99adf1fd52d5d347de61ce62e74b37970c6facb 100644 (file)
@@ -1665,6 +1665,10 @@ Fri Sep 26 17:14:07 CEST 2003
 Fri Oct  3 12:04:57 CEST 2003
 
        - Hide Informix datatypes in PostgreSQL built process.
+       
+Sun Oct  5 13:08:47 CEST 2003
+
+       - Fixed bug in day of week calculation.
        - Set ecpg version to 3.0.0
        - Set ecpg library to 4.0.0
        - Set pgtypes library to 1.0.0
index 2b5e1c93e833875debbdbff4fc505a59bbbe72b6..9e951022f9a47be599ddbd72c2d944a5d00b99f7 100644 (file)
@@ -123,10 +123,10 @@ int
 PGTYPESdate_dayofweek(date dDate)
 {
        /*
-        * Sunday:              0 Monday:          1 Tuesday:     2 Wednesday:   3
+        * Sunday:      0 Monday:          1 Tuesday:     2 Wednesday:   3
         * Thursday:    4 Friday:          5 Saturday:    6
         */
-       return 6 - j2day(dDate + 3);
+       return (int) (dDate + date2j(2000, 1, 1) + 1) % 7;
 }
 
 void
index f745bf2756dde81cfa9df3546843276a5069aacd..2cbc58984bdf4918378d9bae0a1bbda1b5260b3d 100644 (file)
@@ -300,8 +300,6 @@ int                 tm2timestamp(struct tm *, fsec_t, int *, timestamp *);
 int                    DecodeUnits(int field, char *lowtoken, int *val);
 bool           ClearDateCache(bool, bool, bool);
 
-int                    j2day(int jd);
-
 bool           CheckDateTokenTables(void);
 
 int                    EncodeDateOnly(struct tm *, int, char *, bool);
index af9638ddc01274bfdf55372cb4b974ffc6720f31..04aaa70ccfcfbc46be72bbc192923cf64784a527 100644 (file)
@@ -637,17 +637,6 @@ j2date(int jd, int *year, int *month, int *day)
        return;
 }      /* j2date() */
 
-int
-j2day(int date)
-{
-       unsigned int day;
-
-       day = date;
-       day += 1;
-       day %= 7;
-       return (int) day;
-}      /* j2day() */
-
 /* DecodeSpecial()
  * Decode text string using lookup table.
  * Implement a cache lookup since it is likely that dates
@@ -931,7 +920,7 @@ EncodeDateTime(struct tm * tm, fsec_t fsec, int *tzp, char **tzn, int style, cha
                        /* Backward-compatible with traditional Postgres abstime dates */
 
                        day = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday);
-                       tm->tm_wday = j2day(day);
+                       tm->tm_wday = (int) ((day + date2j(2000, 1, 1) + 1) % 7);
 
                        strncpy(str, days[tm->tm_wday], 3);
                        strcpy((str + 3), " ");
index 473fad5af9703fae0daa832d44b3676d627bd0b8..ee7fa3b4f8198ead5dcd90668e9396de3389234f 100644 (file)
@@ -11,7 +11,6 @@
 #include "dt.h"
 #include "pgtypes_timestamp.h"
 #include "pgtypes_date.h"
-#include "datetime.h"
 
 int PGTYPEStimestamp_defmt_scan(char **, char *, timestamp *, int *, int *, int *,
                                                        int *, int *, int *, int *);