An after-fix for MDEV-14008 Assertion failing: `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())

Fixing an additional failure discovered after a merge to 10.2
This commit is contained in:
Alexander Barkov 2017-12-20 13:49:27 +04:00
parent f7f5c710e4
commit cb121a047b
3 changed files with 19 additions and 1 deletions

View File

@ -1360,3 +1360,9 @@ SELECT * FROM t1;
c1
1e19
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (-1);
SELECT * FROM t1;
a
-1
DROP TABLE t1;

View File

@ -692,3 +692,8 @@ CREATE TABLE t1 (
INSERT INTO t1 VALUES ();
SELECT * FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (-1);
SELECT * FROM t1;
DROP TABLE t1;

View File

@ -4399,7 +4399,14 @@ longlong Field_double::val_int_from_real(bool want_unsigned_result)
float8get(j,ptr);
res= double_to_longlong(j, want_unsigned_result, &error);
if (error)
/*
Note, val_uint() is currently used for auto_increment purposes only,
and we want to suppress all warnings in such cases.
If we ever start using val_uint() for other purposes,
val_int_from_real() will need a new separate parameter to
suppress warnings.
*/
if (error && !want_unsigned_result)
{
ErrConvDouble err(j);
push_warning_printf(current_thd, Sql_condition::WARN_LEVEL_WARN,