summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgluh@mysql.com <>2005-04-06 15:19:02 +0500
committergluh@mysql.com <>2005-04-06 15:19:02 +0500
commit85bf4006121e6db95241ffab2c2175798ac75ed6 (patch)
tree7a2a0718275baa9c6515dd5bf3c680673fd44dba
parentdecfc86fbb5a5ac68b15070640760aed501803bb (diff)
parent1c46a020695b3720cf8ce2fd86b566447fdedccc (diff)
downloadmariadb-git-85bf4006121e6db95241ffab2c2175798ac75ed6.tar.gz
Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/gluh/MySQL/Bugs/mysql-4.1.9286
-rw-r--r--sql/field.cc8
-rw-r--r--strings/ctype-mb.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 740c027350d..d73257a673f 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -4914,7 +4914,7 @@ void Field_datetime::sql_type(String &res) const
int Field_string::store(const char *from,uint length,CHARSET_INFO *cs)
{
- int error= 0;
+ int error= 0, well_formed_error;
uint32 not_used;
char buff[80];
String tmpstr(buff,sizeof(buff), &my_charset_bin);
@@ -4942,7 +4942,7 @@ int Field_string::store(const char *from,uint length,CHARSET_INFO *cs)
from,from+length,
field_length/
field_charset->mbmaxlen,
- &error);
+ &well_formed_error);
memcpy(ptr,from,copy_length);
if (copy_length < field_length) // Append spaces if shorter
field_charset->cset->fill(field_charset,ptr+copy_length,
@@ -5545,7 +5545,7 @@ void Field_blob::put_length(char *pos, uint32 length)
int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
{
- int error= 0;
+ int error= 0, well_formed_error;
if (!length)
{
bzero(ptr,Field_blob::pack_length());
@@ -5580,7 +5580,7 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
from,from +
min(length, copy_length),
copy_length,
- &error);
+ &well_formed_error);
if (copy_length < length)
error= 1;
Field_blob::store_length(copy_length);
diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c
index dbe3a24324e..cbbd035c631 100644
--- a/strings/ctype-mb.c
+++ b/strings/ctype-mb.c
@@ -276,7 +276,7 @@ uint my_well_formed_len_mb(CHARSET_INFO *cs, const char *b, const char *e,
if ((mblen= cs->cset->mb_wc(cs, &wc, (uchar*) b, (uchar*) e)) <= 0)
{
- *error= 1;
+ *error= b < e ? 1 : 0;
break;
}
b+= mblen;