diff options
-rw-r--r-- | mysql-test/main/type_time.result | 9 | ||||
-rw-r--r-- | mysql-test/main/type_time.test | 9 | ||||
-rw-r--r-- | sql/sql_type.cc | 1 |
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 { |