summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2003-04-24 11:42:05 -0400
committerunknown <vva@eagle.mysql.r18.ru>2003-04-24 11:42:05 -0400
commit50c17af082866042efdc6a06178197c62219a7a0 (patch)
tree64da3cbae3e34cadbc6245b4d853439873733b10 /sql
parent4ac98ec5215dedff9e24b91d305e9eec5ee3b96f (diff)
parent78f19df0bcc1864917d99901a524bda987b223e0 (diff)
downloadmariadb-git-50c17af082866042efdc6a06178197c62219a7a0.tar.gz
Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/COMPRESS_UNCOMPRESS/mysql-4.1
Diffstat (limited to 'sql')
-rw-r--r--sql/item_strfunc.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 56e3eb2cb5f..bfc050b8a83 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -2943,7 +2943,7 @@ String *Item_func_compress::val_str(String *str)
*/
ulong new_size= (ulong)((res->length()*120)/100)+12;
- buffer.realloc((uint32)new_size + 4);
+ buffer.realloc((uint32)new_size + 4 + 1);
Byte *body= ((Byte*)buffer.c_ptr()) + 4;
if ((err= compress(body, &new_size,
@@ -2956,6 +2956,15 @@ String *Item_func_compress::val_str(String *str)
}
int4store(buffer.c_ptr(),res->length() & 0x3FFFFFFF);
+
+ /* This is for the stupid char fields which trim ' ': */
+ char *last_char= ((char*)body)+new_size-1;
+ if (*last_char == ' ')
+ {
+ *++last_char= '.';
+ new_size++;
+ }
+
buffer.length((uint32)new_size + 4);
return &buffer;