diff options
author | monty@hundin.mysql.fi <> | 2001-10-07 14:18:09 +0300 |
---|---|---|
committer | monty@hundin.mysql.fi <> | 2001-10-07 14:18:09 +0300 |
commit | 88e5ee018478318cd3c32744587f2b8a08638973 (patch) | |
tree | ae1d8d4885a5aa3e83ca4246b189760e128283c3 | |
parent | 1bea4bd36b67f4e98556ec8282f1cac7b50dde71 (diff) | |
download | mariadb-git-88e5ee018478318cd3c32744587f2b8a08638973.tar.gz |
Fix for 'mysqladmin -w1 unknown-command'
Manual Changelog update
-rw-r--r-- | Docs/manual.texi | 13 | ||||
-rw-r--r-- | client/mysqladmin.c | 78 | ||||
-rw-r--r-- | libmysql/violite.c | 7 | ||||
-rw-r--r-- | mysql-test/mysql-test-run.sh | 7 | ||||
-rw-r--r-- | sql/sql_lex.cc | 2 | ||||
-rw-r--r-- | sql/sql_lex.h | 1 |
6 files changed, 69 insertions, 39 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 97c186a9a07..e69d08148ee 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -46793,6 +46793,7 @@ users use this code as the rest of the code and because of this we are not yet 100% confident in this code. @menu +* News-3.23.44:: Changes in release 3.23.44 * News-3.23.43:: Changes in release 3.23.43 * News-3.23.42:: Changes in release 3.23.42 * News-3.23.41:: Changes in release 3.23.41 @@ -46840,7 +46841,17 @@ not yet 100% confident in this code. * News-3.23.0:: Changes in release 3.23.0 @end menu -@node News-3.23.43, News-3.23.42, News-3.23.x, News-3.23.x +@node News-3.23.44, News-3.23.43, News-3.23.x, News-3.23.x +@appendixsubsec Changes in release 3.23.44 +@itemize @bullet +@item +When using replications, aborted queries that contained @code{%} could cause +a core dum. +@item +TCP_NODELAY was not used on some systems. (Speed problem). +@end itemize + +@node News-3.23.43, News-3.23.42, News-3.23.44, News-3.23.x @appendixsubsec Changes in release 3.23.43 @itemize @bullet @item diff --git a/client/mysqladmin.c b/client/mysqladmin.c index ca568a914f2..ba574350d74 100644 --- a/client/mysqladmin.c +++ b/client/mysqladmin.c @@ -23,7 +23,7 @@ #include <my_pthread.h> /* because of signal() */ #endif -#define ADMIN_VERSION "8.21" +#define ADMIN_VERSION "8.22" #define MAX_MYSQL_VAR 64 #define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */ #define MAX_TRUNC_LENGTH 3 @@ -51,7 +51,7 @@ static void print_version(void); static void usage(void); static my_bool sql_connect(MYSQL *mysql,const char *host, const char *user, const char *password,uint wait); -static my_bool execute_commands(MYSQL *mysql,int argc, char **argv); +static int execute_commands(MYSQL *mysql,int argc, char **argv); static int drop_db(MYSQL *mysql,const char *db); static sig_handler endprog(int signal_number); static void nice_time(ulong sec,char *buff); @@ -275,16 +275,24 @@ int main(int argc,char *argv[]) while (!interrupted) { new_line = 0; - if (execute_commands(&mysql,argc,commands) && !option_force) + if ((error=execute_commands(&mysql,argc,commands))) { - if (option_wait && !interrupted) + if (error > 0) + break; /* Wrong command error */ + if (!option_force) { - mysql_close(&mysql); - if (!sql_connect(&mysql,host,user,opt_password,option_wait)) - continue; /* Retry */ + if (option_wait && !interrupted) + { + mysql_close(&mysql); + if (!sql_connect(&mysql,host,user,opt_password,option_wait)) + { + sleep(1); /* Don't retry too rapidly */ + continue; /* Retry */ + } + } + error=1; + break; } - error=1; - break; } if (interval) { @@ -301,7 +309,7 @@ int main(int argc,char *argv[]) my_free(user,MYF(MY_ALLOW_ZERO_PTR)); free_defaults(argv); my_end(0); - exit(error); + exit(error ? 1 : 0); return 0; } @@ -383,8 +391,14 @@ static my_bool sql_connect(MYSQL *mysql,const char *host, const char *user, } } +/* + Execute a command. + Return 0 on ok + -1 on retryable error + 1 on fatal error +*/ -static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) +static int execute_commands(MYSQL *mysql,int argc, char **argv) { char *status; @@ -404,7 +418,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"CREATE DATABASE failed; error: '%-.200s'", MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } argc--; argv++; break; @@ -417,7 +431,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) return 1; } if (drop_db(mysql,argv[1])) - return 1; + return -1; argc--; argv++; break; } @@ -433,7 +447,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"shutdown failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } mysql_close(mysql); /* Close connection to avoid error messages */ if (got_pidfile) @@ -450,7 +464,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"reload failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; case ADMIN_REFRESH: @@ -461,7 +475,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"refresh failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; case ADMIN_FLUSH_THREADS: @@ -469,7 +483,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"refresh failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; case ADMIN_VER: @@ -513,7 +527,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"process list failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } print_header(result); while ((row=mysql_fetch_row(result))) @@ -552,7 +566,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) } argc--; argv++; if (error) - return error; + return -1; break; } case ADMIN_DEBUG: @@ -560,7 +574,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"debug failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; case ADMIN_VARIABLES: @@ -574,7 +588,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"unable to show variables; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } print_header(res); while ((row=mysql_fetch_row(res))) @@ -596,7 +610,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0, "unable to show status; error: '%s'", MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } if (!opt_vertical) print_header(res); @@ -646,7 +660,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"refresh failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; } @@ -656,7 +670,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"refresh failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; } @@ -666,7 +680,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"refresh failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; } @@ -676,7 +690,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"refresh failed; error: '%s'",MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } break; } @@ -684,7 +698,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { char buff[128],crypted_pw[33]; - if(argc < 2) + if (argc < 2) { my_printf_error(0,"Too few arguments to change password",MYF(ME_BELL)); return 1; @@ -699,13 +713,13 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0, "Can't turn off logging; error: '%s'", MYF(ME_BELL),mysql_error(mysql)); - return 1; + return -1; } if (mysql_query(mysql,buff)) { my_printf_error(0,"unable to change password; error: '%s'", MYF(ME_BELL),mysql_error(mysql)); - return 1; + return -1; } argc--; argv++; break; @@ -716,7 +730,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0, "Error starting slave: %s", MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } else puts("Slave started"); @@ -726,7 +740,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0, "Error stopping slave: %s", MYF(ME_BELL), mysql_error(mysql)); - return 1; + return -1; } else puts("Slave stopped"); @@ -751,7 +765,7 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv) { my_printf_error(0,"mysqld doesn't answer to ping, error: '%s'", MYF(ME_BELL),mysql_error(mysql)); - return 1; + return -1; } } mysql->reconnect=1; /* Automatic reconnect is default */ diff --git a/libmysql/violite.c b/libmysql/violite.c index 0d96c71969c..51940552bb9 100644 --- a/libmysql/violite.c +++ b/libmysql/violite.c @@ -39,6 +39,13 @@ #include <sys/ioctl.h> #endif +#if !defined(MSDOS) && !defined(__WIN__) && !defined(HAVE_BROKEN_NETINET_INCLUDES) && !defined(__BEOS__) +#include <netinet/ip.h> +#if !defined(alpha_linux_port) +#include <netinet/tcp.h> +#endif +#endif + #if defined(__EMX__) || defined(OS2) #define ioctlsocket ioctl #endif /* defined(__EMX__) */ diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 35b29307895..d27664e7a8f 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -273,8 +273,7 @@ DASH72=`$ECHO '----------------------------------------------------------------- # on binary, use what is installed if [ x$SOURCE_DIST = x1 ] ; then MYSQLD="$BASEDIR/sql/mysqld" - if [ -e "$BASEDIR/client/.libs/mysqltest" ] ; then - [ -e "$BASEDIR/client/.libs/lt-mysqltest" ] || $BASEDIR/client/mysqltest -V + if [ -f "$BASEDIR/client/.libs/lt-mysqltest" ] ; then MYSQL_TEST="$BASEDIR/client/.libs/lt-mysqltest" else MYSQL_TEST="$BASEDIR/client/mysqltest" @@ -350,7 +349,7 @@ prompt_user () read unused } -# We can't use diff -u as this isn't portable +# We can't use diff -u or diff -a as these are not portable show_failed_diff () { @@ -367,7 +366,7 @@ show_failed_diff () then echo "Below are the diffs between actual and expected results:" echo "-------------------------------------------------------" - $DIFF -c -a $result_file $reject_file + $DIFF -c $result_file $reject_file echo "-------------------------------------------------------" echo "Please follow the instructions outlined at" echo "http://www.mysql.com/doc/R/e/Reporting_mysqltest_bugs.html" diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index e0044a0710f..5c63fa32293 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -147,7 +147,7 @@ LEX *lex_start(THD *thd, uchar *buf,uint length) lex->in_sum_expr=0; lex->expr_list.empty(); lex->ftfunc_list.empty(); - lex->convert_set=(lex->thd=thd)->convert_set; + lex->convert_set=thd->convert_set; lex->yacc_yyss=lex->yacc_yyvs=0; lex->ignore_space=test(thd->sql_mode & MODE_IGNORE_SPACE); return lex; diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 10a99f920bd..7a4a5034b18 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -129,7 +129,6 @@ typedef struct st_lex { CONVERT *convert_set; LEX_USER *grant_user; gptr yacc_yyss,yacc_yyvs; - THD *thd; udf_func udf; HA_CHECK_OPT check_opt; // check/repair options HA_CREATE_INFO create_info; |