diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index cf8009df91..e6f4689a59 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.206 2009/06/01 16:55:11 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.207 2009/06/10 05:05:03 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2917,17 +2917,17 @@ DecodeInterval(char **field, int *ftype, int nf, int range, break; case INTERVAL_MASK(HOUR): case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR): - case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE): - case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND): type = DTK_HOUR; break; case INTERVAL_MASK(MINUTE): case INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE): + case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE): type = DTK_MINUTE; break; case INTERVAL_MASK(SECOND): - case INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND): case INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND): + case INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND): + case INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND): type = DTK_SECOND; break; default: diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out index cf378867c7..a6f50b4622 100644 --- a/src/test/regress/expected/interval.out +++ b/src/test/regress/expected/interval.out @@ -466,11 +466,9 @@ SELECT interval '1 2:03:04' day to hour; (1 row) SELECT interval '1 2' day to minute; - interval ----------------- - 1 day 02:00:00 -(1 row) - +ERROR: invalid input syntax for type interval: "1 2" +LINE 1: SELECT interval '1 2' day to minute; + ^ SELECT interval '1 2:03' day to minute; interval ---------------- @@ -484,11 +482,9 @@ SELECT interval '1 2:03:04' day to minute; (1 row) SELECT interval '1 2' day to second; - interval ----------------- - 1 day 02:00:00 -(1 row) - +ERROR: invalid input syntax for type interval: "1 2" +LINE 1: SELECT interval '1 2' day to second; + ^ SELECT interval '1 2:03' day to second; interval ---------------- @@ -605,11 +601,9 @@ SELECT interval '1.234' second(2); (1 row) SELECT interval '1 2.345' day to second(2); - interval ----------------- - 1 day 02:20:42 -(1 row) - +ERROR: invalid input syntax for type interval: "1 2.345" +LINE 1: SELECT interval '1 2.345' day to second(2); + ^ SELECT interval '1 2:03' day to second(2); interval ----------------