diff --git a/include/mysqld_error.h b/include/mysqld_error.h
index e168db8312b1249e76a00578a9942f536034a9c8..f42ecc5015ae091b2f557ae4060844f18e81244c 100644
--- a/include/mysqld_error.h
+++ b/include/mysqld_error.h
@@ -270,5 +270,10 @@
 #define ER_COLLATION_CHARSET_MISMATCH 1251
 #define ER_SLAVE_WAS_RUNNING 1252
 #define ER_SLAVE_WAS_NOT_RUNNING 1253
-#define ER_CUT_VALUE_GROUP_CONCAT 1254
-#define ER_ERROR_MESSAGES 255
+#define ER_TOO_BIG_FOR_UNCOMPRESS 1254
+#define ER_ZLIB_Z_MEM_ERROR 1255
+#define ER_ZLIB_Z_BUF_ERROR 1256
+#define ER_ZLIB_Z_DATA_ERROR 1257
+#define ER_CUT_VALUE_GROUP_CONCAT 1258
+#define ER_ERROR_MESSAGES 259
+
diff --git a/mysql-test/include/have_compress.inc b/mysql-test/include/have_compress.inc
new file mode 100644
index 0000000000000000000000000000000000000000..c042cd7452a2ef8f2867353bc5b578489ff33bc6
--- /dev/null
+++ b/mysql-test/include/have_compress.inc
@@ -0,0 +1,4 @@
+-- require r/have_compress.require
+disable_query_log;
+show variables like "have_compress";
+enable_query_log;
diff --git a/mysql-test/r/func_compress.result b/mysql-test/r/func_compress.result
new file mode 100644
index 0000000000000000000000000000000000000000..ac48c8b949407bf8a2705f47ae73a3aa4a17d9b4
--- /dev/null
+++ b/mysql-test/r/func_compress.result
@@ -0,0 +1,35 @@
+select @test_compress_string:='string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ';
+@test_compress_string:='string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa '
+string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+select length(@test_compress_string);
+length(@test_compress_string)
+117
+select uncompress(compress(@test_compress_string));
+uncompress(compress(@test_compress_string))
+string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+select uncompress(@test_compress_string);
+uncompress(@test_compress_string)
+NULL
+Warnings:
+Error	1254	Too big size of uncompressed data. The maximum size is 8192. (probably, length of uncompressed data was corrupted)
+select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string);
+uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)
+1
+select uncompressed_length(compress(@test_compress_string));
+uncompressed_length(compress(@test_compress_string))
+117
+select length(compress(@test_compress_string))<length(@test_compress_string);
+length(compress(@test_compress_string))<length(@test_compress_string)
+1
+create table t1 (a text, b char(255), c char(4)) type=myisam;
+insert into t1 (a,b,c) values (compress(@test_compress_string),compress(@test_compress_string),'d ');
+select uncompress(a) from t1;
+uncompress(a)
+string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+select uncompress(b) from t1;
+uncompress(b)
+string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+select concat('|',c,'|') from t1;
+concat('|',c,'|')
+|d|
+drop table t1;
diff --git a/mysql-test/r/have_compress.require b/mysql-test/r/have_compress.require
new file mode 100644
index 0000000000000000000000000000000000000000..8bda2190fbe41bae2b5689f2ee7bf6f9e1be89a2
--- /dev/null
+++ b/mysql-test/r/have_compress.require
@@ -0,0 +1,2 @@
+Variable_name	Value
+have_compress	YES
diff --git a/mysql-test/t/func_compress.test b/mysql-test/t/func_compress.test
new file mode 100644
index 0000000000000000000000000000000000000000..2f86a41479211e0b07dc8d66e44c63e585460127
--- /dev/null
+++ b/mysql-test/t/func_compress.test
@@ -0,0 +1,20 @@
+-- source include/have_compress.inc
+#
+# Test for compress and uncompress functions:
+#
+
+select @test_compress_string:='string for test compress function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ';
+select length(@test_compress_string);
+
+select uncompress(compress(@test_compress_string));
+select uncompress(@test_compress_string);
+select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string);
+select uncompressed_length(compress(@test_compress_string));
+select length(compress(@test_compress_string))<length(@test_compress_string);
+
+create table t1 (a text, b char(255), c char(4)) type=myisam;
+insert into t1 (a,b,c) values (compress(@test_compress_string),compress(@test_compress_string),'d ');
+select uncompress(a) from t1;
+select uncompress(b) from t1;
+select concat('|',c,'|') from t1;
+drop table t1;
\ No newline at end of file
diff --git a/sql/item_create.cc b/sql/item_create.cc
index b9179a84c12c00fcb1aa8a2ae7d7c33d4be27363..2fb753912eb1f1a7c05e76b061546164613cd1e0 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -645,3 +645,23 @@ Item *create_func_point(Item *a, Item *b)
 {
   return new Item_func_point(a, b);
 }
+
+#ifdef HAVE_COMPRESS
+
+Item *create_func_compress(Item* a)
+{
+  return new Item_func_compress(a);
+}
+
+Item *create_func_uncompress(Item* a)
+{
+  return new Item_func_uncompress(a);
+}
+
+Item *create_func_uncompressed_length(Item* a)
+{
+  return new Item_func_uncompressed_length(a);
+}
+
+#endif
+
diff --git a/sql/item_create.h b/sql/item_create.h
index f1f9c4673d82a456393e433947af943b73aa50aa..90595859bcc4a46ac219aab557be64135490e4c9 100644
--- a/sql/item_create.h
+++ b/sql/item_create.h
@@ -141,3 +141,10 @@ Item *create_func_numinteriorring(Item *a);
 Item *create_func_numgeometries(Item *a);
 
 Item *create_func_point(Item *a, Item *b);
+
+#ifdef HAVE_COMPRESS
+Item *create_func_compress(Item *a);
+Item *create_func_uncompress(Item *a);
+Item *create_func_uncompressed_length(Item *a);
+#endif
+
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 5bbb6003e4f0a49f83871a7330303488fbead761..7a01ea898bbdec894220255c8b23ec7a5a7dc575 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -983,8 +983,20 @@ longlong Item_func_crc32::val_int()
   null_value=0;
   return (longlong) crc32(0L, (Bytef*)res->ptr(), res->length());
 }
-#endif /* HAVE_COMPRESS */
 
+longlong Item_func_uncompressed_length::val_int()
+{
+  String *res= args[0]->val_str(&value);
+  if (!res)
+  {
+    null_value=1;
+    return 0; /* purecov: inspected */
+  }
+  null_value=0;
+  return uint4korr(res->c_ptr());
+}
+
+#endif /* HAVE_COMPRESS */
 
 longlong Item_func_length::val_int()
 {
diff --git a/sql/item_func.h b/sql/item_func.h
index 0429e650071024758a2e7f196ca4df73e6c0dc0a..e1d6156c12cbcba47b7ec0c42401d18684c29978 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -559,6 +559,15 @@ public:
   const char *func_name() const { return "crc32"; }
   void fix_length_and_dec() { max_length=10; }
 };
+class Item_func_uncompressed_length : public Item_int_func 
+{
+  String value;
+public:
+  Item_func_uncompressed_length(Item *a):Item_int_func(a){}
+  longlong val_int();
+  const char *func_name() const{return "uncompressed_length";}
+  void fix_length_and_dec() { max_length=10; }
+};
 #endif
 
 class Item_func_length :public Item_int_func
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 45a7625b3317b65cdbe595e094db8e2291d021e2..acc8c6cc67d22fbea11cf3816e58034d3558050e 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -2917,3 +2917,91 @@ String *Item_func_spatial_collection::val_str(String *str)
 ret:
   return null_value ? 0 : str;
 }
+
+#ifdef HAVE_COMPRESS
+#include <zlib.h>
+
+String *Item_func_compress::val_str(String *str)
+{
+  String *res= args[0]->val_str(str);
+  int err= Z_OK;
+  int code;
+
+  /*
+   citation from zlib.h (comment for compress function):
+
+    Compresses the source buffer into the destination buffer.  sourceLen is
+   the byte length of the source buffer. Upon entry, destLen is the total
+   size of the destination buffer, which must be at least 0.1% larger than
+   sourceLen plus 12 bytes.
+
+   Proportion 120/100 founded by Sinica with help of procedure
+   compress(compress(compress(...)))
+   I.e. zlib give number 'at least'..
+  */
+  uLongf new_size= (uLongf)((res->length()*120)/100)+12;
+
+  buffer.realloc((uint32)new_size+sizeof(int32)+sizeof(char));
+
+  Byte *body= ((Byte*)buffer.c_ptr())+sizeof(int32);
+  err= compress(body, &new_size,(const Bytef*)res->c_ptr(), res->length());
+  
+  if (err != Z_OK)
+  {
+    code= err==Z_MEM_ERROR ? ER_ZLIB_Z_MEM_ERROR : ER_ZLIB_Z_BUF_ERROR;
+    push_warning(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,code,ER(code));
+    null_value= 1;
+    return 0;
+  }
+  
+  int4store(buffer.c_ptr(),res->length());
+  buffer.length((uint32)new_size+sizeof(int32));
+  
+  /* This is for the stupid char fields which trimm ' ': */
+  char *last_char= ((char*)body)+new_size-1;
+  if (*last_char == ' ')
+  {
+    *++last_char= '.';
+    new_size++;
+  }
+  
+  buffer.length((uint32)new_size+sizeof(int32));
+  
+  return &buffer;
+}
+
+String *Item_func_uncompress::val_str(String *str)
+{
+  String *res= args[0]->val_str(str);
+  uLongf new_size= uint4korr(res->c_ptr());
+  int err= Z_OK;
+  uint code;
+  
+  if (new_size > MAX_BLOB_WIDTH)
+  {
+    push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,
+			ER_TOO_BIG_FOR_UNCOMPRESS,
+			ER(ER_TOO_BIG_FOR_UNCOMPRESS),MAX_BLOB_WIDTH);
+    null_value= 1;
+    return 0;
+  }
+  
+  buffer.realloc((uint32)new_size);
+  
+  err= uncompress((Byte*)buffer.c_ptr(), &new_size, 
+		  ((const Bytef*)res->c_ptr())+sizeof(int32),res->length());
+  
+  if (err == Z_OK)
+  {
+    buffer.length((uint32)new_size);
+    return &buffer;
+  }
+  
+  code= err==Z_BUF_ERROR ? ER_ZLIB_Z_BUF_ERROR : 
+    err==Z_MEM_ERROR ? ER_ZLIB_Z_MEM_ERROR : ER_ZLIB_Z_DATA_ERROR;
+  push_warning(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,code,ER(code));
+  null_value= 1;
+  return 0;
+}
+
+#endif
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index 6c5dbe49915715a58f2d1e443de69e497ac9ae74..abe2a5355be67a5197c6faaf0e1664dbea72029c 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -781,6 +781,29 @@ public:
   const char *func_name() const { return "multipoint"; }
 };
 
+#ifdef HAVE_COMPRESS
+
+class Item_func_compress : public Item_str_func
+{
+  String buffer;
+public:
+  Item_func_compress(Item *a):Item_str_func(a){}
+  String *val_str(String *);
+  void fix_length_and_dec(){max_length= (args[0]->max_length*120)/100+12;}
+  const char *func_name() const{return "compress";}
+};
+
+class Item_func_uncompress : public Item_str_func 
+{
+  String buffer;
+public:
+  Item_func_uncompress(Item *a):Item_str_func(a){}
+  String *val_str(String *);
+  void fix_length_and_dec(){max_length= MAX_BLOB_WIDTH;}
+  const char *func_name() const{return "uncompress";}
+};
+
+#endif
 
 /*
 class Item_func_multipoint :public Item_str_func
diff --git a/sql/lex.h b/sql/lex.h
index 98a802f5c4a079f4fc9a3e0b8dcddafaaef0163a..9311f2c3ecde39ef7a1a920bf15132bd9e7fbd7c 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -447,6 +447,9 @@ static SYMBOL sql_functions[] = {
   { "CHARACTER_LENGTH", SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_char_length)},
   { "COALESCE",		SYM(COALESCE),0,0},
   { "COERCIBILITY",	SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_coercibility)},
+#ifdef HAVE_COMPRESS
+  { "COMPRESS",		SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_compress)},
+#endif
   { "CONCAT",		SYM(CONCAT),0,0},
   { "CONCAT_WS",	SYM(CONCAT_WS),0,0},
   { "CONNECTION_ID",	SYM(FUNC_ARG0),0,CREATE_FUNC(create_func_connection_id)},
@@ -623,6 +626,10 @@ static SYMBOL sql_functions[] = {
   { "TOUCHES",		SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_touches)},
   { "TRIM",		SYM(TRIM),0,0},
   { "UCASE",		SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ucase)},
+#ifdef HAVE_COMPRESS
+  { "UNCOMPRESS",	SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_uncompress)},
+  { "UNCOMPRESSED_LENGTH", SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_uncompressed_length)},
+#endif
   { "UNIQUE_USERS",	SYM(UNIQUE_USERS),0,0},
   { "UNIX_TIMESTAMP",	SYM(UNIX_TIMESTAMP),0,0},
   { "UPPER",		SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_ucase)},
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 4f31abf760920f433fd824644ee98669df7b33fd..4203d440667b6133e1184b991d8fb7d201516488 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -772,6 +772,7 @@ extern SHOW_COMP_OPTION have_isam, have_innodb, have_berkeley_db;
 extern SHOW_COMP_OPTION have_raid, have_openssl, have_symlink;
 extern SHOW_COMP_OPTION have_query_cache, have_berkeley_db, have_innodb;
 extern SHOW_COMP_OPTION have_crypt;
+extern SHOW_COMP_OPTION have_compress;
 
 #ifndef __WIN__
 extern pthread_t signal_thread;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 7aa065f21770f980c4d022d6b85a47089e5040a6..47c9c3f8331b9c73d4463117d6b1ee8a09120b80 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -257,6 +257,11 @@ SHOW_COMP_OPTION have_crypt=SHOW_OPTION_YES;
 #else
 SHOW_COMP_OPTION have_crypt=SHOW_OPTION_NO;
 #endif
+#ifdef HAVE_COMPRESS
+SHOW_COMP_OPTION have_compress= SHOW_OPTION_YES;
+#else
+SHOW_COMP_OPTION have_compress= SHOW_OPTION_NO;
+#endif
 
 const char *show_comp_option_name[]= {"YES", "NO", "DISABLED"};
 
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 8c224a745c622938e9221c2a813982e44f89c5ae..d03b91ef83b16089e96eb073ec6cd72d9dc6a9d8 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -474,6 +474,7 @@ struct show_var_st init_vars[]= {
   {"ft_stopword_file",        (char*) &ft_stopword_file,            SHOW_CHAR_PTR},
   {"have_bdb",		      (char*) &have_berkeley_db,	    SHOW_HAVE},
   {"have_crypt",	      (char*) &have_crypt,		    SHOW_HAVE},
+  {"have_compress",	      (char*) &have_compress,		    SHOW_HAVE},
   {"have_innodb",	      (char*) &have_innodb,		    SHOW_HAVE},
   {"have_isam",	      	      (char*) &have_isam,		    SHOW_HAVE},
   {"have_raid",		      (char*) &have_raid,		    SHOW_HAVE},
diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt
index 0f65b118326cc3ae4f920a87d6a6f6f233a3607c..2e6e732fc28e47efb7a7cfee978ec717975a4ca0 100644
--- a/sql/share/czech/errmsg.txt
+++ b/sql/share/czech/errmsg.txt
@@ -264,4 +264,8 @@ v/*
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
 "%d line(s) was(were) cut by group_concat()"
diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt
index ff338b5aaafb3e37b57f829bd316a3f0e4c76e3f..4b2c5438738a751af72181289af9f4dc0b312d18 100644
--- a/sql/share/danish/errmsg.txt
+++ b/sql/share/danish/errmsg.txt
@@ -258,4 +258,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt
index 8ed3fd28a8018606cc9de84392a95e6afc74c1ff..29bf735928d05d31988fb6e24a6c07733f36de46 100644
--- a/sql/share/dutch/errmsg.txt
+++ b/sql/share/dutch/errmsg.txt
@@ -266,4 +266,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt
index 8e097b9a44a388292e73eb5c58378e5eb35e6682..2628f806d15e697c9c9683c6a9884512222660f4 100644
--- a/sql/share/english/errmsg.txt
+++ b/sql/share/english/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt
index fd157fb7b0f39bf156a063403a76c86bdcf421ae..ed5d5c680d5712a8a65edcc1bdc043e58116411a 100644
--- a/sql/share/estonian/errmsg.txt
+++ b/sql/share/estonian/errmsg.txt
@@ -260,4 +260,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt
index b91e81eff8f218de3b446fed3149deccc9de0d6b..6a36c4a2c2e6f94b1712f30e22538a5bbc4a7c0a 100644
--- a/sql/share/french/errmsg.txt
+++ b/sql/share/french/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt
index 26fbeab875c7d180370f5661d59ad588deef189d..1f9a19ffda28310b28038b88098f23de1aa79ead 100644
--- a/sql/share/german/errmsg.txt
+++ b/sql/share/german/errmsg.txt
@@ -264,4 +264,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt
index fae3fb788bc07b247308684895ee16df7e14b0cd..cee08e0a6fd3857d65df1410e682325e3f3e7100 100644
--- a/sql/share/greek/errmsg.txt
+++ b/sql/share/greek/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt
index 722717386698b7525a1dee0f30a80629a60637ba..d33bdfe803f9a6c81733ad3312c2b9585abc13f5 100644
--- a/sql/share/hungarian/errmsg.txt
+++ b/sql/share/hungarian/errmsg.txt
@@ -257,4 +257,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt
index bed8c6accc61762f2128f1a902b6007a986a56ac..1e9a0e5b634cc24a43a4595c1a016869e27215f5 100644
--- a/sql/share/italian/errmsg.txt
+++ b/sql/share/italian/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt
index 38d1591b20a365302a27b2dc9b9f778a96179ad0..6a5e7289908c556b2a1fc081dc00e11c8a3e493c 100644
--- a/sql/share/japanese/errmsg.txt
+++ b/sql/share/japanese/errmsg.txt
@@ -257,4 +257,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt
index 464365faf09d651bee5160db1c9de11d3e76d62f..b4810f2e47a7069a46015b7c79013cc9fb091b14 100644
--- a/sql/share/korean/errmsg.txt
+++ b/sql/share/korean/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt
index 6291565889511d931881925578fb2bf08fc45da7..405c093f7c06e7eb07007304f53b483973cf3b61 100644
--- a/sql/share/norwegian-ny/errmsg.txt
+++ b/sql/share/norwegian-ny/errmsg.txt
@@ -257,4 +257,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt
index 9aa2392f2517788b2747d0c5d4ec5a244d8ab367..f52fa772e6e6b9555fe1d06a6ee9ba23329855d0 100644
--- a/sql/share/norwegian/errmsg.txt
+++ b/sql/share/norwegian/errmsg.txt
@@ -257,4 +257,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt
index c2380bbae83fe7859a3f123aab57efd896c466d7..89f7b359ffc363c7ce402e820a920f3f78da23c5 100644
--- a/sql/share/polish/errmsg.txt
+++ b/sql/share/polish/errmsg.txt
@@ -259,4 +259,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt
index 203dd39517dd53104665b2267c149b193e248ef8..fff7dadfacecec3394c1e133c1b0812469dcef49 100644
--- a/sql/share/portuguese/errmsg.txt
+++ b/sql/share/portuguese/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt
index ca983240dfdcef2d81b19cdb127539acf4d3fef2..48a2d15d49ef43c689a668c8f2269ee5b8dc8772 100644
--- a/sql/share/romanian/errmsg.txt
+++ b/sql/share/romanian/errmsg.txt
@@ -259,4 +259,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
 "%d line(s) was(were) cut by group_concat()"
diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt
index 592db5f36487fd2acd35d4139355c36bbd9fed86..c21d4dd9422d39012c1025a6cf2028f44996df0f 100644
--- a/sql/share/russian/errmsg.txt
+++ b/sql/share/russian/errmsg.txt
@@ -257,4 +257,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/serbian/errmsg.txt b/sql/share/serbian/errmsg.txt
index eb6fd0f06f3a4590ed10650ad097a9e93cd1b447..8e40e195d1a708d48c2389b9d5fa4d24dee1d3bb 100644
--- a/sql/share/serbian/errmsg.txt
+++ b/sql/share/serbian/errmsg.txt
@@ -251,4 +251,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt
index f778cffc00c3347198081ca2636877903ba0395e..f49e31e8c575bf6a4d1e4baefebc85b92201bc77 100644
--- a/sql/share/slovak/errmsg.txt
+++ b/sql/share/slovak/errmsg.txt
@@ -263,4 +263,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt
index 74b43cd888cb54b21208f20aa3ccf2d56fc09b42..67967c084040f77806fe06bbb947638f9c8833e8 100644
--- a/sql/share/spanish/errmsg.txt
+++ b/sql/share/spanish/errmsg.txt
@@ -256,4 +256,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file
diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt
index 773d44615839daca221942d0b802dd19fc495b4f..fbc423a90af176530412d7774ce55c07b544a940 100644
--- a/sql/share/swedish/errmsg.txt
+++ b/sql/share/swedish/errmsg.txt
@@ -255,4 +255,8 @@
 "COLLATION '%s' är inte tillåtet för CHARACTER SET '%s'"
 "Slaven har redan startat"
 "Slaven har redan stoppat"
-"%d rad(er) kapades av group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d rad(er) kapades av group_concat()"
\ No newline at end of file
diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt
index 1ae75f3d87752c89d32b0192df4b56aece2f9234..7e023c8cc28e2ece5697ea6d73920a33122fc837 100644
--- a/sql/share/ukrainian/errmsg.txt
+++ b/sql/share/ukrainian/errmsg.txt
@@ -260,4 +260,8 @@
 "COLLATION '%s' is not valid for CHARACTER SET '%s'"
 "The slave was already running"
 "The slave was already stopped"
-"%d line(s) was(were) cut by group_concat()"
+"Too big size of uncompressed data. The maximum size is %d. (probably, length of uncompressed data was corrupted)"
+"Z_BUF_ERROR: Not enough memory available for zlib"
+"Z_MEM_ERROR: Not enough room in the output buffer for zlib (probably, length of uncompressed data was corrupted)"
+"Z_DATA_ERROR: Input data was corrupted for zlib"
+"%d line(s) was(were) cut by group_concat()"
\ No newline at end of file