From: Tom Lane Date: Sat, 2 Jun 2007 16:41:41 +0000 (+0000) Subject: Fix erroneous error reporting for overlength input in text_date(), X-Git-Tag: REL7_4_18~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=517b078d0e01f0b659df08cdd19b1f35efb95f3c;p=thirdparty%2Fpostgresql.git Fix erroneous error reporting for overlength input in text_date(), text_time(), and text_timetz(). 7.4-vintage bug found by Greg Stark. --- diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c index b47a71adb5a..a1c57b2e331 100644 --- a/src/backend/utils/adt/date.c +++ b/src/backend/utils/adt/date.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.93.2.3 2005/05/26 02:14:31 neilc Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.93.2.4 2007/06/02 16:41:41 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -523,8 +523,9 @@ text_date(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_DATETIME_FORMAT), errmsg("invalid input syntax for type date: \"%s\"", - VARDATA(str)))); - + DatumGetCString(DirectFunctionCall1(textout, + PointerGetDatum(str)))))); + sp = VARDATA(str); dp = dstr; for (i = 0; i < (VARSIZE(str) - VARHDRSZ); i++) @@ -1249,7 +1250,8 @@ text_time(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_DATETIME_FORMAT), errmsg("invalid input syntax for type time: \"%s\"", - VARDATA(str)))); + DatumGetCString(DirectFunctionCall1(textout, + PointerGetDatum(str)))))); sp = VARDATA(str); dp = dstr; @@ -2017,8 +2019,9 @@ text_timetz(PG_FUNCTION_ARGS) if (VARSIZE(str) - VARHDRSZ > MAXDATELEN) ereport(ERROR, (errcode(ERRCODE_INVALID_DATETIME_FORMAT), - errmsg("invalid input syntax for type time with time zone: \"%s\"", - VARDATA(str)))); + errmsg("invalid input syntax for type time with time zone: \"%s\"", + DatumGetCString(DirectFunctionCall1(textout, + PointerGetDatum(str)))))); sp = VARDATA(str); dp = dstr;