Hi all After someone reported somewhat less than informative errors in bytea decoding (http://stackoverflow.com/q/24588866/398670) I thought I'd put together a quick patch to improve the errors here.
Please merge. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
>From 1f8b96526ca19a8843960b6a6ec08357b1f166a8 Mon Sep 17 00:00:00 2001 From: Craig Ringer <cr...@2ndquadrant.com> Date: Sun, 6 Jul 2014 16:15:21 +0800 Subject: [PATCH] Improve bytea decoding error messages --- src/backend/utils/adt/encode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/adt/encode.c b/src/backend/utils/adt/encode.c index 46993ba..67fb574 100644 --- a/src/backend/utils/adt/encode.c +++ b/src/backend/utils/adt/encode.c @@ -292,7 +292,7 @@ b64_decode(const char *src, unsigned len, char *dst) else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("unexpected \"=\""))); + errmsg("unexpected \"=\" while decoding base64 sequence"))); } b = 0; } @@ -304,7 +304,7 @@ b64_decode(const char *src, unsigned len, char *dst) if (b < 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid symbol"))); + errmsg("invalid symbol '%c' while decoding base64 sequence", (int) c))); } /* add it to buffer */ buf = (buf << 6) + b; @@ -324,7 +324,7 @@ b64_decode(const char *src, unsigned len, char *dst) if (pos != 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid end sequence"))); + errmsg("invalid base64 end sequence (missing padding or corrupt or truncated data)"))); return p - dst; } -- 1.9.0
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers