diff options
author | Georgi Kodinov <joro@sun.com> | 2009-10-19 16:55:04 +0300 |
---|---|---|
committer | Georgi Kodinov <joro@sun.com> | 2009-10-19 16:55:04 +0300 |
commit | 74b0f6be2fd8f0f46f490fd2b10f6dbfef9dad41 (patch) | |
tree | ca40ef4de6c4ecfda5991f0b9266e228365ff788 /sql | |
parent | 8363e2665995539541222e40a0be60c292f7495c (diff) | |
download | mariadb-git-74b0f6be2fd8f0f46f490fd2b10f6dbfef9dad41.tar.gz |
Bug #47788: Crash in TABLE_LIST::hide_view_error on
UPDATE + VIEW + SP + MERGE + ALTER
When cleaning up the stored procedure's internal
structures the flag to ignore the errors for
INSERT/UPDATE IGNORE was not cleaned up.
As a result error ignoring was on during name
resolution. And this is an abnormal situation : the
SELECT_LEX flag can be on only during query execution.
Fixed by correctly cleaning up the SELECT_LEX flag
when reusing the SELECT_LEX in a second execution.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_prepare.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 3f1727ccb39..e2a24f7da1e 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -2342,6 +2342,9 @@ void reinit_stmt_before_use(THD *thd, LEX *lex) /* Fix ORDER list */ for (order= (ORDER *)sl->order_list.first; order; order= order->next) order->item= &order->item_ptr; + + /* clear the no_error flag for INSERT/UPDATE IGNORE */ + sl->no_error= FALSE; } { SELECT_LEX_UNIT *unit= sl->master_unit(); |