summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--configure.in14
-rw-r--r--innobase/fsp/fsp0fsp.c33
-rwxr-xr-xscripts/make_win_src_distribution.sh49
-rw-r--r--scripts/mysql_fix_privilege_tables.sql159
5 files changed, 239 insertions, 17 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index ffc7baf242c..348ed8d24df 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -17,6 +17,7 @@ bk@admin.bk
davida@isil.mysql.com
dlenev@build.mysql.com
dlenev@mysql.com
+gerberb@ou800.zenez.com
gluh@gluh.(none)
gluh@gluh.mysql.r18.ru
greg@gcw.ath.cx
diff --git a/configure.in b/configure.in
index f894cb5cb2a..0538199e8e1 100644
--- a/configure.in
+++ b/configure.in
@@ -1339,7 +1339,12 @@ then
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
then
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
- with_named_thread="-Kthread -lsocket -lnsl"
+ if expr "$CC" : ".*gcc.*"
+ then
+ with_named_thread="-pthread -lsocket -lnsl"
+ else
+ with_named_thread="-Kthread -lsocket -lnsl"
+ fi
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
then
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
@@ -1375,7 +1380,12 @@ then
if test -f /usr/lib/libthread.so -o -f /usr/lib/libthreadT.so
then
MYSQL_REMOVE_SOCKET_FROM_LIBS_HACK
- with_named_thread="-Kthread -lsocket -lnsl"
+ if expr "$CC" : ".*gcc.*"
+ then
+ with_named_thread="-pthread -lsocket -lnsl"
+ else
+ with_named_thread="-Kthread -lsocket -lnsl"
+ fi
if expr "$SYSTEM_TYPE" : ".*unixware7.0.0" > /dev/null
then
AC_DEFINE(HAVE_UNIXWARE7_THREADS)
diff --git a/innobase/fsp/fsp0fsp.c b/innobase/fsp/fsp0fsp.c
index 20bf4972f64..8727c5156e4 100644
--- a/innobase/fsp/fsp0fsp.c
+++ b/innobase/fsp/fsp0fsp.c
@@ -2656,7 +2656,13 @@ fseg_free_page_low(
ulint not_full_n_used;
ulint state;
ulint i;
- char errbuf[200];
+ char errbuf[200];
+
+#ifdef __WIN__
+ dulint desm;
+ dulint segm;
+#endif
+
ut_ad(seg_inode && mtr);
ut_ad(mach_read_from_4(seg_inode + FSEG_MAGIC_N) ==
@@ -2736,7 +2742,10 @@ fseg_free_page_low(
fprintf(stderr,
"InnoDB: Dump of the segment inode: %s\n", errbuf);
- fprintf(stderr,
+
+#ifndef __WIN__
+
+ fprintf(stderr,
"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
"InnoDB: which does not belong to segment %lu %lu but belongs\n"
"InnoDB: to segment %lu %lu.\n",
@@ -2750,6 +2759,26 @@ fseg_free_page_low(
ut_dulint_get_low(
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)));
+#else
+
+/* More pedantic usage to avoid VC++ 6.0 compiler errors due to inline
+ function expansion issues */
+
+ desm = mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr);
+ segm = mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr);
+
+ fprintf(stderr,
+"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
+"InnoDB: which does not belong to segment %lu %lu but belongs\n"
+"InnoDB: to segment %lu %lu.\n",
+ space, page,
+ ut_dulint_get_high(desm),
+ ut_dulint_get_low(desm),
+ ut_dulint_get_high(segm),
+ ut_dulint_get_low(segm));
+
+#endif
+
fprintf(stderr,
"InnoDB: If the InnoDB recovery crashes here, see section 6.1\n"
"InnoDB: of http://www.innodb.com/ibman.html about forcing recovery.\n");
diff --git a/scripts/make_win_src_distribution.sh b/scripts/make_win_src_distribution.sh
index 9b310722886..b0d63f1d6d8 100755
--- a/scripts/make_win_src_distribution.sh
+++ b/scripts/make_win_src_distribution.sh
@@ -13,8 +13,8 @@ DEBUG=0
SILENT=0
SUFFIX=""
DIRNAME=""
-OUTTAR=0
-OUTZIP=0
+OUTTAR="0"
+OUTZIP="0"
#
# This script must run from MySQL top directory
@@ -114,16 +114,37 @@ done
# Convert argument file from unix to DOS text
#
-unix_to_dos()
-{
- for arg do
- print_debug "Replacing LF -> CRLF from '$arg'"
+if [ `which recode` ]
+then
- sed -e 's/$/\r/' $arg > $arg.tmp
- rm -f $arg
- mv $arg.tmp $arg
- done
-}
+ print_debug "Using 'recode' to convert from unix to dos text"
+
+ unix_to_dos()
+ {
+ for arg do
+ print_debug "Replacing LF -> CRLF from '$arg'"
+
+ chmod u+w $arg
+ recode lat1..ibmpc $arg
+ done
+ }
+
+else
+
+ print_debug "Using 'sed' to convert from unix to dos text"
+
+ unix_to_dos()
+ {
+ for arg do
+ print_debug "Replacing LF -> CRLF from '$arg'"
+
+ sed -e 's/$/\r/' $arg > $arg.tmp
+ rm -f $arg
+ mv $arg.tmp $arg
+ done
+ }
+
+fi
#
@@ -363,8 +384,10 @@ which_1 ()
# Create the result zip/tar file
#
-if [ [ "$OUTTAR" = "0" ] && [ "$OUTZIP" = "0" ] ]; then
- OUTZIP=1
+if [ "$OUTTAR" = "0" ]; then
+ if [ "$OUTZIP" = "0" ]; then
+ OUTZIP=1
+ fi
fi
set_tarzip_options()
diff --git a/scripts/mysql_fix_privilege_tables.sql b/scripts/mysql_fix_privilege_tables.sql
new file mode 100644
index 00000000000..aca9a9c21d4
--- /dev/null
+++ b/scripts/mysql_fix_privilege_tables.sql
@@ -0,0 +1,159 @@
+-- This scripts updates the mysql.user, mysql.db, mysql.host and the
+-- mysql.func tables to MySQL 3.22.14 and above.
+
+-- This is needed if you want to use the new GRANT functions,
+-- CREATE AGGREGATE FUNCTION or want to use the more secure passwords in 3.23
+
+-- If you get 'Access denied' errors, you should run this script again
+-- and give the MySQL root user password as an argument!
+
+
+-- Converting all privilege tables to MyISAM format
+ALTER TABLE user type=MyISAM;
+ALTER TABLE db type=MyISAM;
+ALTER TABLE host type=MyISAM;
+ALTER TABLE func type=MyISAM;
+ALTER TABLE columns_priv type=MyISAM;
+ALTER TABLE tables_priv type=MyISAM;
+
+
+-- Fix old password format, add File_priv and func table
+
+-- If your tables are already up to date or partially up to date you will
+-- get some warnings about 'Duplicated column name'. You can safely ignore these!
+
+alter table user change password password char(16) NOT NULL;
+alter table user add File_priv enum('N','Y') NOT NULL;
+CREATE TABLE if not exists func (
+ name char(64) DEFAULT '' NOT NULL,
+ ret tinyint(1) DEFAULT '0' NOT NULL,
+ dl char(128) DEFAULT '' NOT NULL,
+ type enum ('function','aggregate') NOT NULL,
+ PRIMARY KEY (name)
+);
+
+-- Add the new grant colums
+
+-- Creating Grant Alter and Index privileges if they don't exists
+-- You can ignore any Duplicate column errors
+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 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;
+
+-- If the new grant columns didn't exists, copy File -> Grant
+-- and Create -> Alter, Index, References
+
+-- Setting default privileges for the new grant, index and alter privileges
+ 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 host SET References_priv=Create_priv,Index_priv=Create_priv,Alter_priv=Create_priv;
+
+--
+-- The second alter changes ssl_type to new 4.0.2 format
+
+-- Adding columns needed by GRANT .. REQUIRE (openssl)"
+-- You can ignore any Duplicate column errors"
+ALTER TABLE user
+ADD ssl_type enum('','ANY','X509', 'SPECIFIED') NOT NULL,
+ADD ssl_cipher BLOB NOT NULL,
+ADD x509_issuer BLOB NOT NULL,
+ADD x509_subject BLOB NOT NULL;
+ALTER TABLE user MODIFY ssl_type enum('','ANY','X509', 'SPECIFIED') NOT NULL;
+
+--
+-- Create tables_priv and columns_priv if they don't exists
+--
+
+-- Creating the new table and column privilege tables"
+
+CREATE TABLE IF NOT EXISTS tables_priv (
+ Host char(60) DEFAULT '' NOT NULL,
+ Db char(60) DEFAULT '' NOT NULL,
+ User char(16) DEFAULT '' NOT NULL,
+ Table_name char(60) DEFAULT '' NOT NULL,
+ Grantor char(77) DEFAULT '' NOT NULL,
+ Timestamp timestamp(14),
+ Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL,
+ Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,
+ PRIMARY KEY (Host,Db,User,Table_name)
+);
+CREATE TABLE IF NOT EXISTS columns_priv (
+ Host char(60) DEFAULT '' NOT NULL,
+ Db char(60) DEFAULT '' NOT NULL,
+ User char(16) DEFAULT '' NOT NULL,
+ Table_name char(60) DEFAULT '' NOT NULL,
+ Column_name char(59) DEFAULT '' NOT NULL,
+ Timestamp timestamp(14),
+ Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,
+ PRIMARY KEY (Host,Db,User,Table_name,Column_name)
+);
+
+--
+-- Name change of Type -> Column_priv from MySQL 3.22.12
+--
+
+-- Changing name of columns_priv.Type -> columns_priv.Column_priv
+-- You can ignore any Unknown column errors from this
+
+
+ALTER TABLE columns_priv change Type Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL;
+
+
+
+--
+-- Add the new 'type' column to the func table.
+--
+
+-- Fixing the func table
+-- You can ignore any Duplicate column errors
+
+alter table func add type enum ('function','aggregate') NOT NULL;
+
+
+--
+-- Change the user,db and host tables to MySQL 4.0 format
+--
+
+-- Adding new fields used by MySQL 4.0.2 to the privilege tables
+-- You can ignore any Duplicate column errors
+
+
+alter table user
+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 Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Super_priv,
+add Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Create_tmp_table_priv,
+add Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Lock_tables_priv,
+add Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Execute_priv,
+add Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL AFTER Repl_slave_priv;
+
+
+-- Convert privileges so that users have similar privileges as before
+
+-- Updating new privileges in MySQL 4.0.2 from old ones
+
+ 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<>"";
+
+
+-- Add fields that can be used to limit number of questions and connections
+-- for some users.
+
+
+alter table user
+add max_questions int(11) NOT NULL AFTER x509_subject,
+add max_updates int(11) unsigned NOT NULL AFTER max_questions,
+add max_connections int(11) unsigned NOT NULL AFTER max_updates;
+
+
+--
+-- Add Create_tmp_table_priv and Lock_tables_priv to db and host
+--
+
+
+alter table db
+add Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+add Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL;
+alter table host
+add Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,
+add Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL;
+