summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/client_priv.h2
-rw-r--r--extra/resolveip.c1
-rw-r--r--myisam/myisamchk.c2
-rw-r--r--scripts/mysql_config.sh2
-rw-r--r--scripts/mysqld_safe.sh22
-rw-r--r--sql/mysqld.cc2
-rw-r--r--sql/sql_handler.cc15
7 files changed, 28 insertions, 18 deletions
diff --git a/client/client_priv.h b/client/client_priv.h
index 85c99951532..5029f219494 100644
--- a/client/client_priv.h
+++ b/client/client_priv.h
@@ -26,7 +26,7 @@
/* We have to define 'enum options' identical in all files to keep OS2 happy */
-enum options { OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
+enum options_client { OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
OPT_PAGER, OPT_NOPAGER, OPT_TEE, OPT_NOTEE,
OPT_LOW_PRIORITY, OPT_AUTO_REPAIR, OPT_COMPRESS,
OPT_DROP, OPT_LOCKS, OPT_KEYWORDS, OPT_DELAYED, OPT_OPTIMIZE,
diff --git a/extra/resolveip.c b/extra/resolveip.c
index 91f23bf5b00..c9e5f808109 100644
--- a/extra/resolveip.c
+++ b/extra/resolveip.c
@@ -40,7 +40,6 @@ extern int h_errno;
#define in_addr_t u_long
#endif
-
static my_bool silent;
static struct my_option my_long_options[] =
diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c
index 83edadf153f..b7627fc59fd 100644
--- a/myisam/myisamchk.c
+++ b/myisam/myisamchk.c
@@ -144,7 +144,7 @@ int main(int argc, char **argv)
#endif
} /* main */
-enum options {
+enum options_mc {
OPT_CHARSETS_DIR=256, OPT_SET_CHARSET,OPT_START_CHECK_POS,
OPT_CORRECT_CHECKSUM, OPT_KEY_BUFFER_SIZE, OPT_MYISAM_BLOCK_SIZE,
OPT_READ_BUFFER_SIZE, OPT_WRITE_BUFFER_SIZE, OPT_SORT_BUFFER_SIZE,
diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh
index 52284104636..6b543bf4a07 100644
--- a/scripts/mysql_config.sh
+++ b/scripts/mysql_config.sh
@@ -62,7 +62,7 @@ get_full_path ()
{
case $1 in
/*) echo "$1";;
- ./*) tmp=`pwd`/$1; echo $tmp | sed -e 's;/./;/;' ;;
+ ./*) tmp=`pwd`/$1; echo $tmp | sed -e 's;/\./;/;' ;;
*) which $1 ;;
esac
}
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index 1c056e963cb..ece4ba098f4 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -51,9 +51,9 @@ parse_arguments() {
;;
# these two might have been set in a [mysqld_safe] section of my.cnf
- # they get passed via environment variables to mysqld_safe
- --socket=*) MYSQL_UNIX_PORT=`echo "$arg" | sed -e "s;--socket=;;"` ;;
- --port=*) MYSQL_TCP_PORT=`echo "$arg" | sed -e "s;--port=;;"` ;;
+ # they are added to mysqld command line to override settings from my.cnf
+ --socket=*) mysql_unix_port=`echo "$arg" | sed -e "s;--socket=;;"` ;;
+ --port=*) mysql_tcp_port=`echo "$arg" | sed -e "s;--port=;;"` ;;
# mysqld_safe-specific options - must be set in my.cnf ([mysqld_safe])!
--ledir=*) ledir=`echo "$arg" | sed -e "s;--ledir=;;"` ;;
@@ -114,8 +114,7 @@ else
ledir=@libexecdir@
fi
-MYSQL_UNIX_PORT=${MYSQL_UNIX_PORT:-@MYSQL_UNIX_ADDR@}
-MYSQL_TCP_PORT=${MYSQL_TCP_PORT:-@MYSQL_TCP_PORT@}
+safe_mysql_unix_port=${mysql_unix_port:-${MYSQL_UNIX_PORT:-@MYSQL_UNIX_ADDR@}}
user=@MYSQLD_USER@
niceness=0
@@ -171,9 +170,14 @@ else
fi
test -z "$err_log" && err_log=$DATADIR/`@HOSTNAME@`.err
-export MYSQL_UNIX_PORT
-export MYSQL_TCP_PORT
-
+if test -n "$mysql_unix_port"
+then
+ args="--socket=$mysql_unix_port $args"
+fi
+if test -n "$mysql_tcp_port"
+then
+ args="--port=$mysql_tcp_port $args"
+fi
if test $niceness -eq 0
then
@@ -296,7 +300,7 @@ echo "Starting $MYSQLD daemon with databases from $DATADIR"
echo "`date +'%y%m%d %H:%M:%S mysqld started'`" >> $err_log
while true
do
- rm -f $MYSQL_UNIX_PORT $pid_file # Some extra safety
+ rm -f $safe_mysql_unix_port $pid_file # Some extra safety
if test -z "$args"
then
$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file @MYSQLD_DEFAULT_SWITCHES@ >> $err_log 2>&1
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 1bb51ea8e91..b544a70f741 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -3134,7 +3134,7 @@ extern "C" pthread_handler_decl(handle_connections_namedpipes,arg)
** handle start options
******************************************************************************/
-enum options {
+enum options_mysqld {
OPT_ISAM_LOG=256, OPT_SKIP_NEW,
OPT_SKIP_GRANT, OPT_SKIP_LOCK,
OPT_ENABLE_LOCK, OPT_USE_LOCKING,
diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc
index b0d8b18dd17..a19fcdc2d73 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -34,7 +34,7 @@
The second is to be freeed only on thread end. mysql_ha_open should
then do { handler_items=concat(handler_items, free_list); free_list=0; }
- But !!! do_cammand calls free_root at the end of every query and frees up
+ But !!! do_command calls free_root at the end of every query and frees up
all the sql_alloc'ed memory. It's harder to work around...
*/
@@ -73,7 +73,11 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
if (*ptr)
{
VOID(pthread_mutex_lock(&LOCK_open));
- close_thread_table(thd, ptr);
+ if (close_thread_table(thd, ptr))
+ {
+ /* Tell threads waiting for refresh that something has happened */
+ VOID(pthread_cond_broadcast(&COND_refresh));
+ }
VOID(pthread_mutex_unlock(&LOCK_open));
}
else
@@ -90,8 +94,11 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
int mysql_ha_closeall(THD *thd, TABLE_LIST *tables)
{
TABLE **ptr=find_table_ptr_by_name(thd, tables->db, tables->real_name, 0);
- if (*ptr)
- close_thread_table(thd, ptr);
+ if (*ptr && close_thread_table(thd, ptr))
+ {
+ /* Tell threads waiting for refresh that something has happened */
+ VOID(pthread_cond_broadcast(&COND_refresh));
+ }
return 0;
}