1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-18447 Assertion `!is_zero_datetime()' failed in Timestamp_or_zero_datetime::tv

This commit is contained in:
Alexander Barkov
2019-02-12 11:59:17 +04:00
parent 9f56dd7382
commit ce6505f890
3 changed files with 24 additions and 1 deletions

View File

@ -1164,5 +1164,14 @@ NULL
NULL
DROP TABLE t1, t2, t3;
#
# MDEV-18447 Assertion `!is_zero_datetime()' failed in Timestamp_or_zero_datetime::tv
#
CREATE TABLE t1 (a TIMESTAMP DEFAULT 0, b TIMESTAMP DEFAULT 0, c TIME DEFAULT 0);
INSERT INTO t1 VALUES (0,0,0);
SELECT c IN (GREATEST(a,b)) FROM t1;
c IN (GREATEST(a,b))
0
DROP TABLE t1;
#
# End of 10.4 tests
#

View File

@ -760,6 +760,14 @@ CREATE TABLE t3 (pk INT PRIMARY KEY, b TIMESTAMP) ENGINE=MyISAM;
SELECT ( SELECT b FROM t1 LIMIT 1 ) AS sq FROM t2 LEFT JOIN t3 USING (pk);
DROP TABLE t1, t2, t3;
--echo #
--echo # MDEV-18447 Assertion `!is_zero_datetime()' failed in Timestamp_or_zero_datetime::tv
--echo #
CREATE TABLE t1 (a TIMESTAMP DEFAULT 0, b TIMESTAMP DEFAULT 0, c TIME DEFAULT 0);
INSERT INTO t1 VALUES (0,0,0);
SELECT c IN (GREATEST(a,b)) FROM t1;
DROP TABLE t1;
--echo #
--echo # End of 10.4 tests

View File

@ -2435,6 +2435,12 @@ public:
length(0); // safety
}
int save_in_field(Field *field, uint decimals) const;
Datetime to_datetime(THD *thd) const
{
return is_zero_datetime() ?
Datetime() :
Datetime(thd, Timestamp_or_zero_datetime(*this).tv());
}
bool is_zero_datetime() const
{
return length() == 0;
@ -2459,7 +2465,7 @@ public:
Datetime to_datetime(THD *thd) const
{
return is_null() ? Datetime() :
Datetime(thd, Timestamp_or_zero_datetime(*this).tv());
Timestamp_or_zero_datetime_native::to_datetime(thd);
}
void to_TIME(THD *thd, MYSQL_TIME *to)
{