mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge mysql.com:/misc/mysql/31990/50-31990
into mysql.com:/misc/mysql/31990/51-31990
This commit is contained in:
commit
80a3f89ea4
4 changed files with 54 additions and 0 deletions
|
@ -414,4 +414,28 @@ NULL
|
|||
NULL
|
||||
20070719
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (f1 DATE);
|
||||
INSERT INTO t1 VALUES ('2007-07-19'), (NULL);
|
||||
SELECT HOUR(f1),
|
||||
MINUTE(f1),
|
||||
SECOND(f1) FROM t1;
|
||||
HOUR(f1) MINUTE(f1) SECOND(f1)
|
||||
0 0 0
|
||||
NULL NULL NULL
|
||||
SELECT HOUR(CAST('2007-07-19' AS DATE)),
|
||||
MINUTE(CAST('2007-07-19' AS DATE)),
|
||||
SECOND(CAST('2007-07-19' AS DATE));
|
||||
HOUR(CAST('2007-07-19' AS DATE)) MINUTE(CAST('2007-07-19' AS DATE)) SECOND(CAST('2007-07-19' AS DATE))
|
||||
0 0 0
|
||||
SELECT HOUR(CAST(NULL AS DATE)),
|
||||
MINUTE(CAST(NULL AS DATE)),
|
||||
SECOND(CAST(NULL AS DATE));
|
||||
HOUR(CAST(NULL AS DATE)) MINUTE(CAST(NULL AS DATE)) SECOND(CAST(NULL AS DATE))
|
||||
NULL NULL NULL
|
||||
SELECT HOUR(NULL),
|
||||
MINUTE(NULL),
|
||||
SECOND(NULL);
|
||||
HOUR(NULL) MINUTE(NULL) SECOND(NULL)
|
||||
NULL NULL NULL
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -246,4 +246,26 @@ INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL),
|
|||
SELECT cast(date(d1) as signed) FROM t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #31990: MINUTE() and SECOND() return bogus results when used on a DATE
|
||||
#
|
||||
|
||||
# Show that HH:MM:SS of a DATE are 0, and that it's the same for columns
|
||||
# and typecasts (NULL in, NULL out).
|
||||
CREATE TABLE t1 (f1 DATE);
|
||||
INSERT INTO t1 VALUES ('2007-07-19'), (NULL);
|
||||
SELECT HOUR(f1),
|
||||
MINUTE(f1),
|
||||
SECOND(f1) FROM t1;
|
||||
SELECT HOUR(CAST('2007-07-19' AS DATE)),
|
||||
MINUTE(CAST('2007-07-19' AS DATE)),
|
||||
SECOND(CAST('2007-07-19' AS DATE));
|
||||
SELECT HOUR(CAST(NULL AS DATE)),
|
||||
MINUTE(CAST(NULL AS DATE)),
|
||||
SECOND(CAST(NULL AS DATE));
|
||||
SELECT HOUR(NULL),
|
||||
MINUTE(NULL),
|
||||
SECOND(NULL);
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -2586,6 +2586,13 @@ bool Item_date_typecast::get_date(MYSQL_TIME *ltime, uint fuzzy_date)
|
|||
}
|
||||
|
||||
|
||||
bool Item_date_typecast::get_time(MYSQL_TIME *ltime)
|
||||
{
|
||||
bzero((char *)ltime, sizeof(MYSQL_TIME));
|
||||
return args[0]->null_value;
|
||||
}
|
||||
|
||||
|
||||
String *Item_date_typecast::val_str(String *str)
|
||||
{
|
||||
DBUG_ASSERT(fixed == 1);
|
||||
|
|
|
@ -778,6 +778,7 @@ public:
|
|||
const char *func_name() const { return "cast_as_date"; }
|
||||
String *val_str(String *str);
|
||||
bool get_date(MYSQL_TIME *ltime, uint fuzzy_date);
|
||||
bool get_time(MYSQL_TIME *ltime);
|
||||
const char *cast_type() const { return "date"; }
|
||||
enum_field_types field_type() const { return MYSQL_TYPE_DATE; }
|
||||
Field *tmp_table_field(TABLE *table)
|
||||
|
|
Loading…
Reference in a new issue