Commit 44a631f1 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Merge work:/home/bk/mysql-4.0 into hundin.mysql.fi:/my/bk/mysql-4.0

parents cde8c0ed edc6dc48
...@@ -183,16 +183,16 @@ FTP (@uref{ftp://sunsite.icm.edu.pl/pub/unix/mysql/}) ...@@ -183,16 +183,16 @@ FTP (@uref{ftp://sunsite.icm.edu.pl/pub/unix/mysql/})
WWW (@uref{http://darkstar.ist.utl.pt/mysql/}) WWW (@uref{http://darkstar.ist.utl.pt/mysql/})
FTP (@uref{ftp://darkstar.ist.utl.pt/pub/mysql/}) FTP (@uref{ftp://darkstar.ist.utl.pt/pub/mysql/})
@item
@image{Flags/portugal} Portugal [Netc] @@
WWW (@uref{http://ftp.netc.pt/pub/mysql/})
FTP (@uref{ftp://ftp.netc.pt/pub/mysql/})
@item @item
@image{Flags/portugal} Portugal [Netviso] @@ @image{Flags/portugal} Portugal [Netviso] @@
WWW (@uref{http://mysql.netvisao.pt/}) WWW (@uref{http://mysql.netvisao.pt/})
FTP (@uref{ftp://mirrors2.netvisao.pt/pub/mysql/}) FTP (@uref{ftp://mirrors2.netvisao.pt/pub/mysql/})
@item
@image{Flags/portugal} Portugal [VIZZAVI] @@
WWW (@uref{http://ftp.vizzavi.pt/pub/mysql/})
FTP (@uref{ftp://ftp.vizzavi.pt/pub/mysql/})
@item @item
@image{Flags/romania} Romania [roedu.net/Bucharest] @@ @image{Flags/romania} Romania [roedu.net/Bucharest] @@
FTP (@uref{ftp://ftp.roedu.net/pub/mirrors/ftp.mysql.com/}) FTP (@uref{ftp://ftp.roedu.net/pub/mirrors/ftp.mysql.com/})
...@@ -432,3 +432,4 @@ FTP (@uref{ftp://ftp.is.co.za/linux/mysql/}) ...@@ -432,3 +432,4 @@ FTP (@uref{ftp://ftp.is.co.za/linux/mysql/})
@end itemize @end itemize
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include <signal.h> #include <signal.h>
#include <violite.h> #include <violite.h>
const char *VER= "12.7"; const char *VER= "12.10";
/* Don't try to make a nice table if the data is too big */ /* Don't try to make a nice table if the data is too big */
#define MAX_COLUMN_LENGTH 1024 #define MAX_COLUMN_LENGTH 1024
...@@ -440,7 +440,7 @@ static struct my_option my_long_options[] = ...@@ -440,7 +440,7 @@ static struct my_option my_long_options[] =
"Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash.", "Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash.",
(gptr*) &rehash, (gptr*) &rehash, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, (gptr*) &rehash, (gptr*) &rehash, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"no-auto-rehash", 'A', {"no-auto-rehash", 'A',
"No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options depricated; use --disable-auto-rehash instead.", "No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options deprecated; use --disable-auto-rehash instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"batch", 'B', {"batch", 'B',
"Print results with a tab as separator, each row on new line. Doesn't use history file.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, "Print results with a tab as separator, each row on new line. Doesn't use history file.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
...@@ -468,7 +468,7 @@ static struct my_option my_long_options[] = ...@@ -468,7 +468,7 @@ static struct my_option my_long_options[] =
(gptr*) &ignore_errors, (gptr*) &ignore_errors, 0, GET_BOOL, NO_ARG, 0, 0, (gptr*) &ignore_errors, (gptr*) &ignore_errors, 0, GET_BOOL, NO_ARG, 0, 0,
0, 0, 0, 0}, 0, 0, 0, 0},
{"no-named-commands", 'g', {"no-named-commands", 'g',
"Named commands are disabled. Use \\* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option depricated; use --disable-named-commands instead.", "Named commands are disabled. Use \\* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option deprecated; use --disable-named-commands instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"named-commands", 'G', {"named-commands", 'G',
"Enable named commands. Named commands mean this program's internal commands; see mysql> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter. Disable with --disable-named-commands. This option is disabled by default.", "Enable named commands. Named commands mean this program's internal commands; see mysql> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter. Disable with --disable-named-commands. This option is disabled by default.",
...@@ -489,14 +489,14 @@ static struct my_option my_long_options[] = ...@@ -489,14 +489,14 @@ static struct my_option my_long_options[] =
{"line-numbers", OPT_LINE_NUMBERS, "Write line numbers for errors.", {"line-numbers", OPT_LINE_NUMBERS, "Write line numbers for errors.",
(gptr*) &line_numbers, (gptr*) &line_numbers, 0, GET_BOOL, (gptr*) &line_numbers, (gptr*) &line_numbers, 0, GET_BOOL,
NO_ARG, 0, 0, 0, 0, 0, 0}, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-line-numbers", 'L', "Don't write line number for errors. WARNING: -L is depricated, use long version of this option instead.", 0, 0, 0, GET_NO_ARG, {"skip-line-numbers", 'L', "Don't write line number for errors. WARNING: -L is deprecated, use long version of this option instead.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0}, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef __WIN__ #ifndef __WIN__
{"no-pager", OPT_NOPAGER, {"no-pager", OPT_NOPAGER,
"Disable pager and print to stdout. See interactive help (\\h) also. WARNING: option depricated; use --disable-pager instead.", "Disable pager and print to stdout. See interactive help (\\h) also. WARNING: option deprecated; use --disable-pager instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#endif #endif
{"no-tee", OPT_NOTEE, "Disable outfile. See interactive help (\\h) also. WARNING: option depricated; use --disable-tee instead", 0, 0, 0, GET_NO_ARG, {"no-tee", OPT_NOTEE, "Disable outfile. See interactive help (\\h) also. WARNING: option deprecated; use --disable-tee instead", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0}, NO_ARG, 0, 0, 0, 0, 0, 0},
{"unbuffered", 'n', "Flush buffer after each query.", (gptr*) &unbuffered, {"unbuffered", 'n', "Flush buffer after each query.", (gptr*) &unbuffered,
(gptr*) &unbuffered, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, (gptr*) &unbuffered, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
...@@ -504,10 +504,10 @@ static struct my_option my_long_options[] = ...@@ -504,10 +504,10 @@ static struct my_option my_long_options[] =
(gptr*) &column_names, (gptr*) &column_names, 0, GET_BOOL, (gptr*) &column_names, (gptr*) &column_names, 0, GET_BOOL,
NO_ARG, 1, 0, 0, 0, 0, 0}, NO_ARG, 1, 0, 0, 0, 0, 0},
{"skip-column-names", 'N', {"skip-column-names", 'N',
"Don't write column names in results. WARNING: -N is depricated, use long version of this options instead.", "Don't write column names in results. WARNING: -N is deprecated, use long version of this options instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O', {"set-variable", 'O',
"Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.", "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"one-database", 'o', {"one-database", 'o',
"Only update the default database. This is useful for skipping updates to other database in the update log.", "Only update the default database. This is useful for skipping updates to other database in the update log.",
...@@ -617,21 +617,18 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -617,21 +617,18 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
{ {
if (opt_outfile) if (opt_outfile)
end_tee(); end_tee();
opt_outfile= 0;
} }
else else
if (!opt_outfile) if (!opt_outfile)
{ {
strmov(outfile, argument); strmov(outfile, argument);
opt_outfile= 1;
init_tee(); init_tee();
} }
break; break;
case OPT_NOTEE: case OPT_NOTEE:
printf("WARNING: option depricated; use --disable-tee instead.\n"); printf("WARNING: option deprecated; use --disable-tee instead.\n");
if (opt_outfile) if (opt_outfile)
end_tee(); end_tee();
opt_outfile= 0;
break; break;
case OPT_PAGER: case OPT_PAGER:
opt_nopager= 0; opt_nopager= 0;
...@@ -642,12 +639,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -642,12 +639,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
strmov(default_pager, pager); strmov(default_pager, pager);
break; break;
case OPT_NOPAGER: case OPT_NOPAGER:
printf("WARNING: option depricated; use --disable-pager instead.\n"); printf("WARNING: option deprecated; use --disable-pager instead.\n");
opt_nopager= 1; opt_nopager= 1;
break; break;
case 'A': case 'A':
rehash= 0; rehash= 0;
break; break;
case 'N':
column_names= 0;
break;
case 'e': case 'e':
status.batch= 1; status.batch= 1;
status.add_to_history= 0; status.add_to_history= 0;
...@@ -739,11 +739,7 @@ static int get_options(int argc, char **argv) ...@@ -739,11 +739,7 @@ static int get_options(int argc, char **argv)
strmov(default_pager, pager); strmov(default_pager, pager);
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (status.batch) /* disable pager and outfile in this case */ if (status.batch) /* disable pager and outfile in this case */
{ {
...@@ -1514,17 +1510,22 @@ static void end_pager() ...@@ -1514,17 +1510,22 @@ static void end_pager()
static void init_tee() static void init_tee()
{ {
if (opt_outfile)
end_tee();
if (!(OUTFILE= my_fopen(outfile, O_APPEND | O_WRONLY, MYF(MY_WME)))) if (!(OUTFILE= my_fopen(outfile, O_APPEND | O_WRONLY, MYF(MY_WME))))
{ {
opt_outfile=0; opt_outfile= 0;
init_pager(); init_pager();
return; return;
} }
opt_outfile= 1;
tee_fprintf(stdout, "Logging to file '%s'\n", outfile);
} }
static void end_tee() static void end_tee()
{ {
my_fclose(OUTFILE, MYF(0)); my_fclose(OUTFILE, MYF(0));
opt_outfile= 0;
return; return;
} }
...@@ -1599,18 +1600,19 @@ print_table_data(MYSQL_RES *result) ...@@ -1599,18 +1600,19 @@ print_table_data(MYSQL_RES *result)
tee_puts(separator.c_ptr(), PAGER); tee_puts(separator.c_ptr(), PAGER);
} }
while ((cur = mysql_fetch_row(result))) while ((cur= mysql_fetch_row(result)))
{ {
(void) tee_fputs("|", PAGER); (void) tee_fputs("|", PAGER);
mysql_field_seek(result,0); mysql_field_seek(result, 0);
for (uint off=0 ; off < mysql_num_fields(result); off++) for (uint off= 0; off < mysql_num_fields(result); off++)
{ {
const char *str=cur[off] ? cur[off] : "NULL"; const char *str= cur[off] ? cur[off] : "NULL";
field = mysql_fetch_field(result); field= mysql_fetch_field(result);
uint length=field->max_length; uint length= field->max_length;
if (length > MAX_COLUMN_LENGTH) if (length > MAX_COLUMN_LENGTH)
{ {
tee_fputs(str,PAGER); tee_fputs(" |",PAGER); tee_fputs(str, PAGER);
tee_fputs(" |", PAGER);
} }
else else
tee_fprintf(PAGER, num_flag[off] ? "%*s |" : " %-*s|", tee_fprintf(PAGER, num_flag[off] ? "%*s |" : " %-*s|",
...@@ -1811,7 +1813,7 @@ print_tab_data(MYSQL_RES *result) ...@@ -1811,7 +1813,7 @@ print_tab_data(MYSQL_RES *result)
for (uint off=1 ; off < mysql_num_fields(result); off++) for (uint off=1 ; off < mysql_num_fields(result); off++)
{ {
(void) tee_fputs("\t", PAGER); (void) tee_fputs("\t", PAGER);
safe_put_field(cur[off],lengths[off]); safe_put_field(cur[off], lengths[off]);
} }
(void) tee_fputs("\n", PAGER); (void) tee_fputs("\n", PAGER);
} }
...@@ -1830,8 +1832,8 @@ com_tee(String *buffer, char *line __attribute__((unused))) ...@@ -1830,8 +1832,8 @@ com_tee(String *buffer, char *line __attribute__((unused)))
{ {
if (!strlen(outfile)) if (!strlen(outfile))
{ {
printf("No previous outfile available, you must give the filename!\n"); printf("No previous outfile available, you must give a filename!\n");
opt_outfile=0; opt_outfile= 0;
return 0; return 0;
} }
} }
...@@ -1839,10 +1841,10 @@ com_tee(String *buffer, char *line __attribute__((unused))) ...@@ -1839,10 +1841,10 @@ com_tee(String *buffer, char *line __attribute__((unused)))
{ {
while (isspace(*param)) while (isspace(*param))
param++; param++;
end=strmake(file_name, param, sizeof(file_name)-1); end= strmake(file_name, param, sizeof(file_name) - 1);
while (end > file_name && (isspace(end[-1]) || iscntrl(end[-1]))) while (end > file_name && (isspace(end[-1]) || iscntrl(end[-1])))
end--; end--;
end[0]=0; end[0]= 0;
strmov(outfile, file_name); strmov(outfile, file_name);
} }
if (!strlen(outfile)) if (!strlen(outfile))
...@@ -1850,12 +1852,7 @@ com_tee(String *buffer, char *line __attribute__((unused))) ...@@ -1850,12 +1852,7 @@ com_tee(String *buffer, char *line __attribute__((unused)))
printf("No outfile specified!\n"); printf("No outfile specified!\n");
return 0; return 0;
} }
if (!opt_outfile)
{
init_tee(); init_tee();
opt_outfile=1;
}
tee_fprintf(stdout, "Logging to file '%s'\n", outfile);
return 0; return 0;
} }
...@@ -1865,7 +1862,6 @@ com_notee(String *buffer __attribute__((unused)), ...@@ -1865,7 +1862,6 @@ com_notee(String *buffer __attribute__((unused)),
{ {
if (opt_outfile) if (opt_outfile)
end_tee(); end_tee();
opt_outfile=0;
tee_fprintf(stdout, "Outfile disabled.\n"); tee_fprintf(stdout, "Outfile disabled.\n");
return 0; return 0;
} }
...@@ -2288,11 +2284,11 @@ com_status(String *buffer __attribute__((unused)), ...@@ -2288,11 +2284,11 @@ com_status(String *buffer __attribute__((unused)),
} }
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
if (mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_)) if (mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_))
tee_fprintf(stdout, "SSL cipher in use is %s\n", tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n",
SSL_get_cipher(mysql.net.vio->ssl_)); SSL_get_cipher(mysql.net.vio->ssl_));
else else
#endif /* HAVE_OPENSSL */ #endif /* HAVE_OPENSSL */
tee_puts("SSL is not in use\n", stdout); tee_puts("SSL:\t\t\tNot in use", stdout);
} }
else else
{ {
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include <my_pthread.h> /* because of signal() */ #include <my_pthread.h> /* because of signal() */
#endif #endif
#define ADMIN_VERSION "8.34" #define ADMIN_VERSION "8.35"
#define MAX_MYSQL_VAR 64 #define MAX_MYSQL_VAR 64
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */ #define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3 #define MAX_TRUNC_LENGTH 3
...@@ -130,7 +130,7 @@ static struct my_option my_long_options[] = ...@@ -130,7 +130,7 @@ static struct my_option my_long_options[] =
(gptr*) &opt_relative, (gptr*) &opt_relative, 0, GET_BOOL, NO_ARG, 0, 0, 0, (gptr*) &opt_relative, (gptr*) &opt_relative, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0}, 0, 0, 0},
{"set-variable", 'O', {"set-variable", 'O',
"Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.", "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"silent", 's', "Silently exit if one can't connect to server", {"silent", 's', "Silently exit if one can't connect to server",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
...@@ -247,11 +247,8 @@ int main(int argc,char *argv[]) ...@@ -247,11 +247,8 @@ int main(int argc,char *argv[])
free_defaults() free_defaults()
*/ */
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (argc == 0) if (argc == 0)
{ {
usage(); usage();
......
...@@ -124,7 +124,7 @@ static void die(const char* fmt, ...) ...@@ -124,7 +124,7 @@ static void die(const char* fmt, ...)
static void print_version() static void print_version()
{ {
printf("%s Ver 2.2 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 2.3 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
} }
...@@ -223,11 +223,8 @@ static int parse_args(int *argc, char*** argv) ...@@ -223,11 +223,8 @@ static int parse_args(int *argc, char*** argv)
result_file = stdout; result_file = stdout;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */ /* By Jani Tolonen, 2001-04-20, MySQL Development Team */
#define CHECK_VERSION "2.3" #define CHECK_VERSION "2.4"
#include "client_priv.h" #include "client_priv.h"
#include <m_ctype.h> #include <m_ctype.h>
...@@ -265,11 +265,7 @@ static int get_options(int *argc, char ***argv) ...@@ -265,11 +265,7 @@ static int get_options(int *argc, char ***argv)
load_defaults("my", load_default_groups, argc, argv); load_defaults("my", load_default_groups, argc, argv);
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (!what_to_do) if (!what_to_do)
{ {
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
** and adapted to mysqldump 05/11/01 by Jani Tolonen ** and adapted to mysqldump 05/11/01 by Jani Tolonen
*/ */
#define DUMP_VERSION "9.05" #define DUMP_VERSION "9.06"
#include <my_global.h> #include <my_global.h>
#include <my_sys.h> #include <my_sys.h>
...@@ -180,7 +180,7 @@ static struct my_option my_long_options[] = ...@@ -180,7 +180,7 @@ static struct my_option my_long_options[] =
{"no-data", 'd', "No row information.", (gptr*) &dFlag, (gptr*) &dFlag, 0, {"no-data", 'd', "No row information.", (gptr*) &dFlag, (gptr*) &dFlag, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O', {"set-variable", 'O',
"Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.", "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"opt", OPT_OPTIMIZE, {"opt", OPT_OPTIMIZE,
"Same as --add-drop-table --add-locks --all --quick --extended-insert --lock-tables --disable-keys", "Same as --add-drop-table --add-locks --all --quick --extended-insert --lock-tables --disable-keys",
...@@ -360,11 +360,7 @@ static int get_options(int *argc, char ***argv) ...@@ -360,11 +360,7 @@ static int get_options(int *argc, char ***argv)
load_defaults("my",load_default_groups,argc,argv); load_defaults("my",load_default_groups,argc,argv);
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (opt_delayed) if (opt_delayed)
opt_lock=0; /* Can't have lock with delayed */ opt_lock=0; /* Can't have lock with delayed */
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
** * * ** * *
** ************************* ** *************************
*/ */
#define IMPORT_VERSION "3.3" #define IMPORT_VERSION "3.4"
#include "client_priv.h" #include "client_priv.h"
#include "mysql_version.h" #include "mysql_version.h"
...@@ -204,11 +204,8 @@ static int get_options(int *argc, char ***argv) ...@@ -204,11 +204,8 @@ static int get_options(int *argc, char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (enclosed && opt_enclosed) if (enclosed && opt_enclosed)
{ {
fprintf(stderr, "You can't use ..enclosed.. and ..optionally-enclosed.. at the same time.\n"); fprintf(stderr, "You can't use ..enclosed.. and ..optionally-enclosed.. at the same time.\n");
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#define MANAGER_PWGEN_VERSION "1.3" #define MANAGER_PWGEN_VERSION "1.4"
#include <my_global.h> #include <my_global.h>
#include <m_ctype.h> #include <m_ctype.h>
...@@ -96,11 +96,8 @@ int parse_args(int argc, char** argv) ...@@ -96,11 +96,8 @@ int parse_args(int argc, char** argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#define MANAGER_CLIENT_VERSION "1.3" #define MANAGER_CLIENT_VERSION "1.4"
#include <my_global.h> #include <my_global.h>
#include <mysql.h> #include <mysql.h>
...@@ -132,12 +132,10 @@ int parse_args(int argc, char **argv) ...@@ -132,12 +132,10 @@ int parse_args(int argc, char **argv)
load_defaults("my",load_default_groups,&argc,&argv); load_defaults("my",load_default_groups,&argc,&argv);
default_argv= argv; default_argv= argv;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
int main(int argc, char** argv) int main(int argc, char** argv)
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* Show databases, tables or columns */ /* Show databases, tables or columns */
#define SHOW_VERSION "9.3" #define SHOW_VERSION "9.4"
#include <my_global.h> #include <my_global.h>
#include "client_priv.h" #include "client_priv.h"
...@@ -241,11 +241,7 @@ get_options(int *argc,char ***argv) ...@@ -241,11 +241,7 @@ get_options(int *argc,char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (tty_password) if (tty_password)
opt_password=get_tty_password(NullS); opt_password=get_tty_password(NullS);
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
**********************************************************************/ **********************************************************************/
#define MTEST_VERSION "1.22" #define MTEST_VERSION "1.23"
#include <my_global.h> #include <my_global.h>
#include <mysql_embed.h> #include <mysql_embed.h>
...@@ -1957,11 +1957,7 @@ int parse_args(int argc, char **argv) ...@@ -1957,11 +1957,7 @@ int parse_args(int argc, char **argv)
default_argv= argv; default_argv= argv;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (argc > 1) if (argc > 1)
{ {
......
...@@ -173,11 +173,7 @@ static void get_options(int argc, char **argv) ...@@ -173,11 +173,7 @@ static void get_options(int argc, char **argv)
load_defaults("my",load_default_groups,&argc,&argv); load_defaults("my",load_default_groups,&argc,&argv);
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
free_defaults(argv); free_defaults(argv);
if (tty_password) if (tty_password)
......
...@@ -55,7 +55,7 @@ static struct my_option my_long_options[] = ...@@ -55,7 +55,7 @@ static struct my_option my_long_options[] =
static void usage(my_bool version) static void usage(my_bool version)
{ {
printf("%s Ver 1.4 for %s at %s\n",my_progname,SYSTEM_TYPE, printf("%s Ver 1.5 for %s at %s\n",my_progname,SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
if (version) if (version)
return; return;
...@@ -92,11 +92,8 @@ static int get_options(int *argc,char ***argv) ...@@ -92,11 +92,8 @@ static int get_options(int *argc,char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (*argc < 1) if (*argc < 1)
{ {
usage(0); usage(0);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
/* Install or upgrade MySQL server. By Sasha Pachev <sasha@mysql.com> /* Install or upgrade MySQL server. By Sasha Pachev <sasha@mysql.com>
*/ */
#define INSTALL_VERSION "1.1" #define INSTALL_VERSION "1.2"
#define DONT_USE_RAID #define DONT_USE_RAID
#include <my_global.h> #include <my_global.h>
...@@ -219,11 +219,8 @@ static int parse_args(int argc, char **argv) ...@@ -219,11 +219,8 @@ static int parse_args(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* Return error-text for system error messages and nisam messages */ /* Return error-text for system error messages and nisam messages */
#define PERROR_VERSION "2.8" #define PERROR_VERSION "2.9"
#include <my_global.h> #include <my_global.h>
#include <my_sys.h> #include <my_sys.h>
...@@ -141,11 +141,8 @@ static int get_options(int *argc,char ***argv) ...@@ -141,11 +141,8 @@ static int get_options(int *argc,char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (!*argc && !print_all_codes) if (!*argc && !print_all_codes)
{ {
usage(); usage();
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#define INIT_SYM_TABLE 4096 #define INIT_SYM_TABLE 4096
#define INC_SYM_TABLE 4096 #define INC_SYM_TABLE 4096
#define MAX_SYM_SIZE 128 #define MAX_SYM_SIZE 128
#define DUMP_VERSION "1.3" #define DUMP_VERSION "1.4"
#define HEX_INVALID (uchar)255 #define HEX_INVALID (uchar)255
typedef ulong my_long_addr_t ; /* at some point, we need to fix configure typedef ulong my_long_addr_t ; /* at some point, we need to fix configure
...@@ -121,11 +121,8 @@ static int parse_args(int argc, char **argv) ...@@ -121,11 +121,8 @@ static int parse_args(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
/* /*
The following code is to make the command compatible with the old The following code is to make the command compatible with the old
version that required one to use the -n and -s options version that required one to use the -n and -s options
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* Resolves IP's to hostname and hostnames to IP's */ /* Resolves IP's to hostname and hostnames to IP's */
#define RESOLVE_VERSION "2.1" #define RESOLVE_VERSION "2.2"
#include <my_global.h> #include <my_global.h>
#include <m_ctype.h> #include <m_ctype.h>
...@@ -94,11 +94,8 @@ static int get_options(int *argc,char ***argv) ...@@ -94,11 +94,8 @@ static int get_options(int *argc,char ***argv)
/* load_defaults("my",load_default_groups,argc,argv); */ /* load_defaults("my",load_default_groups,argc,argv); */
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (*argc == 0) if (*argc == 0)
{ {
usage(); usage();
......
...@@ -39,6 +39,7 @@ struct my_option ...@@ -39,6 +39,7 @@ struct my_option
}; };
extern char *disabled_my_option; extern char *disabled_my_option;
extern my_bool my_getopt_print_errors;
extern int handle_options (int *argc, char ***argv, extern int handle_options (int *argc, char ***argv,
const struct my_option *longopts, const struct my_option *longopts,
......
...@@ -54,7 +54,23 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */ ...@@ -54,7 +54,23 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_CANT_SYMLINK 25 #define EE_CANT_SYMLINK 25
#define EE_REALPATH 26 #define EE_REALPATH 26
/* exit codes for all MySQL programs */
#define EXIT_UNSPECIFIED_ERROR 1
#define EXIT_UNKNOWN_OPTION 2
#define EXIT_AMBIGUOUS_OPTION 3
#define EXIT_NO_ARGUMENT_ALLOWED 4
#define EXIT_ARGUMENT_REQUIRED 5
#define EXIT_VAR_PREFIX_NOT_UNIQUE 6
#define EXIT_UNKNOWN_VARIABLE 7
#define EXIT_OUT_OF_MEMORY 8
#define EXIT_UNKNOWN_SUFFIX 9
#define EXIT_NO_PTR_TO_VARIABLE 10
#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
...@@ -335,7 +335,7 @@ static struct my_option my_long_options[] = ...@@ -335,7 +335,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 6.00 for %s at %s\n", my_progname, SYSTEM_TYPE, printf("%s Ver 6.01 for %s at %s\n", my_progname, SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
} }
...@@ -665,11 +665,7 @@ static void get_options(register int *argc, register char ***argv) ...@@ -665,11 +665,7 @@ static void get_options(register int *argc, register char ***argv)
testflag|=T_WRITE_LOOP; testflag|=T_WRITE_LOOP;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (*argc == 0) if (*argc == 0)
{ {
......
...@@ -278,7 +278,7 @@ static struct my_option my_long_options[] = ...@@ -278,7 +278,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 5.9 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 5.10 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
} }
static void usage(void) static void usage(void)
...@@ -353,11 +353,8 @@ static void get_options(int *argc, char ***argv) ...@@ -353,11 +353,8 @@ static void get_options(int *argc, char ***argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
my_progname= argv[0][0]; my_progname= argv[0][0];
if (isatty(fileno(stdout))) if (isatty(fileno(stdout)))
write_loop=1; write_loop=1;
......
...@@ -245,11 +245,7 @@ static void get_options(int argc, char *argv[]) ...@@ -245,11 +245,7 @@ static void get_options(int argc, char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
} /* get options */ } /* get options */
......
...@@ -179,11 +179,8 @@ static void get_options(int argc, char *argv[]) ...@@ -179,11 +179,8 @@ static void get_options(int argc, char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if(!(d_file=argv[optind])) print_error(1,"No d_file"); if(!(d_file=argv[optind])) print_error(1,"No d_file");
if(!(df=fopen(d_file,"r"))) if(!(df=fopen(d_file,"r")))
print_error(1,"fopen(%s)",d_file); print_error(1,"fopen(%s)",d_file);
......
...@@ -284,11 +284,7 @@ static void get_options(int argc,char *argv[]) ...@@ -284,11 +284,7 @@ static void get_options(int argc,char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return; return;
} /* get options */ } /* get options */
......
...@@ -623,7 +623,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -623,7 +623,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
key_cacheing=1; key_cacheing=1;
break; break;
case 'V': case 'V':
printf("test1 Ver 1.1 \n"); printf("test1 Ver 1.2 \n");
exit(0); exit(0);
case '#': case '#':
DEBUGGER_ON; DEBUGGER_ON;
...@@ -644,11 +644,8 @@ static void get_options(int argc, char *argv[]) ...@@ -644,11 +644,8 @@ static void get_options(int argc, char *argv[])
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return; return;
} /* get options */ } /* get options */
......
...@@ -292,7 +292,7 @@ static struct my_option my_long_options[] = ...@@ -292,7 +292,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 2.5 for %s at %s\n", my_progname, SYSTEM_TYPE, printf("%s Ver 2.6 for %s at %s\n", my_progname, SYSTEM_TYPE,
MACHINE_TYPE); MACHINE_TYPE);
} }
...@@ -615,13 +615,15 @@ get_one_option(int optid, ...@@ -615,13 +615,15 @@ get_one_option(int optid,
static void get_options(register int *argc,register char ***argv) static void get_options(register int *argc,register char ***argv)
{ {
int ho_error;
load_defaults("my", load_default_groups, argc, argv); load_defaults("my", load_default_groups, argc, argv);
default_argv= *argv; default_argv= *argv;
if (isatty(fileno(stdout))) if (isatty(fileno(stdout)))
check_param.testflag|=T_WRITE_LOOP; check_param.testflag|=T_WRITE_LOOP;
if (handle_options(argc, argv, my_long_options, get_one_option)) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
exit(1); exit(ho_error);
/* If using repair, then update checksum if one uses --update-state */ /* If using repair, then update checksum if one uses --update-state */
if ((check_param.testflag & T_UPDATE_STATE) && if ((check_param.testflag & T_UPDATE_STATE) &&
......
...@@ -269,7 +269,7 @@ static struct my_option my_long_options[] = ...@@ -269,7 +269,7 @@ static struct my_option my_long_options[] =
static void print_version(void) static void print_version(void)
{ {
printf("%s Ver 1.20 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 1.21 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
} }
static void usage(void) static void usage(void)
...@@ -347,11 +347,8 @@ static void get_options(int *argc,char ***argv) ...@@ -347,11 +347,8 @@ static void get_options(int *argc,char ***argv)
write_loop=1; write_loop=1;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (!*argc) if (!*argc)
{ {
usage(); usage();
......
slave stop;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
slave start;
use test;
drop table if exists t1;
show slave status;
Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
0 0 0 0 No No 0 0 0 0
load table t1 from master;
Error in fetch_master_table
source include/master-slave.inc;
connection master;
use test;
drop table if exists t1;
show slave status;
--error 1218
load table t1 from master;
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <my_getopt.h> #include <my_getopt.h>
#include <assert.h> #include <assert.h>
#include <my_sys.h> #include <my_sys.h>
#include <mysys_err.h>
static int findopt (char *optpat, uint length, static int findopt (char *optpat, uint length,
const struct my_option **opt_res, const struct my_option **opt_res,
...@@ -42,17 +43,11 @@ static const char *special_opt_prefix[]= ...@@ -42,17 +43,11 @@ static const char *special_opt_prefix[]=
char *disabled_my_option= (char*) "0"; char *disabled_my_option= (char*) "0";
/* Return error values from handle_options */ /* This is a flag that can be set in client programs. 0 means that
my_getopt will not print error messages, but the client should do
it by itself */
#define ERR_UNKNOWN_OPTION 1 my_bool my_getopt_print_errors= 1;
#define ERR_AMBIGUOUS_OPTION 2
#define ERR_NO_ARGUMENT_ALLOWED 3
#define ERR_ARGUMENT_REQUIRED 4
#define ERR_VAR_PREFIX_NOT_UNIQUE 5
#define ERR_UNKNOWN_VARIABLE 6
#define ERR_OUT_OF_MEMORY 7
#define ERR_UNKNOWN_SUFFIX 8
#define ERR_NO_PTR_TO_VARIABLE 9
/* /*
...@@ -106,9 +101,10 @@ int handle_options(int *argc, char ***argv, ...@@ -106,9 +101,10 @@ int handle_options(int *argc, char ***argv,
/* the argument must be in next argv */ /* the argument must be in next argv */
if (!*++pos) if (!*++pos)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: Option '-O' requires an argument\n", fprintf(stderr, "%s: Option '-O' requires an argument\n",
progname); progname);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
cur_arg= *pos; cur_arg= *pos;
(*argc)--; (*argc)--;
...@@ -128,10 +124,11 @@ int handle_options(int *argc, char ***argv, ...@@ -128,10 +124,11 @@ int handle_options(int *argc, char ***argv,
cur_arg+= 14; cur_arg+= 14;
if (!*cur_arg) if (!*cur_arg)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: Option '--set-variable' requires an argument\n", "%s: Option '--set-variable' requires an argument\n",
progname); progname);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
} }
else if (cur_arg[14]) /* garbage, or another option. break out */ else if (cur_arg[14]) /* garbage, or another option. break out */
...@@ -141,10 +138,11 @@ int handle_options(int *argc, char ***argv, ...@@ -141,10 +138,11 @@ int handle_options(int *argc, char ***argv,
/* the argument must be in next argv */ /* the argument must be in next argv */
if (!*++pos) if (!*++pos)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: Option '--set-variable' requires an argument\n", "%s: Option '--set-variable' requires an argument\n",
progname); progname);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
cur_arg= *pos; cur_arg= *pos;
(*argc)--; (*argc)--;
...@@ -200,11 +198,12 @@ int handle_options(int *argc, char ***argv, ...@@ -200,11 +198,12 @@ int handle_options(int *argc, char ***argv,
{ {
if (opt_found > 1) if (opt_found > 1)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: ambiguous option '--%s-%s' (--%s-%s)\n", "%s: ambiguous option '--%s-%s' (--%s-%s)\n",
progname, special_opt_prefix[i], cur_arg, progname, special_opt_prefix[i], cur_arg,
special_opt_prefix[i], prev_found); special_opt_prefix[i], prev_found);
return ERR_AMBIGUOUS_OPTION; return EXIT_AMBIGUOUS_OPTION;
} }
if (i < DISABLE_OPTION_COUNT) if (i < DISABLE_OPTION_COUNT)
optend= disabled_my_option; optend= disabled_my_option;
...@@ -224,19 +223,21 @@ int handle_options(int *argc, char ***argv, ...@@ -224,19 +223,21 @@ int handle_options(int *argc, char ***argv,
{ {
if (must_be_var) if (must_be_var)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: %s: unknown variable '%s'\n", progname, "%s: %s: unknown variable '%s'\n", progname,
option_is_loose ? "WARNING" : "ERROR", cur_arg); option_is_loose ? "WARNING" : "ERROR", cur_arg);
if (!option_is_loose) if (!option_is_loose)
return ERR_UNKNOWN_VARIABLE; return EXIT_UNKNOWN_VARIABLE;
} }
else else
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: %s: unknown option '--%s'\n", progname, "%s: %s: unknown option '--%s'\n", progname,
option_is_loose ? "WARNING" : "ERROR", cur_arg); option_is_loose ? "WARNING" : "ERROR", cur_arg);
if (!option_is_loose) if (!option_is_loose)
return ERR_UNKNOWN_OPTION; return EXIT_UNKNOWN_OPTION;
} }
if (option_is_loose) if (option_is_loose)
{ {
...@@ -249,30 +250,34 @@ int handle_options(int *argc, char ***argv, ...@@ -249,30 +250,34 @@ int handle_options(int *argc, char ***argv,
{ {
if (must_be_var) if (must_be_var)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: variable prefix '%s' is not unique\n", fprintf(stderr, "%s: variable prefix '%s' is not unique\n",
progname, cur_arg); progname, cur_arg);
return ERR_VAR_PREFIX_NOT_UNIQUE; return EXIT_VAR_PREFIX_NOT_UNIQUE;
} }
else else
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: ambiguous option '--%s' (%s, %s)\n", fprintf(stderr, "%s: ambiguous option '--%s' (%s, %s)\n",
progname, cur_arg, prev_found, optp->name); progname, cur_arg, prev_found, optp->name);
return ERR_AMBIGUOUS_OPTION; return EXIT_AMBIGUOUS_OPTION;
} }
} }
if (must_be_var && (!optp->value || optp->var_type == GET_BOOL)) if (must_be_var && (!optp->value || optp->var_type == GET_BOOL))
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: option '%s' cannot take an argument\n", fprintf(stderr, "%s: option '%s' cannot take an argument\n",
progname, optp->name); progname, optp->name);
return ERR_NO_ARGUMENT_ALLOWED; return EXIT_NO_ARGUMENT_ALLOWED;
} }
if (optp->arg_type == NO_ARG) if (optp->arg_type == NO_ARG)
{ {
if (optend && !special_used) if (optend && !special_used)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: option '--%s' cannot take an argument\n", fprintf(stderr, "%s: option '--%s' cannot take an argument\n",
progname, optp->name); progname, optp->name);
return ERR_NO_ARGUMENT_ALLOWED; return EXIT_NO_ARGUMENT_ALLOWED;
} }
if (optp->var_type == GET_BOOL) if (optp->var_type == GET_BOOL)
{ {
...@@ -306,9 +311,10 @@ int handle_options(int *argc, char ***argv, ...@@ -306,9 +311,10 @@ int handle_options(int *argc, char ***argv,
/* Check if there are more arguments after this one */ /* Check if there are more arguments after this one */
if (!*++pos) if (!*++pos)
{ {
if (my_getopt_print_errors)
fprintf(stderr, "%s: option '--%s' requires an argument\n", fprintf(stderr, "%s: option '--%s' requires an argument\n",
progname, optp->name); progname, optp->name);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
argument= *pos; argument= *pos;
(*argc)--; (*argc)--;
...@@ -318,8 +324,9 @@ int handle_options(int *argc, char ***argv, ...@@ -318,8 +324,9 @@ int handle_options(int *argc, char ***argv,
} }
else /* must be short option */ else /* must be short option */
{ {
for (optend= cur_arg; *optend; optend++, opt_found= 0) for (optend= cur_arg; *optend; optend++)
{ {
opt_found= 0;
for (optp= longopts; optp->id; optp++) for (optp= longopts; optp->id; optp++)
{ {
if (optp->id == (int) (uchar) *optend) if (optp->id == (int) (uchar) *optend)
...@@ -347,9 +354,11 @@ int handle_options(int *argc, char ***argv, ...@@ -347,9 +354,11 @@ int handle_options(int *argc, char ***argv,
/* Check if there are more arguments after this one */ /* Check if there are more arguments after this one */
if (!*++pos) if (!*++pos)
{ {
fprintf(stderr, "%s: option '-%c' requires an argument\n", if (my_getopt_print_errors)
fprintf(stderr,
"%s: option '-%c' requires an argument\n",
progname, optp->id); progname, optp->id);
return ERR_ARGUMENT_REQUIRED; return EXIT_ARGUMENT_REQUIRED;
} }
argument= *pos; argument= *pos;
(*argc)--; (*argc)--;
...@@ -369,9 +378,10 @@ int handle_options(int *argc, char ***argv, ...@@ -369,9 +378,10 @@ int handle_options(int *argc, char ***argv,
} }
if (!opt_found) if (!opt_found)
{ {
if (my_getopt_print_errors)
fprintf(stderr, fprintf(stderr,
"%s: unknown option '-%c'\n", progname, *cur_arg); "%s: unknown option '-%c'\n", progname, *optend);
return ERR_UNKNOWN_OPTION; return EXIT_UNKNOWN_OPTION;
} }
} }
(*argc)--; /* option handled (short), decrease argument count */ (*argc)--; /* option handled (short), decrease argument count */
...@@ -412,7 +422,7 @@ static int setval (const struct my_option *opts, char *argument, ...@@ -412,7 +422,7 @@ static int setval (const struct my_option *opts, char *argument,
opts->u_max_value : opts->value; opts->u_max_value : opts->value;
if (!result_pos) if (!result_pos)
return ERR_NO_PTR_TO_VARIABLE; return EXIT_NO_PTR_TO_VARIABLE;
switch (opts->var_type) { switch (opts->var_type) {
case GET_INT: case GET_INT:
...@@ -437,13 +447,13 @@ static int setval (const struct my_option *opts, char *argument, ...@@ -437,13 +447,13 @@ static int setval (const struct my_option *opts, char *argument,
my_free((*(char**) result_pos), my_free((*(char**) result_pos),
MYF(MY_WME | MY_FAE)); MYF(MY_WME | MY_FAE));
if (!(*((char**) result_pos)= my_strdup(argument, MYF(MY_WME)))) if (!(*((char**) result_pos)= my_strdup(argument, MYF(MY_WME))))
return ERR_OUT_OF_MEMORY; return EXIT_OUT_OF_MEMORY;
break; break;
default: /* dummy default to avoid compiler warnings */ default: /* dummy default to avoid compiler warnings */
break; break;
} }
if (err) if (err)
return ERR_UNKNOWN_SUFFIX; return EXIT_UNKNOWN_SUFFIX;
} }
return 0; return 0;
} }
......
...@@ -356,7 +356,7 @@ void print_arrays() ...@@ -356,7 +356,7 @@ void print_arrays()
static void usage(int version) static void usage(int version)
{ {
printf("%s Ver 3.4 Distrib %s, for %s (%s)\n", printf("%s Ver 3.5 Distrib %s, for %s (%s)\n",
my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE); my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
if (version) if (version)
return; return;
...@@ -394,11 +394,8 @@ static int get_options(int argc, char **argv) ...@@ -394,11 +394,8 @@ static int get_options(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
if (argc >= 1) if (argc >= 1)
{ {
usage(0); usage(0);
......
...@@ -3053,7 +3053,6 @@ static struct my_option my_long_options[] = ...@@ -3053,7 +3053,6 @@ static struct my_option my_long_options[] =
*/ */
{"memlock", OPT_MEMLOCK, "Lock mysqld in memory", (gptr*) &locked_in_memory, {"memlock", OPT_MEMLOCK, "Lock mysqld in memory", (gptr*) &locked_in_memory,
(gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, (gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef DBUG_OFF
{"disconnect-slave-event-count", OPT_DISCONNECT_SLAVE_EVENT_COUNT, {"disconnect-slave-event-count", OPT_DISCONNECT_SLAVE_EVENT_COUNT,
"Undocumented: Meant for debugging and testing of replication", "Undocumented: Meant for debugging and testing of replication",
(gptr*) &disconnect_slave_event_count, (gptr*) &disconnect_slave_event_count,
...@@ -3070,7 +3069,6 @@ static struct my_option my_long_options[] = ...@@ -3070,7 +3069,6 @@ static struct my_option my_long_options[] =
(gptr*) &opt_sporadic_binlog_dump_fail, (gptr*) &opt_sporadic_binlog_dump_fail,
(gptr*) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, (gptr*) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0}, 0},
#endif
{"safemalloc-mem-limit", OPT_SAFEMALLOC_MEM_LIMIT, {"safemalloc-mem-limit", OPT_SAFEMALLOC_MEM_LIMIT,
"Simulate memory shortage when compiled with the --with-debug=full option", "Simulate memory shortage when compiled with the --with-debug=full option",
0, 0, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
...@@ -4422,11 +4420,7 @@ static void get_options(int argc,char **argv) ...@@ -4422,11 +4420,7 @@ static void get_options(int argc,char **argv)
#endif #endif
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
fix_paths(); fix_paths();
default_table_type_name=ha_table_typelib.type_names[default_table_type-1]; default_table_type_name=ha_table_typelib.type_names[default_table_type-1];
......
...@@ -608,6 +608,9 @@ int show_slave_hosts(THD* thd) ...@@ -608,6 +608,9 @@ int show_slave_hosts(THD* thd)
int connect_to_master(THD *thd, MYSQL* mysql, MASTER_INFO* mi) int connect_to_master(THD *thd, MYSQL* mysql, MASTER_INFO* mi)
{ {
if (!mi->host || !*mi->host) /* empty host */
return 1;
if (!mc_mysql_connect(mysql, mi->host, mi->user, mi->password, 0, if (!mc_mysql_connect(mysql, mi->host, mi->user, mi->password, 0,
mi->port, 0, 0)) mi->port, 0, 0))
{ {
......
...@@ -48,12 +48,10 @@ ulong relay_log_space_limit = 0; /* TODO: fix variables to access ulonglong ...@@ -48,12 +48,10 @@ ulong relay_log_space_limit = 0; /* TODO: fix variables to access ulonglong
// can re-use them on slave start // can re-use them on slave start
// TODO: move the vars below under MASTER_INFO // TODO: move the vars below under MASTER_INFO
#ifndef DBUG_OFF
int disconnect_slave_event_count = 0, abort_slave_event_count = 0; int disconnect_slave_event_count = 0, abort_slave_event_count = 0;
static int events_till_disconnect = -1; static int events_till_disconnect = -1;
int events_till_abort = -1; int events_till_abort = -1;
static int stuck_count = 0; static int stuck_count = 0;
#endif
typedef enum { SLAVE_THD_IO, SLAVE_THD_SQL} SLAVE_THD_TYPE; typedef enum { SLAVE_THD_IO, SLAVE_THD_SQL} SLAVE_THD_TYPE;
......
...@@ -415,9 +415,7 @@ extern bool do_table_inited, ignore_table_inited, ...@@ -415,9 +415,7 @@ extern bool do_table_inited, ignore_table_inited,
wild_do_table_inited, wild_ignore_table_inited; wild_do_table_inited, wild_ignore_table_inited;
extern bool table_rules_on; extern bool table_rules_on;
#ifndef DBUG_OFF
extern int disconnect_slave_event_count, abort_slave_event_count ; extern int disconnect_slave_event_count, abort_slave_event_count ;
#endif
// the master variables are defaults read from my.cnf or command line // the master variables are defaults read from my.cnf or command line
extern uint master_port, master_connect_retry, report_port; extern uint master_port, master_connect_retry, report_port;
......
...@@ -160,7 +160,7 @@ static int get_or_create_user_conn(THD *thd, const char *user, ...@@ -160,7 +160,7 @@ static int get_or_create_user_conn(THD *thd, const char *user,
uc->connections = 1; uc->connections = 1;
uc->questions=uc->updates=uc->conn_per_hour=0; uc->questions=uc->updates=uc->conn_per_hour=0;
uc->user_resources=*mqh; uc->user_resources=*mqh;
if (mqh->connections > max_user_connections) if (max_user_connections && mqh->connections > max_user_connections)
uc->user_resources.connections = max_user_connections; uc->user_resources.connections = max_user_connections;
uc->intime=thd->thr_create_time; uc->intime=thd->thr_create_time;
if (hash_insert(&hash_user_connections, (byte*) uc)) if (hash_insert(&hash_user_connections, (byte*) uc))
...@@ -298,7 +298,7 @@ static int check_for_max_user_connections(USER_CONN *uc) ...@@ -298,7 +298,7 @@ static int check_for_max_user_connections(USER_CONN *uc)
goto end; goto end;
} }
uc->connections++; uc->connections++;
if (uc->user_resources.connections && uc->conn_per_hour++ >= uc->user_resources.connections) if (uc->user_resources.connections && uc->conn_per_hour++ >= uc->user_resources.connections)
{ {
net_printf(&current_thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_connections", net_printf(&current_thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_connections",
(long) uc->user_resources.connections); (long) uc->user_resources.connections);
...@@ -317,12 +317,7 @@ static void decrease_user_connections(USER_CONN *uc) ...@@ -317,12 +317,7 @@ static void decrease_user_connections(USER_CONN *uc)
*/ */
DBUG_ENTER("decrease_user_connections"); DBUG_ENTER("decrease_user_connections");
if (mqh_used) if (!mqh_used && uc->connections && !--uc->connections)
{
if (uc->conn_per_hour)
uc->conn_per_hour--;
}
else if (!--uc->connections)
{ {
/* Last connection for user; Delete it */ /* Last connection for user; Delete it */
(void) pthread_mutex_lock(&LOCK_user_conn); (void) pthread_mutex_lock(&LOCK_user_conn);
...@@ -1797,6 +1792,7 @@ mysql_execute_command(void) ...@@ -1797,6 +1792,7 @@ mysql_execute_command(void)
tables->grant.want_privilege=(SELECT_ACL & ~tables->grant.privilege); tables->grant.want_privilege=(SELECT_ACL & ~tables->grant.privilege);
if ((res=open_and_lock_tables(thd,tables))) if ((res=open_and_lock_tables(thd,tables)))
break; break;
thd->select_limit=HA_POS_ERROR;
if (!setup_fields(thd,tables,select_lex->item_list,1,0,0) && if (!setup_fields(thd,tables,select_lex->item_list,1,0,0) &&
!setup_fields(thd,tables,lex->value_list,0,0,0) && ! thd->fatal_error && !setup_fields(thd,tables,lex->value_list,0,0,0) && ! thd->fatal_error &&
(result=new multi_update(thd,tables,select_lex->item_list,lex->duplicates, (result=new multi_update(thd,tables,select_lex->item_list,lex->duplicates,
...@@ -2746,7 +2742,7 @@ void mysql_init_multi_delete(LEX *lex) ...@@ -2746,7 +2742,7 @@ void mysql_init_multi_delete(LEX *lex)
{ {
lex->sql_command = SQLCOM_DELETE_MULTI; lex->sql_command = SQLCOM_DELETE_MULTI;
mysql_init_select(lex); mysql_init_select(lex);
lex->select->select_limit=HA_POS_ERROR; lex->select->select_limit=lex->thd->select_limit=HA_POS_ERROR;
lex->auxilliary_table_list=lex->select_lex.table_list; lex->auxilliary_table_list=lex->select_lex.table_list;
lex->select->table_list.elements=0; lex->select->table_list.elements=0;
lex->select->table_list.first=0; lex->select->table_list.first=0;
......
...@@ -27,11 +27,9 @@ ...@@ -27,11 +27,9 @@
extern const char* any_db; extern const char* any_db;
#ifndef DBUG_OFF
int max_binlog_dump_events = 0; // unlimited int max_binlog_dump_events = 0; // unlimited
bool opt_sporadic_binlog_dump_fail = 0; bool opt_sporadic_binlog_dump_fail = 0;
static int binlog_dump_count = 0; static int binlog_dump_count = 0;
#endif
int check_binlog_magic(IO_CACHE* log, const char** errmsg) int check_binlog_magic(IO_CACHE* log, const char** errmsg)
{ {
......
...@@ -21,10 +21,8 @@ extern uint32 server_id; ...@@ -21,10 +21,8 @@ extern uint32 server_id;
extern bool server_id_supplied; extern bool server_id_supplied;
extern I_List<i_string> binlog_do_db, binlog_ignore_db; extern I_List<i_string> binlog_do_db, binlog_ignore_db;
#ifndef DBUG_OFF
extern int max_binlog_dump_events; extern int max_binlog_dump_events;
extern bool opt_sporadic_binlog_dump_fail; extern bool opt_sporadic_binlog_dump_fail;
#endif
#define KICK_SLAVE(thd) thd->awake(0 /* do not prepare to die*/); #define KICK_SLAVE(thd) thd->awake(0 /* do not prepare to die*/);
......
...@@ -35,8 +35,23 @@ set-variable = thread_cache=8 ...@@ -35,8 +35,23 @@ set-variable = thread_cache=8
# Try number of CPU's*2 for thread_concurrency # Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=8 set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=64M set-variable = myisam_sort_buffer_size=64M
log-bin
server-id = 1 # Replication Master Server (default)
log-bin # required for replication
server-id = 1 # required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
# Replication Slave Server (comment out master section to use this)
#master-host = # MUST BE SET
#master-user = # MUST BE SET
#master-password = # MUST BE SET
#master-port = # optional--defaults to 3306
#log-bin # not required for slaves, but recommended
#server-id = 2 # required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
# Point the following paths to different dedicated disks # Point the following paths to different dedicated disks
#tmpdir = /tmp/ #tmpdir = /tmp/
......
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
#include <sys/wait.h> #include <sys/wait.h>
#endif #endif
#define MANAGER_VERSION "1.1" #define MANAGER_VERSION "1.2"
#define MANAGER_GREETING "MySQL Server Management Daemon v. 1.0" #define MANAGER_GREETING "MySQL Server Management Daemon v. 1.2"
#define LOG_ERR 1 #define LOG_ERR 1
#define LOG_WARN 2 #define LOG_WARN 2
...@@ -1332,11 +1332,8 @@ static int parse_args(int argc, char **argv) ...@@ -1332,11 +1332,8 @@ static int parse_args(int argc, char **argv)
int ho_error; int ho_error;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
{ exit(ho_error);
printf("%s: handle_options() failed with error %d\n", my_progname,
ho_error);
exit(1);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment