diff options
author | Alexander Barkov <bar@mariadb.org> | 2013-08-12 16:47:59 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2013-08-12 16:47:59 +0400 |
commit | f1b4718ec894664df221704bb70fed80bdc14070 (patch) | |
tree | 2fbf36acef72913f7ae6639f92e01d1ae0ecd694 /sql | |
parent | 04fd2f18cb9de58d62ec6c860f586b9f81a95300 (diff) | |
download | mariadb-git-f1b4718ec894664df221704bb70fed80bdc14070.tar.gz |
MDEV-4652 Wrong result for CONCAT(GREATEST(TIME('00:00:01'),TIME('00:00:00'))
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.cc | 3 | ||||
-rw-r--r-- | sql/item_func.cc | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc index f5687f18cb3..1383500b007 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -252,7 +252,8 @@ String *Item::val_string_from_decimal(String *str) String *Item::val_string_from_date(String *str) { MYSQL_TIME ltime; - if (get_date(<ime, 0) || + if (get_date(<ime, + field_type() == MYSQL_TYPE_TIME ? TIME_TIME_ONLY : 0) || str->alloc(MAX_DATE_STRING_REP_LENGTH)) { null_value= 1; diff --git a/sql/item_func.cc b/sql/item_func.cc index e1a2bd44c34..9079de6f06e 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -2480,6 +2480,13 @@ bool Item_func_min_max::get_date(MYSQL_TIME *ltime, uint fuzzy_date) ltime->time_type= MYSQL_TIMESTAMP_DATE; ltime->hour= ltime->minute= ltime->second= ltime->second_part= 0; } + else if (compare_as_dates->field_type() == MYSQL_TYPE_TIME) + { + ltime->time_type= MYSQL_TIMESTAMP_TIME; + ltime->hour+= (ltime->month * 32 + ltime->day) * 24; + ltime->month= ltime->day= 0; + } + return 0; } |