aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2012-08-15 16:48:05 -0400
committerBruce Momjian <bruce@momjian.us>2012-08-15 16:48:05 -0400
commit083b9133aa0e5e91d74ba46b530a74989223324d (patch)
tree23eab4d50dd268781d7a0f3a01ba39a426154233
parent74f4881d7cc9c69cb0e0b236f06d1ebf9859a737 (diff)
downloadpostgresql-083b9133aa0e5e91d74ba46b530a74989223324d.tar.gz
postgresql-083b9133aa0e5e91d74ba46b530a74989223324d.zip
On second thought, explain why date_trunc("week") on interval values is
not supported in the error message, rather than the docs.
-rw-r--r--doc/src/sgml/func.sgml5
-rw-r--r--src/backend/utils/adt/timestamp.c15
2 files changed, 11 insertions, 9 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 5d0c71a8b9f..d5ad4718b15 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -7051,11 +7051,6 @@ date_trunc('<replaceable>field</replaceable>', <replaceable>source</replaceable>
</para>
<para>
- <literal>week</literal> is not supported for <type>interval</>
- values because months usually have fractional weeks.
- </para>
-
- <para>
Examples:
<screen>
SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40');
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index 8593b6b47f4..2adc178de4f 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)