From: Martin Hansson Date: February 13 2010 5:21pm Subject: bzr commit into mysql-pe branch (martin.hansson:3905) Bug#49534 List-Archive: http://lists.mysql.com/commits/100254 X-Bug: 49534 Message-Id: <20100213172149.BE14728343D@Magenta.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_5Z2IWMu5X2UuYzw9jJ6tuw)" --Boundary_(ID_5Z2IWMu5X2UuYzw9jJ6tuw) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline #At file:///Users/martin/bzr/bug49534/6.0bt-post/ based on revid:davi.arnaut@stripped 3905 Martin Hansson 2010-02-13 Post-push fix for Bug#49534. It is not safe to use THD::raise_error() inside an override of Internal_error_handler::handle_condition(). The patch changes subsitutes this call with a call to thd->stmt_da->set_error_status(). modified: sql/sql_update.cc === modified file 'sql/sql_update.cc' --- a/sql/sql_update.cc 2010-02-11 14:47:26 +0000 +++ b/sql/sql_update.cc 2010-02-13 17:21:43 +0000 @@ -1215,10 +1215,10 @@ reopen_tables: class Safe_dml_handler : public Internal_error_handler { private: - bool m_handled_error, m_handling; + bool m_handled_error; public: - explicit Safe_dml_handler() : m_handled_error(FALSE), m_handling(FALSE) {} + explicit Safe_dml_handler() : m_handled_error(FALSE) {} bool handle_condition(THD *thd, uint sql_errno, @@ -1227,28 +1227,14 @@ public: const char* msg, MYSQL_ERROR ** cond_hdl) { - if (m_handling) - return FALSE; - - m_handling= TRUE; - - bool status; - if (level == MYSQL_ERROR::WARN_LEVEL_ERROR && sql_errno == ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE) { - m_handling= TRUE; - thd->lex->current_select->no_error= FALSE; - thd->raise_error(sql_errno); - thd->lex->current_select->no_error= TRUE; + thd->stmt_da->set_error_status(thd, sql_errno, msg, sqlstate); m_handled_error= TRUE; - status= TRUE; + return TRUE; } - else - status= FALSE; - - m_handling= FALSE; - return status; + return FALSE; } bool handled_error() { return m_handled_error; } --Boundary_(ID_5Z2IWMu5X2UuYzw9jJ6tuw) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/martin.hansson@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/martin.hansson@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: martin.hansson@stripped # target_branch: file:///Users/martin/bzr/bug49534/6.0bt-post/ # testament_sha1: 2465e7d841f7a4fa56c9673b793e55f9c544f2fe # timestamp: 2010-02-13 18:21:49 +0100 # base_revision_id: davi.arnaut@stripped\ # sppz3a72crj7teo4 # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWaL4rO8AAeffgFAQWWf//3dm XgC////6UASYl4u7uYZJ3bdsgSSQ0hiNTyYTVP0yp+SmjQ9TRhPUBo0aeoCUimaJnpKfqn6TRqek 0NDIAaABoaBoEoQCGpplT9KeEah6mhmoMgHqaeppkGQc0xMmTRhMExNMAmAQwRgRgEkhMjQCaCbV NPSPQnlGmgyNA0AaFXpjjya/8qNxeao6EIIoqXLpxVtDw1qBqkRo7XCy/ZBguzMJFDjboPhkqqiP 4Il1/dGamCtnhF71SBnczmwz49tTg6vB/W2X17nwf3xf3/nUfhbd/b0WQrbXB7lwUsmSgGY0vwdT Xlm3mtxxaCHFouKTtFkAj8ePE32FtToHZcTuYsswlydUX7BF3SJ78Oks4aSdPeXYEbrpN6oVqQWC 7ndSFJxRBmZaL0eU50QYQcMKIOYbcyXmUtQ8wKyPCBkGhi5Iusc60RawVqMJvihdFN12NKCC7Noz xTbZWKJ9yBo3y5x0SZ+f5pHLZk+lIrNQjkFYIvZSlBnxwHBBVGsdeeBhKddKVimqmFlc4o0iraVe QHkg8Efswl4Hp2MmarW2pYTZEW/IgdzsYwU1kq5H0VmB/VMlhnKB5G0kUeZuYRb5U/RQSzG8ukmJ Dtdrgo4DtdJIYJ9yvMdLb5XaaiFLdmr+/AgVBEcWLkKCB/V1CzFdooJjMr7iLjIY12y3inpmeqEj SqGHINm8VSRQsNfkvnGRt4uKyuuUxR03lwRp7feeYK/QZRNym/a8zstGx6VQbLrOrnc9iLmdtITU mF9yaJMzTz+HlzaLlFzZeJsrh/ZEo+c043Y1Y6A+g63aoXidX7YbWeRqXUPD1rgcsJpbOInEqNnz 7hxPsi1pXsB1zC61/K0iDTtTEicvfxHFdZHsw5cdxvQVamO8dr7DUUq8kofuf1OsY0JEP96125Et 693wKzaVaTkYp6aV4plptW3sMC0kZRJiqKu7oz0tpz2hDXe2goLOXyneX0E5utcUBZkbYHKP6ftU A7vTIrUsr/IPhraOtKwJ4dw6lRqURi9Q7qrFSUGZD6OBeb3Dx1YwnHQZlPhnQpTz/IUmUQYGd3nx voFoKacTyXqyLVjwrbUJnBhvB5wAivZQ7ak003QXY7qxWUROkzyB5myDMLTt3OonFkuD88QNXXdx puTacVIogaA4xPrIjFc1NBhFYMEzOTK7eoeqIRNW35nQjK0UbdAjZFeadpZXYc3TYJS6Sq1F0Ig8 BkRH0FTfGAQZBWY4URp4v5yUkHDwZPZDKV55oLTVXbtBc00MAwOfGZBWCKDU3GprbVSqg9pddal6 bEjicN3VTa5UmWUaJ61ZRigpltaxmDaM5mS6Ks3i8ec/VXQygk0S3KZaNRG1R9edWQQFSSESQVOG XKOJnATpjNdrKHWOzemN0pAqnAtvZR6KgZzEzIEGtGwKUCI3ipIxgE+tEG2R4aaa9m6GCDCSgsTC XyvKOByDe1LZZ6yvHr5vJR26dw8ZBK8eMFYoMoYGA6BeK6XVxO5npG5NkFu+xP2Vi2YLHXCS0AZk uBxyFdAWrOkMteLM3SaJDZK/xkCBe0Sc7f9/xdyRThQkKL4rO8A= --Boundary_(ID_5Z2IWMu5X2UuYzw9jJ6tuw)--