summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2018-12-25 08:27:07 +0400
committerAlexander Barkov <bar@mariadb.com>2018-12-25 08:27:07 +0400
commitb316989223aa59f71420dc31497c41f3a9d2caf4 (patch)
treeaaddd76027200385a2cd3ee1eb5f81e78292b1ae
parenta8eb0c76bf72bea57e630b6500b981258bc25cfe (diff)
downloadmariadb-git-b316989223aa59f71420dc31497c41f3a9d2caf4.tar.gz
MDEV-18072 Assertion `is_null() == item->null_value || conv' failed in Timestamp_or_zero_datetime_native_null::Timestamp_or_zero_datetime_native_null upon query with GROUP BY
-rw-r--r--mysql-test/main/type_time.result9
-rw-r--r--mysql-test/main/type_time.test9
-rw-r--r--sql/sql_type.cc1
3 files changed, 19 insertions, 0 deletions
diff --git a/mysql-test/main/type_time.result b/mysql-test/main/type_time.result
index 38b732d6f16..725b25f4f42 100644
--- a/mysql-test/main/type_time.result
+++ b/mysql-test/main/type_time.result
@@ -2177,5 +2177,14 @@ ERROR 22007: Incorrect time value: '0000-00-00 00:00:00' for column `test`.`t1`.
SET sql_mode=DEFAULT;
DROP TABLE t1;
#
+# MDEV-18070 Assertion `nanoseconds <= 1000000000' failed in Temporal::add_nanoseconds_ssff with TIME_ROUND_FRACTIONAL
+#
+CREATE TABLE t1 (t TIME);
+SET SQL_MODE= 'TIME_ROUND_FRACTIONAL';
+INSERT INTO t1 VALUES (3e19);
+Warnings:
+Warning 1264 Out of range value for column 't' at row 1
+DROP TABLE t1;
+#
# End of 10.4 tests
#
diff --git a/mysql-test/main/type_time.test b/mysql-test/main/type_time.test
index 67f714e61db..7eb75b95af2 100644
--- a/mysql-test/main/type_time.test
+++ b/mysql-test/main/type_time.test
@@ -1420,6 +1420,15 @@ INSERT INTO t1 VALUES ('0000-00-00 00:00:00'),('0000-00-00 00:00:00');
SET sql_mode=DEFAULT;
DROP TABLE t1;
+--echo #
+--echo # MDEV-18070 Assertion `nanoseconds <= 1000000000' failed in Temporal::add_nanoseconds_ssff with TIME_ROUND_FRACTIONAL
+--echo #
+
+CREATE TABLE t1 (t TIME);
+SET SQL_MODE= 'TIME_ROUND_FRACTIONAL';
+INSERT INTO t1 VALUES (3e19);
+DROP TABLE t1;
+
--echo #
--echo # End of 10.4 tests
diff --git a/sql/sql_type.cc b/sql/sql_type.cc
index 263b5198588..96a73a85267 100644
--- a/sql/sql_type.cc
+++ b/sql/sql_type.cc
@@ -331,6 +331,7 @@ void Sec6::make_from_double(double nr, ulong *nanoseconds)
{
m_sec= LONGLONG_MAX;
m_usec= 0;
+ *nanoseconds= 0;
}
else
{