diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-02 16:51:10 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-02 16:51:10 +0000 |
commit | d5299891498df311a0f7b1584a9ba16be2a927c1 (patch) | |
tree | 09176ab04aaa0083f7d5fa185eecc2250e4156a6 | |
parent | 630bfcd10c279cdcce22ea8fb4c046e4555cb268 (diff) | |
download | postgresql-d5299891498df311a0f7b1584a9ba16be2a927c1.tar.gz postgresql-d5299891498df311a0f7b1584a9ba16be2a927c1.zip |
While perusing SQL92 I realized that we are delivering the wrong SQLSTATE
error code for string-too-long errors. It should be STRING_DATA_RIGHT_TRUNCATION
not STRING_DATA_LENGTH_MISMATCH. The latter probably should only be
applied to cases where a string must be exactly so many bits --- there are
no cases at all where it applies to character strings, only bit strings.
-rw-r--r-- | src/backend/utils/adt/varbit.c | 6 | ||||
-rw-r--r-- | src/backend/utils/adt/varchar.c | 10 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c index 7fd7727e421..496c25b699d 100644 --- a/src/backend/utils/adt/varbit.c +++ b/src/backend/utils/adt/varbit.c @@ -9,7 +9,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.39 2004/06/16 01:26:47 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.40 2004/08/02 16:51:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -344,7 +344,7 @@ varbit_in(PG_FUNCTION_ARGS) atttypmod = bitlen; else if (bitlen > atttypmod) ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), errmsg("bit string too long for type bit varying(%d)", atttypmod))); @@ -528,7 +528,7 @@ varbit(PG_FUNCTION_ARGS) if (!isExplicit) ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), errmsg("bit string too long for type bit varying(%d)", len))); diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index 6b26a91192c..5bccdb8ce5f 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.104 2004/02/01 06:27:48 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.105 2004/08/02 16:51:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -101,7 +101,7 @@ bpcharin(PG_FUNCTION_ARGS) len = mbmaxlen; else ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), errmsg("value too long for type character(%d)", (int) maxlen))); @@ -221,7 +221,7 @@ bpchar(PG_FUNCTION_ARGS) for (i = maxmblen - VARHDRSZ; i < len - VARHDRSZ; i++) if (*(VARDATA(source) + i) != ' ') ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), errmsg("value too long for type character(%d)", maxlen - VARHDRSZ))); } @@ -379,7 +379,7 @@ varcharin(PG_FUNCTION_ARGS) len = mbmaxlen; else ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), errmsg("value too long for type character varying(%d)", (int) maxlen))); } @@ -471,7 +471,7 @@ varchar(PG_FUNCTION_ARGS) for (i = maxmblen; i < len - VARHDRSZ; i++) if (*(VARDATA(source) + i) != ' ') ereport(ERROR, - (errcode(ERRCODE_STRING_DATA_LENGTH_MISMATCH), + (errcode(ERRCODE_STRING_DATA_RIGHT_TRUNCATION), errmsg("value too long for type character varying(%d)", maxlen - VARHDRSZ))); } |