Author: glen                         Date: Tue Mar  8 08:52:47 2011 GMT
Module: packages                      Tag: MYSQL_5_1
---- Log message:
- update percona patches from lp:percona-server/5.1 using percona.sh

---- Files affected:
packages/mysql:
   mysql-innodb_deadlock_count.patch (1.1.2.2 -> 1.1.2.3) , 
mysql-innodb_fix_misc.patch (1.1.2.2 -> 1.1.2.3) , 
mysql-innodb_swap_builtin_plugin.patch (1.1.2.2 -> 1.1.2.3) , 
mysql-userstat.patch (1.2.2.1 -> 1.2.2.2) , mysql.spec (1.496.2.5 -> 1.496.2.6) 
, percona.sh (1.7 -> 1.7.4.1) , mysql-bugfix48929.patch (NONE -> 1.1.2.1)  
(NEW), mysql-control_online_alter_index.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-fix-bug671764.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-innodb_buffer_pool_shm.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-innodb_fast_shutdown.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-log_connection_error.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-mysql-syslog.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-mysql_remove_eol_carret.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-remove_fcntl_excessive_calls.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-response-time-distribution.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-show_slave_status_nolock.patch (NONE -> 1.1.2.1)  (NEW), 
mysql-sql_no_fcache.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mysql/mysql-innodb_deadlock_count.patch
diff -u packages/mysql/mysql-innodb_deadlock_count.patch:1.1.2.2 
packages/mysql/mysql-innodb_deadlock_count.patch:1.1.2.3
--- packages/mysql/mysql-innodb_deadlock_count.patch:1.1.2.2    Sat Feb 19 
23:35:53 2011
+++ packages/mysql/mysql-innodb_deadlock_count.patch    Tue Mar  8 09:52:41 2011
@@ -31,7 +31,7 @@
 diff -ruN a/storage/innodb_plugin/include/srv0srv.h 
b/storage/innodb_plugin/include/srv0srv.h
 --- a/storage/innodb_plugin/include/srv0srv.h  2010-08-10 15:32:14.478241628 
+0400
 +++ b/storage/innodb_plugin/include/srv0srv.h  2010-08-10 15:32:14.936991959 
+0400
-@@ -673,6 +673,7 @@
+@@ -675,6 +675,7 @@
        ulint innodb_buffer_pool_write_requests;/*!< 
srv_buf_pool_write_requests */
        ulint innodb_buffer_pool_read_ahead;    /*!< srv_read_ahead */
        ulint innodb_buffer_pool_read_ahead_evicted;/*!< srv_read_ahead 
evicted*/
@@ -53,7 +53,7 @@
 diff -ruN a/storage/innodb_plugin/srv/srv0srv.c 
b/storage/innodb_plugin/srv/srv0srv.c
 --- a/storage/innodb_plugin/srv/srv0srv.c      2010-08-10 15:32:14.478241628 
+0400
 +++ b/storage/innodb_plugin/srv/srv0srv.c      2010-08-10 15:32:14.936991959 
+0400
-@@ -438,7 +438,7 @@
+@@ -440,7 +440,7 @@
  static ulint  srv_n_rows_updated_old          = 0;
  static ulint  srv_n_rows_deleted_old          = 0;
  static ulint  srv_n_rows_read_old             = 0;
@@ -62,7 +62,7 @@
  UNIV_INTERN ulint             srv_n_lock_wait_count           = 0;
  UNIV_INTERN ulint             srv_n_lock_wait_current_count   = 0;
  UNIV_INTERN ib_int64_t        srv_n_lock_wait_time            = 0;
-@@ -2149,6 +2149,8 @@
+@@ -2151,6 +2151,8 @@
                = UT_LIST_GET_LEN(buf_pool->flush_list);
        export_vars.innodb_buffer_pool_pages_free
                = UT_LIST_GET_LEN(buf_pool->free);

================================================================
Index: packages/mysql/mysql-innodb_fix_misc.patch
diff -u packages/mysql/mysql-innodb_fix_misc.patch:1.1.2.2 
packages/mysql/mysql-innodb_fix_misc.patch:1.1.2.3
--- packages/mysql/mysql-innodb_fix_misc.patch:1.1.2.2  Sat Feb 19 23:35:53 2011
+++ packages/mysql/mysql-innodb_fix_misc.patch  Tue Mar  8 09:52:41 2011
@@ -2,13 +2,308 @@
 # introduced : 11 or before
 # maintainer : Yasufumi
 #
+# Bug fix for
+# http://bugs.mysql.com/56433 (always: because good for all users, and safe)
+# and http://bugs.mysql.com/51325 (optional: innodb_lazy_drop_table)
+# were added. They may be removed in the future when will be fixed officially.
+#
 #!!! notice !!!
 # Any small change to this file in the main branch
 # should be done or reviewed by the maintainer!
+diff -ruN a/storage/innodb_plugin/buf/buf0buf.c 
b/storage/innodb_plugin/buf/buf0buf.c
+--- a/storage/innodb_plugin/buf/buf0buf.c      2011-02-21 20:31:57.781983359 
+0900
++++ b/storage/innodb_plugin/buf/buf0buf.c      2011-02-21 20:32:39.523946003 
+0900
+@@ -3224,6 +3224,7 @@
+               bpage->state    = BUF_BLOCK_ZIP_PAGE;
+               bpage->space    = space;
+               bpage->offset   = offset;
++              bpage->space_was_being_deleted = FALSE;
+ 
+ #ifdef UNIV_DEBUG
+               bpage->in_page_hash = FALSE;
+diff -ruN a/storage/innodb_plugin/buf/buf0flu.c 
b/storage/innodb_plugin/buf/buf0flu.c
+--- a/storage/innodb_plugin/buf/buf0flu.c      2011-02-21 20:31:57.784983260 
+0900
++++ b/storage/innodb_plugin/buf/buf0flu.c      2011-02-21 20:32:39.524915732 
+0900
+@@ -367,7 +367,7 @@
+ 
+       if (UNIV_LIKELY(bpage->in_LRU_list && buf_page_in_file(bpage))) {
+ 
+-              return(bpage->oldest_modification == 0
++              return((bpage->oldest_modification == 0 || 
bpage->space_was_being_deleted)
+                      && buf_page_get_io_fix(bpage) == BUF_IO_NONE
+                      && bpage->buf_fix_count == 0);
+       }
+@@ -406,6 +406,13 @@
+           && buf_page_get_io_fix(bpage) == BUF_IO_NONE) {
+               ut_ad(bpage->in_flush_list);
+ 
++              if (bpage->space_was_being_deleted) {
++                      /* should be removed from flush_list here */
++                      /* because buf_flush_try_neighbors() cannot flush 
without fil_space_get_size(space) */
++                      buf_flush_remove(bpage);
++                      return(FALSE);
++              }
++
+               if (flush_type != BUF_FLUSH_LRU) {
+ 
+                       return(TRUE);
+diff -ruN a/storage/innodb_plugin/buf/buf0lru.c 
b/storage/innodb_plugin/buf/buf0lru.c
+--- a/storage/innodb_plugin/buf/buf0lru.c      2011-02-21 20:31:57.451983310 
+0900
++++ b/storage/innodb_plugin/buf/buf0lru.c      2011-02-21 20:32:39.526949096 
+0900
+@@ -530,6 +530,30 @@
+       }
+ }
+ 
++/******************************************************************//**
++*/
++UNIV_INTERN
++void
++buf_LRU_mark_space_was_deleted(
++/*===========================*/
++      ulint   id)     /*!< in: space id */
++{
++      buf_page_t*     bpage;
++
++      mutex_enter(&LRU_list_mutex);
++
++      bpage = UT_LIST_GET_FIRST(buf_pool->LRU);
++
++      while (bpage != NULL) {
++              if (buf_page_get_space(bpage) == id) {
++                      bpage->space_was_being_deleted = TRUE;
++              }
++              bpage = UT_LIST_GET_NEXT(LRU, bpage);
++      }
++
++      mutex_exit(&LRU_list_mutex);
++}
++
+ /********************************************************************//**
+ Insert a compressed block into buf_pool->zip_clean in the LRU order. */
+ UNIV_INTERN
+@@ -1498,6 +1522,10 @@
+               return(BUF_LRU_NOT_FREED);
+       }
+ 
++      if (bpage->space_was_being_deleted && bpage->oldest_modification != 0) {
++              buf_flush_remove(bpage);
++      }
++
+ #ifdef UNIV_IBUF_COUNT_DEBUG
+       ut_a(ibuf_count_get(bpage->space, bpage->offset) == 0);
+ #endif /* UNIV_IBUF_COUNT_DEBUG */
+diff -ruN a/storage/innodb_plugin/fil/fil0fil.c 
b/storage/innodb_plugin/fil/fil0fil.c
+--- a/storage/innodb_plugin/fil/fil0fil.c      2011-02-21 20:31:57.838984412 
+0900
++++ b/storage/innodb_plugin/fil/fil0fil.c      2011-02-21 20:32:39.528914782 
+0900
+@@ -242,6 +242,7 @@
+ struct fil_system_struct {
+ #ifndef UNIV_HOTBACKUP
+       mutex_t         mutex;          /*!< The mutex protecting the cache */
++      mutex_t         file_extend_mutex;
+ #endif /* !UNIV_HOTBACKUP */
+       hash_table_t*   spaces;         /*!< The hash table of spaces in the
+                                       system; they are hashed on the space
+@@ -816,7 +817,7 @@
+       ut_ad(node && system);
+       ut_ad(mutex_own(&(system->mutex)));
+       ut_a(node->open);
+-      ut_a(node->n_pending == 0);
++      ut_a(node->n_pending == 0 || srv_lazy_drop_table);
+       ut_a(node->n_pending_flushes == 0);
+       ut_a(node->modification_counter == node->flush_counter);
+ 
+@@ -1028,7 +1029,7 @@
+       ut_ad(node && system && space);
+       ut_ad(mutex_own(&(system->mutex)));
+       ut_a(node->magic_n == FIL_NODE_MAGIC_N);
+-      ut_a(node->n_pending == 0);
++      ut_a(node->n_pending == 0 || srv_lazy_drop_table);
+ 
+       if (node->open) {
+               /* We fool the assertion in fil_node_close_file() to think
+@@ -1549,6 +1550,7 @@
+       fil_system = mem_zalloc(sizeof(fil_system_t));
+ 
+       mutex_create(&fil_system->mutex, SYNC_ANY_LATCH);
++      mutex_create(&fil_system->file_extend_mutex, SYNC_OUTER_ANY_LATCH);
+ 
+       fil_system->spaces = hash_create(hash_size);
+       fil_system->name_hash = hash_create(hash_size);
+@@ -2295,7 +2297,11 @@
+       completely and permanently. The flag is_being_deleted also prevents
+       fil_flush() from being applied to this tablespace. */
+ 
++      if (srv_lazy_drop_table) {
++              buf_LRU_mark_space_was_deleted(id);
++      } else {
+       buf_LRU_invalidate_tablespace(id);
++      }
+ #endif
+       /* printf("Deleting tablespace %s id %lu\n", space->name, id); */
+ 
+@@ -4348,6 +4354,10 @@
+       ulint           page_size;
+       ibool           success         = TRUE;
+ 
++      /* file_extend_mutex is for http://bugs.mysql.com/56433 */
++      /* to protect from the other fil_extend_space_to_desired_size() */
++      /* during temprary releasing &fil_system->mutex */
++      mutex_enter(&fil_system->file_extend_mutex);
+       fil_mutex_enter_and_prepare_for_io(space_id);
+ 
+       space = fil_space_get_by_id(space_id);
+@@ -4359,6 +4369,7 @@
+               *actual_size = space->size;
+ 
+               mutex_exit(&fil_system->mutex);
++              mutex_exit(&fil_system->file_extend_mutex);
+ 
+               return(TRUE);
+       }
+@@ -4391,6 +4402,8 @@
+               offset_low  = ((start_page_no - file_start_page_no)
+                              % (4096 * ((1024 * 1024) / page_size)))
+                       * page_size;
++
++              mutex_exit(&fil_system->mutex);
+ #ifdef UNIV_HOTBACKUP
+               success = os_file_write(node->name, node->handle, buf,
+                                       offset_low, offset_high,
+@@ -4400,8 +4413,10 @@
+                                node->name, node->handle, buf,
+                                offset_low, offset_high,
+                                page_size * n_pages,
+-                               NULL, NULL, NULL);
++                               NULL, NULL, space_id, NULL);
+ #endif
++              mutex_enter(&fil_system->mutex);
++
+               if (success) {
+                       node->size += n_pages;
+                       space->size += n_pages;
+@@ -4447,6 +4462,7 @@
+       printf("Extended %s to %lu, actual size %lu pages\n", space->name,
+       size_after_extend, *actual_size); */
+       mutex_exit(&fil_system->mutex);
++      mutex_exit(&fil_system->file_extend_mutex);
+ 
+       fil_flush(space_id);
+ 
+@@ -4811,6 +4827,22 @@
+               srv_data_written+= len;
+       }
+ 
++      /* if the table space was already deleted, space might not exist 
already. */
++      if (message
++          && space_id < SRV_LOG_SPACE_FIRST_ID
++          && ((buf_page_t*)message)->space_was_being_deleted) {
++
++              if (mode == OS_AIO_NORMAL) {
++                      buf_page_io_complete(message, trx);
++                      return(DB_SUCCESS); /*fake*/
++              }
++              if (type == OS_FILE_READ) {
++                      return(DB_TABLESPACE_DELETED);
++              } else {
++                      return(DB_SUCCESS); /*fake*/
++              }
++      }
++
+       /* Reserve the fil_system mutex and make sure that we can open at
+       least one file while holding it, if the file is not already open */
+ 
+@@ -4940,10 +4972,24 @@
+ #else
+       /* Queue the aio request */
+       ret = os_aio(type, mode | wake_later, node->name, node->handle, buf,
+-                   offset_low, offset_high, len, node, message, trx);
++                   offset_low, offset_high, len, node, message, space_id, 
trx);
+ #endif
+       } /**/
+ 
++      /* if the table space was already deleted, space might not exist 
already. */
++      if (message
++          && space_id < SRV_LOG_SPACE_FIRST_ID
++          && ((buf_page_t*)message)->space_was_being_deleted) {
++
++              if (mode == OS_AIO_SYNC) {
++                      if (type == OS_FILE_READ) {
++                              return(DB_TABLESPACE_DELETED);
++                      } else {
++                              return(DB_SUCCESS); /*fake*/
++                      }
++              }
++      }
++
+       ut_a(ret);
+ 
+       if (mode == OS_AIO_SYNC) {
+@@ -5043,6 +5089,7 @@
+       fil_node_t*     fil_node;
+       void*           message;
+       ulint           type;
++      ulint           space_id = 0;
+ 
+       ut_ad(fil_validate());
+ 
+@@ -5050,7 +5097,7 @@
+               srv_set_io_thread_op_info(segment, "native aio handle");
+ #ifdef WIN_ASYNC_IO
+               ret = os_aio_windows_handle(segment, 0, &fil_node,
+-                                          &message, &type);
++                                          &message, &type, &space_id);
+ #else
+               ret = 0; /* Eliminate compiler warning */
+               ut_error;
+@@ -5059,7 +5106,22 @@
+               srv_set_io_thread_op_info(segment, "simulated aio handle");
+ 
+               ret = os_aio_simulated_handle(segment, &fil_node,
+-                                            &message, &type);
++                                            &message, &type, &space_id);
++      }
++
++      /* if the table space was already deleted, fil_node might not exist 
already. */
++      if (message
++          && space_id < SRV_LOG_SPACE_FIRST_ID
++          && ((buf_page_t*)message)->space_was_being_deleted) {
++
++              /* intended not to be uncompress read page */
++              ut_a(buf_page_get_io_fix(message) == BUF_IO_WRITE
++                   || !buf_page_get_zip_size(message)
++                   || buf_page_get_state(message) != BUF_BLOCK_FILE_PAGE);
++
++              srv_set_io_thread_op_info(segment, "complete io for buf page");
++              buf_page_io_complete(message, NULL);
++              return;
+       }
+ 
+       ut_a(ret);
 diff -ruN a/storage/innodb_plugin/handler/ha_innodb.cc 
b/storage/innodb_plugin/handler/ha_innodb.cc
 --- a/storage/innodb_plugin/handler/ha_innodb.cc       2010-08-27 
16:50:59.626327847 +0900
 +++ b/storage/innodb_plugin/handler/ha_innodb.cc       2010-08-27 
16:55:20.281021252 +0900
-@@ -11783,7 +11783,7 @@
+@@ -11685,6 +11685,12 @@
+   "except for the deletion.",
+   NULL, NULL, 0, 0, 1, 0);
+ 
++static MYSQL_SYSVAR_ULONG(lazy_drop_table, srv_lazy_drop_table,
++  PLUGIN_VAR_RQCMDARG,
++  "At deleting tablespace, only miminum needed processes at the time are 
done. "
++  "e.g. for http://bugs.mysql.com/51325";,
++  NULL, NULL, 0, 0, 1, 0);
++
+ static struct st_mysql_sys_var* innobase_system_variables[]= {
+   MYSQL_SYSVAR(page_size),
+   MYSQL_SYSVAR(log_block_size),
+@@ -11774,6 +11780,7 @@
+   MYSQL_SYSVAR(auto_lru_dump),
+   MYSQL_SYSVAR(use_purge_thread),
+   MYSQL_SYSVAR(pass_corrupt_table),
++  MYSQL_SYSVAR(lazy_drop_table),
+   NULL
+ };
+ 
+@@ -11783,7 +11790,7 @@
    &innobase_storage_engine,
    innobase_hton_name,
    "Innobase Oy",
@@ -17,6 +312,99 @@
    PLUGIN_LICENSE_GPL,
    innobase_init, /* Plugin Init */
    NULL, /* Plugin Deinit */
+diff -ruN a/storage/innodb_plugin/include/buf0buf.h 
b/storage/innodb_plugin/include/buf0buf.h
+--- a/storage/innodb_plugin/include/buf0buf.h  2011-02-21 20:31:57.863983187 
+0900
++++ b/storage/innodb_plugin/include/buf0buf.h  2011-02-21 20:32:39.537912716 
+0900
+@@ -1156,6 +1156,7 @@
+                                       0 if the block was never accessed
+                                       in the buffer pool */
+       /* @} */
++      ibool           space_was_being_deleted;
+       ibool           is_corrupt;
+ # ifdef UNIV_DEBUG_FILE_ACCESSES
+       ibool           file_page_was_freed;
+diff -ruN a/storage/innodb_plugin/include/buf0buf.ic 
b/storage/innodb_plugin/include/buf0buf.ic
+--- a/storage/innodb_plugin/include/buf0buf.ic 2011-02-21 20:31:57.725983812 
+0900
++++ b/storage/innodb_plugin/include/buf0buf.ic 2011-02-21 20:32:39.538913061 
+0900
+@@ -384,6 +384,7 @@
+       buf_block_set_state(block, BUF_BLOCK_FILE_PAGE);
+       block->page.space = space;
+       block->page.offset = page_no;
++      block->page.space_was_being_deleted = FALSE;
+ }
+ 
+ /*********************************************************************//**
+diff -ruN a/storage/innodb_plugin/include/buf0lru.h 
b/storage/innodb_plugin/include/buf0lru.h
+--- a/storage/innodb_plugin/include/buf0lru.h  2011-02-21 20:31:57.480924269 
+0900
++++ b/storage/innodb_plugin/include/buf0lru.h  2011-02-21 20:32:39.539912965 
+0900
+@@ -84,6 +84,13 @@
+ buf_LRU_invalidate_tablespace(
+ /*==========================*/
+       ulint   id);    /*!< in: space id */
++/******************************************************************//**
++*/
++UNIV_INTERN
++void
++buf_LRU_mark_space_was_deleted(
++/*===========================*/
++      ulint   id);    /*!< in: space id */
+ /********************************************************************//**
+ Insert a compressed block into buf_pool->zip_clean in the LRU order. */
+ UNIV_INTERN
+diff -ruN a/storage/innodb_plugin/include/os0file.h 
b/storage/innodb_plugin/include/os0file.h
+--- a/storage/innodb_plugin/include/os0file.h  2011-02-21 20:31:57.870987755 
+0900
++++ b/storage/innodb_plugin/include/os0file.h  2011-02-21 20:32:39.540912738 
+0900
+@@ -657,6 +657,7 @@
+                               (can be used to identify a completed
+                               aio operation); ignored if mode is
+                               OS_AIO_SYNC */
++      ulint           space_id,
+       trx_t*          trx);
+ /************************************************************************//**
+ Wakes up all async i/o threads so that they know to exit themselves in
+@@ -717,7 +718,8 @@
+                               parameters are valid and can be used to
+                               restart the operation, for example */
+       void**  message2,
+-      ulint*  type);          /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  type,           /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  space_id);
+ #endif
+ 
+ /**********************************************************************//**
+@@ -739,7 +741,8 @@
+                               parameters are valid and can be used to
+                               restart the operation, for example */
+       void**  message2,
+-      ulint*  type);          /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  type,           /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  space_id);
+ /**********************************************************************//**
+ Validates the consistency of the aio system.
+ @return       TRUE if ok */
+diff -ruN a/storage/innodb_plugin/include/srv0srv.h 
b/storage/innodb_plugin/include/srv0srv.h
+--- a/storage/innodb_plugin/include/srv0srv.h  2011-02-21 20:31:57.824983518 
+0900
++++ b/storage/innodb_plugin/include/srv0srv.h  2011-02-21 20:32:39.541913033 
+0900
+@@ -235,6 +235,8 @@
+ 
+ extern ulint  srv_extra_rsegments;
+ extern ulint  srv_dict_size_limit;
++
++extern ulint  srv_lazy_drop_table;
+ /*-------------------------------------------*/
+ 
+ extern ulint  srv_n_rows_inserted;
+diff -ruN a/storage/innodb_plugin/include/sync0sync.h 
b/storage/innodb_plugin/include/sync0sync.h
+--- a/storage/innodb_plugin/include/sync0sync.h        2011-02-21 
20:31:57.382982949 +0900
++++ b/storage/innodb_plugin/include/sync0sync.h        2011-02-21 
20:32:39.543913340 +0900
+@@ -496,6 +496,7 @@
+ #define       SYNC_BUF_POOL           150
+ #define SYNC_BUF_FLUSH_LIST   149
+ #define SYNC_DOUBLEWRITE      140
++#define       SYNC_OUTER_ANY_LATCH    136
+ #define       SYNC_ANY_LATCH          135
+ #define SYNC_THR_LOCAL                133
+ #define       SYNC_MEM_HASH           131
 diff -ruN a/storage/innodb_plugin/include/univ.i 
b/storage/innodb_plugin/include/univ.i
 --- a/storage/innodb_plugin/include/univ.i     2010-04-30 16:37:05.000000000 
+0900
 +++ b/storage/innodb_plugin/include/univ.i     2010-04-30 16:41:46.000000000 
+0900
@@ -63,6 +451,88 @@
                recv_sys->found_corrupt_log = TRUE;
  
                return(NULL);
+diff -ruN a/storage/innodb_plugin/os/os0file.c 
b/storage/innodb_plugin/os/os0file.c
+--- a/storage/innodb_plugin/os/os0file.c       2011-02-21 20:31:57.437945953 
+0900
++++ b/storage/innodb_plugin/os/os0file.c       2011-02-21 20:32:39.546945763 
+0900
+@@ -142,6 +142,7 @@
+ //                                    made and only the slot message
+ //                                    needs to be passed to the caller
+ //                                    of os_aio_simulated_handle */
++      ulint           space_id;
+       fil_node_t*     message1;       /*!< message which is given by the */
+       void*           message2;       /*!< the requester of an aio operation
+                                       and which can be used to identify
+@@ -3390,7 +3391,8 @@
+                               offset */
+       ulint           offset_high, /*!< in: most significant 32 bits of
+                               offset */
+-      ulint           len)    /*!< in: length of the block to read or write */
++      ulint           len,    /*!< in: length of the block to read or write */
++      ulint           space_id)
+ {
+       os_aio_slot_t*  slot;
+       ulint           i;
+@@ -3472,6 +3474,7 @@
+       slot->offset_high = offset_high;
+ //    slot->io_already_done = FALSE;
+       slot->status = OS_AIO_NOT_ISSUED;
++      slot->space_id = space_id;
+ 
+ #ifdef WIN_ASYNC_IO
+       control = &(slot->control);
+@@ -3680,6 +3683,7 @@
+                               (can be used to identify a completed
+                               aio operation); ignored if mode is
+                               OS_AIO_SYNC */
++      ulint           space_id,
+       trx_t*          trx)
+ {
+       os_aio_array_t* array;
+@@ -3762,7 +3766,7 @@
+               trx->io_read += n;
+       }
+       slot = os_aio_array_reserve_slot(type, array, message1, message2, file,
+-                                       name, buf, offset, offset_high, n);
++                                       name, buf, offset, offset_high, n, 
space_id);
+       if (type == OS_FILE_READ) {
+               if (os_aio_use_native_aio) {
+ #ifdef WIN_ASYNC_IO
+@@ -3872,7 +3876,8 @@
+                               parameters are valid and can be used to
+                               restart the operation, for example */
+       void**  message2,
+-      ulint*  type)           /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  type,           /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  space_id)
+ {
+       ulint           orig_seg        = segment;
+       os_aio_array_t* array;
+@@ -3926,6 +3931,7 @@
+       *message2 = slot->message2;
+ 
+       *type = slot->type;
++      *space_id = slot->space_id;
+ 
+       if (ret && len == slot->len) {
+               ret_val = TRUE;
+@@ -4009,7 +4015,8 @@
+                               parameters are valid and can be used to
+                               restart the operation, for example */
+       void**  message2,
+-      ulint*  type)           /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  type,           /*!< out: OS_FILE_WRITE or ..._READ */
++      ulint*  space_id)
+ {
+       os_aio_array_t* array;
+       ulint           segment;
+@@ -4300,6 +4307,7 @@
+       *message2 = slot->message2;
+ 
+       *type = slot->type;
++      *space_id = slot->space_id;
+ 
+       os_mutex_exit(array->mutex);
+ 
 diff -ruN a/storage/innodb_plugin/row/row0mysql.c 
b/storage/innodb_plugin/row/row0mysql.c
 --- a/storage/innodb_plugin/row/row0mysql.c    2010-07-20 16:33:04.097866666 
+0900
 +++ b/storage/innodb_plugin/row/row0mysql.c    2010-07-20 16:33:53.995828763 
+0900
@@ -130,6 +600,18 @@
                        trx_print(stderr, trx, 600);
                        fputc('\n', stderr);
                        ut_error;
+diff -ruN a/storage/innodb_plugin/srv/srv0srv.c 
b/storage/innodb_plugin/srv/srv0srv.c
+--- a/storage/innodb_plugin/srv/srv0srv.c      2011-02-21 20:31:57.900982316 
+0900
++++ b/storage/innodb_plugin/srv/srv0srv.c      2011-02-21 20:32:39.549912950 
+0900
+@@ -414,6 +414,8 @@
+ 
+ UNIV_INTERN ulint     srv_extra_rsegments = 0; /* extra rseg for users */
+ UNIV_INTERN ulint     srv_dict_size_limit = 0;
++
++UNIV_INTERN ulint     srv_lazy_drop_table = 0;
+ /*-------------------------------------------*/
+ UNIV_INTERN ulong     srv_n_spin_wait_rounds  = 30;
+ UNIV_INTERN ulong     srv_n_free_tickets_to_enter = 500;
 diff -ruN a/storage/innodb_plugin/srv/srv0start.c 
b/storage/innodb_plugin/srv/srv0start.c
 --- a/storage/innodb_plugin/srv/srv0start.c    2010-04-30 16:37:05.000000000 
+0900
 +++ b/storage/innodb_plugin/srv/srv0start.c    2010-04-30 16:41:46.000000000 
+0900
@@ -142,6 +624,17 @@
                        "log sequence number %llu\n",
                        INNODB_VERSION_STR, srv_start_lsn);
        }
+diff -ruN a/storage/innodb_plugin/sync/sync0sync.c 
b/storage/innodb_plugin/sync/sync0sync.c
+--- a/storage/innodb_plugin/sync/sync0sync.c   2011-02-25 14:09:57.710270419 
+0900
++++ b/storage/innodb_plugin/sync/sync0sync.c   2011-02-25 14:12:20.138232965 
+0900
+@@ -1161,6 +1161,7 @@
+       case SYNC_LOG:
+       case SYNC_THR_LOCAL:
+       case SYNC_ANY_LATCH:
++      case SYNC_OUTER_ANY_LATCH:
+       case SYNC_TRX_SYS_HEADER:
+       case SYNC_FILE_FORMAT_TAG:
+       case SYNC_DOUBLEWRITE:
 diff -ruN a/storage/innodb_plugin/trx/trx0purge.c 
b/storage/innodb_plugin/trx/trx0purge.c
 --- a/storage/innodb_plugin/trx/trx0purge.c    2010-07-21 14:52:46.538653893 
+0900
 +++ b/storage/innodb_plugin/trx/trx0purge.c    2010-07-21 14:57:46.505530034 
+0900

================================================================
Index: packages/mysql/mysql-innodb_swap_builtin_plugin.patch
diff -u packages/mysql/mysql-innodb_swap_builtin_plugin.patch:1.1.2.2 
packages/mysql/mysql-innodb_swap_builtin_plugin.patch:1.1.2.3
--- packages/mysql/mysql-innodb_swap_builtin_plugin.patch:1.1.2.2       Sat Feb 
19 23:35:53 2011
+++ packages/mysql/mysql-innodb_swap_builtin_plugin.patch       Tue Mar  8 
09:52:41 2011
@@ -6,114 +6,6 @@
 # Any small change to this file in the main branch
 # should be done or reviewed by the maintainer!
 diff -ruN a/configure b/configure
---- a/configure        2010-04-06 23:13:20.000000000 +0900
-+++ b/configure        2010-04-28 19:12:59.000000000 +0900
-@@ -2056,13 +2056,13 @@
-    === InnoDB Storage Engine ===
-   Plugin Name:      innobase
-   Description:      Transactional Tables using InnoDB
--  Supports build:   static and dynamic
-+  Supports build:   dynamic
-   Configurations:   max, max-no-ndb
- 
-    === InnoDB Storage Engine ===
-   Plugin Name:      innodb_plugin
-   Description:      Transactional Tables using InnoDB
--  Supports build:   dynamic
-+  Supports build:   static and dynamic
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_deadlock_count.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_fix_misc.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_swap_builtin_plugin.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-userstat.patch?r1=1.2.2.1&r2=1.2.2.2&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql.spec?r1=1.496.2.5&r2=1.496.2.6&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/percona.sh?r1=1.7&r2=1.7.4.1&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to