aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-06-02 16:41:09 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-06-02 16:41:09 +0000
commit376ee1503356c6029f91207636df5dc40e7ec244 (patch)
tree24c7ea54f1c7d70f615208b9a1a7c98e77ea5b78 /src
parent4e023373d0dc5d38b058c1a208188131cd9af902 (diff)
downloadpostgresql-376ee1503356c6029f91207636df5dc40e7ec244.tar.gz
postgresql-376ee1503356c6029f91207636df5dc40e7ec244.zip
Fix erroneous error reporting for overlength input in text_date(),
text_time(), and text_timetz(). 7.4-vintage bug found by Greg Stark.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/date.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 9ead120245f..7e4b461f8f1 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.130 2007/05/30 19:38:05 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.131 2007/06/02 16:41:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -918,8 +918,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++)
@@ -1659,7 +1660,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))))));
len = VARSIZE(str) - VARHDRSZ;
memcpy(dstr, VARDATA(str), len);
@@ -2443,7 +2445,8 @@ text_timetz(PG_FUNCTION_ARGS)
ereport(ERROR,
(errcode(ERRCODE_INVALID_DATETIME_FORMAT),
errmsg("invalid input syntax for type time with time zone: \"%s\"",
- VARDATA(str))));
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(str))))));
sp = VARDATA(str);
dp = dstr;