*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.205 2009/05/26 02:17:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.206 2009/06/01 16:55:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
tm->tm_hour += val;
AdjustFractSeconds(fval, tm, fsec, SECS_PER_HOUR);
tmask = DTK_M(HOUR);
- type = DTK_DAY;
+ type = DTK_DAY; /* set for next field */
break;
case DTK_DAY:
tm->tm_mday += val;
AdjustFractSeconds(fval, tm, fsec, SECS_PER_DAY);
- tmask = (fmask & DTK_M(DAY)) ? 0 : DTK_M(DAY);
+ tmask = DTK_M(DAY);
break;
case DTK_WEEK:
tm->tm_mday += val * 7;
AdjustFractDays(fval, tm, fsec, 7);
- tmask = (fmask & DTK_M(DAY)) ? 0 : DTK_M(DAY);
+ tmask = DTK_M(WEEK);
break;
case DTK_MONTH:
tm->tm_year += val;
if (fval != 0)
tm->tm_mon += fval * MONTHS_PER_YEAR;
- tmask = (fmask & DTK_M(YEAR)) ? 0 : DTK_M(YEAR);
+ tmask = DTK_M(YEAR);
break;
case DTK_DECADE:
tm->tm_year += val * 10;
if (fval != 0)
tm->tm_mon += fval * MONTHS_PER_YEAR * 10;
- tmask = (fmask & DTK_M(YEAR)) ? 0 : DTK_M(YEAR);
+ tmask = DTK_M(DECADE);
break;
case DTK_CENTURY:
tm->tm_year += val * 100;
if (fval != 0)
tm->tm_mon += fval * MONTHS_PER_YEAR * 100;
- tmask = (fmask & DTK_M(YEAR)) ? 0 : DTK_M(YEAR);
+ tmask = DTK_M(CENTURY);
break;
case DTK_MILLENNIUM:
tm->tm_year += val * 1000;
if (fval != 0)
tm->tm_mon += fval * MONTHS_PER_YEAR * 1000;
- tmask = (fmask & DTK_M(YEAR)) ? 0 : DTK_M(YEAR);
+ tmask = DTK_M(MILLENNIUM);
break;
default:
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/datetime.h,v 1.73 2009/05/26 02:17:50 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/datetime.h,v 1.74 2009/06/01 16:55:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
/* generic fields to help with parsing */
#define ISODATE 22
#define ISOTIME 23
+/* these are only for parsing intervals */
+#define WEEK 24
+#define DECADE 25
+#define CENTURY 26
+#define MILLENNIUM 27
/* reserved for unrecognized string values */
#define UNKNOWN_FIELD 31