]> git.pld-linux.org Git - packages/mysql.git/blobdiff - innodb_dict_size_limit.patch
- up to 5.5.18
[packages/mysql.git] / innodb_dict_size_limit.patch
index 288b2686165fae3233630f3afdd192438f169f1a..a2dab4d85b44ac8595b237c116e541f592ed1369 100644 (file)
@@ -7,7 +7,7 @@
 # should be done or reviewed by the maintainer!
 --- a/storage/innobase/btr/btr0sea.c
 +++ b/storage/innobase/btr/btr0sea.c
-@@ -1186,6 +1186,179 @@
+@@ -1187,6 +1187,178 @@
        mem_free(folds);
  }
  
@@ -61,7 +61,7 @@
 +                                      if (buf_block_get_state(block)
 +                                          != BUF_BLOCK_FILE_PAGE
 +                                          || block->index != index
-+                                          || !block->is_hashed) {
++                                          || !block->index) {
 +                                              continue;
 +                                      }
 +
 +
 +                                      rw_lock_x_lock(&btr_search_latch);
 +
-+                                      if (UNIV_UNLIKELY(!block->is_hashed)) {
++                                      if (UNIV_UNLIKELY(!block->index)) {
 +                                              goto cleanup;
 +                                      }
 +
 +                                      ut_a(index->search_info->ref_count > 0);
 +                                      index->search_info->ref_count--;
 +
-+                                      block->is_hashed = FALSE;
 +                                      block->index = NULL;
 +
 +cleanup:
 +}
 +
  /********************************************************************//**
- Drops a page hash index when a page is freed from a fseg to the file system.
Drops possible hash index if the page happens to be in the buffer pool. */
+ Drops a possible page hash index when a page is evicted from the buffer pool
or freed in a file segment. */
 --- a/storage/innobase/buf/buf0buf.c
 +++ b/storage/innobase/buf/buf0buf.c
 @@ -294,14 +294,14 @@
 +/*=====================================*/
 +      dict_index_t*   index);         /* in: record descriptor */
  /********************************************************************//**
- Drops a page hash index when a page is freed from a fseg to the file system.
Drops possible hash index if the page happens to be in the buffer pool. */
+ Drops a possible page hash index when a page is evicted from the buffer pool
or freed in a file segment. */
 --- a/storage/innobase/include/buf0buf.h
 +++ b/storage/innobase/include/buf0buf.h
-@@ -1585,6 +1585,15 @@
+@@ -1575,6 +1575,15 @@
  #define BUF_POOL_ZIP_FOLD_BPAGE(b) BUF_POOL_ZIP_FOLD((buf_block_t*) (b))
  /* @} */
  
        export_vars.innodb_buffer_pool_read_requests = stat.n_page_gets;
        export_vars.innodb_buffer_pool_write_requests
                = srv_buf_pool_write_requests;
+--- /dev/null
++++ b/mysql-test/suite/sys_vars/r/innodb_dict_size_limit_basic.result
+@@ -0,0 +1,3 @@
++SELECT @@global.innodb_dict_size_limit;
++@@global.innodb_dict_size_limit
++0
+--- /dev/null
++++ b/mysql-test/suite/sys_vars/t/innodb_dict_size_limit_basic.test
+@@ -0,0 +1 @@
++SELECT @@global.innodb_dict_size_limit;
This page took 0.031275 seconds and 4 git commands to generate.