diff options
author | Bruce Momjian <bruce@momjian.us> | 1998-10-06 03:02:29 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1998-10-06 03:02:29 +0000 |
commit | e1ebac319d1491e54dd8e3e457d48aa766771366 (patch) | |
tree | 48a57b8f779c2b8a1d68ef953f4b173168d5c3a6 /src/backend/utils/adt/varchar.c | |
parent | c77a29a14efe69851a087989e3520ed560fa8862 (diff) | |
download | postgresql-e1ebac319d1491e54dd8e3e457d48aa766771366.tar.gz postgresql-e1ebac319d1491e54dd8e3e457d48aa766771366.zip |
Here are the patches against the current source tree. I have run the
regression test on a FreeBSD box with both non-MULTIBYTE and
MULTIBYTE-enabled, and confirmed that the results are same.
However I do not tested on PCs(I don't have access to win). Please let
me know if the patches break anything on PCs.
Also please note that the patch for varchar.c is a fix for a nasty bug
of char(n) types that I introduced and I believe at least this should
be applied.
Tatsuo Ishii
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r-- | src/backend/utils/adt/varchar.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index 8d2352358a0..6413f488eb8 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.41 1998/09/25 15:51:02 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.42 1998/10/06 03:02:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -163,7 +163,11 @@ bpchar(char *s, int32 len) #ifdef MULTIBYTE /* truncate multi-byte string in a way not to break multi-byte boundary */ - slen = pg_mbcliplen(VARDATA(s), rlen, rlen); + if (VARSIZE(s) > len) { + slen = pg_mbcliplen(VARDATA(s), VARSIZE(s)-VARHDRSZ, rlen); + } else { + slen = VARSIZE(s) - VARHDRSZ; + } #else slen = VARSIZE(s) - VARHDRSZ; #endif |