Fix Item_func_abs::fix_length_and_dec() to set maybe_null properly. (Bug #14009)
This commit is contained in:
parent
d10326a3dc
commit
31a79ee3d0
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user