Commit graph

1607 commits

Author SHA1 Message Date
vasil
864178aa13 branches/zip:
Add ChangeLog entry for r4717.
2009-04-16 05:44:48 +00:00
calvin
6fd7b63c8e branches/zip: Use the Windows Interlocked functions for atomic memory
access

Mapping the atomic operations to Windows Interlocked functions:

os_compare_and_swap_* to InterlockedCompareExchange(64)
os_atomic_increment_* to InterlockedExchangeAdd(64)
os_atomic_test_and_set_byte to InterlockedExchange

In this patch, the legacy code under UNIV_CAN_USE_X86_ASSEMBLER is
removed all together, and add HAVE_WINDOWS_ATOMICS and
INNODB_RW_LOCKS_USE_ATOMICS to CMakeLists.txt

This is to address mantis issue#194.

rb://113

Approved by: Marko
2009-04-15 21:22:35 +00:00
vasil
124945b446 branches/zip:
Add ChangeLog entry for r4543.
2009-04-15 17:36:06 +00:00
vasil
f946e6f422 branches/zip:
Whitespace cleanup in ChangeLog
2009-04-15 08:39:04 +00:00
vasil
9c37ed7c03 branches/zip:
Fix typo in the ChangeLog
2009-04-15 08:36:57 +00:00
vasil
74baa550a6 branches/zip:
Add missing ChangeLog entries
2009-04-15 08:36:16 +00:00
vasil
4f3c09517d branches/zip: Merge revisions 4481:4710 from branches/5.1:
(resolving conflict in r4574, r4575 and skipping r4699 and r4705 because
analogous changes to r4699 and r4705 were already made to branches/zip)

  ------------------------------------------------------------------------
  r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb.test
  
  branches/5.1:
  
  Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
  
  ------------------------------------------------------------------------
  r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
  Changed paths:
     M /branches/5.1/Makefile.am
     M /branches/5.1/mysql-test/innodb.test
  
  branches/5.1:
  
  Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
  
    TEST                                      RESULT   TIME (ms)
    ------------------------------------------------------------
    
    worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
    main.innodb                              [ pass ]   8803
    
    MTR's internal check of the test case 'main.innodb' failed.
    This means that the test case does not preserve the state that existed
    before the test case was executed.  Most likely the test case did not
    do a proper clean-up.
    This is the diff of the states of the servers before and after the
    test case was executed:
    mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
    mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
    mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
    mysqltest: ... Connected.
    mysqltest: Start processing test commands from './include/check-testcase.test' ...
    mysqltest: ... Done processing test commands.
    --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result	2009-03-30 14:12:31.000000000 +0300
    +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject	2009-03-30 14:12:41.000000000 +0300
    @@ -99,7 +99,7 @@
     INNODB_SUPPORT_XA	ON
     INNODB_SYNC_SPIN_LOOPS	20
     INNODB_TABLE_LOCKS	ON
    -INNODB_THREAD_CONCURRENCY	8
    +INNODB_THREAD_CONCURRENCY	16
     INNODB_THREAD_SLEEP_DELAY	10000
     INSERT_ID	0
     INTERACTIVE_TIMEOUT	28800
    
    mysqltest: Result content mismatch
    
    not ok
  
  ------------------------------------------------------------------------
  r4575 | vasil | 2009-03-30 15:55:31 +0300 (Mon, 30 Mar 2009) | 8 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb.result
     M /branches/5.1/mysql-test/innodb.test
  
  branches/5.1:
  
  Fix Bug#43309 Test main.innodb can't be run twice
  
  Make the innodb mysql-test more flexible by inspecting how much a
  variable of interest has changed since the start of the test. Do not
  assume the variables have zero values at the start of the test.
  
  ------------------------------------------------------------------------
  r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
  Changed paths:
     M /branches/5.1/Makefile.am
  
  branches/5.1:
  
  Revert a change to Makefile.am that I committed accidentally in c4574.
  
  ------------------------------------------------------------------------
  r4659 | vasil | 2009-04-06 15:34:51 +0300 (Mon, 06 Apr 2009) | 6 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb.test
  
  branches/5.1:
  
  Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
  
  Add an explanatory comment, as suggested by Patrick Crews in the bug report.
  
  ------------------------------------------------------------------------
  r4699 | vasil | 2009-04-09 14:01:52 +0300 (Thu, 09 Apr 2009) | 15 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/srv0srv.h
     M /branches/5.1/page/page0cur.c
     M /branches/5.1/srv/srv0srv.c
  
  branches/5.1:
  
  Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for indexes
  of InnoDB table
  
  by replacing the PRNG that is used to pick random pages with a better
  one.
  
  This is based on r4670 but also adds a new configuration option and
  enables the fix only if this option is changed. Please skip the present
  revision when merging.
  
  Approved by:	Heikki (via email)
  
  
  ------------------------------------------------------------------------
  r4705 | vasil | 2009-04-14 14:30:13 +0300 (Tue, 14 Apr 2009) | 5 lines
  Changed paths:
     M /branches/5.1/page/page0cur.c
  
  branches/5.1:
  
  When using the random function, first take the modulus by the number of pages
  and then typecast to ulint.
  
  ------------------------------------------------------------------------
  r4710 | vasil | 2009-04-15 11:55:18 +0300 (Wed, 15 Apr 2009) | 25 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Merge a change from MySQL (looks like this is against 5.0 but they later
  merged it to 5.1):
  
    ------------------------------------------------------------
    revno: 1810.3846.1
    committer: Alexey Botchkov <holyfoot@mysql.com>
    branch nick: 31435
    timestamp: Tue 2008-11-11 14:42:32 +0400
    message:
      Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse 
          I think we don't need to issue an error statement in the convert_search_mode_to_innobase().
          Returning the PAGE_CUR_UNSUPP value is enough as allows to handle this
          case depending on the requirements.
      
      per-file comments:
        sql/ha_innodb.cc 
      Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse 
           no error issued in convert_search_mode_to_innobase.
           ha_innobase::records_in_range() returns HA_POS_ERROR if search mode isn't supported.
    modified:
      sql/ha_innodb.cc
  
  
  ------------------------------------------------------------------------
2009-04-15 08:26:32 +00:00
calvin
319f148e9c branches/zip: remove statically linked libraries from mysql
To make zlib and strings dynamically linked; mysqld will export
additional functions required by InnoDB.

Since the symbols will be resolved dynamically during runtime,
wdl_load_mapfile() is no longer able to make any function calls
to ones in mysqld. As the result, strtoull() (from strings.lib)
is replaced with _strtoui64().

rb://111

Approved by: Marko
2009-04-14 13:47:31 +00:00
vasil
395bee3fce branches/zip:
When using the random function, first take the modulus by the number of pages
and then typecast to ulint.
2009-04-14 10:32:11 +00:00
calvin
350f609b6b branches/zip: new CMakeLists.txt
CMakeLists.txt is completely rewritten with enhancements:
- Print out useful information, such as
  system name, directory, generator used,
  win64, Microsoft compiler, etc.
- Remove one workaround for mysqld.lib location.
  User does not need to specify a build type
  when invoking MSVC generator.
2009-04-13 14:20:45 +00:00
calvin
8578e44df7 branches/zip: delete the original CMakeLists.txt
A new version will be committed, suggested by Ken.
2009-04-13 14:16:44 +00:00
calvin
ef6633bbf1 branches/zip: Rewrite CMakeLists.txt
CMakeLists.txt is completely rewritten:
- To replace the one written by mysql
- Print out some useful information, such as
  system name, directory, generator used,
  win64, Microsoft compiler, etc.
- Remove one workaround for mysqld.lib location.
  User does not need to specify a build type
2009-04-10 20:37:10 +00:00
marko
cd1909f6b3 branches/zip: Hide unnecessarily visible globals.
dict_ind_redundant, dict_ind_compact: Declare these UNIV_INTERN.
innodb_hton_ptr: Declare static.  We do not attempt to access the
built-in InnoDB any more.
trx_roll_savepoints_free(): Declare UNIV_INTERN.
2009-04-08 10:24:49 +00:00
vasil
3db4187a8d branches/zip:
Add ChangeLog entry for r4678.
2009-04-08 09:11:15 +00:00
vasil
1b7b2600db branches/zip:
Whitespace fixup in the ChangeLog
2009-04-08 09:08:59 +00:00
inaam
99b5d9e21f branches/zip
Enable atomics on solaris (using the libc functions as defined in
atomic.h) if GCC atomic builtins are not present.

There still remains some work to be done (by Vasil?). This patch
makes changes to plug.in to check pthread_t size and presence of
atomic functions when running on solaris. The same has to become
a part of the generated Makefile.in when we bake our source.

Reviewed by: Heikki rb://106
2009-04-07 14:45:37 +00:00
marko
e5cd059f4b branches/zip: Adjust r4673 as in the merge to branches/6.0 -r4676. 2009-04-07 12:19:31 +00:00
marko
ab341009d7 branches/zip: Allow in-place updates of UTF-8 CHAR columns
from or to NULL in ROW_FORMAT=REDUNDANT. (Bug #44032)

rb://107 approved by Heikki Tuuri.
2009-04-07 11:45:28 +00:00
vasil
de2238611d branches/zip:
Add ChangeLog entry for r4670.
2009-04-07 05:37:31 +00:00
vasil
7565147d08 branches/zip:
Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for
indexes of InnoDB table

by replacing the pseudo random number generator with a better one (LCG).

This also fixes Mantis Issue#212.

Approved by:	Heikki (rb://110)
2009-04-07 05:35:23 +00:00
marko
e650b0533b branches/zip: Initialize innodb_change_buffering from the configuration file.
So far, the parameter innodb_change_buffering was only settable by the
SET GLOBAL command. Any change specified in the configuration file or
on the mysqld command line was ignored. This was reported as Issue #217.

rb://109 approved by Heikki Tuuri.
2009-04-06 12:17:30 +00:00
marko
76691aee50 branches/zip: Remove the bogus failure reported in Issue #219. 2009-04-06 11:13:45 +00:00
vasil
fe82fa9ae1 branches/zip:
Fix formatting in ChangeLog to be consistent.
2009-04-06 06:07:26 +00:00
vasil
ccf94e59b1 branches/zip:
Add changelog entry for c4630.
2009-04-06 06:05:25 +00:00
marko
ab67f4eb4a branches/zip: Refuse to use newly created indexes that may lack
history.  This addresses Mantis issue #116.

dict_index_t: Enable the storage of trx_id.

row_prebuilt_t: Make many fields bit-fields to reduce the memory
footprint. Add index_usable.

ha_innobase::change_active_index(): Check if the index is usable and
set prebuilt->index_usable accordingly. Unfortunately, the return
status of this function is ignored by MySQL, and the actual refusal to
use the index must be made in row_search_for_mysql().

row_search_for_mysql(): Return DB_MISSING_HISTORY if
!prebuilt->index_usable.

convert_error_code_to_mysql(): Map DB_MISSING_HISTORY to
HA_ERR_TABLE_DEF_CHANGED.

innodb-index.test: Add a test case where access to a newly created
secondary index must be blocked for old transactions.

rb://100 approved by Heikki Tuuri
2009-04-02 12:23:12 +00:00
calvin
dacfdf4a1d branches/zip: Mantis issue #197 - Make srv_spin_wait_delay configurable
New parameter innodb_spin_wait_delay to set the maximum delay between
polling for a spin lock. 5 is the default.

Approved by: Marko (on IM)
2009-04-02 11:46:47 +00:00
marko
c9534b6ec3 branches/zip: struct read_view_struct: Add clarifying comments about
low_limit_id and up_limit_id.
2009-03-31 06:40:58 +00:00
inaam
b76aa20cbc branches/zip
SHOW ENGINE INNODB MUTEX shows all mutexes and rw_locks. This can
be overwhelming particularly when the buffer pool is very large
(note that each block in buffer pool has at least one mutex, one
rw_lock and an additional mutex if rw_lock does not use atomics).
With this patch status of following mutexes and rw-locks is not shown:

1) block->mutex
2) block->lock
3) block->lock->mutex (if applicable)
4) All other mutexes and rw-locks for which number of os-waits are zero

Addresses issue# 179 rb://99

Approved by: Marko
2009-03-25 17:18:33 +00:00
calvin
6cf14ddda4 branches/zip: Mantis issue #201 - remove innodb_plugin_init() due to
new option --ignore_builtin_innodb

Starting 5.1.33, MySQL has a new option --ignore_builtin_innodb
for using the dynamic plugin. It is required to remove
innodb_plugin_init() in the plugin.

This patch removes innodb_plugin_init() as well as functions,
variables used by innodb_plugin_init().

rb://98

Approved by: Marko
2009-03-24 15:59:45 +00:00
marko
da3661412c branches/zip: Note that buf_page_t::list and buf_page_t::in_flush_list
are only protected by buf_pool_mutex, not by the block mutex.

buf_page_release(): Remove the assertion on in_flush_list.
The function is only holding block->mutex, not buf_pool_mutex.
This was reported by Sunny.  This was the only piece of code
that accessed in_flush_list while not holding buf_pool_mutex.
2009-03-24 13:46:12 +00:00
marko
349090707c branches/zip: Remove references to UNIV_HOTBACKUP from files that are
not used when building InnoDB Hot Backup.  Declare
innobase_invalidate_query_cache() in ha_prototypes.h.
2009-03-24 12:02:29 +00:00
calvin
62d80badd3 branches/zip: adjust build files on Windows
Adjust the patch positions based on the latest MySQL source.
Also add the patches to the .bat files for vs9.
2009-03-23 21:15:33 +00:00
marko
d90bea085a branches/zip: Remove unneeded definitions and dependencies
from UNIV_HOTBACKUP builds.
2009-03-23 14:21:34 +00:00
marko
b507d3d35f branches/zip: recv_parse_or_apply_log_rec_body(): Add debug assertions
ensuring that FIL_PAGE_TYPE makes sense when applying log records.
2009-03-23 12:57:45 +00:00
marko
78c70c076d branches/zip: Enclose recv_recovery_from_backup_on and
recv_recovery_from_backup_is_on() in #ifdef UNIV_LOG_ARCHIVE.
2009-03-23 12:05:18 +00:00
marko
b1cbc35ec6 branches/zip: Remove the remaining references to hash_table_t::adapive
from UNIV_HOTBACKUP builds.  This should have been done in r4515.
2009-03-23 11:00:43 +00:00
marko
a7328dccd4 branches/zip: Exclude some operating system interface code
from UNIV_HOTBACKUP builds.
2009-03-23 10:20:50 +00:00
marko
83e98148b5 branches/zip: buf_page_print(): Clean up the code #ifdef UNIV_HOTBACKUP. 2009-03-23 10:05:47 +00:00
marko
412893d6f3 branches/zip: Define and use PAGE_ZIP_MATCH.
In UNIV_HOTBACKUP builds, assume fixed allocation.
2009-03-23 09:07:20 +00:00
marko
ac8e5d597e branches/zip: Define and use ASSERT_HASH_MUTEX_OWN.
Make it a no-op in UNIV_HOTBACKUP builds.
2009-03-23 08:57:16 +00:00
marko
2febfb273c branches/zip: hash_table_t: adaptive: Remove from UNIV_HOTBACKUP builds. 2009-03-23 08:49:53 +00:00
vasil
d950d11f4d branches/zip:
Add any entry about the release of 1.0.3 in the ChangeLog.
2009-03-20 14:50:41 +00:00
marko
2225a61798 branches/zip: fil_init(): Add the parameter hash_size. 2009-03-20 13:47:17 +00:00
marko
1d2299398f branches/zip: recv_scan_log_recs(): Remove a compile-time constant parameter. 2009-03-20 13:10:25 +00:00
marko
1370fe0af9 branches/zip: Non-functional change: Add const qualifiers.
log_block_checksum_is_ok_or_old_format(), recv_sys_add_to_parsing_buf():
The log block is read-only.  Make it const.
2009-03-20 13:08:05 +00:00
marko
da474c033b branches/zip: recv_sys_init(): Remove a compile-time constant parameter. 2009-03-20 12:56:19 +00:00
marko
94ca1bb10d branches/zip: recv_recover_page(): Remove compile-time constant parameters. 2009-03-20 12:48:26 +00:00
marko
6b52f8cab2 branches/zip: innobase_get_at_most_n_mbchars(): Declare in ha_prototypes.h. 2009-03-20 12:15:52 +00:00
marko
4214453b03 branches/zip: fil0fil.c: Refer to fil_system directly, not via local vars.
This eliminates some "unused variable" warnings when building
InnoDB Hot Backup in such a way that all mutex operations are no-ops.
2009-03-20 11:51:35 +00:00
marko
cefeb59ade branches/zip: Replace fil_get_space_for_id_low() with fil_space_get_by_id(). 2009-03-20 11:24:06 +00:00