Loading Docs/manual.texi +6 −0 Original line number Diff line number Diff line Loading @@ -8262,6 +8262,12 @@ following information: @example 127.0.0.1 localhost @end example @item @code{ALTER TABLE} While you are doing an @code{ALTER TABLE} the table is locked from usage by other threads. This has to do with the fact that you on Windows can't delete a file that is in use by another threads. (We may in the future find some way to go around this problem). @end table Here are some open issues for anyone who might want to help us with the Windows client/mysql.cc +35 −26 Original line number Diff line number Diff line Loading @@ -145,14 +145,18 @@ void tee_putc(int c, FILE *file); static int get_options(int argc,char **argv); static int com_quit(String *str,char*), com_go(String *str,char*), com_ego(String *str,char*), com_edit(String *str,char*), com_print(String *str,char*), com_print(String *str,char*), com_help(String *str,char*), com_clear(String *str,char*), com_connect(String *str,char*), com_status(String *str,char*), com_use(String *str,char*), com_source(String *str, char*), com_rehash(String *str, char*), com_pager(String *str, char*), com_nopager(String *str, char*), com_tee(String *str, char*), com_rehash(String *str, char*), com_tee(String *str, char*), com_notee(String *str, char*); #ifndef __WIN__ static int com_nopager(String *str, char*), com_pager(String *str, char*), com_edit(String *str,char*); #endif static int read_lines(bool execute_commands); static int sql_connect(char *host,char *database,char *user,char *password, uint silent); Loading Loading @@ -180,7 +184,9 @@ static COMMANDS commands[] = { { "clear", 'c', com_clear, 0, "Clear command."}, { "connect",'r', com_connect,1, "Reconnect to the server. Optional arguments are db and host." }, #ifndef __WIN__ { "edit", 'e', com_edit, 0, "Edit command with $EDITOR."}, #endif { "ego", 'G', com_ego, 0, "Send command to mysql server, display result vertically."}, { "exit", 'q', com_quit, 0, "Exit mysql. Same as quit."}, Loading Loading @@ -764,6 +770,16 @@ static int read_lines(bool execute_commands) } else { #ifdef __WIN__ if (opt_outfile && glob_buffer.is_empty()) fflush(OUTFILE); tee_fputs(glob_buffer.is_empty() ? "mysql> " : !in_string ? " -> " : in_string == '\'' ? " '> " : " \"> ",stdout); linebuffer[0]=(char) sizeof(linebuffer); line=_cgets(linebuffer); #else if (opt_outfile) { if (glob_buffer.is_empty()) Loading @@ -773,14 +789,6 @@ static int read_lines(bool execute_commands) in_string == '\'' ? " '> " : " \"> ", OUTFILE); } #ifdef __WIN__ tee_fprintf(stdout, glob_buffer.is_empty() ? "mysql> " : !in_string ? " -> " : in_string == '\'' ? " '> " : " \"> "); linebuffer[0]=(char) sizeof(linebuffer); line=_cgets(linebuffer); #else line=readline((char*) (glob_buffer.is_empty() ? "mysql> " : !in_string ? " -> " : in_string == '\'' ? Loading Loading @@ -1476,7 +1484,7 @@ static void end_pager() static void init_tee() { if (!(OUTFILE= my_fopen(outfile,O_APPEND | O_WRONLY | O_BINARY,MYF(MY_WME)))) if (!(OUTFILE= my_fopen(outfile, O_APPEND | O_WRONLY, MYF(MY_WME)))) { opt_outfile=0; init_pager(); Loading Loading @@ -1727,7 +1735,7 @@ com_tee(String *buffer, char *line __attribute__((unused))) init_tee(); opt_outfile=1; } tee_fprintf(stdout, "Outfile '%s' is in use now.\n", outfile); tee_fprintf(stdout, "Logging to file '%s'\n", outfile); return 0; } Loading @@ -1742,6 +1750,11 @@ com_notee(String *buffer __attribute__((unused)), return 0; } /* ** Sorry, this command is not available in Windows. */ #ifndef __WIN__ static int com_pager(String *buffer, char *line __attribute__((unused))) { Loading @@ -1749,10 +1762,6 @@ com_pager(String *buffer, char *line __attribute__((unused))) if (status.batch) return 0; #ifdef __WIN__ tee_fprintf(stdout, "Sorry, this command is not available in Windows.\n"); return 0; #endif /* Skip space from file name */ while (isspace(*line)) line++; Loading Loading @@ -1783,28 +1792,27 @@ com_pager(String *buffer, char *line __attribute__((unused))) return 0; } static int com_nopager(String *buffer __attribute__((unused)), char *line __attribute__((unused))) { #ifdef __WIN__ tee_fprintf(stdout, "This command has no function in Windows.\n"); return 0; #endif strmov(pager, "stdout"); opt_nopager=1; tee_fprintf(stdout, "PAGER set to stdout\n"); return 0; } #endif /* ** Sorry, you can't send the result to an editor in Win32 */ #ifndef __WIN__ static int com_edit(String *buffer,char *line __attribute__((unused))) { #ifdef __WIN__ put_info("Sorry, you can't send the result to an editor in Win32", INFO_ERROR); #else char filename[FN_REFLEN],buff[160]; int fd,tmp; const char *editor; Loading Loading @@ -1838,9 +1846,10 @@ com_edit(String *buffer,char *line __attribute__((unused))) (void) my_close(fd,MYF(0)); (void) my_delete(filename,MYF(MY_WME)); err: #endif return 0; } #endif /* If arg is given, exit without errors. This happens on command 'quit' */ Loading include/myisam.h +1 −0 Original line number Diff line number Diff line Loading @@ -353,6 +353,7 @@ typedef struct st_mi_sortinfo { /* functions in mi_check */ void myisamchk_init(MI_CHECK *param); int chk_status(MI_CHECK *param, MI_INFO *info); int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag); int chk_size(MI_CHECK *param, MI_INFO *info); int chk_key(MI_CHECK *param, MI_INFO *info); Loading include/mysqld_error.h +3 −1 Original line number Diff line number Diff line Loading @@ -194,4 +194,6 @@ #define ER_FT_MATCHING_KEY_NOT_FOUND 1191 #define ER_LOCK_OR_ACTIVE_TRANSACTION 1192 #define ER_UNKNOWN_SYSTEM_VARIABLE 1193 #define ER_ERROR_MESSAGES 194 #define ER_CRASHED_ON_USAGE 1194 #define ER_CRASHED_ON_REPAIR 1195 #define ER_ERROR_MESSAGES 196 myisam/mi_check.c +20 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,26 @@ void myisamchk_init(MI_CHECK *param) param->start_check_pos=0; } /* Check the status flags for the table */ int chk_status(MI_CHECK *param, register MI_INFO *info) { MYISAM_SHARE *share=info->s; if (mi_is_crashed_on_repair(info)) mi_check_print_warning(param, "Table is marked as crashed and last repair failed"); else if (mi_is_crashed(info)) mi_check_print_warning(param, "Table is marked as crashed"); if (share->state.open_count) { mi_check_print_warning(param, "%d clients is using or hasn't closed the table properly", share->state.open_count); } return 0; } /* Check delete links */ int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag) Loading Loading
Docs/manual.texi +6 −0 Original line number Diff line number Diff line Loading @@ -8262,6 +8262,12 @@ following information: @example 127.0.0.1 localhost @end example @item @code{ALTER TABLE} While you are doing an @code{ALTER TABLE} the table is locked from usage by other threads. This has to do with the fact that you on Windows can't delete a file that is in use by another threads. (We may in the future find some way to go around this problem). @end table Here are some open issues for anyone who might want to help us with the Windows
client/mysql.cc +35 −26 Original line number Diff line number Diff line Loading @@ -145,14 +145,18 @@ void tee_putc(int c, FILE *file); static int get_options(int argc,char **argv); static int com_quit(String *str,char*), com_go(String *str,char*), com_ego(String *str,char*), com_edit(String *str,char*), com_print(String *str,char*), com_print(String *str,char*), com_help(String *str,char*), com_clear(String *str,char*), com_connect(String *str,char*), com_status(String *str,char*), com_use(String *str,char*), com_source(String *str, char*), com_rehash(String *str, char*), com_pager(String *str, char*), com_nopager(String *str, char*), com_tee(String *str, char*), com_rehash(String *str, char*), com_tee(String *str, char*), com_notee(String *str, char*); #ifndef __WIN__ static int com_nopager(String *str, char*), com_pager(String *str, char*), com_edit(String *str,char*); #endif static int read_lines(bool execute_commands); static int sql_connect(char *host,char *database,char *user,char *password, uint silent); Loading Loading @@ -180,7 +184,9 @@ static COMMANDS commands[] = { { "clear", 'c', com_clear, 0, "Clear command."}, { "connect",'r', com_connect,1, "Reconnect to the server. Optional arguments are db and host." }, #ifndef __WIN__ { "edit", 'e', com_edit, 0, "Edit command with $EDITOR."}, #endif { "ego", 'G', com_ego, 0, "Send command to mysql server, display result vertically."}, { "exit", 'q', com_quit, 0, "Exit mysql. Same as quit."}, Loading Loading @@ -764,6 +770,16 @@ static int read_lines(bool execute_commands) } else { #ifdef __WIN__ if (opt_outfile && glob_buffer.is_empty()) fflush(OUTFILE); tee_fputs(glob_buffer.is_empty() ? "mysql> " : !in_string ? " -> " : in_string == '\'' ? " '> " : " \"> ",stdout); linebuffer[0]=(char) sizeof(linebuffer); line=_cgets(linebuffer); #else if (opt_outfile) { if (glob_buffer.is_empty()) Loading @@ -773,14 +789,6 @@ static int read_lines(bool execute_commands) in_string == '\'' ? " '> " : " \"> ", OUTFILE); } #ifdef __WIN__ tee_fprintf(stdout, glob_buffer.is_empty() ? "mysql> " : !in_string ? " -> " : in_string == '\'' ? " '> " : " \"> "); linebuffer[0]=(char) sizeof(linebuffer); line=_cgets(linebuffer); #else line=readline((char*) (glob_buffer.is_empty() ? "mysql> " : !in_string ? " -> " : in_string == '\'' ? Loading Loading @@ -1476,7 +1484,7 @@ static void end_pager() static void init_tee() { if (!(OUTFILE= my_fopen(outfile,O_APPEND | O_WRONLY | O_BINARY,MYF(MY_WME)))) if (!(OUTFILE= my_fopen(outfile, O_APPEND | O_WRONLY, MYF(MY_WME)))) { opt_outfile=0; init_pager(); Loading Loading @@ -1727,7 +1735,7 @@ com_tee(String *buffer, char *line __attribute__((unused))) init_tee(); opt_outfile=1; } tee_fprintf(stdout, "Outfile '%s' is in use now.\n", outfile); tee_fprintf(stdout, "Logging to file '%s'\n", outfile); return 0; } Loading @@ -1742,6 +1750,11 @@ com_notee(String *buffer __attribute__((unused)), return 0; } /* ** Sorry, this command is not available in Windows. */ #ifndef __WIN__ static int com_pager(String *buffer, char *line __attribute__((unused))) { Loading @@ -1749,10 +1762,6 @@ com_pager(String *buffer, char *line __attribute__((unused))) if (status.batch) return 0; #ifdef __WIN__ tee_fprintf(stdout, "Sorry, this command is not available in Windows.\n"); return 0; #endif /* Skip space from file name */ while (isspace(*line)) line++; Loading Loading @@ -1783,28 +1792,27 @@ com_pager(String *buffer, char *line __attribute__((unused))) return 0; } static int com_nopager(String *buffer __attribute__((unused)), char *line __attribute__((unused))) { #ifdef __WIN__ tee_fprintf(stdout, "This command has no function in Windows.\n"); return 0; #endif strmov(pager, "stdout"); opt_nopager=1; tee_fprintf(stdout, "PAGER set to stdout\n"); return 0; } #endif /* ** Sorry, you can't send the result to an editor in Win32 */ #ifndef __WIN__ static int com_edit(String *buffer,char *line __attribute__((unused))) { #ifdef __WIN__ put_info("Sorry, you can't send the result to an editor in Win32", INFO_ERROR); #else char filename[FN_REFLEN],buff[160]; int fd,tmp; const char *editor; Loading Loading @@ -1838,9 +1846,10 @@ com_edit(String *buffer,char *line __attribute__((unused))) (void) my_close(fd,MYF(0)); (void) my_delete(filename,MYF(MY_WME)); err: #endif return 0; } #endif /* If arg is given, exit without errors. This happens on command 'quit' */ Loading
include/myisam.h +1 −0 Original line number Diff line number Diff line Loading @@ -353,6 +353,7 @@ typedef struct st_mi_sortinfo { /* functions in mi_check */ void myisamchk_init(MI_CHECK *param); int chk_status(MI_CHECK *param, MI_INFO *info); int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag); int chk_size(MI_CHECK *param, MI_INFO *info); int chk_key(MI_CHECK *param, MI_INFO *info); Loading
include/mysqld_error.h +3 −1 Original line number Diff line number Diff line Loading @@ -194,4 +194,6 @@ #define ER_FT_MATCHING_KEY_NOT_FOUND 1191 #define ER_LOCK_OR_ACTIVE_TRANSACTION 1192 #define ER_UNKNOWN_SYSTEM_VARIABLE 1193 #define ER_ERROR_MESSAGES 194 #define ER_CRASHED_ON_USAGE 1194 #define ER_CRASHED_ON_REPAIR 1195 #define ER_ERROR_MESSAGES 196
myisam/mi_check.c +20 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,26 @@ void myisamchk_init(MI_CHECK *param) param->start_check_pos=0; } /* Check the status flags for the table */ int chk_status(MI_CHECK *param, register MI_INFO *info) { MYISAM_SHARE *share=info->s; if (mi_is_crashed_on_repair(info)) mi_check_print_warning(param, "Table is marked as crashed and last repair failed"); else if (mi_is_crashed(info)) mi_check_print_warning(param, "Table is marked as crashed"); if (share->state.open_count) { mi_check_print_warning(param, "%d clients is using or hasn't closed the table properly", share->state.open_count); } return 0; } /* Check delete links */ int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag) Loading