diff options
author | vva@eagle.mysql.r18.ru <> | 2003-04-24 11:37:55 -0400 |
---|---|---|
committer | vva@eagle.mysql.r18.ru <> | 2003-04-24 11:37:55 -0400 |
commit | 0f33b2f0cb4f3ee3e6f1ba8739152cfcff109dca (patch) | |
tree | 51faa358dd4c32a13997ca2c7fe586c166bd8e7c /sql | |
parent | 136e9943b67d05455027a5d113bfe689112fa575 (diff) | |
download | mariadb-git-0f33b2f0cb4f3ee3e6f1ba8739152cfcff109dca.tar.gz |
added '.' to end of compressed string
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_strfunc.cc | 11 |
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; |