mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Merge work:/home/bk/mysql into donna.mysql.com:/home/my/bk/mysql
This commit is contained in:
commit
1ce0e50f4c
49 changed files with 128 additions and 40 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
@ -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."},
|
||||
|
@ -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())
|
||||
|
@ -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 == '\'' ?
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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)))
|
||||
{
|
||||
|
@ -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++;
|
||||
|
@ -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;
|
||||
|
@ -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' */
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -196,7 +196,7 @@ static struct option long_options[] =
|
|||
|
||||
static void print_version(void)
|
||||
{
|
||||
printf("%s Ver 1.37 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
printf("%s Ver 1.38 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
}
|
||||
|
||||
|
@ -739,12 +739,7 @@ static int myisamchk(MI_CHECK *param, my_string filename)
|
|||
printf("Data records: %7s Deleted blocks: %7s\n",
|
||||
llstr(info->state->records,llbuff),
|
||||
llstr(info->state->del,llbuff2));
|
||||
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);
|
||||
}
|
||||
error =chk_status(param,info);
|
||||
share->state.key_map &=param->keys_in_use;
|
||||
error =chk_size(param,info);
|
||||
if (!error || !(param->testflag & (T_FAST | T_FORCE_CREATE)))
|
||||
|
|
|
@ -259,6 +259,7 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
|
|||
(uint) (share->global_changed ? 1 : 0)))))
|
||||
return HA_ADMIN_ALREADY_DONE;
|
||||
|
||||
error = chk_status(¶m, file); // Not fatal
|
||||
error = chk_size(¶m, file);
|
||||
if (!error)
|
||||
error |= chk_del(¶m, file, param.testflag);
|
||||
|
@ -266,8 +267,10 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
|
|||
error = chk_key(¶m, file);
|
||||
if (!error)
|
||||
{
|
||||
if (!check_opt->quick &&
|
||||
(share->options & (HA_OPTION_PACK_RECORD | HA_OPTION_COMPRESS_RECORD)))
|
||||
if ((!check_opt->quick &&
|
||||
(share->options &
|
||||
(HA_OPTION_PACK_RECORD | HA_OPTION_COMPRESS_RECORD))) ||
|
||||
mi_is_crashed(file))
|
||||
{
|
||||
init_io_cache(¶m.read_cache, file->dfile,
|
||||
my_default_record_cache_size, READ_CACHE,
|
||||
|
@ -281,7 +284,8 @@ int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt)
|
|||
if ((share->state.changed & (STATE_CHANGED |
|
||||
STATE_CRASHED_ON_REPAIR |
|
||||
STATE_CRASHED | STATE_NOT_ANALYZED)) ||
|
||||
(param.testflag & T_STATISTICS))
|
||||
(param.testflag & T_STATISTICS) ||
|
||||
mi_is_crashed(file))
|
||||
{
|
||||
file->update|=HA_STATE_CHANGED | HA_STATE_ROW_CHANGED;
|
||||
pthread_mutex_lock(&share->intern_lock);
|
||||
|
|
|
@ -543,9 +543,14 @@ void handler::print_error(int error, myf errflag)
|
|||
textno=ER_CHECKREAD;
|
||||
break;
|
||||
case HA_ERR_CRASHED:
|
||||
case HA_ERR_CRASHED_ON_REPAIR:
|
||||
textno=ER_NOT_KEYFILE;
|
||||
break;
|
||||
case HA_ERR_CRASHED_ON_USAGE:
|
||||
textno=ER_CRASHED_ON_USAGE;
|
||||
break;
|
||||
case HA_ERR_CRASHED_ON_REPAIR:
|
||||
textno=ER_CRASHED_ON_REPAIR;
|
||||
break;
|
||||
case HA_ERR_OUT_OF_MEM:
|
||||
my_error(ER_OUT_OF_RESOURCES,errflag);
|
||||
DBUG_VOID_RETURN;
|
||||
|
|
Binary file not shown.
|
@ -209,3 +209,5 @@
|
|||
"-B®ádný sloupec nemá vytvoøen fulltextový index",-A
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -198,3 +198,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -199,3 +199,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -198,3 +198,5 @@
|
|||
"Kann keinen FULLTEXT-Index finden der der Spaltenliste entspricht",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -197,3 +197,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Impossibile trovare un indice FULLTEXT che corrisponda all'elenco delle colonne",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -197,3 +197,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
|
@ -197,3 +197,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
|
@ -197,3 +197,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -199,3 +199,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
|
@ -199,3 +199,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -198,3 +198,5 @@
|
|||
"FULLTEXT ÉÎÄÅËÓ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÚÁÄÁÎÎÏÍÕ ÓÐÉÓËÕ ÓÔÏÌÂÃÏ×, ÎÅ ÎÁÊÄÅÎ",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -203,3 +203,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
Binary file not shown.
|
@ -196,3 +196,5 @@
|
|||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
|
|
|
@ -195,3 +195,7 @@
|
|||
"Hittar inte ett FULLTEXT index i kolumnlistan",
|
||||
"Kan inte exekvera kommandot emedan du har en låst tabell eller an aktiv transaktion",
|
||||
"Okänd system variabel '%-.64'",
|
||||
#ER_CRASHED_ON_USAGE
|
||||
"Tabell '%-.64s' är crashad och bör repareras med REPAIR TABLE",
|
||||
#ER_CRASHED_ON_REPAIR
|
||||
"Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,5 @@
|
|||
"Hittar inte ett FULLTEXT index i kolumnlistan",
|
||||
"Kan inte exekvera kommandot emedan du har en låst tabell eller an aktiv transaktion",
|
||||
"Okänd system variabel '%-.64'",
|
||||
"Tabell '%-.64s' är crashad och bör repareras med REPAIR TABLE",
|
||||
"Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades",
|
||||
|
|
|
@ -650,8 +650,8 @@ TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
|
|||
(Item_result_field***) 0, &tmp_field,0,0);
|
||||
if (!field ||
|
||||
!(cr_field=new create_field(field,(item->type() == Item::FIELD_ITEM ?
|
||||
((Item_field *)item)->field : NULL)
|
||||
)))
|
||||
((Item_field *)item)->field :
|
||||
(Field*) 0))))
|
||||
DBUG_RETURN(0);
|
||||
extra_fields->push_back(cr_field);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue