aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/varchar.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-08-02 16:51:10 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-08-02 16:51:10 +0000
commitd5299891498df311a0f7b1584a9ba16be2a927c1 (patch)
tree09176ab04aaa0083f7d5fa185eecc2250e4156a6 /src/backend/utils/adt/varchar.c
parent630bfcd10c279cdcce22ea8fb4c046e4555cb268 (diff)
downloadpostgresql-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.
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r--src/backend/utils/adt/varchar.c10
1 files changed, 5 insertions, 5 deletions
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)));
}