diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-09-23 20:42:28 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-09-23 20:42:28 +0400 |
commit | 3ad035f66b74284f515b2786f7d4553dba5c14a2 (patch) | |
tree | 4112fdc64b1dd77aa31389e6a92e0bda7cbaba49 /sql/field.cc | |
parent | b9da3ba45e6a6bad152203f56af47abe79e550ad (diff) | |
download | mariadb-git-3ad035f66b74284f515b2786f7d4553dba5c14a2.tar.gz |
MDEV-8658 DATE(zerofill_column) and DATE(COALESCE(zerofill_column)) return different results
MDEV-8660 TIME(int_zerofill_column) returns a wrong result
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sql/field.cc b/sql/field.cc index 5ba155d1315..5b33d809ef0 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -1992,6 +1992,16 @@ my_decimal* Field_num::val_decimal(my_decimal *decimal_value) } +bool Field_num::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate) +{ + ASSERT_COLUMN_MARKED_FOR_READ; + longlong nr= val_int(); + bool neg= !(flags & UNSIGNED_FLAG) && nr < 0; + return int_to_datetime_with_warn(neg, neg ? -nr : nr, ltime, fuzzydate, + field_name); +} + + Field_str::Field_str(uchar *ptr_arg,uint32 len_arg, uchar *null_ptr_arg, uchar null_bit_arg, utype unireg_check_arg, const char *field_name_arg, CHARSET_INFO *charset_arg) @@ -3217,6 +3227,14 @@ String *Field_new_decimal::val_str(String *val_buffer, } +bool Field_new_decimal::get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) +{ + my_decimal value; + return decimal_to_datetime_with_warn(val_decimal(&value), + ltime, fuzzydate, field_name); +} + + int Field_new_decimal::cmp(const uchar *a,const uchar*b) { return memcmp(a, b, bin_size); |