diff options
author | unknown <holyfoot/hf@mysql.com/hfmain.(none)> | 2007-03-22 12:26:32 +0400 |
---|---|---|
committer | unknown <holyfoot/hf@mysql.com/hfmain.(none)> | 2007-03-22 12:26:32 +0400 |
commit | 23354862f03692361ffad39b86faef07df9fd74c (patch) | |
tree | 13cd3eada91150e49b73f73913f717f5d34b1fd5 | |
parent | 1fdab610a23080f92b1af13a597964dea2679073 (diff) | |
parent | 50b5064ccd0af957080d9c9efd022e33c7c9c060 (diff) | |
download | mariadb-git-23354862f03692361ffad39b86faef07df9fd74c.tar.gz |
Merge mysql.com:/home/hf/work/mrg/mysql-4.1-opt
into mysql.com:/home/hf/work/mrg/mysql-5.0-opt
mysql-test/t/type_datetime.test:
Auto merged
mysql-test/r/type_datetime.result:
SCCS merged
sql/item_timefunc.h:
SCCS merged
-rw-r--r-- | mysql-test/r/type_datetime.result | 3 | ||||
-rw-r--r-- | mysql-test/t/type_datetime.test | 6 | ||||
-rw-r--r-- | sql/item_timefunc.h | 7 |
3 files changed, 16 insertions, 0 deletions
diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result index 7fc1c4f398d..a9083b29805 100644 --- a/mysql-test/r/type_datetime.result +++ b/mysql-test/r/type_datetime.result @@ -168,6 +168,9 @@ dt 0000-00-00 00:00:00 0000-00-00 00:00:00 drop table t1; +select cast('2006-12-05 22:10:10' as datetime) + 0; +cast('2006-12-05 22:10:10' as datetime) + 0 +20061205221010.000000 CREATE TABLE t1(a DATETIME NOT NULL); INSERT INTO t1 VALUES ('20060606155555'); SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555"); diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test index 3ad6bdc53e4..3d04eb85cf3 100644 --- a/mysql-test/t/type_datetime.test +++ b/mysql-test/t/type_datetime.test @@ -113,6 +113,12 @@ insert into t1 values ("00-00-00"), ("00-00-00 00:00:00"); select * from t1; drop table t1; +# +# Bug #16546 DATETIME+0 not always coerced the same way +# +select cast('2006-12-05 22:10:10' as datetime) + 0; + + # End of 4.1 tests # diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index beb1945b33c..acc5e6a80cc 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -847,12 +847,19 @@ public: String *val_str(String *str); const char *cast_type() const { return "datetime"; } enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; } + void fix_length_and_dec() + { + Item_typecast_maybe_null::fix_length_and_dec(); + decimals= DATETIME_DEC; + } + Field *tmp_table_field(TABLE *t_arg) { return (new Field_datetime(maybe_null, name, t_arg, &my_charset_bin)); } bool result_as_longlong() { return TRUE; } longlong val_int(); + double val() { return (double) val_int(); } my_decimal *val_decimal(my_decimal *decimal_value) { DBUG_ASSERT(fixed == 1); |