List:Internals« Previous MessageNext Message »
From:monty Date:April 16 2005 9:53am
Subject:bk commit into 5.0 tree (monty:1.1841)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of monty. When monty does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.1841 05/04/16 10:53:30 monty@stripped +4 -0
  Added more rows to test to get predictable results

  support-files/mysql.server.sh
    1.43 05/04/16 10:51:39 monty@stripped +68 -12
    Apply Jims patch to support mysqld_safe

  scripts/make_binary_distribution.sh
    1.81 05/04/16 10:51:39 monty@stripped +1 -1
    Apply Jims patch for  mysql.server

  mysql-test/t/range.test
    1.23 05/04/16 10:51:39 monty@stripped +1 -1
    Added more rows to test to get predictable results
    (if it still fails, we need to add even more rows)

  mysql-test/r/range.result
    1.31 05/04/16 10:51:39 monty@stripped +3 -3
    Added more rows to test to get predictable results

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	monty
# Host:	mishka.local
# Root:	/home/my/mysql-5.0

--- 1.80/scripts/make_binary_distribution.sh	Thu Apr 14 10:56:17 2005
+++ 1.81/scripts/make_binary_distribution.sh	Sat Apr 16 10:51:39 2005
@@ -233,7 +233,7 @@
   chmod a+x $BASE/bin/*
   $CP scripts/* $BASE/bin
   $BASE/bin/replace \@localstatedir\@ ./data \@bindir\@ ./bin \@scriptdir\@ ./bin
\@libexecdir\@ ./bin \@sbindir\@ ./bin \@prefix\@ . \@HOSTNAME\@ @HOSTNAME@
\@pkgdatadir\@ ./support-files < $SOURCE/scripts/mysql_install_db.sh >
$BASE/scripts/mysql_install_db
-  $BASE/bin/replace \@prefix\@ /usr/local/mysql \@bindir\@ ./bin \@sbindir\@ ./bin
\@MYSQLD_USER\@ mysql \@localstatedir\@ /usr/local/mysql/data \@HOSTNAME\@ @HOSTNAME@
< $SOURCE/support-files/mysql.server.sh > $BASE/support-files/mysql.server
+  $BASE/bin/replace \@prefix\@ /usr/local/mysql \@bindir\@ ./bin \@sbindir\@ ./bin
\@libexecdir\@ ./bin \@MYSQLD_USER\@ @MYSQLD_USER@ \@localstatedir\@
/usr/local/mysql/data \@HOSTNAME\@ @HOSTNAME@ < $SOURCE/support-files/mysql.server.sh
> $BASE/support-files/mysql.server
   $BASE/bin/replace /my/gnu/bin/hostname /bin/hostname -- $BASE/bin/mysqld_safe
   mv $BASE/support-files/binary-configure $BASE/configure
   chmod a+x $BASE/bin/* $BASE/scripts/* $BASE/support-files/mysql-*
$BASE/support-files/mysql.server $BASE/configure

--- 1.42/support-files/mysql.server.sh	Sat Apr 16 04:23:45 2005
+++ 1.43/support-files/mysql.server.sh	Sat Apr 16 10:51:39 2005
@@ -48,15 +48,19 @@
 
 # Set some defaults
 pid_file=
+server_pid_file=
+user=@MYSQLD_USER@
 if test -z "$basedir"
 then
   basedir=@prefix@
   bindir=@bindir@
   datadir=@localstatedir@
   sbindir=@sbindir@
+  libexecdir=@libexecdir@
 else
   bindir="$basedir/bin"
-  sbindir="$basedir/sbin"
+  sbindir="$basedir/bin"
+  libexecdir="$basedir/bin"
 fi
 
 #
@@ -92,6 +96,8 @@
     case "$arg" in
       --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
       --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --user=*)  user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --pid-file=*) server_pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
     esac
   done
 }
@@ -100,6 +106,7 @@
   for arg do
     case "$arg" in
       --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --user=*)  user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
     esac
   done
 }
@@ -181,7 +188,7 @@
   extra_args="-e $datadir/my.cnf"
 fi
 
-parse_server_arguments `$print_defaults $extra_args mysqld`
+parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server
mysql.server`
 
 # Look for the pidfile 
 parse_manager_arguments `$print_defaults $extra_args manager`
@@ -198,9 +205,15 @@
     * )  pid_file="$datadir/$pid_file" ;;
   esac
 fi
-
-user=@MYSQLD_USER@
-USER_OPTION="--user=$user"
+if test -z "$server_pid_file"
+then
+  server_pid_file=$datadir/`@HOSTNAME@`.pid
+else
+  case "$server_pid_file" in
+    /* ) ;;
+    * )  server_pid_file="$datadir/$server_pid_file" ;;
+  esac
+fi
 
 # Safeguard (relative paths, core dumps..)
 cd $basedir
@@ -209,12 +222,21 @@
   'start')
     # Start daemon
 
-    if test -x $sbindir/mysqlmanager
+    manager=$bindir/mysqlmanager
+    if test -x $libexecdir/mysqlmanager
+    then
+      manager=$libexecdir/mysqlmanager
+    elif test -x $bindir/mysqlmanager
+    then
+      manager=$sbindir/mysqlmanager
+    fi
+
+    if test -x $manager
     then
       # Give extra arguments to mysqld with the my.cnf file. This script may
       # be overwritten at next upgrade.
       echo $echo_n "Starting MySQL"
-      $sbindir/mysqlmanager $USER_OPTION --pid-file=$pid_file >/dev/null 2>&1
&
+      $manager --user=$user --pid-file=$pid_file >/dev/null 2>&1 &
       wait_for_pid created
 
       # Make lock for RedHat / SuSE
@@ -222,14 +244,38 @@
       then
         touch /var/lock/subsys/mysqlmanager
       fi
+    elif test -x $bindir/mysqld_safe
+    then
+      # Give extra arguments to mysqld with the my.cnf file. This script may  be
overwritten at next upgrade.
+      echo $echo_n "Starting MySQL"
+      pid_file=$server_pid_file
+      $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file >/dev/null
2>&1 &
+      wait_for_pid created
+
+      # Make lock for RedHat / SuSE
+      if test -w /var/lock/subsys
+      then
+        touch /var/lock/subsys/mysql
+      fi
     else
-      log_failure_msg "Can't execute $sbindir/mysqlmanager"
+      log_failure_msg "Couldn't find MySQL manager or server"
     fi
     ;;
 
   'stop')
     # Stop daemon. We use a signal here to avoid having to know the
     # root password.
+
+    # The RedHat / SuSE lock directory to remove
+    lock_dir=/var/lock/subsys/mysqlmanager
+
+    # If the manager pid_file doesn't exist, try the server's
+    if test ! -s "$pid_file"
+    then
+      pid_file=$server_pid_file
+      lock_dir=/var/lock/subsys/mysql
+    fi
+
     if test -s "$pid_file"
     then
       mysqlmanager_pid=`cat $pid_file`
@@ -239,12 +285,12 @@
       wait_for_pid removed
 
       # delete lock for RedHat / SuSE
-      if test -f /var/lock/subsys/mysqlmanager
+      if test -f $lock_dir
       then
-        rm -f /var/lock/subsys/mysqlmanager
+        rm -f $lock_dir
       fi
     else
-      log_failure_msg "mysqlmanager PID file could not be found!"
+      log_failure_msg "MySQL manager or server PID file could not be found!"
     fi
     ;;
 
@@ -255,9 +301,19 @@
     $0 start
     ;;
 
+  'reload')
+    if test -s "$server_pid_file" ; then
+      mysqld_pid=`cat $server_pid_file`
+      kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
+      touch $server_pid_file
+    else
+      log_failure_msg "MySQL PID file could not be found!"
+    fi
+    ;;
+
   *)
     # usage
-    echo "Usage: $0 start|stop|restart"
+    echo "Usage: $0 start|stop|restart|reload"
     exit 1
     ;;
 esac

--- 1.30/mysql-test/r/range.result	Tue Apr 12 13:04:38 2005
+++ 1.31/mysql-test/r/range.result	Sat Apr 16 10:51:39 2005
@@ -250,18 +250,18 @@
 1	SIMPLE	t1	index	x	x	5	NULL	9	Using where; Using index
 drop table t1;
 CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1));
-INSERT INTO t1 VALUES (0),(1),(1);
+INSERT INTO t1 VALUES (0),(0),(0),(0),(0),(1),(1);
 CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
 INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
 explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t2	ref	j1	j1	4	const	1	Using index
-1	SIMPLE	t1	index	i1	i1	4	NULL	3	Using where; Using index
+1	SIMPLE	t1	range	i1	i1	4	NULL	7	Using where; Using index
 explain select * from t1 force index(i1), t2 force index(j1) where 
 (t1.key1 <t2.keya + 1) and t2.keya=3;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t2	ref	j1	j1	4	const	1	Using index
-1	SIMPLE	t1	index	i1	i1	4	NULL	3	Using where; Using index
+1	SIMPLE	t1	range	i1	i1	4	NULL	7	Using where; Using index
 DROP TABLE t1,t2;
 CREATE TABLE t1 (
 a int(11) default NULL,

--- 1.22/mysql-test/t/range.test	Tue Apr 12 13:04:38 2005
+++ 1.23/mysql-test/t/range.test	Sat Apr 16 10:51:39 2005
@@ -198,7 +198,7 @@
 # bug #1172: "Force index" option caused server crash
 #
 CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1));
-INSERT INTO t1 VALUES (0),(1),(1);
+INSERT INTO t1 VALUES (0),(0),(0),(0),(0),(1),(1);
 CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
 INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
 explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
Thread
bk commit into 5.0 tree (monty:1.1841)monty16 Apr