From: Michael Meskes Date: Sun, 5 Oct 2003 11:12:00 +0000 (+0000) Subject: Fixed bug in day of week processing. X-Git-Tag: REL7_4_BETA5~130 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e6b74e4fdc5e976862a1a82233d009765132aef;p=postgresql Fixed bug in day of week processing. --- diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index e69457d673..a99adf1fd5 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -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 diff --git a/src/interfaces/ecpg/pgtypeslib/datetime.c b/src/interfaces/ecpg/pgtypeslib/datetime.c index 2b5e1c93e8..9e951022f9 100644 --- a/src/interfaces/ecpg/pgtypeslib/datetime.c +++ b/src/interfaces/ecpg/pgtypeslib/datetime.c @@ -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 diff --git a/src/interfaces/ecpg/pgtypeslib/dt.h b/src/interfaces/ecpg/pgtypeslib/dt.h index f745bf2756..2cbc58984b 100644 --- a/src/interfaces/ecpg/pgtypeslib/dt.h +++ b/src/interfaces/ecpg/pgtypeslib/dt.h @@ -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); diff --git a/src/interfaces/ecpg/pgtypeslib/dt_common.c b/src/interfaces/ecpg/pgtypeslib/dt_common.c index af9638ddc0..04aaa70ccf 100644 --- a/src/interfaces/ecpg/pgtypeslib/dt_common.c +++ b/src/interfaces/ecpg/pgtypeslib/dt_common.c @@ -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), " "); diff --git a/src/interfaces/ecpg/pgtypeslib/timestamp.c b/src/interfaces/ecpg/pgtypeslib/timestamp.c index 473fad5af9..ee7fa3b4f8 100644 --- a/src/interfaces/ecpg/pgtypeslib/timestamp.c +++ b/src/interfaces/ecpg/pgtypeslib/timestamp.c @@ -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 *);