Loading extra/perror.c +38 −2 Original line number Diff line number Diff line Loading @@ -185,11 +185,36 @@ static const char *get_ha_error_msg(int code) } #if defined(__WIN__) static my_bool print_win_error_msg(DWORD error, my_bool verbose) { LPTSTR s; if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, (LPTSTR)&s, 0, NULL)) { if (verbose) printf("Win32 error code %d: %s", error, s); else puts(s); LocalFree(s); return 0; } return 1; } #endif int main(int argc,char *argv[]) { int error,code,found; const char *msg; char *unknown_error = 0; #if defined(__WIN__) my_bool skip_win_message= 0; #endif MY_INIT(argv[0]); if (get_options(&argc,&argv)) Loading Loading @@ -286,8 +311,15 @@ int main(int argc,char *argv[]) /* Error message still not found, look in handler error codes */ if (!(msg=get_ha_error_msg(code))) { #if defined(__WIN__) if (!(skip_win_message= !print_win_error_msg((DWORD)code, verbose))) { #endif fprintf(stderr,"Illegal error code: %d\n",code); error=1; #if defined(__WIN__) } #endif } else { Loading @@ -298,6 +330,10 @@ int main(int argc,char *argv[]) puts(msg); } } #if defined(__WIN__) if (!skip_win_message) print_win_error_msg((DWORD)code, verbose); #endif } } Loading mysql-test/r/perror-win.result 0 → 100644 +5 −0 Original line number Diff line number Diff line MySQL error code 150: Foreign key constraint is incorrectly formed Win32 error code 150: System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. OS error code 23: Too many open files in system Win32 error code 23: Data error (cyclic redundancy check). Win32 error code 15000: The specified channel path is invalid. mysql-test/t/perror-win.test 0 → 100644 +11 −0 Original line number Diff line number Diff line # Windows-specific tests --source include/windows.inc --require r/have_perror.require disable_query_log; eval select LENGTH("$MY_PERROR") > 0 as "have_perror"; enable_query_log; --exec $MY_PERROR 150 --exec $MY_PERROR 23 --exec $MY_PERROR 15000 Loading
extra/perror.c +38 −2 Original line number Diff line number Diff line Loading @@ -185,11 +185,36 @@ static const char *get_ha_error_msg(int code) } #if defined(__WIN__) static my_bool print_win_error_msg(DWORD error, my_bool verbose) { LPTSTR s; if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, (LPTSTR)&s, 0, NULL)) { if (verbose) printf("Win32 error code %d: %s", error, s); else puts(s); LocalFree(s); return 0; } return 1; } #endif int main(int argc,char *argv[]) { int error,code,found; const char *msg; char *unknown_error = 0; #if defined(__WIN__) my_bool skip_win_message= 0; #endif MY_INIT(argv[0]); if (get_options(&argc,&argv)) Loading Loading @@ -286,8 +311,15 @@ int main(int argc,char *argv[]) /* Error message still not found, look in handler error codes */ if (!(msg=get_ha_error_msg(code))) { #if defined(__WIN__) if (!(skip_win_message= !print_win_error_msg((DWORD)code, verbose))) { #endif fprintf(stderr,"Illegal error code: %d\n",code); error=1; #if defined(__WIN__) } #endif } else { Loading @@ -298,6 +330,10 @@ int main(int argc,char *argv[]) puts(msg); } } #if defined(__WIN__) if (!skip_win_message) print_win_error_msg((DWORD)code, verbose); #endif } } Loading
mysql-test/r/perror-win.result 0 → 100644 +5 −0 Original line number Diff line number Diff line MySQL error code 150: Foreign key constraint is incorrectly formed Win32 error code 150: System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. OS error code 23: Too many open files in system Win32 error code 23: Data error (cyclic redundancy check). Win32 error code 15000: The specified channel path is invalid.
mysql-test/t/perror-win.test 0 → 100644 +11 −0 Original line number Diff line number Diff line # Windows-specific tests --source include/windows.inc --require r/have_perror.require disable_query_log; eval select LENGTH("$MY_PERROR") > 0 as "have_perror"; enable_query_log; --exec $MY_PERROR 150 --exec $MY_PERROR 23 --exec $MY_PERROR 15000