mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-216 lp:976104 - Assertion `0' failed in my_message_sql on UPDATE IGNORE, or unknown error on release build
Don't send_error at the end of mysql_multi_update() if select failed. The error, if there was any, was already sent by mysql_select
This commit is contained in:
9
mysql-test/r/update_ignore_216.result
Normal file
9
mysql-test/r/update_ignore_216.result
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
CREATE TABLE t1 ( a INT, b CHAR(3) );
|
||||||
|
INSERT INTO t1 VALUES ( 1, 'foo' );
|
||||||
|
CREATE TABLE t2 ( c CHAR(3), d INT );
|
||||||
|
INSERT INTO t2 VALUES ( 'foo', 1 );
|
||||||
|
UPDATE IGNORE t1, t2 SET b = 'bar', c = 'bar'
|
||||||
|
WHERE a != ( SELECT 1 UNION SELECT 2 );
|
||||||
|
Warnings:
|
||||||
|
Warning 1242 Subquery returns more than 1 row
|
||||||
|
DROP TABLE t1, t2;
|
13
mysql-test/t/update_ignore_216.test
Normal file
13
mysql-test/t/update_ignore_216.test
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# MDEV-216 lp:976104 - Assertion `0' failed in my_message_sql on UPDATE IGNORE, or unknown error on release build
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( a INT, b CHAR(3) );
|
||||||
|
INSERT INTO t1 VALUES ( 1, 'foo' );
|
||||||
|
CREATE TABLE t2 ( c CHAR(3), d INT );
|
||||||
|
INSERT INTO t2 VALUES ( 'foo', 1 );
|
||||||
|
|
||||||
|
UPDATE IGNORE t1, t2 SET b = 'bar', c = 'bar'
|
||||||
|
WHERE a != ( SELECT 1 UNION SELECT 2 );
|
||||||
|
|
||||||
|
DROP TABLE t1, t2;
|
@ -1293,11 +1293,7 @@ bool mysql_multi_update(THD *thd,
|
|||||||
DBUG_PRINT("info",("res: %d report_error: %d", res, (int) thd->is_error()));
|
DBUG_PRINT("info",("res: %d report_error: %d", res, (int) thd->is_error()));
|
||||||
res|= thd->is_error();
|
res|= thd->is_error();
|
||||||
if (unlikely(res))
|
if (unlikely(res))
|
||||||
{
|
|
||||||
/* If we had a another error reported earlier then this will be ignored */
|
|
||||||
result->send_error(ER_UNKNOWN_ERROR, ER(ER_UNKNOWN_ERROR));
|
|
||||||
result->abort();
|
result->abort();
|
||||||
}
|
|
||||||
delete result;
|
delete result;
|
||||||
thd->abort_on_warning= 0;
|
thd->abort_on_warning= 0;
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
|
Reference in New Issue
Block a user