Commit 8601ba22 authored by Aleksandr Kuzminsky's avatar Aleksandr Kuzminsky

Sync with Rev. 142. PerconaSQL is the new name of RPM packages

parents f1faa145 8c9b42dc
...@@ -104,10 +104,10 @@ ...@@ -104,10 +104,10 @@
%define __os_install_post /usr/lib/rpm/brp-compress %define __os_install_post /usr/lib/rpm/brp-compress
%define server_suffix -percona %define server_suffix -51
%define package_suffix -percona %define package_suffix -51
%define ndbug_comment MySQL Community Server (GPL), XtraDB %{xtradbversion}, Revision %{gotrevision} %define ndbug_comment Percona SQL Server (GPL), XtraDB %{xtradbversion}, Revision %{gotrevision}
%define debug_comment MySQL Community Server - Debug (GPL), XtraDB %{xtradbversion}, Revision %{gotrevision} %define debug_comment Percona SQL Server - Debug (GPL), XtraDB %{xtradbversion}, Revision %{gotrevision}
%define commercial 0 %define commercial 0
%define YASSL_BUILD 1 %define YASSL_BUILD 1
%define EMBEDDED_BUILD 0 %define EMBEDDED_BUILD 0
...@@ -134,7 +134,16 @@ ...@@ -134,7 +134,16 @@
%define src_dir mysql-%{mysqlversion} %define src_dir mysql-%{mysqlversion}
Source1: percona-xtradb-%{pluginversion}-%{xtradbversion}.tar.gz Source1: percona-xtradb-%{pluginversion}-%{xtradbversion}.tar.gz
Patch1: percona-support.patch Patch0: percona-support.patch
Patch01: show_patches.patch
Patch02: slow_extended.patch
Patch03: profiling_slow.patch
Patch04: microsec_process.patch
Patch05: userstat.patch
Patch06: optimizer_fix.patch
Patch07: mysql-test_for_xtradb.diff
%define perconaxtradbplugin percona-xtradb-%{pluginversion}-%{xtradbversion}.tar.gz %define perconaxtradbplugin percona-xtradb-%{pluginversion}-%{xtradbversion}.tar.gz
...@@ -142,18 +151,18 @@ Patch1: percona-support.patch ...@@ -142,18 +151,18 @@ Patch1: percona-support.patch
# Main spec file section # Main spec file section
############################################################################## ##############################################################################
Name: MySQL%{package_suffix} Name: PerconaSQL%{package_suffix}
Summary: MySQL: a very fast and reliable SQL database server Summary: PerconaSQL: a very fast and reliable SQL database server
Group: Applications/Databases Group: Applications/Databases
Version: %{mysqlversion} Version: %{mysqlversion}
Release: %{release} Release: %{release}
Distribution: Red Hat Enterprise Linux %{redhatversion} Distribution: Red Hat Enterprise Linux %{redhatversion}
License: Copyright 2000-2008 MySQL AB, 2008 %{mysql_vendor} All rights reserved. Use is subject to license terms. Under %{lic_type} license as shown in the Description field. License: GPL version 2 http://www.gnu.org/licenses/gpl-2.0.html
Source: %{src_dir}.tar.gz Source: %{src_dir}.tar.gz
URL: http://www.percona.com/ URL: http://www.percona.com/
Packager: %{mysql_vendor} MySQL Development Team <mysql-dev@percona.com> Packager: %{mysql_vendor} MySQL Development Team <mysql-dev@percona.com>
Vendor: %{mysql_vendor} Vendor: %{mysql_vendor}
Provides: msqlormysql MySQL-server mysql Provides: msqlormysql MySQL-server mysql PerconaSQL-server
BuildRequires: gperf perl readline-devel gcc-c++ ncurses-devel zlib-devel libtool automake autoconf time ccache BuildRequires: gperf perl readline-devel gcc-c++ ncurses-devel zlib-devel libtool automake autoconf time ccache
# Think about what you use here since the first step is to # Think about what you use here since the first step is to
...@@ -162,150 +171,107 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build ...@@ -162,150 +171,107 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
# From the manual # From the manual
%description %description
The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, The PerconaSQL software delivers a very fast, multi-threaded, multi-user,
and robust SQL (Structured Query Language) database server. MySQL Server and robust SQL (Structured Query Language) database server. PerconaSQL Server
is intended for mission-critical, heavy-load production systems as well is intended for mission-critical, heavy-load production systems as well
as for embedding into mass-deployed software. MySQL is a trademark of as for embedding into mass-deployed software.
%{mysql_vendor}
The MySQL software has Dual Licensing, which means you can use the MySQL
software free of charge under the GNU General Public License
(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
the GPL. See the chapter "Licensing and Support" in the manual for
further info.
The MySQL web site (http://www.mysql.com/) provides the latest Percona Inc. provides commercial support of PerconaSQL Server.
news and information about the MySQL software. Also please see the For more information visist our web site http://www.percona.com/
documentation and the manual for more information.
############################################################################## ##############################################################################
# Sub package definition # Sub package definition
############################################################################## ##############################################################################
%package -n MySQL-server%{package_suffix} %package -n PerconaSQL-server%{package_suffix}
Summary: %{ndbug_comment} for Red Hat Enterprise Linux %{redhatversion} Summary: %{ndbug_comment} for Red Hat Enterprise Linux %{redhatversion}
Group: Applications/Databases Group: Applications/Databases
Requires: chkconfig coreutils shadow-utils grep procps Requires: chkconfig coreutils shadow-utils grep procps
Provides: msqlormysql mysql-server mysql MySQL MySQL-server Provides: msqlormysql mysql-server mysql MySQL MySQL-server PerconaSQL-server
Obsoletes: MySQL mysql mysql-server MySQL-server MySQL-server-community Obsoletes: MySQL mysql mysql-server MySQL-server MySQL-server-community MySQL-server-percona
%description -n MySQL-server%{package_suffix} %description -n PerconaSQL-server%{package_suffix}
The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, The PerconaSQL software delivers a very fast, multi-threaded, multi-user,
and robust SQL (Structured Query Language) database server. MySQL Server and robust SQL (Structured Query Language) database server. PerconaSQL Server
is intended for mission-critical, heavy-load production systems as well is intended for mission-critical, heavy-load production systems as well
as for embedding into mass-deployed software. MySQL is a trademark of as for embedding into mass-deployed software.
%{mysql_vendor}
The MySQL software has Dual Licensing, which means you can use the MySQL
software free of charge under the GNU General Public License
(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
the GPL. See the chapter "Licensing and Support" in the manual for
further info.
The MySQL web site (http://www.mysql.com/) provides the latest
news and information about the MySQL software. Also please see the
documentation and the manual for more information.
For commercial support please contact Percona at http://www.percona.com/contacts.html Percona Inc. provides commercial support of PerconaSQL Server.
For more information visist our web site http://www.percona.com/
This package includes the MySQL server binary This package includes the PerconaSQL server binary
%if %{INNODB_BUILD} %if %{INNODB_BUILD}
(configured including InnoDB) (configured including XtraDB)
%endif %endif
as well as related utilities to run and administer a MySQL server. as well as related utilities to run and administer a PerconaSQL server.
If you want to access and work with the database, you have to install If you want to access and work with the database, you have to install
package "MySQL-client%{package_suffix}" as well! package "PerconaSQL-client%{package_suffix}" as well!
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
%package -n MySQL-client%{package_suffix} %package -n PerconaSQL-client%{package_suffix}
Summary: MySQL - Client Summary: PerconaSQL - Client
Group: Applications/Databases Group: Applications/Databases
Obsoletes: mysql-client MySQL-client MySQL-client-community Obsoletes: mysql-client MySQL-client MySQL-client-community MySQL-client-percona
Provides: mysql-client MySQL-client Provides: mysql-client MySQL-client PerconaSQL-client
%description -n MySQL-client%{package_suffix} %description -n PerconaSQL-client%{package_suffix}
This package contains the standard MySQL clients and administration tools. This package contains the standard PerconaSQL clients and administration tools.
%{see_base} %{see_base}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
%package -n MySQL-test%{package_suffix} %package -n PerconaSQL-test%{package_suffix}
Requires: mysql-client perl Requires: mysql-client perl
Summary: MySQL - Test suite Summary: PerconaSQL - Test suite
Group: Applications/Databases Group: Applications/Databases
Provides: mysql-test MySQL-test Provides: mysql-test MySQL-test PerconaSQL-test
Obsoletes: mysql-test MySQL-test MySQL-test-community Obsoletes: mysql-test MySQL-test MySQL-test-community MySQL-test-percona
AutoReqProv: no AutoReqProv: no
%description -n MySQL-test%{package_suffix} %description -n PerconaSQL-test%{package_suffix}
This package contains the MySQL regression test suite. This package contains the PerconaSQL regression test suite.
%{see_base} %{see_base}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
%package -n MySQL-devel%{package_suffix} %package -n PerconaSQL-devel%{package_suffix}
Summary: MySQL - Development header files and libraries Summary: PerconaSQL - Development header files and libraries
Group: Applications/Databases Group: Applications/Databases
Provides: mysql-devel MySQL-devel Provides: mysql-devel MySQL-devel PerconaSQL-devel
Obsoletes: mysql-devel MySQL-devel MySQL-devel-community Obsoletes: mysql-devel MySQL-devel MySQL-devel-community MySQL-devel-percona
%description -n MySQL-devel%{package_suffix} %description -n PerconaSQL-devel%{package_suffix}
This package contains the development header files and libraries This package contains the development header files and libraries
necessary to develop MySQL client applications. necessary to develop PerconaSQL client applications.
%{see_base} %{see_base}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
%package -n MySQL-shared%{package_suffix} %package -n PerconaSQL-shared%{package_suffix}
Summary: MySQL - Shared libraries Summary: PerconaSQL - Shared libraries
Group: Applications/Databases Group: Applications/Databases
Provides: mysql-shared MySQL-shared Provides: mysql-shared MySQL-shared PerconaSQL-shared
# Obsoletes below to correct old missing Provides:/Obsoletes # Obsoletes below to correct old missing Provides:/Obsoletes
Obsoletes: mysql-shared MySQL-shared-standard MySQL-shared-pro Obsoletes: mysql-shared MySQL-shared-standard MySQL-shared-pro
Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl
Obsoletes: MySQL-shared-pro-gpl-cert MySQL-shared MySQL-shared-community Obsoletes: MySQL-shared-pro-gpl-cert MySQL-shared MySQL-shared-community MySQL-shared-percona
%description -n MySQL-shared%{package_suffix} %description -n PerconaSQL-shared%{package_suffix}
This package contains the shared libraries (*.so*) which certain This package contains the shared libraries (*.so*) which certain
languages and applications need to dynamically load and use MySQL. languages and applications need to dynamically load and use MySQL.
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
%if %{EMBEDDED_BUILD}
%package -n MySQL-embedded%{package_suffix}
Requires: mysql-devel
Summary: MySQL - Embedded library
Group: Applications/Databases
Provides: mysql-embedded MySQL-embedded
Obsoletes: mysql-embedded MySQL-embedded
Obsoletes: MySQL-embedded-classic MySQL-embedded-pro MySQL-embedded-community
%description -n MySQL-embedded%{package_suffix}
This package contains the MySQL server as an embedded library.
The embedded MySQL server library makes it possible to run a
full-featured MySQL server inside the client application.
The main benefits are increased speed and more simple management
for embedded applications.
The API is identical for the embedded MySQL version and the
client/server version.
%endif
%if %{PERCONA_PLUGIN_BUILD} %if %{PERCONA_PLUGIN_BUILD}
%package -n Percona-XtraDB-%{pluginversion}-%{xtradbversion} %package -n Percona-XtraDB-%{pluginversion}-%{xtradbversion}
Requires: mysql-devel Requires: PerconaSQL-devel
Summary: Percona XtraDB Storage engine for MySQL Summary: Percona XtraDB Storage engine for MySQL
Group: Applications/Databases Group: Applications/Databases
Provides: percona-xtradb-plugin Percona-XtraDB-plugin Provides: percona-xtradb-plugin Percona-XtraDB-plugin
...@@ -335,12 +301,20 @@ judgment as a high-performance consulting company. ...@@ -335,12 +301,20 @@ judgment as a high-performance consulting company.
%setup -n %{src_dir} %setup -n %{src_dir}
%patch01 -p1
%patch02 -p1
%patch03 -p1
%patch04 -p1
%patch05 -p1
%patch06 -p1
%patch07 -p1
if [ "%{redhatversion}" = "5" ] ; then if [ "%{redhatversion}" = "5" ] ; then
tar xfz $RPM_SOURCE_DIR/%{perconaxtradbplugin} -C storage/innobase --strip-components=1 tar xfz $RPM_SOURCE_DIR/%{perconaxtradbplugin} -C storage/innobase --strip-components=1
else else
tar xfz $RPM_SOURCE_DIR/%{perconaxtradbplugin} -C storage/innobase --strip-path=1 tar xfz $RPM_SOURCE_DIR/%{perconaxtradbplugin} -C storage/innobase --strip-path=1
fi fi
%patch1 -p1 %patch0 -p1
cd storage/innobase && bash -x ./setup.sh cd storage/innobase && bash -x ./setup.sh
...@@ -406,6 +380,7 @@ sh -c "CFLAGS=\"$CFLAGS\" \ ...@@ -406,6 +380,7 @@ sh -c "CFLAGS=\"$CFLAGS\" \
--includedir=%{_includedir} \ --includedir=%{_includedir} \
--mandir=%{_mandir} \ --mandir=%{_mandir} \
--enable-thread-safe-client \ --enable-thread-safe-client \
--enable-profiling \
%if %{?ndbug_comment:1}0 %if %{?ndbug_comment:1}0
$OPT_COMMENT \ $OPT_COMMENT \
%endif %endif
...@@ -614,7 +589,7 @@ install -m600 $MBD/support-files/RHEL4-SElinux/mysql.{fc,te} \ ...@@ -614,7 +589,7 @@ install -m600 $MBD/support-files/RHEL4-SElinux/mysql.{fc,te} \
# Post processing actions, i.e. when installed # Post processing actions, i.e. when installed
############################################################################## ##############################################################################
%pre -n MySQL-server%{package_suffix} %pre -n PerconaSQL-server%{package_suffix}
# Check if we can safely upgrade. An upgrade is only safe if it's from one # Check if we can safely upgrade. An upgrade is only safe if it's from one
# of our RPMs in the same version family. # of our RPMs in the same version family.
...@@ -688,7 +663,7 @@ if [ -x %{_sysconfdir}/init.d/mysql ] ; then ...@@ -688,7 +663,7 @@ if [ -x %{_sysconfdir}/init.d/mysql ] ; then
sleep 5 sleep 5
fi fi
%post -n MySQL-server%{package_suffix} %post -n PerconaSQL-server%{package_suffix}
mysql_datadir=%{mysqldatadir} mysql_datadir=%{mysqldatadir}
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -791,7 +766,7 @@ sleep 2 ...@@ -791,7 +766,7 @@ sleep 2
mkdir -p /var/lib/mysql-cluster mkdir -p /var/lib/mysql-cluster
%endif %endif
%preun -n MySQL-server%{package_suffix} %preun -n PerconaSQL-server%{package_suffix}
if [ $1 = 0 ] ; then if [ $1 = 0 ] ; then
# Stop MySQL before uninstalling it # Stop MySQL before uninstalling it
if [ -x %{_sysconfdir}/init.d/mysql ] ; then if [ -x %{_sysconfdir}/init.d/mysql ] ; then
...@@ -816,7 +791,7 @@ fi ...@@ -816,7 +791,7 @@ fi
# Files section # Files section
############################################################################## ##############################################################################
%files -n MySQL-server%{package_suffix} %files -n PerconaSQL-server%{package_suffix}
%defattr(-,root,root,0755) %defattr(-,root,root,0755)
%doc %{lic_files} %doc %{lic_files}
...@@ -905,7 +880,7 @@ fi ...@@ -905,7 +880,7 @@ fi
%attr(755, root, root) %{_datadir}/mysql/ %attr(755, root, root) %{_datadir}/mysql/
%files -n MySQL-client%{package_suffix} %files -n PerconaSQL-client%{package_suffix}
%defattr(-, root, root, 0755) %defattr(-, root, root, 0755)
%attr(755, root, root) %{_bindir}/msql2mysql %attr(755, root, root) %{_bindir}/msql2mysql
%attr(755, root, root) %{_bindir}/mysql %attr(755, root, root) %{_bindir}/mysql
...@@ -933,10 +908,10 @@ fi ...@@ -933,10 +908,10 @@ fi
%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1* %doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1*
%doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1* %doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1*
%post -n MySQL-shared%{package_suffix} %post -n PerconaSQL-shared%{package_suffix}
/sbin/ldconfig /sbin/ldconfig
%postun -n MySQL-shared%{package_suffix} %postun -n PerconaSQL-shared%{package_suffix}
/sbin/ldconfig /sbin/ldconfig
%if %{CLUSTER_BUILD} %if %{CLUSTER_BUILD}
...@@ -986,7 +961,7 @@ fi ...@@ -986,7 +961,7 @@ fi
%doc %attr(644, root, man) %{_mandir}/man1/ndb_cpcd.1* %doc %attr(644, root, man) %{_mandir}/man1/ndb_cpcd.1*
%endif %endif
%files -n MySQL-devel%{package_suffix} %files -n PerconaSQL-devel%{package_suffix}
%defattr(-, root, root, 0755) %defattr(-, root, root, 0755)
%if %{commercial} %if %{commercial}
%else %else
...@@ -1019,12 +994,12 @@ fi ...@@ -1019,12 +994,12 @@ fi
%{_libdir}/mysql/libndbclient.la %{_libdir}/mysql/libndbclient.la
%endif %endif
%files -n MySQL-shared%{package_suffix} %files -n PerconaSQL-shared%{package_suffix}
%defattr(-, root, root, 0755) %defattr(-, root, root, 0755)
# Shared libraries (omit for architectures that don't support them) # Shared libraries (omit for architectures that don't support them)
%{_libdir}/*.so* %{_libdir}/*.so*
%files -n MySQL-test%{package_suffix} %files -n PerconaSQL-test%{package_suffix}
%defattr(-, root, root, 0755) %defattr(-, root, root, 0755)
%{_datadir}/mysql-test %{_datadir}/mysql-test
%attr(755, root, root) %{_bindir}/mysql_client_test %attr(755, root, root) %{_bindir}/mysql_client_test
...@@ -1043,6 +1018,10 @@ fi ...@@ -1043,6 +1018,10 @@ fi
# merging BK trees) # merging BK trees)
############################################################################## ##############################################################################
%changelog %changelog
* Thu Feb 11 2010 Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com>
Package name changed to PerconaSQL
* Tue Jan 05 2010 Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com> * Tue Jan 05 2010 Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com>
- Corrected emails - Corrected emails
......
...@@ -128,9 +128,6 @@ extern ib_int64_t trx_sys_mysql_relay_log_pos; ...@@ -128,9 +128,6 @@ extern ib_int64_t trx_sys_mysql_relay_log_pos;
# ifndef MYSQL_PLUGIN_IMPORT # ifndef MYSQL_PLUGIN_IMPORT
# define MYSQL_PLUGIN_IMPORT /* nothing */ # define MYSQL_PLUGIN_IMPORT /* nothing */
# endif /* MYSQL_PLUGIN_IMPORT */ # endif /* MYSQL_PLUGIN_IMPORT */
/* This is needed because of Bug #3596. Let us hope that pthread_mutex_t
is defined the same in both builds: the MySQL server and the InnoDB plugin. */
extern MYSQL_PLUGIN_IMPORT pthread_mutex_t LOCK_thread_count;
#if MYSQL_VERSION_ID < 50124 #if MYSQL_VERSION_ID < 50124
/* this is defined in mysql_priv.h inside #ifdef MYSQL_SERVER /* this is defined in mysql_priv.h inside #ifdef MYSQL_SERVER
...@@ -923,36 +920,6 @@ convert_error_code_to_mysql( ...@@ -923,36 +920,6 @@ convert_error_code_to_mysql(
} }
} }
/*************************************************************//**
If you want to print a thd that is not associated with the current thread,
you must call this function before reserving the InnoDB kernel_mutex, to
protect MySQL from setting thd->query NULL. If you print a thd of the current
thread, we know that MySQL cannot modify thd->query, and it is not necessary
to call this. Call innobase_mysql_end_print_arbitrary_thd() after you release
the kernel_mutex. */
extern "C" UNIV_INTERN
void
innobase_mysql_prepare_print_arbitrary_thd(void)
/*============================================*/
{
ut_ad(!mutex_own(&kernel_mutex));
VOID(pthread_mutex_lock(&LOCK_thread_count));
}
/*************************************************************//**
Releases the mutex reserved by innobase_mysql_prepare_print_arbitrary_thd().
In the InnoDB latching order, the mutex sits right above the
kernel_mutex. In debug builds, we assert that the kernel_mutex is
released before this function is invoked. */
extern "C" UNIV_INTERN
void
innobase_mysql_end_print_arbitrary_thd(void)
/*========================================*/
{
ut_ad(!mutex_own(&kernel_mutex));
VOID(pthread_mutex_unlock(&LOCK_thread_count));
}
/*************************************************************//** /*************************************************************//**
Prints info of a THD object (== user session thread) to the given file. */ Prints info of a THD object (== user session thread) to the given file. */
extern "C" UNIV_INTERN extern "C" UNIV_INTERN
...@@ -4744,9 +4711,11 @@ no_commit: ...@@ -4744,9 +4711,11 @@ no_commit:
update the table upper limit. Note: last_value update the table upper limit. Note: last_value
will be 0 if get_auto_increment() was not called.*/ will be 0 if get_auto_increment() was not called.*/
if (auto_inc <= col_max_value if (auto_inc >= prebuilt->autoinc_last_value) {
&& auto_inc >= prebuilt->autoinc_last_value) {
set_max_autoinc: set_max_autoinc:
/* This should filter out the negative
values set explicitly by the user. */
if (auto_inc <= col_max_value) {
ut_a(prebuilt->autoinc_increment > 0); ut_a(prebuilt->autoinc_increment > 0);
ulonglong need; ulonglong need;
...@@ -4756,14 +4725,17 @@ set_max_autoinc: ...@@ -4756,14 +4725,17 @@ set_max_autoinc:
need = prebuilt->autoinc_increment; need = prebuilt->autoinc_increment;
auto_inc = innobase_next_autoinc( auto_inc = innobase_next_autoinc(
auto_inc, need, offset, col_max_value); auto_inc,
need, offset, col_max_value);
err = innobase_set_max_autoinc(auto_inc); err = innobase_set_max_autoinc(
auto_inc);
if (err != DB_SUCCESS) { if (err != DB_SUCCESS) {
error = err; error = err;
} }
} }
}
break; break;
} }
} }
......
...@@ -153,28 +153,6 @@ get_innobase_type_from_mysql_type( ...@@ -153,28 +153,6 @@ get_innobase_type_from_mysql_type(
const void* field) /*!< in: MySQL Field */ const void* field) /*!< in: MySQL Field */
__attribute__((nonnull)); __attribute__((nonnull));
/*************************************************************//**
If you want to print a thd that is not associated with the current thread,
you must call this function before reserving the InnoDB kernel_mutex, to
protect MySQL from setting thd->query NULL. If you print a thd of the current
thread, we know that MySQL cannot modify thd->query, and it is not necessary
to call this. Call innobase_mysql_end_print_arbitrary_thd() after you release
the kernel_mutex. */
UNIV_INTERN
void
innobase_mysql_prepare_print_arbitrary_thd(void);
/*============================================*/
/*************************************************************//**
Releases the mutex reserved by innobase_mysql_prepare_print_arbitrary_thd().
In the InnoDB latching order, the mutex sits right above the
kernel_mutex. In debug builds, we assert that the kernel_mutex is
released before this function is invoked. */
UNIV_INTERN
void
innobase_mysql_end_print_arbitrary_thd(void);
/*========================================*/
/******************************************************************//** /******************************************************************//**
Get the variable length bounds of the given character set. */ Get the variable length bounds of the given character set. */
UNIV_INTERN UNIV_INTERN
......
...@@ -4336,11 +4336,6 @@ lock_print_info_summary( ...@@ -4336,11 +4336,6 @@ lock_print_info_summary(
/*====================*/ /*====================*/
FILE* file) /*!< in: file where to print */ FILE* file) /*!< in: file where to print */
{ {
/* We must protect the MySQL thd->query field with a MySQL mutex, and
because the MySQL mutex must be reserved before the kernel_mutex of
InnoDB, we call innobase_mysql_prepare_print_arbitrary_thd() here. */
innobase_mysql_prepare_print_arbitrary_thd();
lock_mutex_enter_kernel(); lock_mutex_enter_kernel();
if (lock_deadlock_found) { if (lock_deadlock_found) {
...@@ -4423,7 +4418,6 @@ loop: ...@@ -4423,7 +4418,6 @@ loop:
if (trx == NULL) { if (trx == NULL) {
lock_mutex_exit_kernel(); lock_mutex_exit_kernel();
innobase_mysql_end_print_arbitrary_thd();
ut_ad(lock_validate()); ut_ad(lock_validate());
...@@ -4507,7 +4501,6 @@ loop: ...@@ -4507,7 +4501,6 @@ loop:
} }
lock_mutex_exit_kernel(); lock_mutex_exit_kernel();
innobase_mysql_end_print_arbitrary_thd();
mtr_start(&mtr); mtr_start(&mtr);
...@@ -4518,7 +4511,6 @@ loop: ...@@ -4518,7 +4511,6 @@ loop:
load_page_first = FALSE; load_page_first = FALSE;
innobase_mysql_prepare_print_arbitrary_thd();
lock_mutex_enter_kernel(); lock_mutex_enter_kernel();
goto loop; goto loop;
......
--- mysql-test/t/disabled.def.orig 2009-12-16 13:21:00.000000000 -0500 diff -Nur mysql-test/t/disabled.def.orig mysql-test/t/disabled.def
+++ mysql-test/t/disabled.def 2010-01-03 11:58:54.000000000 -0500 --- mysql-test/t/disabled.def.orig 2010-01-15 12:46:09.000000000 -0500
@@ -13,3 +13,5 @@ +++ mysql-test/t/disabled.def 2010-01-31 14:09:18.000000000 -0500
@@ -11,3 +11,8 @@
##############################################################################
kill : Bug#37780 2008-12-03 HHunger need some changes to be robust enough for pushbuild.
query_cache_28249 : Bug#43861 2009-03-25 main.query_cache_28249 fails sporadically query_cache_28249 : Bug#43861 2009-03-25 main.query_cache_28249 fails sporadically
rpl_killed_ddl : Bug#45520: rpl_killed_ddl fails sporadically in pb2
innodb-autoinc : Bug#49267 2009-12-02 test fails on windows because of different case mode
+read_many_rows_innodb : Bug#433409 2009-09-20 the test fails on 5.1.37 https://bugs.launchpad.net/bugs/433409 +read_many_rows_innodb : Bug#433409 2009-09-20 the test fails on 5.1.37 https://bugs.launchpad.net/bugs/433409
+log_tables-big : Bug#48646 2009-12-12 mysql-test main.log_tables-big fails on 5.1.40 +log_tables-big : Bug#48646 2009-12-12 mysql-test main.log_tables-big fails on 5.1.40
+information_schema : Conflict with 5.1-percona-patch
+information_schema_db : Conflict with 5.1-percona-patch
+mysqlshow : Conflict with 5.1-percona-patch
...@@ -1205,9 +1205,6 @@ trx_i_s_possibly_fetch_data_into_cache( ...@@ -1205,9 +1205,6 @@ trx_i_s_possibly_fetch_data_into_cache(
return(1); return(1);
} }
/* We are going to access trx->query in all transactions */
innobase_mysql_prepare_print_arbitrary_thd();
/* We need to read trx_sys and record/table lock queues */ /* We need to read trx_sys and record/table lock queues */
mutex_enter(&kernel_mutex); mutex_enter(&kernel_mutex);
...@@ -1215,8 +1212,6 @@ trx_i_s_possibly_fetch_data_into_cache( ...@@ -1215,8 +1212,6 @@ trx_i_s_possibly_fetch_data_into_cache(
mutex_exit(&kernel_mutex); mutex_exit(&kernel_mutex);
innobase_mysql_end_print_arbitrary_thd();
return(0); return(0);
} }
......
...@@ -1695,9 +1695,7 @@ trx_mark_sql_stat_end( ...@@ -1695,9 +1695,7 @@ trx_mark_sql_stat_end(
/**********************************************************************//** /**********************************************************************//**
Prints info about a transaction to the given file. The caller must own the Prints info about a transaction to the given file. The caller must own the
kernel mutex and must have called kernel mutex. */
innobase_mysql_prepare_print_arbitrary_thd(), unless he knows that MySQL
or InnoDB cannot meanwhile change the info printed here. */
UNIV_INTERN UNIV_INTERN
void void
trx_print( trx_print(
......
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