summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormonty@hundin.mysql.fi <>2001-10-07 14:18:09 +0300
committermonty@hundin.mysql.fi <>2001-10-07 14:18:09 +0300
commit88e5ee018478318cd3c32744587f2b8a08638973 (patch)
treeae1d8d4885a5aa3e83ca4246b189760e128283c3
parent1bea4bd36b67f4e98556ec8282f1cac7b50dde71 (diff)
downloadmariadb-git-88e5ee018478318cd3c32744587f2b8a08638973.tar.gz
Fix for 'mysqladmin -w1 unknown-command'
Manual Changelog update
-rw-r--r--Docs/manual.texi13
-rw-r--r--client/mysqladmin.c78
-rw-r--r--libmysql/violite.c7
-rw-r--r--mysql-test/mysql-test-run.sh7
-rw-r--r--sql/sql_lex.cc2
-rw-r--r--sql/sql_lex.h1
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;