Commit 127664eb authored by marko's avatar marko

branches/innodb+: Merge revisions 3459:3498 from branches/zip:

  ------------------------------------------------------------------------
  r3459 | vasil | 2008-12-09 11:49:03 +0200 (Tue, 09 Dec 2008) | 152 lines

  branches/zip:

  Merge 2929:3458 from branches/5.1 (resolving conflict in c3257,
  note also that r3363 reverted r2933 so there are not changes in
  mysql-test/innodb-autoinc.result with the current merge):

    ------------------------------------------------------------------------
    r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines
    Changed paths:
       M /branches/5.1/mysql-test/innodb-autoinc.result

    branches/5.1: correct the result file innodb-autoinc.result

    Change the followings:
      auto_increment_increment
      auto_increment_offset

    to
      auto-increment-increment
      auto-increment-offset
    ------------------------------------------------------------------------
    r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines
    Changed paths:
       M /branches/5.1/row/row0mysql.c

    branches/5.0: row_mysql_store_col_in_innobase_format(): Correct a misleading
    comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
    the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
    refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
    takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
    ------------------------------------------------------------------------
    r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
    Changed paths:
       M /branches/5.1/handler/ha_innodb.cc

    branches/5.1: fix bug#40386: Not flushing query cache after truncate

    ha_statistics.records can not be 0 unless the table is empty, set to
    1 instead. The original problem of bug#29507 is fixed in the server.

    Additional test was done with the fix of bug#29507 in the server.

    Approved by: Heikki (on IM)
    ------------------------------------------------------------------------
    r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
    Changed paths:
       M /branches/5.1/handler/ha_innodb.cc
       M /branches/5.1/srv/srv0srv.c
       M /branches/5.1/trx/trx0trx.c

    branches/5.1 bug#40760

    The config param innodb_thread_concurrency is dynamically set and is
    read when a thread enters/exits innodb. If the value is changed between
    the enter and exit time the behaviour becomes erratic.
    The fix is not to use srv_thread_concurrency when exiting, instead use
    the flag trx->declared_to_be_inside_innodb.

    rb://57

    Approved by: Marko
    ------------------------------------------------------------------------
    r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines
    Changed paths:
       M /branches/5.1/mysql-test/innodb-autoinc.result

    branches/5.1: revert the changes in r2933

    The changes in r2933 causes test failure on Linux.
    More investigation is needed for Windows.

    Change the followings in innodb-autoinc.result:
      auto-increment-increment
      auto-increment-offset

    back to:
      auto_increment_increment
      auto_increment_offset
    ------------------------------------------------------------------------
    r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
    Changed paths:
       M /branches/5.1/trx/trx0undo.c

    branches/5.1:

    Add the traditional 2 spaces after the timestamp so the message does
    not look like:

    070223 13:26:01InnoDB: Warning: canno....
    ------------------------------------------------------------------------
    r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines
    Changed paths:
       M /branches/5.1/mysql-test/innodb_bug34300.test

    branches/5.1:

    Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:

      main.innodb_bug34300           [ fail ]

      mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value

      Aborting: main.innodb_bug34300 failed in default mode.

    The changeset is this:
      ------------------------------------------------------------
      revno: 2709.1.10
      committer: Staale Smedseng <staale.smedseng@sun.com>
      branch nick: b22891-51-bugteam
      timestamp: Thu 2008-11-20 08:51:48 +0100
      message:
        A fix for Bug#22891 "session level max_allowed_packet can be
        set but is ignored".

        This patch makes @@session.max_allowed_packed and
        @@session.net_buffer_length read-only as suggested in the bug
        report. The user will have to use SET GLOBAL (and reconnect)
        to alter the session values of these variables.

        The error string ER_VARIABLE_IS_READONLY is introduced.

        Tests are modified accordingly.
      modified:
        mysql-test/r/func_compress.result
        mysql-test/r/max_allowed_packet_basic.result
        mysql-test/r/max_allowed_packet_func.result
        mysql-test/r/net_buffer_length_basic.result
        mysql-test/r/packet.result
        mysql-test/r/union.result
        mysql-test/r/variables.result
        mysql-test/t/func_compress.test
        mysql-test/t/innodb_bug34300.test
        mysql-test/t/max_allowed_packet_basic.test
        mysql-test/t/max_allowed_packet_func.test
        mysql-test/t/net_buffer_length_basic.test
        mysql-test/t/packet.test
        mysql-test/t/union.test
        mysql-test/t/variables.test
        sql/set_var.cc
        sql/set_var.h
        sql/share/errmsg.txt
      ------------------------------------------------------------
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
  r3480 | calvin | 2008-12-10 23:56:00 +0200 (Wed, 10 Dec 2008) | 11 lines

  branches/zip: Merge r3458:3479 from branches/5.1:

    ------------------------------------------------------------------------
    r3479 | calvin | 2008-12-10 15:30:05 -0600 (Wed, 10 Dec 2008) | 4 lines

    branches/5.1: change .result file eol-style to LF

    mysql-test-run only takes LF style even on Windows.
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
  r3481 | calvin | 2008-12-11 00:01:20 +0200 (Thu, 11 Dec 2008) | 4 lines

  branches/zip: change diff and result files eol-style to LF

  The patch utility takes LF style diff, and mysql-test-run
  also only takes LF style, even on Windows.
  ------------------------------------------------------------------------
  r3482 | calvin | 2008-12-11 00:19:07 +0200 (Thu, 11 Dec 2008) | 9 lines

  branches/zip: fix Mantis issue #138 InnoDB fails if
  innodb_buffer_pool_size >= 4096M on x64 Windows

  All three srv_buf_pool related variables are defined as ulong, which is
  32-bit on 64-bit Windows. They are changed to 64-bit ulint. Also
  system_info.dwPageSize appears to be 32-bit only. Casting to 64-bit
  is required.

  Approved by:    Marko (on IM)
  ------------------------------------------------------------------------
  r3498 | marko | 2008-12-11 17:08:14 +0200 (Thu, 11 Dec 2008) | 6 lines

  branches/zip: ibuf_merge_or_delete_for_page(): Restore the seemingly
  redundant checks for ibuf_fixed_addr_page() || fsp_descr_page() that
  were removed in r3432, and add a comment explaining why.

  Thanks to Michael for reporting this bug.
  ------------------------------------------------------------------------
parent 2bd90b44
...@@ -3916,17 +3916,35 @@ ibuf_merge_or_delete_for_page( ...@@ -3916,17 +3916,35 @@ ibuf_merge_or_delete_for_page(
ut_ad(!block || buf_block_get_space(block) == space); ut_ad(!block || buf_block_get_space(block) == space);
ut_ad(!block || buf_block_get_page_no(block) == page_no); ut_ad(!block || buf_block_get_page_no(block) == page_no);
ut_ad(!block || buf_block_get_zip_size(block) == zip_size); ut_ad(!block || buf_block_get_zip_size(block) == zip_size);
ut_a(ut_is_2pow(zip_size));
if (srv_force_recovery >= SRV_FORCE_NO_IBUF_MERGE if (srv_force_recovery >= SRV_FORCE_NO_IBUF_MERGE
|| trx_sys_hdr_page(space, page_no) || trx_sys_hdr_page(space, page_no)) {
|| ibuf_fixed_addr_page(space, zip_size, page_no) return;
|| fsp_descr_page(zip_size, page_no)) { }
/* We cannot refer to zip_size in the following, because
zip_size is passed as ULINT_UNDEFINED (it is unknown) when
buf_read_ibuf_merge_pages() is merging (discarding) changes
for a dropped tablespace. When block != NULL or
update_ibuf_bitmap is specified, the zip_size must be known.
That is why we will repeat the check below, with zip_size in
place of 0. Passing zip_size as 0 assumes that the
uncompressed page size always is a power-of-2 multiple of the
compressed page size. */
if (ibuf_fixed_addr_page(space, 0, page_no)
|| fsp_descr_page(0, page_no)) {
return; return;
} }
if (UNIV_LIKELY(update_ibuf_bitmap)) { if (UNIV_LIKELY(update_ibuf_bitmap)) {
ut_a(ut_is_2pow(zip_size));
if (ibuf_fixed_addr_page(space, zip_size, page_no)
|| fsp_descr_page(zip_size, page_no)) {
return;
}
/* If the following returns FALSE, we get the counter /* If the following returns FALSE, we get the counter
incremented, and must decrement it when we leave this incremented, and must decrement it when we leave this
function. When the counter is > 0, that prevents tablespace function. When the counter is > 0, that prevents tablespace
...@@ -3963,6 +3981,11 @@ ibuf_merge_or_delete_for_page( ...@@ -3963,6 +3981,11 @@ ibuf_merge_or_delete_for_page(
} }
mtr_commit(&mtr); mtr_commit(&mtr);
} }
} else if (block) {
if (ibuf_fixed_addr_page(space, zip_size, page_no)
|| fsp_descr_page(zip_size, page_no)) {
return;
}
} }
ibuf_enter(); ibuf_enter();
......
...@@ -93,9 +93,9 @@ extern ulong srv_flush_log_at_trx_commit; ...@@ -93,9 +93,9 @@ extern ulong srv_flush_log_at_trx_commit;
/* The sort order table of the MySQL latin1_swedish_ci character set /* The sort order table of the MySQL latin1_swedish_ci character set
collation */ collation */
extern const byte* srv_latin1_ordering; extern const byte* srv_latin1_ordering;
extern ulong srv_buf_pool_size; /* requested size in bytes */ extern ulint srv_buf_pool_size; /* requested size in bytes */
extern ulong srv_buf_pool_old_size; /* previously requested size */ extern ulint srv_buf_pool_old_size; /* previously requested size */
extern ulong srv_buf_pool_curr_size; /* current size in bytes */ extern ulint srv_buf_pool_curr_size; /* current size in bytes */
extern ulint srv_mem_pool_size; extern ulint srv_mem_pool_size;
extern ulint srv_lock_table_size; extern ulint srv_lock_table_size;
......
...@@ -129,8 +129,10 @@ os_mem_alloc_large( ...@@ -129,8 +129,10 @@ os_mem_alloc_large(
/* Align block size to system page size */ /* Align block size to system page size */
ut_ad(ut_is_2pow(system_info.dwPageSize)); ut_ad(ut_is_2pow(system_info.dwPageSize));
/* system_info.dwPageSize is only 32-bit. Casting to ulint is required
on 64-bit Windows. */
size = *n = ut_2pow_round(*n + (system_info.dwPageSize - 1), size = *n = ut_2pow_round(*n + (system_info.dwPageSize - 1),
system_info.dwPageSize); (ulint) system_info.dwPageSize);
ptr = VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, ptr = VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE,
PAGE_READWRITE); PAGE_READWRITE);
if (!ptr) { if (!ptr) {
......
...@@ -137,11 +137,11 @@ collation */ ...@@ -137,11 +137,11 @@ collation */
UNIV_INTERN const byte* srv_latin1_ordering; UNIV_INTERN const byte* srv_latin1_ordering;
/* requested size in kilobytes */ /* requested size in kilobytes */
UNIV_INTERN ulong srv_buf_pool_size = ULINT_MAX; UNIV_INTERN ulint srv_buf_pool_size = ULINT_MAX;
/* previously requested size */ /* previously requested size */
UNIV_INTERN ulong srv_buf_pool_old_size; UNIV_INTERN ulint srv_buf_pool_old_size;
/* current size in kilobytes */ /* current size in kilobytes */
UNIV_INTERN ulong srv_buf_pool_curr_size = 0; UNIV_INTERN ulint srv_buf_pool_curr_size = 0;
/* size in bytes */ /* size in bytes */
UNIV_INTERN ulint srv_mem_pool_size = ULINT_MAX; UNIV_INTERN ulint srv_mem_pool_size = ULINT_MAX;
UNIV_INTERN ulint srv_lock_table_size = ULINT_MAX; UNIV_INTERN ulint srv_lock_table_size = ULINT_MAX;
......
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