diff options
author | holyfoot/hf@hfmain.(none) <> | 2007-11-05 18:12:42 +0400 |
---|---|---|
committer | holyfoot/hf@hfmain.(none) <> | 2007-11-05 18:12:42 +0400 |
commit | 9f40b1dae3478c6ea8a12d0cf94f34a4905193a3 (patch) | |
tree | ae24652ad56bfe7d209902f423129f66134466e8 | |
parent | 6b92ec4acbf78892bc4880913a762db0189ce20f (diff) | |
parent | e93574e9d16efc747a88875325469e2b029e5eb8 (diff) | |
download | mariadb-git-9f40b1dae3478c6ea8a12d0cf94f34a4905193a3.tar.gz |
Merge mysql.com:/home/hf/work/31758/my41-31758
into mysql.com:/home/hf/work/31758/my50-31758
-rw-r--r-- | mysql-test/r/func_str.result | 12 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 13 | ||||
-rw-r--r-- | sql/item_strfunc.h | 5 |
3 files changed, 28 insertions, 2 deletions
diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index e0b4161a6a0..d6879a8e756 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -1096,6 +1096,18 @@ id select_type table type possible_keys key key_len ref rows Extra 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); insert into t1 values (null); diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index e04276fa305..1ca2bbfaf4c 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -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 # diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index 04d1997e879..7607ebfc761 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -584,7 +584,8 @@ public: void fix_length_and_dec() { collation.set(default_charset()); - max_length= 64; + max_length=64; + maybe_null= 1; } }; @@ -682,7 +683,7 @@ public: } 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 |