diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-07-27 04:53:12 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-07-27 04:53:12 +0000 |
commit | b6a1d25b0aa179c86e0607d4c0c3b647dc5bbb87 (patch) | |
tree | 7881c788c3f659b45eb371c0e40fbaf188051cb0 /src/backend/utils/adt/varchar.c | |
parent | 524cfad23f31db70a23fc1fe748c050838d5fad0 (diff) | |
download | postgresql-b6a1d25b0aa179c86e0607d4c0c3b647dc5bbb87.tar.gz postgresql-b6a1d25b0aa179c86e0607d4c0c3b647dc5bbb87.zip |
Error message editing in utils/adt. Again thanks to Joe Conway for doing
the bulk of the heavy lifting ...
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r-- | src/backend/utils/adt/varchar.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index 6e99c15e369..1b401b66df4 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.98 2003/06/22 22:04:54 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.99 2003/07/27 04:53:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -73,18 +73,14 @@ bpcharin(PG_FUNCTION_ARGS) size_t len, maxlen; int i; - int charlen; /* number of charcters in the input string */ - char *ermsg; + /* verify encoding */ len = strlen(s); - - if ((ermsg = pg_verifymbstr(s, len))) - elog(ERROR, "%s", ermsg); + pg_verifymbstr(s, len, false); charlen = pg_mbstrlen(s); - /* If typmod is -1 (or invalid), use the actual string length */ if (atttypmod < (int32) VARHDRSZ) maxlen = charlen; @@ -104,8 +100,10 @@ bpcharin(PG_FUNCTION_ARGS) if (strspn(s + mbmaxlen, " ") == len - mbmaxlen) len = mbmaxlen; else - elog(ERROR, "value too long for type character(%d)", - (int) maxlen); + ereport(ERROR, + (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + errmsg("value too long for type character(%d)", + (int) maxlen))); /* * XXX: at this point, maxlen is the necessary byte length, not @@ -230,8 +228,10 @@ bpchar(PG_FUNCTION_ARGS) { for (i = maxmblen - VARHDRSZ; i < len - VARHDRSZ; i++) if (*(VARDATA(source) + i) != ' ') - elog(ERROR, "value too long for type character(%d)", - maxlen - VARHDRSZ); + ereport(ERROR, + (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + errmsg("value too long for type character(%d)", + maxlen - VARHDRSZ))); } len = maxmblen; @@ -372,12 +372,9 @@ varcharin(PG_FUNCTION_ARGS) size_t len, maxlen; - char *ermsg; - + /* verify encoding */ len = strlen(s); - - if ((ermsg = pg_verifymbstr(s, len))) - elog(ERROR, "%s", ermsg); + pg_verifymbstr(s, len, false); maxlen = atttypmod - VARHDRSZ; @@ -389,8 +386,10 @@ varcharin(PG_FUNCTION_ARGS) if (strspn(s + mbmaxlen, " ") == len - mbmaxlen) len = mbmaxlen; else - elog(ERROR, "value too long for type character varying(%d)", - (int) maxlen); + ereport(ERROR, + (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + errmsg("value too long for type character varying(%d)", + (int) maxlen))); } result = palloc(len + VARHDRSZ); @@ -487,8 +486,10 @@ varchar(PG_FUNCTION_ARGS) { for (i = maxmblen; i < len - VARHDRSZ; i++) if (*(VARDATA(source) + i) != ' ') - elog(ERROR, "value too long for type character varying(%d)", - maxlen - VARHDRSZ); + ereport(ERROR, + (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + errmsg("value too long for type character varying(%d)", + maxlen - VARHDRSZ))); } len = maxmblen + VARHDRSZ; |