diff options
author | unknown <hf@deer.(none)> | 2004-06-29 19:55:13 +0500 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2004-06-29 19:55:13 +0500 |
commit | 58bdba5785313f89398231f796ba989a4de81a69 (patch) | |
tree | 59be5629c3d654d6e28ff306d4e15ffad39fb346 | |
parent | 0a1381e05b09aa4d99cd4cbd1e0a0985a02c175a (diff) | |
download | mariadb-git-58bdba5785313f89398231f796ba989a4de81a69.tar.gz |
WL#1600 (Warn if result is truncatet due to max_allowed_packet)
include/mysqld_error.h:
Warning added
mysql-test/r/func_str.result:
test result fixed
mysql-test/r/packet.result:
test resut fixed
sql/item_geofunc.cc:
warning issued
sql/item_strfunc.cc:
warning issued
sql/share/czech/errmsg.txt:
Warning added
sql/share/danish/errmsg.txt:
Warning added
sql/share/dutch/errmsg.txt:
Warning added
sql/share/english/errmsg.txt:
Warning added
sql/share/estonian/errmsg.txt:
Warning added
sql/share/french/errmsg.txt:
Warning added
sql/share/german/errmsg.txt:
Warning added
sql/share/greek/errmsg.txt:
Warning added
sql/share/hungarian/errmsg.txt:
Warning added
sql/share/italian/errmsg.txt:
Warning added
sql/share/japanese/errmsg.txt:
Warning added
sql/share/korean/errmsg.txt:
Warning added
sql/share/norwegian-ny/errmsg.txt:
Warning added
sql/share/norwegian/errmsg.txt:
Warning added
sql/share/polish/errmsg.txt:
Warning added
sql/share/portuguese/errmsg.txt:
Warning added
sql/share/romanian/errmsg.txt:
Warning added
sql/share/russian/errmsg.txt:
Warning added
sql/share/serbian/errmsg.txt:
Warning added
sql/share/slovak/errmsg.txt:
Warning added
sql/share/spanish/errmsg.txt:
Warning added
sql/share/swedish/errmsg.txt:
Warning added
sql/share/ukrainian/errmsg.txt:
Warning added
28 files changed, 90 insertions, 10 deletions
diff --git a/include/mysqld_error.h b/include/mysqld_error.h index 0dcc09a173f..0dd56772e79 100644 --- a/include/mysqld_error.h +++ b/include/mysqld_error.h @@ -316,4 +316,5 @@ #define ER_GET_TEMPORARY_ERRMSG 1297 #define ER_UNKNOWN_TIME_ZONE 1298 #define ER_WARN_INVALID_TIMESTAMP 1299 -#define ER_ERROR_MESSAGES 300 +#define ER_WARN_ALLOWED_PACKET_OVERFLOWED 1300 +#define ER_ERROR_MESSAGES 301 diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index f91691853b9..9304e02a3dc 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -225,6 +225,8 @@ substring_index("www.tcx.se","",3) select length(repeat("a",100000000)),length(repeat("a",1000*64)); length(repeat("a",100000000)) length(repeat("a",1000*64)) NULL 64000 +Warnings: +Warning 1300 Data truncated by function 'repeat' do to max_allowed_packet select position("0" in "baaa" in (1)),position("0" in "1" in (1,2,3)),position("sql" in ("mysql")); position("0" in "baaa" in (1)) position("0" in "1" in (1,2,3)) position("sql" in ("mysql")) 1 0 3 diff --git a/mysql-test/r/packet.result b/mysql-test/r/packet.result index 29bbcf4466f..65b4bb1b6c3 100644 --- a/mysql-test/r/packet.result +++ b/mysql-test/r/packet.result @@ -8,6 +8,8 @@ len select repeat('a',2000); repeat('a',2000) NULL +Warnings: +Warning 1300 Data truncated by function 'repeat' do to max_allowed_packet select @@net_buffer_length, @@max_allowed_packet; @@net_buffer_length @@max_allowed_packet 1024 1024 diff --git a/sql/item_geofunc.cc b/sql/item_geofunc.cc index d95271a54bb..b9fc6a53b58 100644 --- a/sql/item_geofunc.cc +++ b/sql/item_geofunc.cc @@ -446,7 +446,12 @@ String *Item_func_spatial_collection::val_str(String *str) } } if (str->length() > current_thd->variables.max_allowed_packet) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); goto err; + } null_value = 0; return str; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index b0c685c1c46..e5fa5785fca 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -266,7 +266,12 @@ String *Item_func_concat::val_str(String *str) continue; if (res->length()+res2->length() > current_thd->variables.max_allowed_packet) - goto null; // Error check + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); + goto null; + } if (res->alloced_length() >= res->length()+res2->length()) { // Use old buffer res->append(*res2); @@ -544,7 +549,12 @@ String *Item_func_concat_ws::val_str(String *str) if (res->length() + sep_str->length() + res2->length() > current_thd->variables.max_allowed_packet) - goto null; // Error check + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); + goto null; + } if (res->alloced_length() >= res->length() + sep_str->length() + res2->length()) { // Use old buffer @@ -801,7 +811,14 @@ redo: offset= (int) (ptr-res->ptr()); if (res->length()-from_length + to_length > current_thd->variables.max_allowed_packet) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), + func_name()); + goto null; + } if (!alloced) { alloced=1; @@ -822,7 +839,12 @@ skip: { if (res->length()-from_length + to_length > current_thd->variables.max_allowed_packet) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); goto null; + } if (!alloced) { alloced=1; @@ -882,7 +904,12 @@ String *Item_func_insert::val_str(String *str) length=res->length()-start; if (res->length() - length + res2->length() > current_thd->variables.max_allowed_packet) - goto null; // OOM check + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); + goto null; + } res=copy_if_not_alloced(str,res,res->length()); res->replace(start,length,*res2); return res; @@ -1934,7 +1961,12 @@ String *Item_func_repeat::val_str(String *str) length=res->length(); // Safe length check if (length > current_thd->variables.max_allowed_packet/count) - goto err; // Probably an error + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); + goto err; + } tot_length= length*(uint) count; if (!(res= alloc_buffer(res,str,&tmp_value,tot_length))) goto err; @@ -1999,8 +2031,14 @@ String *Item_func_rpad::val_str(String *str) return (res); } pad_char_length= rpad->numchars(); - if ((ulong) byte_count > current_thd->variables.max_allowed_packet || - args[2]->null_value || !pad_char_length) + if ((ulong) byte_count > current_thd->variables.max_allowed_packet) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); + goto err; + } + if(args[2]->null_value || !pad_char_length) goto err; res_byte_length= res->length(); /* Must be done before alloc_buffer */ if (!(res= alloc_buffer(res,str,&tmp_value,byte_count))) @@ -2079,8 +2117,15 @@ String *Item_func_lpad::val_str(String *str) pad_char_length= pad->numchars(); byte_count= count * collation.collation->mbmaxlen; - if (byte_count > current_thd->variables.max_allowed_packet || - args[2]->null_value || !pad_char_length || str->alloc(byte_count)) + if (byte_count > current_thd->variables.max_allowed_packet) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); + goto err; + } + + if (args[2]->null_value || !pad_char_length || str->alloc(byte_count)) goto err; str->length(0); @@ -2359,7 +2404,9 @@ String *Item_load_file::val_str(String *str) } if (stat_info.st_size > (long) current_thd->variables.max_allowed_packet) { - /* my_error(ER_TOO_LONG_STRING, MYF(0), file_name->c_ptr()); */ + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_WARN_ALLOWED_PACKET_OVERFLOWED, + ER(ER_WARN_ALLOWED_PACKET_OVERFLOWED), func_name()); goto err; } if (tmp_value.alloc(stat_info.st_size)) diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt index 2d377929229..2ab55e7dece 100644 --- a/sql/share/czech/errmsg.txt +++ b/sql/share/czech/errmsg.txt @@ -312,3 +312,4 @@ character-set=latin2 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt index af7b8263e6b..c27fe536180 100644 --- a/sql/share/danish/errmsg.txt +++ b/sql/share/danish/errmsg.txt @@ -306,3 +306,4 @@ character-set=latin1 "Modtog temporary fejl %d '%-.100s' fra %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt index aa20996680e..66f0202b8f2 100644 --- a/sql/share/dutch/errmsg.txt +++ b/sql/share/dutch/errmsg.txt @@ -314,3 +314,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt index b5a7f7962cf..97554ec54a3 100644 --- a/sql/share/english/errmsg.txt +++ b/sql/share/english/errmsg.txt @@ -303,3 +303,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt index 0cc6e06ab26..971cf9e90bf 100644 --- a/sql/share/estonian/errmsg.txt +++ b/sql/share/estonian/errmsg.txt @@ -308,3 +308,4 @@ character-set=latin7 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt index 2e23db62ddb..f090bde40ad 100644 --- a/sql/share/french/errmsg.txt +++ b/sql/share/french/errmsg.txt @@ -303,3 +303,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt index c63162c84f6..5a3307248d1 100644 --- a/sql/share/german/errmsg.txt +++ b/sql/share/german/errmsg.txt @@ -315,3 +315,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt index fa94b0f5107..61e7beedfe1 100644 --- a/sql/share/greek/errmsg.txt +++ b/sql/share/greek/errmsg.txt @@ -303,3 +303,4 @@ character-set=greek "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt index 56fae82c438..dfd6c50c8d1 100644 --- a/sql/share/hungarian/errmsg.txt +++ b/sql/share/hungarian/errmsg.txt @@ -305,3 +305,4 @@ character-set=latin2 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt index 31768f172b4..2629df66fbc 100644 --- a/sql/share/italian/errmsg.txt +++ b/sql/share/italian/errmsg.txt @@ -303,3 +303,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt index 4385f25c991..fdcbc784c93 100644 --- a/sql/share/japanese/errmsg.txt +++ b/sql/share/japanese/errmsg.txt @@ -305,3 +305,4 @@ character-set=ujis "Got temporary NDB error %d '%-.100s'", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt index a6e84fad01e..b9bd73d444a 100644 --- a/sql/share/korean/errmsg.txt +++ b/sql/share/korean/errmsg.txt @@ -303,3 +303,4 @@ character-set=euckr "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt index eaf7b3482ee..bf15a6c8176 100644 --- a/sql/share/norwegian-ny/errmsg.txt +++ b/sql/share/norwegian-ny/errmsg.txt @@ -305,3 +305,4 @@ character-set=latin1 "Mottok temporary feil %d '%-.100s' fra %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt index 692c10db58f..4ab2ed7c707 100644 --- a/sql/share/norwegian/errmsg.txt +++ b/sql/share/norwegian/errmsg.txt @@ -305,3 +305,4 @@ character-set=latin1 "Mottok temporary feil %d '%-.100s' fra %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt index 19f2c1c6983..7c50a154d70 100644 --- a/sql/share/polish/errmsg.txt +++ b/sql/share/polish/errmsg.txt @@ -307,3 +307,4 @@ character-set=latin2 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt index c77d10d83de..713bd0ef06b 100644 --- a/sql/share/portuguese/errmsg.txt +++ b/sql/share/portuguese/errmsg.txt @@ -304,3 +304,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt index 5ee4efd0063..377af99b1d9 100644 --- a/sql/share/romanian/errmsg.txt +++ b/sql/share/romanian/errmsg.txt @@ -307,3 +307,4 @@ character-set=latin2 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt index 20188723f6d..23c315eade6 100644 --- a/sql/share/russian/errmsg.txt +++ b/sql/share/russian/errmsg.txt @@ -305,3 +305,4 @@ character-set=koi8r "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/serbian/errmsg.txt b/sql/share/serbian/errmsg.txt index cc822431464..3360a98fab6 100644 --- a/sql/share/serbian/errmsg.txt +++ b/sql/share/serbian/errmsg.txt @@ -309,3 +309,4 @@ character-set=cp1250 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt index ee6aac5081b..04db04cd15e 100644 --- a/sql/share/slovak/errmsg.txt +++ b/sql/share/slovak/errmsg.txt @@ -311,3 +311,4 @@ character-set=latin2 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt index 483ec7068a2..8dd85f7f661 100644 --- a/sql/share/spanish/errmsg.txt +++ b/sql/share/spanish/errmsg.txt @@ -305,3 +305,4 @@ character-set=latin1 "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt index d9f3adf92d4..3c571169887 100644 --- a/sql/share/swedish/errmsg.txt +++ b/sql/share/swedish/errmsg.txt @@ -303,3 +303,4 @@ character-set=latin1 "Fick tilfällig felkod %d '%-.100s' från %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt index acf6f5121e8..a36f07ef96c 100644 --- a/sql/share/ukrainian/errmsg.txt +++ b/sql/share/ukrainian/errmsg.txt @@ -308,3 +308,4 @@ character-set=koi8u "Got temporary error %d '%-.100s' from %s", "Unknown or incorrect time zone: '%-.64s'", "Invalid TIMESTAMP value in column '%s' at row %ld", +"Data truncated by function '%s' do to max_allowed_packet" |