diff options
author | ingo@mysql.com <> | 2004-12-23 20:11:38 +0100 |
---|---|---|
committer | ingo@mysql.com <> | 2004-12-23 20:11:38 +0100 |
commit | c39be2d0e7e4df339617efc96e1a38aab36be82b (patch) | |
tree | 50e9e32282ae9dd90825e12f5be6e80b9e77f31f /extra/comp_err.c | |
parent | 1ea48a2dbf197b3e49874deace2fff5fd7c4b34e (diff) | |
download | mariadb-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.c | 9 |
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); |