diff options
author | Magne Mahre <magne.mahre@sun.com> | 2009-11-18 10:32:03 +0100 |
---|---|---|
committer | Magne Mahre <magne.mahre@sun.com> | 2009-11-18 10:32:03 +0100 |
commit | 3987c7ac4b7ecfde471c10386bb413205809dfe1 (patch) | |
tree | 1ada061831543d420f8600738954bcf6ff60f1d6 /mysql-test/r/delete.result | |
parent | eb7bfcac405045541a4fc156e9c34a448d4dd128 (diff) | |
download | mariadb-git-3987c7ac4b7ecfde471c10386bb413205809dfe1.tar.gz |
Bug #46425 crash in Diagnostics_area::set_ok_status , empty statement,
DELETE IGNORE
The ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG error was set in the
diagnostics area when it happened, but the DELETE cleanup code
never checked for a non-fatal error condition, thus trying to
set diag.area to "ok". This triggered an assert checking that
the diag.area was empty.
The fix was to test if there existed a non-fatal error condition
(thd->is_error() before ok'ing the operation.
Diffstat (limited to 'mysql-test/r/delete.result')
-rw-r--r-- | mysql-test/r/delete.result | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mysql-test/r/delete.result b/mysql-test/r/delete.result index 0124a7da35a..1df19a75854 100644 --- a/mysql-test/r/delete.result +++ b/mysql-test/r/delete.result @@ -324,3 +324,16 @@ a 1 2 DROP TABLE t1, t2, t3; +# +# Bug #46425 crash in Diagnostics_area::set_ok_status, +# empty statement, DELETE IGNORE +# +CREATE table t1 (i INTEGER); +INSERT INTO t1 VALUES (1); +CREATE TRIGGER tr1 AFTER DELETE ON t1 FOR EACH ROW +BEGIN +INSERT INTO t1 SELECT * FROM t1 AS A; +END | +DELETE IGNORE FROM t1; +ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. +DROP TABLE t1; |