From 083b9133aa0e5e91d74ba46b530a74989223324d Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 15 Aug 2012 16:48:05 -0400 Subject: [PATCH] On second thought, explain why date_trunc("week") on interval values is not supported in the error message, rather than the docs. --- doc/src/sgml/func.sgml | 5 ----- src/backend/utils/adt/timestamp.c | 15 +++++++++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 5d0c71a8b9..d5ad4718b1 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -7050,11 +7050,6 @@ date_trunc('field', source - - week is not supported for interval - values because months usually have fractional weeks. - - Examples: diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 8593b6b47f..2adc178de4 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -3710,10 +3710,17 @@ interval_trunc(PG_FUNCTION_ARGS) break; default: - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("interval units \"%s\" not supported", - lowunits))); + if (val == DTK_WEEK) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("interval units \"%s\" not supported " + "because months usually have fractional weeks", + lowunits))); + else + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("interval units \"%s\" not supported", + lowunits))); } if (tm2interval(tm, fsec, result) != 0)