Fix Item_func_abs::fix_length_and_dec() to set maybe_null properly. (Bug #14009)

This commit is contained in:
jimw@mysql.com 2005-10-17 17:00:42 -07:00
parent d10326a3dc
commit 31a79ee3d0
3 changed files with 17 additions and 0 deletions

View File

@ -145,3 +145,9 @@ insert into t1 values (1);
select rand(i) from t1;
ERROR HY000: Incorrect arguments to RAND
drop table t1;
create table t1 (a varchar(90), ts datetime not null, index (a)) engine=innodb default charset=utf8;
insert into t1 values ('http://www.foo.com/', now());
select a from t1 where a='http://www.foo.com/' order by abs(timediff(ts, 0));
a
http://www.foo.com/
drop table t1;

View File

@ -86,4 +86,14 @@ insert into t1 values (1);
select rand(i) from t1;
drop table t1;
#
# Bug #14009: use of abs() on null value causes problems with filesort
#
# InnoDB is required to reproduce the fault, but it is okay if we default to
# MyISAM when testing.
create table t1 (a varchar(90), ts datetime not null, index (a)) engine=innodb default charset=utf8;
insert into t1 values ('http://www.foo.com/', now());
select a from t1 where a='http://www.foo.com/' order by abs(timediff(ts, 0));
drop table t1;
# End of 4.1 tests

View File

@ -766,6 +766,7 @@ void Item_func_abs::fix_length_and_dec()
hybrid_type= REAL_RESULT;
if (args[0]->result_type() == INT_RESULT)
hybrid_type= INT_RESULT;
maybe_null= 1;
}