Commit eddd0215 authored by evgen@moonbone.local's avatar evgen@moonbone.local

Additional fix for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.

parent 6ec0bc24
...@@ -206,6 +206,8 @@ select greatest(cast('01-01-01' as date), '01-01-02'); ...@@ -206,6 +206,8 @@ select greatest(cast('01-01-01' as date), '01-01-02');
select least(cast('01-01-01' as date), '01-01-02') + 0; select least(cast('01-01-01' as date), '01-01-02') + 0;
select greatest(cast('01-01-01' as date), '01-01-02') + 0; select greatest(cast('01-01-01' as date), '01-01-02') + 0;
select least(cast('01-01-01' as datetime), '01-01-02') + 0; select least(cast('01-01-01' as datetime), '01-01-02') + 0;
select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed);
select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal);
--disable_warnings --disable_warnings
DROP PROCEDURE IF EXISTS test27759 ; DROP PROCEDURE IF EXISTS test27759 ;
--enable_warnings --enable_warnings
......
...@@ -703,6 +703,7 @@ class Item_func_min_max :public Item_func ...@@ -703,6 +703,7 @@ class Item_func_min_max :public Item_func
my_decimal *val_decimal(my_decimal *); my_decimal *val_decimal(my_decimal *);
void fix_length_and_dec(); void fix_length_and_dec();
enum Item_result result_type () const { return cmp_type; } enum Item_result result_type () const { return cmp_type; }
bool result_as_longlong() { return compare_as_dates; };
uint cmp_datetimes(ulonglong *value); uint cmp_datetimes(ulonglong *value);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment