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()));
|
||||
res|= thd->is_error();
|
||||
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();
|
||||
}
|
||||
delete result;
|
||||
thd->abort_on_warning= 0;
|
||||
DBUG_RETURN(FALSE);
|
||||
|
Reference in New Issue
Block a user