summaryrefslogtreecommitdiff
path: root/mysys/my_handler.c
diff options
context:
space:
mode:
authorunknown <gkodinov/kgeorge@magare.gmz>2008-03-28 18:45:03 +0200
committerunknown <gkodinov/kgeorge@magare.gmz>2008-03-28 18:45:03 +0200
commitd5a6fa7e8c84b424ca38aaf27e08a3371cb8d32c (patch)
tree4711cd6d2ffea0a95e9b60ca57e1ad8c9a490ff9 /mysys/my_handler.c
parent1d9f9abce36a81c8e6a9751940ff292a1ca15e2a (diff)
downloadmariadb-git-d5a6fa7e8c84b424ca38aaf27e08a3371cb8d32c.tar.gz
Fixed problem with non-synchronous error lists
in perror and handler descriptors (BUG#25177) Fixed problem of masking mysql error by system error in perror (BUG#23028) extra/perror.c: Used common handlers error list. Fixed BUG#23028 ignoring mysql error in case of OS and mysql error codes overlapping. include/my_base.h: Added errors of maria engine. Fixed incorrect comment in #define (can be cause of seriouse problems) include/my_handler.h: Added ability to be included into C++ code. mysys/my_handler.c: Error texts moved to the separate files. mysys/my_handler_errors.h: New BitKeeper file ``mysys/my_handler_errors.h''
Diffstat (limited to 'mysys/my_handler.c')
-rw-r--r--mysys/my_handler.c52
1 files changed, 10 insertions, 42 deletions
diff --git a/mysys/my_handler.c b/mysys/my_handler.c
index bf75d992f9d..3bc27b622cb 100644
--- a/mysys/my_handler.c
+++ b/mysys/my_handler.c
@@ -21,6 +21,8 @@
#include <my_handler.h>
#include <my_sys.h>
+#include "my_handler_errors.h"
+
int ha_compare_text(CHARSET_INFO *charset_info, uchar *a, uint a_length,
uchar *b, uint b_length, my_bool part_key,
my_bool skip_end_space)
@@ -565,48 +567,6 @@ HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a)
}
-/*
- Errors a handler can give you
-*/
-
-static const char *handler_error_messages[]=
-{
- "Didn't find key on read or update",
- "Duplicate key on write or update",
- "Undefined handler error 122",
- "Someone has changed the row since it was read (while the table was locked to prevent it)",
- "Wrong index given to function",
- "Undefined handler error 125",
- "Index file is crashed",
- "Record file is crashed",
- "Out of memory in engine",
- "Undefined handler error 129",
- "Incorrect file format",
- "Command not supported by database",
- "Old database file",
- "No record read before update",
- "Record was already deleted (or record file crashed)",
- "No more room in record file",
- "No more room in index file",
- "No more records (read after end of file)",
- "Unsupported extension used for table",
- "Too big row",
- "Wrong create options",
- "Duplicate unique key or constraint on write or update",
- "Unknown character set used in table",
- "Conflicting table definitions in sub-tables of MERGE table",
- "Table is crashed and last repair failed",
- "Table was marked as crashed and should be repaired",
- "Lock timed out; Retry transaction",
- "Lock table is full; Restart program with a larger locktable",
- "Updates are not allowed under a read only transactions",
- "Lock deadlock; Retry transaction",
- "Foreign key constraint is incorrectly formed",
- "Cannot add a child row",
- "Cannot delete a parent row",
- "Unknown handler error"
-};
-
/*
Register handler error messages for usage with my_error()
@@ -619,6 +579,14 @@ static const char *handler_error_messages[]=
void my_handler_error_register(void)
{
+ /*
+ If you got compilation error here about compile_time_assert array, check
+ that every HA_ERR_xxx constant has a corresponding error message in
+ handler_error_messages[] list (check mysys/ma_handler_errors.h and
+ include/my_base.h).
+ */
+ compile_time_assert(HA_ERR_FIRST + array_elements(handler_error_messages) ==
+ HA_ERR_LAST + 1);
my_error_register(handler_error_messages, HA_ERR_FIRST,
HA_ERR_FIRST+ array_elements(handler_error_messages)-1);
}