summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-09-15 15:24:56 +0300
committerunknown <monty@hundin.mysql.fi>2001-09-15 15:24:56 +0300
commit1a9bf29e9956ccd113d87f8ffe82781d6515ff61 (patch)
treeab4e03c4854b65e0c557a84b43f16c9f5928a876
parentc97fb8f37a48340af4d69e170682f4e2f843d771 (diff)
downloadmariadb-git-1a9bf29e9956ccd113d87f8ffe82781d6515ff61.tar.gz
Fixed bug in --safe-create-user
Docs/manual.texi: Changelog isam/_dbug.c: Cleanup sql/mysqld.cc: Cleanup sql/net_serv.cc: Cleanup
-rw-r--r--Docs/manual.texi2
-rw-r--r--isam/_dbug.c2
-rw-r--r--sql/mysqld.cc8
-rw-r--r--sql/net_serv.cc1
-rw-r--r--sql/sql_acl.cc6
-rw-r--r--support-files/make_mysql_pkg.sh159
6 files changed, 170 insertions, 8 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 1aebc88d4c3..8f3f33a800f 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -46859,6 +46859,8 @@ as @code{NULL}.
Fixed problem with @code{myisampack} when using pre-space filled CHAR columns.
@item
Applied patch from Yuri Dario for OS2.
+@item
+Fixed bug in @code{--safe-user-create}
@end itemize
@node News-3.23.42, News-3.23.41, News-3.23.43, News-3.23.x
diff --git a/isam/_dbug.c b/isam/_dbug.c
index d632d5931a5..18e671793ed 100644
--- a/isam/_dbug.c
+++ b/isam/_dbug.c
@@ -89,7 +89,7 @@ void _nisam_print_key(FILE *stream, register N_KEYSEG *keyseg, const uchar *key)
key=end;
break;
case HA_KEYTYPE_UINT24:
- VOID(fprintf(stream,"%ld",uint3korr(key)));
+ VOID(fprintf(stream,"%ld",(long) uint3korr(key)));
key=end;
break;
case HA_KEYTYPE_FLOAT:
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 9aa56ea7fc1..ee72bdb1c3b 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -2811,13 +2811,13 @@ CHANGEABLE_VAR changeable_vars[] = {
0, 1, ~0L, 0, 1 },
{ "max_write_lock_count", (long*) &max_write_lock_count,
~0L, 1, ~0L, 0, 1 },
- { "myisam_sort_buffer_size", (long*) &myisam_sort_buffer_size,
- 8192*1024, 4, ~0L, 0, 1 },
{ "myisam_max_extra_sort_file_size",
(long*) &myisam_max_extra_sort_file_size,
(long) (MI_MAX_TEMP_LENGTH/(1024L*1024L)), 0, ~0L, 0, 1 },
{ "myisam_max_sort_file_size", (long*) &myisam_max_sort_file_size,
(long) (LONG_MAX/(1024L*1024L)), 0, ~0L, 0, 1 },
+ { "myisam_sort_buffer_size", (long*) &myisam_sort_buffer_size,
+ 8192*1024, 4, ~0L, 0, 1 },
{ "net_buffer_length", (long*) &net_buffer_length,
16384, 1024, 1024*1024L, MALLOC_OVERHEAD, 1024 },
{ "net_retry_count", (long*) &mysqld_net_retry_count,
@@ -2896,7 +2896,7 @@ struct show_var_st init_vars[]= {
{"have_innodb", (char*) &have_innodb, SHOW_HAVE},
{"have_isam", (char*) &have_isam, SHOW_HAVE},
{"have_raid", (char*) &have_raid, SHOW_HAVE},
- {"have_ssl", (char*) &have_ssl, SHOW_HAVE},
+ {"have_openssl", (char*) &have_ssl, SHOW_HAVE},
{"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR},
#ifdef HAVE_INNOBASE_DB
{"innodb_data_file_path", (char*) &innobase_data_file_path, SHOW_CHAR_PTR},
@@ -2935,10 +2935,10 @@ struct show_var_st init_vars[]= {
{"max_user_connections", (char*) &max_user_connections, SHOW_LONG},
{"max_tmp_tables", (char*) &max_tmp_tables, SHOW_LONG},
{"max_write_lock_count", (char*) &max_write_lock_count, SHOW_LONG},
- {"myisam_recover_options", (char*) &myisam_recover_options, SHOW_LONG},
{"myisam_max_extra_sort_file_size", (char*) &myisam_max_extra_sort_file_size,
SHOW_LONG},
{"myisam_max_sort_file_size",(char*) &myisam_max_sort_file_size, SHOW_LONG},
+ {"myisam_recover_options", (char*) &myisam_recover_options, SHOW_LONG},
{"myisam_sort_buffer_size", (char*) &myisam_sort_buffer_size, SHOW_LONG},
{"net_buffer_length", (char*) &net_buffer_length, SHOW_LONG},
{"net_read_timeout", (char*) &net_read_timeout, SHOW_LONG},
diff --git a/sql/net_serv.cc b/sql/net_serv.cc
index 4d4603ed586..750079b39a5 100644
--- a/sql/net_serv.cc
+++ b/sql/net_serv.cc
@@ -34,7 +34,6 @@
#include <signal.h>
#include <errno.h>
#include <sys/types.h>
-#include <violite.h>
#ifdef MYSQL_SERVER
ulong max_allowed_packet=65536;
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 798cd78cab1..835b873aee6 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -1613,6 +1613,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
List_iterator <LEX_USER> str_list (user_list);
LEX_USER *Str;
TABLE_LIST tables[3];
+ bool create_new_users=0;
DBUG_ENTER("mysql_table_grant");
if (!initialized)
@@ -1680,6 +1681,8 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
DBUG_RETURN(-1); /* purecov: deadcode */
}
+ if (!revoke_grant)
+ create_new_users= test_if_create_new_users(thd);
int result=0;
pthread_mutex_lock(&LOCK_grant);
MEM_ROOT *old_root=my_pthread_getspecific_ptr(MEM_ROOT*,THR_MALLOC);
@@ -1705,8 +1708,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
*Str,
0,
revoke_grant ? 'N' : 'Y',
- (revoke_grant ? 0 :
- test_if_create_new_users(thd))))
+ create_new_users))
{
result= -1; // Remember error
continue; // Add next user
diff --git a/support-files/make_mysql_pkg.sh b/support-files/make_mysql_pkg.sh
new file mode 100644
index 00000000000..b0eb817fff4
--- /dev/null
+++ b/support-files/make_mysql_pkg.sh
@@ -0,0 +1,159 @@
+#!/bin/sh
+#
+# make_mysql_pkg.sh
+#
+# This script creates a Mac OS X installation package
+# for Apple's Installer application.
+#
+# To use it:
+#
+# 1.) unpack the MySQL source tarball
+# 2.) cd to into the resulting directory and stay there for the next steps
+# 3.) "configure" the source (preferably with --mandir=/usr/local/share/man)
+# 4.) "make" the package
+# 5.) invoke this script with superuser privileges (sudo or in a root shell)
+#
+# Written by Marc Liyanage (http://www.entropy.ch)
+#
+# History:
+#
+# When Who What
+# -------------------------------------------------------------
+# 2001-09-13 Marc Liyanage First version
+
+
+# Find the version number of this particular MySQL build
+#
+OLDWD=`pwd`
+VERSION_H_FILE=$OLDWD/include/mysql_version.h
+
+if [ ! -e $VERSION_H_FILE ]
+then
+echo $VERSION_H_FILE not found, make sure you are in the mysql source dir
+exit 1
+fi
+
+MYSQLVERSION=`egrep 'MYSQL_SERVER_VERSION' $VERSION_H_FILE | perl -e '$_ = <>; $_ =~ /"(.+?)"/; print $1'`
+
+
+
+# We will temporarily rename /usr/local to this name
+# and then mkdir a new, empty /usr/local
+#
+LOCAL_TMPDIR=/usr/local.tmp
+
+# At the end, we'll keep our temporary /usr/local
+# to this name
+#
+LOCAL_BACKUPDIR=/usr/local.mysql-package
+
+# Where do we create the package directory
+#
+PKG_DIR=/tmp/mysql-$MYSQLVERSION.pkg
+
+# Where is the resources directory within the
+# package directory
+#
+PKG_RESOURCES_DIR=$PKG_DIR/Contents/Resources
+
+# Check if old stuff is in our way
+#
+if [ -e $LOCAL_BACKUPDIR ]
+then
+echo $LOCAL_BACKUPDIR exists, please remove first...
+exit 1
+fi
+
+if [ -e $LOCAL_TMPDIR ]
+then
+echo $LOCAL_TMPDIR exists, please remove first...
+exit 1
+fi
+
+if [ -e $PKG_DIR ]
+then
+echo $PKG_DIR exists, please remove first...
+exit 1
+fi
+
+# Now create the package dir
+#
+mkdir -p $PKG_RESOURCES_DIR
+
+# Move the existing /usr/local out of our way
+#
+mv /usr/local $LOCAL_TMPDIR
+
+# Now create our new empty temporary /usr/local
+#
+mkdir /usr/local
+
+# And install MySQL there
+#
+make install
+
+
+# cd there so the next few commands will use it
+# as base directory
+#
+cd /usr/local
+
+# First, create the gzipped pax archive file
+# which contains the actual files
+#
+pax -w . | gzip -c > $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.pax.gz
+
+# Create the bom ("Bill Of Materials") file
+#
+mkbom . $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.bom
+
+# Create the sizes file with the package space
+# requirement numbers and file count
+#
+SIZE_UNCOMPRESSED=`du -sk /usr/local | cut -f 1`
+SIZE_COMPRESSED=`du -sk $PKG_DIR | cut -f 1`
+NUMFILES=`find /usr/local | wc -l | perl -e '$_ = <>; $_ =~ /\s+(\d+)/; print $1 - 1'`
+
+echo NumFiles $NUMFILES >> $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.sizes
+echo InstalledSize $SIZE_UNCOMPRESSED >> $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.sizes
+echo CompressedSize $SIZE_COMPRESSED >> $PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.sizes
+
+
+# Finally create the info file which drives the "Installer" application
+#
+cat >$PKG_RESOURCES_DIR/mysql-$MYSQLVERSION.info <<- EOF
+ Title MySQL
+ Version $MYSQLVERSION
+ Description The MySQL database server in a convenient Mac OS X package. Some additional configuration is necessary, please see http://www.entropy.ch/software/macosx/mysql/
+ DefaultLocation /usr/local
+ Diskname (null)
+ DeleteWarning
+ NeedsAuthorization YES
+ DisableStop NO
+ UseUserMask NO
+ Application NO
+ Relocatable NO
+ Required NO
+ InstallOnly NO
+ RequiresReboot NO
+ InstallFat NO
+EOF
+
+# Create a .tar.gz file for the package directory
+#
+cd $PKG_DIR
+cd ..
+DIRNAME=`dirname $PKG_DIR`
+BASENAME=`basename $PKG_DIR`
+FILENAME=$BASENAME.tar.gz
+tar -cvzf $FILENAME $BASENAME
+
+# Move our temporary /usr/local out of the way
+# and the original one back
+#
+mv /usr/local $LOCAL_BACKUPDIR
+mv $LOCAL_TMPDIR /usr/local
+
+echo output package is in $DIRNAME/$FILENAME
+
+