Loading mysql-test/r/func_str.result +15 −3 Original line number Diff line number Diff line Loading @@ -722,9 +722,9 @@ Warning 1265 Data truncated for column 'format(130,10)' at row 1 show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `bin(130)` varchar(64) NOT NULL default '', `oct(130)` varchar(64) NOT NULL default '', `conv(130,16,10)` varchar(64) NOT NULL default '', `bin(130)` varchar(64) default NULL, `oct(130)` varchar(64) default NULL, `conv(130,16,10)` varchar(64) default NULL, `hex(130)` varchar(6) NOT NULL default '', `char(130)` varbinary(4) NOT NULL default '', `format(130,10)` varchar(4) NOT NULL default '', Loading Loading @@ -1095,6 +1095,18 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found Warnings: Note 1003 select decode('','zxcv') AS `enc` from `test`.`t1` drop table t1; create table t1 (a bigint not null)engine=myisam; insert into t1 set a = 1024*1024*1024*4; delete from t1 order by (inet_ntoa(a)) desc limit 10; drop table t1; create table t1 (a char(36) not null)engine=myisam; insert ignore into t1 set a = ' '; insert ignore into t1 set a = ' '; select * from t1 order by (oct(a)); a drop table t1; End of 4.1 tests create table t1 (d decimal default null); Loading mysql-test/t/func_str.test +13 −0 Original line number Diff line number Diff line Loading @@ -738,6 +738,19 @@ explain extended select encode(f1,'zxcv') as 'enc' from t1; explain extended select decode(f1,'zxcv') as 'enc' from t1; drop table t1; # # Bug #31758 inet_ntoa, oct, crashes server with null + filesort # create table t1 (a bigint not null)engine=myisam; insert into t1 set a = 1024*1024*1024*4; delete from t1 order by (inet_ntoa(a)) desc limit 10; drop table t1; create table t1 (a char(36) not null)engine=myisam; insert ignore into t1 set a = ' '; insert ignore into t1 set a = ' '; select * from t1 order by (oct(a)); drop table t1; --echo End of 4.1 tests # Loading sql/item_strfunc.h +3 −2 Original line number Diff line number Diff line Loading @@ -585,6 +585,7 @@ class Item_func_conv :public Item_str_func { collation.set(default_charset()); max_length=64; maybe_null= 1; } }; Loading Loading @@ -682,7 +683,7 @@ class Item_func_inet_ntoa : public Item_str_func } String* val_str(String* str); const char *func_name() const { return "inet_ntoa"; } void fix_length_and_dec() { decimals = 0; max_length=3*8+7; } void fix_length_and_dec() { decimals = 0; max_length=3*8+7; maybe_null=1;} }; class Item_func_quote :public Item_str_func Loading Loading
mysql-test/r/func_str.result +15 −3 Original line number Diff line number Diff line Loading @@ -722,9 +722,9 @@ Warning 1265 Data truncated for column 'format(130,10)' at row 1 show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `bin(130)` varchar(64) NOT NULL default '', `oct(130)` varchar(64) NOT NULL default '', `conv(130,16,10)` varchar(64) NOT NULL default '', `bin(130)` varchar(64) default NULL, `oct(130)` varchar(64) default NULL, `conv(130,16,10)` varchar(64) default NULL, `hex(130)` varchar(6) NOT NULL default '', `char(130)` varbinary(4) NOT NULL default '', `format(130,10)` varchar(4) NOT NULL default '', Loading Loading @@ -1095,6 +1095,18 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found Warnings: Note 1003 select decode('','zxcv') AS `enc` from `test`.`t1` drop table t1; create table t1 (a bigint not null)engine=myisam; insert into t1 set a = 1024*1024*1024*4; delete from t1 order by (inet_ntoa(a)) desc limit 10; drop table t1; create table t1 (a char(36) not null)engine=myisam; insert ignore into t1 set a = ' '; insert ignore into t1 set a = ' '; select * from t1 order by (oct(a)); a drop table t1; End of 4.1 tests create table t1 (d decimal default null); Loading
mysql-test/t/func_str.test +13 −0 Original line number Diff line number Diff line Loading @@ -738,6 +738,19 @@ explain extended select encode(f1,'zxcv') as 'enc' from t1; explain extended select decode(f1,'zxcv') as 'enc' from t1; drop table t1; # # Bug #31758 inet_ntoa, oct, crashes server with null + filesort # create table t1 (a bigint not null)engine=myisam; insert into t1 set a = 1024*1024*1024*4; delete from t1 order by (inet_ntoa(a)) desc limit 10; drop table t1; create table t1 (a char(36) not null)engine=myisam; insert ignore into t1 set a = ' '; insert ignore into t1 set a = ' '; select * from t1 order by (oct(a)); drop table t1; --echo End of 4.1 tests # Loading
sql/item_strfunc.h +3 −2 Original line number Diff line number Diff line Loading @@ -585,6 +585,7 @@ class Item_func_conv :public Item_str_func { collation.set(default_charset()); max_length=64; maybe_null= 1; } }; Loading Loading @@ -682,7 +683,7 @@ class Item_func_inet_ntoa : public Item_str_func } String* val_str(String* str); const char *func_name() const { return "inet_ntoa"; } void fix_length_and_dec() { decimals = 0; max_length=3*8+7; } void fix_length_and_dec() { decimals = 0; max_length=3*8+7; maybe_null=1;} }; class Item_func_quote :public Item_str_func Loading