Commit d1e3041c authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Fixed bug in --safe-create-user

parent 6f34ff50
...@@ -46859,6 +46859,8 @@ as @code{NULL}. ...@@ -46859,6 +46859,8 @@ as @code{NULL}.
Fixed problem with @code{myisampack} when using pre-space filled CHAR columns. Fixed problem with @code{myisampack} when using pre-space filled CHAR columns.
@item @item
Applied patch from Yuri Dario for OS2. Applied patch from Yuri Dario for OS2.
@item
Fixed bug in @code{--safe-user-create}
@end itemize @end itemize
@node News-3.23.42, News-3.23.41, News-3.23.43, News-3.23.x @node News-3.23.42, News-3.23.41, News-3.23.43, News-3.23.x
...@@ -89,7 +89,7 @@ void _nisam_print_key(FILE *stream, register N_KEYSEG *keyseg, const uchar *key) ...@@ -89,7 +89,7 @@ void _nisam_print_key(FILE *stream, register N_KEYSEG *keyseg, const uchar *key)
key=end; key=end;
break; break;
case HA_KEYTYPE_UINT24: case HA_KEYTYPE_UINT24:
VOID(fprintf(stream,"%ld",uint3korr(key))); VOID(fprintf(stream,"%ld",(long) uint3korr(key)));
key=end; key=end;
break; break;
case HA_KEYTYPE_FLOAT: case HA_KEYTYPE_FLOAT:
......
...@@ -2811,13 +2811,13 @@ CHANGEABLE_VAR changeable_vars[] = { ...@@ -2811,13 +2811,13 @@ CHANGEABLE_VAR changeable_vars[] = {
0, 1, ~0L, 0, 1 }, 0, 1, ~0L, 0, 1 },
{ "max_write_lock_count", (long*) &max_write_lock_count, { "max_write_lock_count", (long*) &max_write_lock_count,
~0L, 1, ~0L, 0, 1 }, ~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", { "myisam_max_extra_sort_file_size",
(long*) &myisam_max_extra_sort_file_size, (long*) &myisam_max_extra_sort_file_size,
(long) (MI_MAX_TEMP_LENGTH/(1024L*1024L)), 0, ~0L, 0, 1 }, (long) (MI_MAX_TEMP_LENGTH/(1024L*1024L)), 0, ~0L, 0, 1 },
{ "myisam_max_sort_file_size", (long*) &myisam_max_sort_file_size, { "myisam_max_sort_file_size", (long*) &myisam_max_sort_file_size,
(long) (LONG_MAX/(1024L*1024L)), 0, ~0L, 0, 1 }, (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, { "net_buffer_length", (long*) &net_buffer_length,
16384, 1024, 1024*1024L, MALLOC_OVERHEAD, 1024 }, 16384, 1024, 1024*1024L, MALLOC_OVERHEAD, 1024 },
{ "net_retry_count", (long*) &mysqld_net_retry_count, { "net_retry_count", (long*) &mysqld_net_retry_count,
...@@ -2896,7 +2896,7 @@ struct show_var_st init_vars[]= { ...@@ -2896,7 +2896,7 @@ struct show_var_st init_vars[]= {
{"have_innodb", (char*) &have_innodb, SHOW_HAVE}, {"have_innodb", (char*) &have_innodb, SHOW_HAVE},
{"have_isam", (char*) &have_isam, SHOW_HAVE}, {"have_isam", (char*) &have_isam, SHOW_HAVE},
{"have_raid", (char*) &have_raid, 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}, {"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR},
#ifdef HAVE_INNOBASE_DB #ifdef HAVE_INNOBASE_DB
{"innodb_data_file_path", (char*) &innobase_data_file_path, SHOW_CHAR_PTR}, {"innodb_data_file_path", (char*) &innobase_data_file_path, SHOW_CHAR_PTR},
...@@ -2935,10 +2935,10 @@ struct show_var_st init_vars[]= { ...@@ -2935,10 +2935,10 @@ struct show_var_st init_vars[]= {
{"max_user_connections", (char*) &max_user_connections, SHOW_LONG}, {"max_user_connections", (char*) &max_user_connections, SHOW_LONG},
{"max_tmp_tables", (char*) &max_tmp_tables, SHOW_LONG}, {"max_tmp_tables", (char*) &max_tmp_tables, SHOW_LONG},
{"max_write_lock_count", (char*) &max_write_lock_count, 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, {"myisam_max_extra_sort_file_size", (char*) &myisam_max_extra_sort_file_size,
SHOW_LONG}, SHOW_LONG},
{"myisam_max_sort_file_size",(char*) &myisam_max_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}, {"myisam_sort_buffer_size", (char*) &myisam_sort_buffer_size, SHOW_LONG},
{"net_buffer_length", (char*) &net_buffer_length, SHOW_LONG}, {"net_buffer_length", (char*) &net_buffer_length, SHOW_LONG},
{"net_read_timeout", (char*) &net_read_timeout, SHOW_LONG}, {"net_read_timeout", (char*) &net_read_timeout, SHOW_LONG},
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include <signal.h> #include <signal.h>
#include <errno.h> #include <errno.h>
#include <sys/types.h> #include <sys/types.h>
#include <violite.h>
#ifdef MYSQL_SERVER #ifdef MYSQL_SERVER
ulong max_allowed_packet=65536; ulong max_allowed_packet=65536;
......
...@@ -1613,6 +1613,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list, ...@@ -1613,6 +1613,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
List_iterator <LEX_USER> str_list (user_list); List_iterator <LEX_USER> str_list (user_list);
LEX_USER *Str; LEX_USER *Str;
TABLE_LIST tables[3]; TABLE_LIST tables[3];
bool create_new_users=0;
DBUG_ENTER("mysql_table_grant"); DBUG_ENTER("mysql_table_grant");
if (!initialized) if (!initialized)
...@@ -1680,6 +1681,8 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list, ...@@ -1680,6 +1681,8 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
DBUG_RETURN(-1); /* purecov: deadcode */ DBUG_RETURN(-1); /* purecov: deadcode */
} }
if (!revoke_grant)
create_new_users= test_if_create_new_users(thd);
int result=0; int result=0;
pthread_mutex_lock(&LOCK_grant); pthread_mutex_lock(&LOCK_grant);
MEM_ROOT *old_root=my_pthread_getspecific_ptr(MEM_ROOT*,THR_MALLOC); 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, ...@@ -1705,8 +1708,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
*Str, *Str,
0, 0,
revoke_grant ? 'N' : 'Y', revoke_grant ? 'N' : 'Y',
(revoke_grant ? 0 : create_new_users))
test_if_create_new_users(thd))))
{ {
result= -1; // Remember error result= -1; // Remember error
continue; // Add next user continue; // Add next user
......
#!/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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment