summaryrefslogtreecommitdiff
path: root/extra/comp_err.c
diff options
context:
space:
mode:
authoringo@mysql.com <>2004-12-23 20:11:38 +0100
committeringo@mysql.com <>2004-12-23 20:11:38 +0100
commitc39be2d0e7e4df339617efc96e1a38aab36be82b (patch)
tree50e9e32282ae9dd90825e12f5be6e80b9e77f31f /extra/comp_err.c
parent1ea48a2dbf197b3e49874deace2fff5fd7c4b34e (diff)
downloadmariadb-git-c39be2d0e7e4df339617efc96e1a38aab36be82b.tar.gz
WL#1895 - Print message to error log in case of detected MyISAM corruption
Changed my_error() to print error messages, which come from arbitrary registered ranges of error messages. Messages can be unregistered (and should be at end of the program). Added registration of handler error messages. Added a new mi_print_error() macro and a new mi_report_error() function, which supply error messages with a table name. Added calls to mi_print_error() or mi_report_error() at all places in MyISAM, where table corruption is detected.
Diffstat (limited to 'extra/comp_err.c')
-rw-r--r--extra/comp_err.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/extra/comp_err.c b/extra/comp_err.c
index 9ddd1d7d971..8bc8a989a6a 100644
--- a/extra/comp_err.c
+++ b/extra/comp_err.c
@@ -191,10 +191,11 @@ int main(int argc, char *argv[])
static int create_header_files(struct errors *error_head)
{
- uint er_count= 0;
+ uint er_last;
FILE *er_definef, *sql_statef;
struct errors *tmp_error;
DBUG_ENTER("create_header_files");
+ LINT_INIT(er_last);
if (!(er_definef= my_fopen(HEADERFILE, O_WRONLY, MYF(MY_WME))))
{
@@ -209,6 +210,8 @@ static int create_header_files(struct errors *error_head)
fprintf(er_definef, "/* Autogenerated file, please don't edit */\n\n");
fprintf(sql_statef, "/* Autogenerated file, please don't edit */\n\n");
+ fprintf(er_definef, "#define ER_ERROR_FIRST %d\n", error_head->d_code);
+
for (tmp_error= error_head; tmp_error; tmp_error= tmp_error->next_error)
{
/*
@@ -217,16 +220,16 @@ static int create_header_files(struct errors *error_head)
*/
fprintf(er_definef, "#define %s %d\n", tmp_error->er_name,
tmp_error->d_code);
+ er_last= tmp_error->d_code;
/* generating sql_state.h file */
if (tmp_error->sql_code1[0] || tmp_error->sql_code2[0])
fprintf(sql_statef,
"%-40s,\"%s\", \"%s\",\n", tmp_error->er_name,
tmp_error->sql_code1, tmp_error->sql_code2);
- er_count++;
}
/* finishing off with mysqld_error.h */
- fprintf(er_definef, "#define ER_ERROR_MESSAGES %d\n", er_count);
+ fprintf(er_definef, "#define ER_ERROR_LAST %d\n", er_last);
my_fclose(er_definef, MYF(0));
my_fclose(sql_statef, MYF(0));
DBUG_RETURN(0);