Merge with 3.23
innobase/btr/btr0btr.c: Auto merged ltconfig: Auto merged innobase/include/btr0btr.h: Auto merged innobase/log/log0log.c: Auto merged libmysql/Makefile.shared: Auto merged man/isamlog.1: Auto merged man/mysql.1: Auto merged man/mysql_zap.1: Auto merged man/isamchk.1: Auto merged man/mysqlaccess.1: Auto merged man/mysqladmin.1: Auto merged man/mysqld_multi.1: Auto merged man/mysqld.1: Auto merged man/mysqld_safe.1: Auto merged man/mysqldump.1: Auto merged man/mysqlshow.1: Auto merged man/replace.1: Auto merged myisam/mi_unique.c: Auto merged scripts/mysqld_safe.sh: Auto merged sql/net_pkg.cc: Auto merged sql/sql_table.cc: Auto merged strings/Makefile.am: Auto merged man/perror.1: Auto merged Makefile.am: merge with 3.23 client/mysqltest.c: merge with 3.23 innobase/btr/btr0pcur.c: merge with 3.23 (use local file) innobase/row/row0purge.c: merge with 3.23 (use local file) scripts/mysql_fix_privilege_tables.sh: Merge with 3.23 (Apply debian patches) sql/ha_innodb.cc: merge with 3.23 (use local file) sql/mysqld.cc: Merge with 3.23 (use local file) sql/net_serv.cc: Merge with 3.23 (use local file) sql/sql_db.cc: Merge with 3.23 (use local file)
This commit is contained in:
commit
90b2534f8f
@ -21,10 +21,10 @@ AUTOMAKE_OPTIONS = foreign
|
|||||||
# These are built from source in the Docs directory
|
# These are built from source in the Docs directory
|
||||||
EXTRA_DIST = INSTALL-SOURCE README \
|
EXTRA_DIST = INSTALL-SOURCE README \
|
||||||
COPYING COPYING.LIB
|
COPYING COPYING.LIB
|
||||||
SUBDIRS = include @docs_dirs@ @readline_dir@ \
|
SUBDIRS = . include @docs_dirs@ @readline_dir@ \
|
||||||
@thread_dirs@ pstack @sql_client_dirs@ \
|
@thread_dirs@ pstack @sql_client_dirs@ \
|
||||||
@sql_server_dirs@ @libmysqld_dirs@ scripts man \
|
@sql_server_dirs@ scripts man tests \
|
||||||
tests BUILD os2 \
|
BUILD os2 libmysql_r @libmysqld_dirs@ \
|
||||||
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
||||||
|
|
||||||
# Relink after clean
|
# Relink after clean
|
||||||
|
2
bdb/dist/aclocal/mutex.m4
vendored
2
bdb/dist/aclocal/mutex.m4
vendored
@ -279,7 +279,7 @@ fi
|
|||||||
dnl Sparc/gcc: SunOS, Solaris
|
dnl Sparc/gcc: SunOS, Solaris
|
||||||
dnl The sparc/gcc code doesn't always work, specifically, I've seen assembler
|
dnl The sparc/gcc code doesn't always work, specifically, I've seen assembler
|
||||||
dnl failures from the stbar instruction on SunOS 4.1.4/sun4c and gcc 2.7.2.2.
|
dnl failures from the stbar instruction on SunOS 4.1.4/sun4c and gcc 2.7.2.2.
|
||||||
if test "$db_cv_mutex" = DOESNT_WORK; then
|
if test "$db_cv_mutex" = no; then
|
||||||
AC_TRY_RUN([main(){
|
AC_TRY_RUN([main(){
|
||||||
#if defined(__sparc__)
|
#if defined(__sparc__)
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
|
@ -327,7 +327,7 @@ typedef unsigned char tsl_t;
|
|||||||
*/
|
*/
|
||||||
#define MUTEX_SET(tsl) ({ \
|
#define MUTEX_SET(tsl) ({ \
|
||||||
register tsl_t *__l = (tsl); \
|
register tsl_t *__l = (tsl); \
|
||||||
int __r; \
|
unsigned char __r; \
|
||||||
asm volatile("tas %1; \n \
|
asm volatile("tas %1; \n \
|
||||||
seq %0" \
|
seq %0" \
|
||||||
: "=dm" (__r), "=m" (*__l) \
|
: "=dm" (__r), "=m" (*__l) \
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#define MTEST_VERSION "1.26"
|
#define MTEST_VERSION "1.27"
|
||||||
|
|
||||||
#include <my_global.h>
|
#include <my_global.h>
|
||||||
#include <mysql_embed.h>
|
#include <mysql_embed.h>
|
||||||
@ -677,7 +677,7 @@ int open_file(const char* name)
|
|||||||
|
|
||||||
if (*cur_file && cur_file == file_stack_end)
|
if (*cur_file && cur_file == file_stack_end)
|
||||||
die("Source directives are nesting too deep");
|
die("Source directives are nesting too deep");
|
||||||
if (!(*(cur_file+1) = my_fopen(buff, O_RDONLY, MYF(MY_WME))))
|
if (!(*(cur_file+1) = my_fopen(buff, O_RDONLY | O_BINARY, MYF(MY_WME))))
|
||||||
die(NullS);
|
die(NullS);
|
||||||
cur_file++;
|
cur_file++;
|
||||||
*++lineno=1;
|
*++lineno=1;
|
||||||
@ -1912,7 +1912,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
argument= buff;
|
argument= buff;
|
||||||
}
|
}
|
||||||
fn_format(buff, argument, "", "", 4);
|
fn_format(buff, argument, "", "", 4);
|
||||||
if (!(*++cur_file = my_fopen(buff, O_RDONLY, MYF(MY_WME))))
|
if (!(*++cur_file = my_fopen(buff, O_RDONLY | O_BINARY, MYF(MY_WME))))
|
||||||
die("Could not open %s: errno = %d", argument, errno);
|
die("Could not open %s: errno = %d", argument, errno);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,8 @@ clean-local:
|
|||||||
rm -f `echo $(mystringsobjects) | sed "s;\.lo;.c;g"` \
|
rm -f `echo $(mystringsobjects) | sed "s;\.lo;.c;g"` \
|
||||||
`echo $(dbugobjects) | sed "s;\.lo;.c;g"` \
|
`echo $(dbugobjects) | sed "s;\.lo;.c;g"` \
|
||||||
`echo $(mysysobjects) | sed "s;\.lo;.c;g"` \
|
`echo $(mysysobjects) | sed "s;\.lo;.c;g"` \
|
||||||
|
`echo $(vio_objects) | sed "s;\.lo;.c;g"` \
|
||||||
|
$(CHARSET_SRCS) $(CHARSET_OBJS) \
|
||||||
$(mystringsextra) $(mystringsgen) $(mysysheaders) \
|
$(mystringsextra) $(mystringsgen) $(mysysheaders) \
|
||||||
ctype_extra_sources.c net.c ../linked_client_sources
|
ctype_extra_sources.c net.c ../linked_client_sources
|
||||||
|
|
||||||
|
10
ltconfig
10
ltconfig
@ -3009,6 +3009,16 @@ hardcode_action=$hardcode_action
|
|||||||
# This must work even if \$libdir does not exist.
|
# This must work even if \$libdir does not exist.
|
||||||
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
|
hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
|
||||||
|
|
||||||
|
# Check if debuild is being run by the current shell. If it is then,
|
||||||
|
# the DEB_BUILD_ARCH variable should be of non-zero length, indicating
|
||||||
|
# that we are in the middle of a Debian package build (assuming the
|
||||||
|
# user isn't doing anything strange with environment variables).
|
||||||
|
if test -n "`dpkg-architecture -qDEB_BUILD_ARCH`" && ps | grep debuild | grep -v grep > /dev/null; then
|
||||||
|
# Debian policy mandates that rpaths should not be encoded into a binary
|
||||||
|
# so it is overridden.
|
||||||
|
hardcode_libdir_flag_spec=" -D_DEBIAN_PATCHED_LIBTOOL_ "
|
||||||
|
fi
|
||||||
|
|
||||||
# Whether we need a single -rpath flag with a separated argument.
|
# Whether we need a single -rpath flag with a separated argument.
|
||||||
hardcode_libdir_separator=$hardcode_libdir_separator
|
hardcode_libdir_separator=$hardcode_libdir_separator
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH ISAMCHK 1 "19 December 2000"
|
.TH isamchk 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.BR isamchk
|
.BR isamchk
|
||||||
\- Description, check and repair of ISAM tables.
|
\- Description, check and repair of ISAM tables.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH ISAMLOG 1 "20 December 2000"
|
.TH isamlog 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
isamlog - Write info about whats in a nisam log file.
|
isamlog - Write info about whats in a nisam log file.
|
||||||
.SH USAGE
|
.SH USAGE
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQL 1 "13 June 1997"
|
.TH mysql 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mysql \- text-based client for mysqld, a SQL-based relational database daemon
|
mysql \- text-based client for mysqld, a SQL-based relational database daemon
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH ZAP 1 "20 December 2000"
|
.TH zap 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
zap - a perl script used to kill processes
|
zap - a perl script used to kill processes
|
||||||
.SH USAGE
|
.SH USAGE
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQLACCESS 1 "19 December 2000"
|
.TH mysqlaccess 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.BR mysqlaccess
|
.BR mysqlaccess
|
||||||
\- Create new users to mysql.
|
\- Create new users to mysql.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQLADMIN 1 "18 December 2000"
|
.TH mysqladmin 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mysqladmin [OPTIONS] command command.... \- A utility for performing administrative operations
|
mysqladmin [OPTIONS] command command.... \- A utility for performing administrative operations
|
||||||
.SH OPTION SYNOPSIS
|
.SH OPTION SYNOPSIS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQLD 1 "19 December 2000"
|
.TH mysqld 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.BR mysqld
|
.BR mysqld
|
||||||
\- Starts the MySQL server demon
|
\- Starts the MySQL server demon
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQLD_MULTI 1 "20 December 2000"
|
.TH mysqld_multi 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mysqld_multi - is meant for managing several mysqld processes running in different UNIX sockets and TCP/IP ports.
|
mysqld_multi - is meant for managing several mysqld processes running in different UNIX sockets and TCP/IP ports.
|
||||||
.SH USAGE
|
.SH USAGE
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH SAFE_MYSQLD 1 "19 December 2000" "safe_mysqld (mysql)" mysql.com
|
.TH safe_mysqld 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mysqld_safe \- start the mysqld daemon on Unix.
|
mysqld_safe \- start the mysqld daemon on Unix.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQLDUMP 1 "19 December 2000"
|
.TH mysqldump 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mysqldump \- text-based client for dumping or backing up mysql databases , tables and or data.
|
mysqldump \- text-based client for dumping or backing up mysql databases , tables and or data.
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ Connect to host.
|
|||||||
Lock all tables for read.
|
Lock all tables for read.
|
||||||
.TP
|
.TP
|
||||||
.BR \-n | \-\-no\-create\-db
|
.BR \-n | \-\-no\-create\-db
|
||||||
'CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;'
|
\&'CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;'
|
||||||
will not be put in the output. The above line will
|
will not be put in the output. The above line will
|
||||||
be added otherwise, if
|
be added otherwise, if
|
||||||
.BR \-\-databases
|
.BR \-\-databases
|
||||||
@ -270,4 +270,4 @@ Manual page by L. (Kill-9) Pedersen
|
|||||||
(kill-9@kill-9.dk), Mercurmedia Data Model Architect /
|
(kill-9@kill-9.dk), Mercurmedia Data Model Architect /
|
||||||
system developer (http://www.mercurmedia.com)
|
system developer (http://www.mercurmedia.com)
|
||||||
|
|
||||||
.\" end of man page
|
.\" end of man page
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH MYSQLSHOW 1 "19 December 2000"
|
.TH mysqlshow 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.BR mysqlshow
|
.BR mysqlshow
|
||||||
\- Shows the structure of a mysql database (databases,tables and columns)
|
\- Shows the structure of a mysql database (databases,tables and columns)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH PERROR 1 "19 December 2000"
|
.TH perror 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.BR perror
|
.BR perror
|
||||||
can be used to display a description for a system error code, or an MyISAM/ISAM table handler error code. The error messages are mostly system dependent.
|
can be used to display a description for a system error code, or an MyISAM/ISAM table handler error code. The error messages are mostly system dependent.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH REPLACE 1 "20 December 2000"
|
.TH replace 1 "19 December 2000" "MySQL 3.23" "MySQL database"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.TP
|
.TP
|
||||||
replace - A utility program that is used by msql2mysql, but that has more general applicability as well. replace changes strings in place in files or on the standard input. Uses a finite state machine to match longer strings first. Can be used to swap strings.
|
replace - A utility program that is used by msql2mysql, but that has more general applicability as well. replace changes strings in place in files or on the standard input. Uses a finite state machine to match longer strings first. Can be used to swap strings.
|
||||||
|
@ -228,7 +228,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
|
|||||||
if (uniques)
|
if (uniques)
|
||||||
{
|
{
|
||||||
max_key_block_length= myisam_block_size;
|
max_key_block_length= myisam_block_size;
|
||||||
max_key_length= MI_UNIQUE_HASH_LENGTH;
|
max_key_length= MI_UNIQUE_HASH_LENGTH + pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=0, keydef=keydefs ; i < keys ; i++ , keydef++)
|
for (i=0, keydef=keydefs ; i < keys ; i++ , keydef++)
|
||||||
@ -449,7 +449,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
|
|||||||
share.base.keystart = share.state.state.key_file_length=
|
share.base.keystart = share.state.state.key_file_length=
|
||||||
MY_ALIGN(info_length, myisam_block_size);
|
MY_ALIGN(info_length, myisam_block_size);
|
||||||
share.base.max_key_block_length=max_key_block_length;
|
share.base.max_key_block_length=max_key_block_length;
|
||||||
share.base.max_key_length=ALIGN_SIZE(max_key_length+4);
|
share.base.max_key_length=ALIGN_SIZE(max_key_length[+4);
|
||||||
share.base.records=ci->max_rows;
|
share.base.records=ci->max_rows;
|
||||||
share.base.reloc= ci->reloc_rows;
|
share.base.reloc= ci->reloc_rows;
|
||||||
share.base.reclength=real_reclength;
|
share.base.reclength=real_reclength;
|
||||||
|
@ -24,7 +24,7 @@ my_bool mi_check_unique(MI_INFO *info, MI_UNIQUEDEF *def, byte *record,
|
|||||||
{
|
{
|
||||||
my_off_t lastpos=info->lastpos;
|
my_off_t lastpos=info->lastpos;
|
||||||
MI_KEYDEF *key= &info->s->keyinfo[def->key];
|
MI_KEYDEF *key= &info->s->keyinfo[def->key];
|
||||||
uchar *key_buff=info->lastkey+info->s->base.max_key_length;
|
uchar *key_buff=info->lastkey2;
|
||||||
DBUG_ENTER("mi_check_unique");
|
DBUG_ENTER("mi_check_unique");
|
||||||
|
|
||||||
mi_unique_store(record+key->seg->start, unique_hash);
|
mi_unique_store(record+key->seg->start, unique_hash);
|
||||||
@ -80,7 +80,16 @@ ha_checksum mi_unique_hash(MI_UNIQUEDEF *def, const byte *record)
|
|||||||
if (keyseg->null_bit)
|
if (keyseg->null_bit)
|
||||||
{
|
{
|
||||||
if (record[keyseg->null_pos] & keyseg->null_bit)
|
if (record[keyseg->null_pos] & keyseg->null_bit)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Change crc in a way different from an empty string or 0.
|
||||||
|
(This is an optimisation; The code will work even if this isn't
|
||||||
|
done)
|
||||||
|
*/
|
||||||
|
crc=((crc << 8) + 511+
|
||||||
|
(crc >> (8*sizeof(ha_checksum)-8)));
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pos= record+keyseg->start;
|
pos= record+keyseg->start;
|
||||||
if (keyseg->flag & HA_VAR_LENGTH)
|
if (keyseg->flag & HA_VAR_LENGTH)
|
||||||
|
@ -354,3 +354,14 @@ m.c1id = c1.id AND c1.active = 'Yes' LEFT JOIN t3 AS c2 ON m.c2id =
|
|||||||
c2.id AND c2.active = 'Yes' WHERE m.pid=1 AND (c1.id IS NOT NULL OR c2.id IS
|
c2.id AND c2.active = 'Yes' WHERE m.pid=1 AND (c1.id IS NOT NULL OR c2.id IS
|
||||||
NOT NULL);
|
NOT NULL);
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test bug in GROUP BY on BLOB that is NULL or empty
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (a blob null);
|
||||||
|
insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(""),(""),(""),("b");
|
||||||
|
select a,count(*) from t1 group by a;
|
||||||
|
set option sql_big_tables=1;
|
||||||
|
select a,count(*) from t1 group by a;
|
||||||
|
drop table t1;
|
||||||
|
@ -1,19 +1,27 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
echo "This scripts updates the mysql.user, mysql.db, mysql.host and the"
|
echo "This scripts updates the mysql.user, mysql.db, mysql.host and the"
|
||||||
echo "mysql.func table to MySQL 3.22.14 and above."
|
echo "mysql.func tables to MySQL 3.22.14 and above."
|
||||||
echo ""
|
echo ""
|
||||||
echo "This is needed if you want to use the new GRANT functions,"
|
echo "This is needed if you want to use the new GRANT functions,"
|
||||||
echo "CREATE AGGREAGATE FUNCTION or want to use the more secure passwords in 3.23"
|
echo "CREATE AGGREGATE FUNCTION or want to use the more secure passwords in 3.23"
|
||||||
echo ""
|
echo ""
|
||||||
echo "If you get Access denied errors, you should run this script again"
|
echo "If you get 'Access denied' errors, you should run this script again"
|
||||||
echo "and give the MySQL root user password as a argument!"
|
echo "and give the MySQL root user password as an argument!"
|
||||||
|
|
||||||
root_password="$1"
|
root_password="$1"
|
||||||
host="localhost"
|
host="localhost"
|
||||||
|
user="root"
|
||||||
|
|
||||||
|
if test -z $1 ; then
|
||||||
|
cmd="@bindir@/mysql -f --user=$user --host=$host mysql"
|
||||||
|
else
|
||||||
|
root_password="$1"
|
||||||
|
cmd="@bindir@/mysql -f --user=$user --password=$root_password --host=$host mysql"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Converting all privilege tables to MyISAM format"
|
echo "Converting all privilege tables to MyISAM format"
|
||||||
@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
ALTER TABLE user type=MyISAM;
|
ALTER TABLE user type=MyISAM;
|
||||||
ALTER TABLE db type=MyISAM;
|
ALTER TABLE db type=MyISAM;
|
||||||
ALTER TABLE host type=MyISAM;
|
ALTER TABLE host type=MyISAM;
|
||||||
@ -28,7 +36,7 @@ echo ""
|
|||||||
echo "If your tables are already up to date or partially up to date you will"
|
echo "If your tables are already up to date or partially up to date you will"
|
||||||
echo "get some warnings about 'Duplicated column name'. You can safely ignore these!"
|
echo "get some warnings about 'Duplicated column name'. You can safely ignore these!"
|
||||||
|
|
||||||
@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
alter table user change password password char(16) NOT NULL;
|
alter table user change password password char(16) NOT NULL;
|
||||||
alter table user add File_priv enum('N','Y') NOT NULL;
|
alter table user add File_priv enum('N','Y') NOT NULL;
|
||||||
CREATE TABLE if not exists func (
|
CREATE TABLE if not exists func (
|
||||||
@ -45,7 +53,7 @@ echo ""
|
|||||||
|
|
||||||
echo "Creating Grant Alter and Index privileges if they don't exists"
|
echo "Creating Grant Alter and Index privileges if they don't exists"
|
||||||
echo "You can ignore any Duplicate column errors"
|
echo "You can ignore any Duplicate column errors"
|
||||||
@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
alter table user add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
|
alter table user add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
|
||||||
alter table host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
|
alter table host add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
|
||||||
alter table db add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
|
alter table db add Grant_priv enum('N','Y') NOT NULL,add References_priv enum('N','Y') NOT NULL,add Index_priv enum('N','Y') NOT NULL,add Alter_priv enum('N','Y') NOT NULL;
|
||||||
@ -59,7 +67,7 @@ echo ""
|
|||||||
if test $res = 0
|
if test $res = 0
|
||||||
then
|
then
|
||||||
echo "Setting default privileges for the new grant, index and alter privileges"
|
echo "Setting default privileges for the new grant, index and alter privileges"
|
||||||
@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
UPDATE user SET Grant_priv=File_priv,References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
|
UPDATE user SET Grant_priv=File_priv,References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
|
||||||
UPDATE db SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
|
UPDATE db SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
|
||||||
UPDATE host SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
|
UPDATE host SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
|
||||||
@ -72,7 +80,7 @@ fi
|
|||||||
|
|
||||||
echo "Adding columns needed by GRANT .. REQUIRE (openssl)"
|
echo "Adding columns needed by GRANT .. REQUIRE (openssl)"
|
||||||
echo "You can ignore any Duplicate column errors"
|
echo "You can ignore any Duplicate column errors"
|
||||||
@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
ALTER TABLE user
|
ALTER TABLE user
|
||||||
ADD ssl_type enum('','ANY','X509', 'SPECIFIED') NOT NULL,
|
ADD ssl_type enum('','ANY','X509', 'SPECIFIED') NOT NULL,
|
||||||
ADD ssl_cipher BLOB NOT NULL,
|
ADD ssl_cipher BLOB NOT NULL,
|
||||||
@ -88,7 +96,7 @@ echo ""
|
|||||||
|
|
||||||
echo "Creating the new table and column privilege tables"
|
echo "Creating the new table and column privilege tables"
|
||||||
|
|
||||||
@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
CREATE TABLE IF NOT EXISTS tables_priv (
|
CREATE TABLE IF NOT EXISTS tables_priv (
|
||||||
Host char(60) DEFAULT '' NOT NULL,
|
Host char(60) DEFAULT '' NOT NULL,
|
||||||
Db char(60) DEFAULT '' NOT NULL,
|
Db char(60) DEFAULT '' NOT NULL,
|
||||||
@ -119,7 +127,7 @@ END_OF_DATA
|
|||||||
echo "Changing name of columns_priv.Type -> columns_priv.Column_priv"
|
echo "Changing name of columns_priv.Type -> columns_priv.Column_priv"
|
||||||
echo "You can ignore any Unknown column errors from this"
|
echo "You can ignore any Unknown column errors from this"
|
||||||
|
|
||||||
@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
ALTER TABLE columns_priv change Type Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL;
|
ALTER TABLE columns_priv change Type Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL;
|
||||||
END_OF_DATA
|
END_OF_DATA
|
||||||
echo ""
|
echo ""
|
||||||
@ -131,7 +139,7 @@ echo ""
|
|||||||
echo "Fixing the func table"
|
echo "Fixing the func table"
|
||||||
echo "You can ignore any Duplicate column errors"
|
echo "You can ignore any Duplicate column errors"
|
||||||
|
|
||||||
@bindir@/mysql --user=root --password=$root_password mysql <<EOF
|
$cmd <<EOF
|
||||||
alter table func add type enum ('function','aggregate') NOT NULL;
|
alter table func add type enum ('function','aggregate') NOT NULL;
|
||||||
EOF
|
EOF
|
||||||
echo ""
|
echo ""
|
||||||
@ -143,7 +151,7 @@ echo ""
|
|||||||
echo "Adding new fields used by MySQL 4.0.2 to the privilege tables"
|
echo "Adding new fields used by MySQL 4.0.2 to the privilege tables"
|
||||||
echo "You can ignore any Duplicate column errors"
|
echo "You can ignore any Duplicate column errors"
|
||||||
|
|
||||||
@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
alter table user
|
alter table user
|
||||||
add Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER alter_priv,
|
add Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER alter_priv,
|
||||||
add Super_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Show_db_priv,
|
add Super_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Show_db_priv,
|
||||||
@ -159,7 +167,7 @@ then
|
|||||||
# Convert privileges so that users have similar privileges as before
|
# Convert privileges so that users have similar privileges as before
|
||||||
echo ""
|
echo ""
|
||||||
echo "Updating new privileges in MySQL 4.0.2 from old ones"
|
echo "Updating new privileges in MySQL 4.0.2 from old ones"
|
||||||
@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
update user set show_db_priv= select_priv, super_priv=process_priv, execute_priv=process_priv, create_tmp_table_priv='Y', Lock_tables_priv='Y', Repl_slave_priv=file_priv, Repl_client_priv=file_priv where user<>"";
|
update user set show_db_priv= select_priv, super_priv=process_priv, execute_priv=process_priv, create_tmp_table_priv='Y', Lock_tables_priv='Y', Repl_slave_priv=file_priv, Repl_client_priv=file_priv where user<>"";
|
||||||
END_OF_DATA
|
END_OF_DATA
|
||||||
echo ""
|
echo ""
|
||||||
@ -168,7 +176,7 @@ fi
|
|||||||
# Add fields that can be used to limit number of questions and connections
|
# Add fields that can be used to limit number of questions and connections
|
||||||
# for some users.
|
# for some users.
|
||||||
|
|
||||||
@bindir@/mysql -f --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
alter table user
|
alter table user
|
||||||
add max_questions int(11) NOT NULL AFTER x509_subject,
|
add max_questions int(11) NOT NULL AFTER x509_subject,
|
||||||
add max_updates int(11) unsigned NOT NULL AFTER max_questions,
|
add max_updates int(11) unsigned NOT NULL AFTER max_questions,
|
||||||
@ -179,7 +187,7 @@ END_OF_DATA
|
|||||||
# Add Create_tmp_table_priv and Lock_tables_priv to db and host
|
# Add Create_tmp_table_priv and Lock_tables_priv to db and host
|
||||||
#
|
#
|
||||||
|
|
||||||
@bindir@/mysql --user=root --password="$root_password" --host="$host" mysql <<END_OF_DATA
|
$cmd <<END_OF_DATA
|
||||||
alter table db
|
alter table db
|
||||||
add Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,
|
add Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,
|
||||||
add Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL;
|
add Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL;
|
||||||
|
@ -13,7 +13,7 @@ BEGIN {
|
|||||||
$script = $1;
|
$script = $1;
|
||||||
$script = 'MySQLAccess' unless $script;
|
$script = 'MySQLAccess' unless $script;
|
||||||
$script_conf = "$script.conf";
|
$script_conf = "$script.conf";
|
||||||
$script_log = "~/$script.log";
|
$script_log = $ENV{'HOME'}."/$script.log";
|
||||||
|
|
||||||
# ****************************
|
# ****************************
|
||||||
# information on MySQL
|
# information on MySQL
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
|
|
||||||
trap '' 1 2 3 15 # we shouldn't let anyone kill us
|
trap '' 1 2 3 15 # we shouldn't let anyone kill us
|
||||||
|
|
||||||
|
umask 007
|
||||||
|
|
||||||
defaults=
|
defaults=
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--no-defaults|--defaults-file=*|--defaults-extra-file=*)
|
--no-defaults|--defaults-file=*|--defaults-extra-file=*)
|
||||||
|
@ -1771,12 +1771,9 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
/* We changed a temporary table */
|
/* We changed a temporary table */
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* The following function call will also free a
|
The following function call will free the new_table pointer,
|
||||||
* new_table pointer.
|
in close_temporary_table(), so we can safely directly jump to err
|
||||||
* Therefore, here new_table pointer is not free'd as it is
|
|
||||||
* free'd in close_temporary() which is called by by the
|
|
||||||
* close_temporary_table() function.
|
|
||||||
*/
|
*/
|
||||||
close_temporary_table(thd,new_db,tmp_name);
|
close_temporary_table(thd,new_db,tmp_name);
|
||||||
goto err;
|
goto err;
|
||||||
|
@ -40,6 +40,7 @@ endif
|
|||||||
|
|
||||||
libmystrings_a_SOURCES = $(ASRCS) $(CSRCS)
|
libmystrings_a_SOURCES = $(ASRCS) $(CSRCS)
|
||||||
noinst_PROGRAMS = conf_to_src
|
noinst_PROGRAMS = conf_to_src
|
||||||
|
DISTCLEANFILES = ctype_autoconf.c
|
||||||
# Default charset definitions
|
# Default charset definitions
|
||||||
EXTRA_DIST = ctype-big5.c ctype-czech.c ctype-euc_kr.c \
|
EXTRA_DIST = ctype-big5.c ctype-czech.c ctype-euc_kr.c \
|
||||||
ctype-gb2312.c ctype-gbk.c ctype-sjis.c \
|
ctype-gb2312.c ctype-gbk.c ctype-sjis.c \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user