Commit 3df5e1bb authored by Aleksandr Kuzminsky's avatar Aleksandr Kuzminsky

Sync with extensions-1.0.6 Rev. 142

parent 48d3ff4e
...@@ -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,24 +4711,29 @@ no_commit: ...@@ -4744,24 +4711,29 @@ 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:
ut_a(prebuilt->autoinc_increment > 0); /* This should filter out the negative
values set explicitly by the user. */
if (auto_inc <= col_max_value) {
ut_a(prebuilt->autoinc_increment > 0);
ulonglong need; ulonglong need;
ulonglong offset; ulonglong offset;
offset = prebuilt->autoinc_offset; offset = prebuilt->autoinc_offset;
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