summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2003-11-25 18:07:42 +0100
committerunknown <serg@serg.mylan>2003-11-25 18:07:42 +0100
commitab57ede75776c79eb5a6dca9dc6fd6760b7a3edf (patch)
treeaa2152dde1c81601d0831ab7f445859af08557ea
parent7d6479cc2800b4ae4ed504feecfee69b2f2a56ec (diff)
parentb9eb7a02b8fd0831414138cc0200425595dfab92 (diff)
downloadmariadb-git-ab57ede75776c79eb5a6dca9dc6fd6760b7a3edf.tar.gz
Merge bk-internal:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
-rw-r--r--mysql-test/install_test_db.sh11
-rw-r--r--mysql-test/mysql-test-run.sh6
-rw-r--r--scripts/mysql_prepare_privilege_tables_for_5.sql53
3 files changed, 68 insertions, 2 deletions
diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh
index ca6d393e3b4..d8bdd91c59f 100644
--- a/mysql-test/install_test_db.sh
+++ b/mysql-test/install_test_db.sh
@@ -12,11 +12,13 @@ if [ x$1 = x"-bin" ]; then
BINARY_DIST=1
fix_bin=mysql-test
scriptdir=../bin
+ libexecdir=../libexec
else
execdir=../sql
bindir=../client
fix_bin=.
scriptdir=../scripts
+ libexecdir=../libexec
fi
vardir=var
@@ -36,8 +38,13 @@ EXTRA_ARG=""
if test ! -x $execdir/mysqld
then
- echo "mysqld is missing - looked in $execdir"
- exit 1
+ if test ! -x $libexecdir/mysqld
+ then
+ echo "mysqld is missing - looked in $execdir and in $libexecdir"
+ exit 1
+ else
+ execdir=$libexecdir
+ fi
fi
# On IRIX hostname is in /usr/bsd so add this to the path
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index c343f313d47..f896f7fa9cc 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -229,6 +229,7 @@ while test $# -gt 0; do
--local) USE_RUNNING_SERVER="" ;;
--extern) USE_RUNNING_SERVER="1" ;;
--tmpdir=*) MYSQL_TMP_DIR=`$ECHO "$1" | $SED -e "s;--tmpdir=;;"` ;;
+ --start-from=*) START_FROM=`$ECHO "$1" | $SED -e "s;--start-from=;;"` ;;
--local-master)
MASTER_MYPORT=3306;
EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT --host=127.0.0.1 \
@@ -1185,6 +1186,11 @@ run_testcase ()
fi
fi
+ if [ "$tname" '<' "$START_FROM" ] ; then
+# skip_test $tname;
+ return;
+ fi
+
if [ -n "$DO_TEST" ] ; then
DO_THIS_TEST=`$EXPR \( $tname : "$DO_TEST" \) != 0`
if [ x$DO_THIS_TEST = x0 ] ;
diff --git a/scripts/mysql_prepare_privilege_tables_for_5.sql b/scripts/mysql_prepare_privilege_tables_for_5.sql
new file mode 100644
index 00000000000..a9b6d43aee0
--- /dev/null
+++ b/scripts/mysql_prepare_privilege_tables_for_5.sql
@@ -0,0 +1,53 @@
+
+use mysql;
+
+--
+-- merging `host` table and `db`
+--
+
+UPDATE IGNORE host SET Host='%' WHERE Host='';
+DELETE FROM host WHERE Host='';
+
+INSERT IGNORE INTO db (User, Host, Select_priv, Insert_priv, Update_priv,
+ Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv,
+ Index_priv, Alter_priv, Create_tmp_table_priv, Lock_tables_priv)
+ SELECT d.User, h.Host,
+ (d.Select_priv = 'Y' || h.Select_priv = 'Y') + 1,
+ (d.Insert_priv = 'Y' || h.Select_priv = 'Y') + 1,
+ (d.Update_priv = 'Y' || h.Update_priv = 'Y') + 1,
+ (d.Delete_priv = 'Y' || h.Delete_priv = 'Y') + 1,
+ (d.Create_priv = 'Y' || h.Create_priv = 'Y') + 1,
+ (d.Drop_priv = 'Y' || h.Drop_priv = 'Y') + 1,
+ (d.Grant_priv = 'Y' || h.Grant_priv = 'Y') + 1,
+ (d.References_priv = 'Y' || h.References_priv = 'Y') + 1,
+ (d.Index_priv = 'Y' || h.Index_priv = 'Y') + 1,
+ (d.Alter_priv = 'Y' || h.Alter_priv = 'Y') + 1,
+ (d.Create_tmp_table_priv = 'Y' || h.Create_tmp_table_priv = 'Y') + 1,
+ (d.Lock_tables_priv = 'Y' || h.Lock_tables_priv = 'Y') + 1
+ FROM db d, host h WHERE d.Host = '';
+
+UPDATE IGNORE db SET Host='%' WHERE Host = '';
+DELETE FROM db WHERE Host='';
+
+TRUNCATE TABLE host;
+
+--
+-- Adding missing users to `user` table
+--
+-- note that invalid password causes the user to be skipped during the
+-- load of grand tables (at mysqld startup) thus three following inserts
+-- do not affect anything
+
+INSERT IGNORE user (User, Host, Password) SELECT User, Host, "*" FROM db;
+INSERT IGNORE user (User, Host, Password) SELECT User, Host, "*" FROM tables_priv;
+INSERT IGNORE user (User, Host, Password) SELECT User, Host, "*" FROM columns_priv;
+
+SELECT DISTINCT
+"There are user accounts with the username 'PUBLIC'. In the SQL-1999
+(or later) standard this name is reserved for PUBLIC role and can
+not be used as a valid user name. Consider renaming these accounts before
+upgrading to MySQL-5.0.
+These accounts are:" x
+FROM user WHERE user='PUBLIC';
+SELECT CONCAT(user,'@',host) FROM user WHERE user='PUBLIC';
+