← Back to team overview

maria-developers team mailing list archive

Re: 1060cc4235a: MDEV-23500: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'

 

Hi, Rucha!

On Oct 21, Rucha Deodhar wrote:
> revision-id: 1060cc4235a (mariadb-10.2.31-438-g1060cc4235a)
> parent(s): 80075ba011f
> author: Rucha Deodhar <rucha.deodhar@xxxxxxxxxxx>
> committer: Rucha Deodhar <rucha.deodhar@xxxxxxxxxxx>
> timestamp: 2020-09-22 17:12:57 +0530
> message:
> 
> MDEV-23500: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'
> failed in Diagnostics_area::set_ok_status upon multi-table update
> 
> Analysis: When NULL field is copied to NOT-NULL so there is error but
> this error is not reported so we get the failure.
> Fix: Return the error state.
> 
> diff --git a/mysql-test/r/update.result b/mysql-test/r/update.result
> index 9e19abc4e9c..c1d37fc36e7 100644
> --- a/mysql-test/r/update.result
> +++ b/mysql-test/r/update.result
> @@ -731,4 +731,14 @@ INSERT INTO t2 VALUES
>  UPDATE t1,t2 SET t1.i1 = -39 WHERE t2.d1 <> t1.i1 AND t2.d1 = t1.d2;
>  ERROR 22007: Incorrect datetime value: '19' for column `test`.`t1`.`i1` at row 1
>  DROP TABLE t1,t2;
> +#
> +# MDEV-23500: Assertion `!is_set() || (m_status == DA_OK_BULK &&
> +# is_bulk_op())' failed in Diagnostics_area::set_ok_status upon
> +# multi-table update
> +#
> +CREATE TABLE t (f INT NOT NULL);
> +INSERT INTO t VALUES (0),(0);
> +UPDATE t AS t1 LEFT JOIN t AS t2 ON t1.f <=> t2.f SET t2.f = NULL;
> +ERROR 01000: Data truncated for column 'f' at row 4

with a single-table update I get

MariaDB [test]> update t set f=NULL;
ERROR 1048 (23000): Column 'f' cannot be null

should multi-table update produce the same error?

> +DROP TABLE t;

Regards,
Sergei
VP of MariaDB Server Engineering
and security@xxxxxxxxxxx