summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2003-04-10 10:25:21 -0400
committerunknown <vva@eagle.mysql.r18.ru>2003-04-10 10:25:21 -0400
commit839be68638a3e3c90591ba0d4693b520822dc495 (patch)
tree223b27af091cce7e846a9f37193ba787e49f4b67
parente22260d354834d4fd02a98078ed2f75e160a1afb (diff)
parentf82e15baaabde8259ae3b1a34dccff4d4b19f7c6 (diff)
downloadmariadb-git-839be68638a3e3c90591ba0d4693b520822dc495.tar.gz
Merge
sql/item_create.cc: Auto merged sql/item_create.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_strfunc.h: Auto merged sql/lex.h: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged include/mysqld_error.h: merge. sql/share/czech/errmsg.txt: SCCS merged sql/share/danish/errmsg.txt: merge. sql/share/dutch/errmsg.txt: merge . sql/share/english/errmsg.txt: merge. sql/share/estonian/errmsg.txt: merge. sql/share/french/errmsg.txt: merge. sql/share/german/errmsg.txt: merge. sql/share/greek/errmsg.txt: merge. sql/share/hungarian/errmsg.txt: e merge. sql/share/italian/errmsg.txt: merge. sql/share/japanese/errmsg.txt: merge. sql/share/korean/errmsg.txt: merge. sql/share/norwegian/errmsg.txt: merge. sql/share/norwegian-ny/errmsg.txt: merge. sql/share/polish/errmsg.txt: merge. sql/share/portuguese/errmsg.txt: merge. sql/share/romanian/errmsg.txt: SCCS merged sql/share/russian/errmsg.txt: merge. sql/share/serbian/errmsg.txt: merge. sql/share/slovak/errmsg.txt: merge. sql/share/spanish/errmsg.txt: merge. sql/share/swedish/errmsg.txt: merge. sql/share/ukrainian/errmsg.txt: merge.
-rw-r--r--include/mysqld_error.h9
-rw-r--r--mysql-test/include/have_compress.inc4
-rw-r--r--mysql-test/r/func_compress.result35
-rw-r--r--mysql-test/r/have_compress.require2
-rw-r--r--mysql-test/t/func_compress.test20
-rw-r--r--sql/item_create.cc20
-rw-r--r--sql/item_create.h7
-rw-r--r--sql/item_func.cc14
-rw-r--r--sql/item_func.h9
-rw-r--r--sql/item_strfunc.cc88
-rw-r--r--sql/item_strfunc.h23
-rw-r--r--sql/lex.h7
-rw-r--r--sql/mysql_priv.h1
-rw-r--r--sql/mysqld.cc5
-rw-r--r--sql/set_var.cc1
-rw-r--r--sql/share/czech/errmsg.txt4
-rw-r--r--sql/share/danish/errmsg.txt6
-rw-r--r--sql/share/dutch/errmsg.txt6
-rw-r--r--sql/share/english/errmsg.txt6
-rw-r--r--sql/share/estonian/errmsg.txt6
-rw-r--r--sql/share/french/errmsg.txt6
-rw-r--r--sql/share/german/errmsg.txt6
-rw-r--r--sql/share/greek/errmsg.txt6
-rw-r--r--sql/share/hungarian/errmsg.txt6
-rw-r--r--sql/share/italian/errmsg.txt6
-rw-r--r--sql/share/japanese/errmsg.txt6
-rw-r--r--sql/share/korean/errmsg.txt6
-rw-r--r--sql/share/norwegian-ny/errmsg.txt6
-rw-r--r--sql/share/norwegian/errmsg.txt6
-rw-r--r--sql/share/polish/errmsg.txt6
-rw-r--r--sql/share/portuguese/errmsg.txt6
-rw-r--r--sql/share/romanian/errmsg.txt4
-rw-r--r--sql/share/russian/errmsg.txt6
-rw-r--r--sql/share/serbian/errmsg.txt6
-rw-r--r--sql/share/slovak/errmsg.txt6
-rw-r--r--sql/share/spanish/errmsg.txt6
-rw-r--r--sql/share/swedish/errmsg.txt6
-rw-r--r--sql/share/ukrainian/errmsg.txt6
38 files changed, 355 insertions, 24 deletions
diff --git a/include/mysqld_error.h b/include/mysqld_error.h
index e168db8312b..f42ecc5015a 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 00000000000..c042cd7452a
--- /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 00000000000..ac48c8b9494
--- /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 00000000000..8bda2190fbe
--- /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 00000000000..2f86a414792
--- /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 b9179a84c12..2fb753912eb 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 f1f9c4673d8..90595859bcc 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 5bbb6003e4f..7a01ea898bb 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 0429e650071..e1d6156c12c 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 45a7625b331..acc8c6cc67d 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 6c5dbe49915..abe2a5355be 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 98a802f5c4a..9311f2c3ecd 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 4f31abf7609..4203d440667 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 7aa065f2177..47c9c3f8331 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 8c224a745c6..d03b91ef83b 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 0f65b118326..2e6e732fc28 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 ff338b5aaaf..4b2c5438738 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 8ed3fd28a80..29bf735928d 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 8e097b9a44a..2628f806d15 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 fd157fb7b0f..ed5d5c680d5 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 b91e81eff8f..6a36c4a2c2e 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 26fbeab875c..1f9a19ffda2 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 fae3fb788bc..cee08e0a6fd 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 72271738669..d33bdfe803f 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 bed8c6accc6..1e9a0e5b634 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 38d1591b20a..6a5e7289908 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 464365faf09..b4810f2e47a 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 62915658895..405c093f7c0 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 9aa2392f251..f52fa772e6e 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 c2380bbae83..89f7b359ffc 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 203dd39517d..fff7dadface 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 ca983240dfd..48a2d15d49e 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 592db5f3648..c21d4dd9422 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 eb6fd0f06f3..8e40e195d1a 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 f778cffc00c..f49e31e8c57 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 74b43cd888c..67967c08404 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 773d4461583..fbc423a90af 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 1ae75f3d877..7e023c8cc28 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