summaryrefslogtreecommitdiff
path: root/include/my_base.h
diff options
context:
space:
mode:
authorunknown <aelkin/elkin@koti.dsl.inet.fi>2008-01-31 14:54:03 +0200
committerunknown <aelkin/elkin@koti.dsl.inet.fi>2008-01-31 14:54:03 +0200
commitb6ec38cecc0285e8939e7b25aa5c63bada070974 (patch)
tree62810d7e03bc0d36e8a0506e3584e59a54c85015 /include/my_base.h
parentaa591861f47bda7e52a2ca63feb7cda30631e634 (diff)
downloadmariadb-git-b6ec38cecc0285e8939e7b25aa5c63bada070974.tar.gz
Bug #32971 No user level error message from slave sql thread when ER_NO_DEFAULT_FOR_FIELD
The error message due to lack of the default value for an extra field was not as informative as it should be. Fixed with improving the scheme of gathering, propagating and reporting errors in applying rows events. The scheme is in the following. Any kind of error of processing of a row event incidents are to be registered with my_error(). In the end Rows_log_event::do_apply_event() invokes rli->report() with the message to display consisting of all the errors. This mimics `show warnings' displaying. A simple test checks three errors in processing an event. Two hunks - a user level error and pushing it into the list - have been devoted to already fixed Bug@31702. Some open issues relating to this artifact listed on BUG@21842 page and on WL@3679. Todo: to synchronize the statement in the tests comments on Update and Delete events may not stop when an extra field does not have a default with wl@3228 spec. include/my_base.h: A new handler level error code that is supposed to be mapped to a set of more specific ER_ user level errors. mysql-test/extra/rpl_tests/rpl_row_tabledefs.test: Adding yet another extra fields to see more than one error in show slave status' report. mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result: results changed (the error message etc) mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result: results changed sql/log_event.cc: Refining slave_rows_error_report to iterate on the list of gathered errors; Simplifying signature of prepare_record as the function does not call rli->report to leave that duty to the event's top level code. sql/log_event.h: adding a corrupt event error pushing. The error will be seen with show slave status. sql/log_event_old.cc: similar to log_event.cc changes sql/rpl_record.cc: prepare_record only pushes an error to the list sql/rpl_record.h: signature changed sql/share/errmsg.txt: The user level error code that corresponds to HA_ERR_CORRUPT_EVENT. The error will be reported in show slave status if such a failure happens.
Diffstat (limited to 'include/my_base.h')
-rw-r--r--include/my_base.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/my_base.h b/include/my_base.h
index e65a04bb16d..69a6de67359 100644
--- a/include/my_base.h
+++ b/include/my_base.h
@@ -411,7 +411,9 @@ enum ha_base_keytype {
statement */
#define HA_ERR_CORRUPT_EVENT 171 /* The event was corrupt, leading to
illegal data being read */
-#define HA_ERR_LAST 171 /*Copy last error nr.*/
+#define HA_ERR_ROWS_EVENT_APPLY 172 /* The event could not be processed
+ no other hanlder error happened */
+#define HA_ERR_LAST 172 /*Copy last error nr.*/
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)