Commit graph

1472 commits

Author SHA1 Message Date
vasil
4e0e5e1e53 branches/zip:
* Remove old Innobase copyright lines from C source files
* Add a reference to the GPLv2 license as recommended by the lawyers
at Oracle Legal

[Step 2/28]
2009-02-17 08:15:06 +00:00
vasil
9bc861b4e8 branches/zip:
* Remove old Innobase copyright lines from C source files
* Add a reference to the GPLv2 license as recommended by the lawyers
at Oracle Legal

[Step 1/28]
2009-02-17 08:12:02 +00:00
vasil
c6232c06fa branches/zip:
To the files touched by the Google patch from c4144 (excluding
include/os0sync.ic because later we removed Google code from that file):

* Remove the Google license
* Remove old Innobase copyright lines
* Add a reference to the Google license and to the GPLv2 license at the top,
as recommended by the lawyers at Oracle Legal.
2009-02-17 07:56:33 +00:00
vasil
85f1828d64 branches/zip:
Add Google's license into COPYING.Google.
2009-02-17 07:11:58 +00:00
vasil
a974c7bac4 branches/zip:
Add the full text of the GPLv2 license into the root directory of the
plugin. In previous releases this file was copied from an external source
(https://svn.innodb.com/svn/plugin/trunk/support/COPYING) "manually" when
creating the source and binary archives. It is less confusing to have this
present in the root directory of the SVN branch.
2009-02-17 07:06:07 +00:00
vasil
e1c65d9fe4 branches/zip:
Fix the failing mysql-test partition_innodb, which failed only if run after
innodb_trx_weight (or other test that would leave LATEST DEADLOCK ERROR into
the output of SHOW ENGINE INNODB STATUS). Find further explanation for the
failure at the top of the added patch partition_innodb.diff.
2009-02-13 08:06:31 +00:00
vasil
2cae584e53 branches/zip:
Fix pathname of the file to patch.
2009-02-12 15:38:27 +00:00
calvin
9cec478049 branches/zip: Adjust the result file of innodb_thread_concurrency_basic
test. The default value of innodb_thread_concurrency is changed to 0
(from 8) via r4163.
2009-02-12 08:37:10 +00:00
marko
25f45c0d1c branches/zip: Make innodb_thread_concurrency=0 the default.
The old default was 8.
2009-02-11 22:14:19 +00:00
vasil
3c6d991778 branches/zip:
(followup to r4145) Non-functional change:

Change the os_atomic_increment() and os_compare_and_swap() functions
to macros to avoid artificial limitations on the types of those
functions' arguments. As a consequence typecasts from the source
code can be removed.

Also remove Google's copyright from os0sync.ic because that file no longer
contains code from Google.

Approved by:	Marko (rb://88), also ok from Inaam via IM
2009-02-10 20:58:17 +00:00
marko
a805ee5fd5 branches/zip: When innodb_use_sys_malloc is set, ignore
innodb_additional_mem_pool_size, because nothing will
be allocated from mem_comm_pool.

mem_pool_create(): Remove the assertion about size.  The function will
work with any size.  However, an assertion would fail in ut_malloc_low()
when size==0.

mem_init(): When srv_use_sys_malloc is set, pass size=1 to mem_pool_create().

mem0mem.c: Add #include "srv0srv.h" that is needed by mem0dbg.c.
2009-02-10 10:52:27 +00:00
marko
ecda78f01c branches/zip: get_share(), free_share(): Make table locking case sensitive.
If lower_case_table_names=1, MySQL will pass the table names in lower case.
Thus, we can use a binary comparison (strcmp) in the hash table.

rb://87 approved by Heikki Tuuri, to address Bug #41676 and Issue #167.
2009-02-10 09:51:43 +00:00
marko
da9083a02c branches/zip: ChangeLog: Document recent changes. 2009-02-10 09:09:15 +00:00
marko
f4cccb1f81 branches/zip: Map ut_malloc(), ut_realloc(), ut_free() to
malloc(), realloc(), free() when innodb_use_sys_malloc is set.

ut_free_all_mem(): If innodb_use_sys_malloc is set, do nothing,
because then ut_mem_block_list_inited will never be set.

log_init(): Use mem_alloc() instead of ut_malloc(), so that the
memory will be freed.  (Tested with Valgrind, although it is not
clear why the memory would be freed.)

rb://86 approved by Heikki Tuuri and Ken Jacobs.  This addresses Issue #168.
2009-02-10 08:38:41 +00:00
vasil
51bc19d7e2 branches/zip:
Non-functional change: Fix a compilation warning introduced in r4144:

gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I../../storage/innobase/include -I../../sql -I.   -Werror 	 -Wall -g   -MT libinnobase_a-sync0arr.o -MD -MP -MF .deps/libinnobase_a-sync0arr.Tpo -c -o libinnobase_a-sync0arr.o `test -f 'sync/sync0arr.c' || echo './'`sync/sync0arr.c
cc1: warnings being treated as errors
sync/sync0arr.c: In function 'sync_array_object_signalled':
sync/sync0arr.c:869: warning: pointer targets in passing argument 1 of 'os_atomic_increment' differ in signedness
2009-02-10 05:34:43 +00:00
inaam
a1bb700fd2 branches/zip rb://30
This patch changes the innodb mutexes and rw_locks implementation.
On supported platforms it uses GCC builtin atomics. These changes
are based on the patch sent by Mark Callaghan of Google under BSD
license. More technical discussion can be found at rb://30

Approved by: Heikki
2009-02-09 23:36:25 +00:00
marko
19a3033aac branches/zip: fil_write_lsn_and_arch_no_to_file(): Plug a memory leak. 2009-02-09 13:35:50 +00:00
vasil
6ee1121903 branches/zip:
Remove mysql-test/patches/bug35261.diff because that bug has been fixed
in the MySQL repository.
2009-02-09 11:47:16 +00:00
marko
fd6df2ba78 branches/zip: buf_block_align(): Fix a bogus debug assertion
that was introduced in r4036, to address Issue #161.
2009-02-04 14:09:24 +00:00
marko
ec52bf522a branches/zip: mem_area_free(): Correct a bug that was introduced in r4088.
free() is not the same as ut_free().  ut_free() pairs with ut_malloc(),
not malloc().  free() pairs with malloc() and some other functions.
2009-02-03 07:52:45 +00:00
calvin
f43b923008 branches/zip: fix a compiler error and a warning
Both are minor changes:
1) Compiler error introduced in r4072: double ';' at the end.
2) Warning introduced in r3613: \mem\mem0pool.c(481) : 
warning C4098: 'mem_area_free' : 'void' function returning a value

Approved by: Sunny (IM)
2009-02-03 00:35:56 +00:00
vasil
b21c3e9c7d branches/zip:
Fix the failing innodb-zip test to restore the environment as it was before
the test execution because a newly added feature in the mysql-test framework
does check for this.
2009-02-02 16:33:20 +00:00
vasil
fbc7f95253 branches/zip:
Fix a mysql-test failure in innodb-zip:

main.innodb-zip                          [ fail ]
        Test ended at 2009-02-02 18:13:25

CURRENT_TEST: main.innodb-zip
mysqltest: At line 160: Found line beginning with --  that didn't contain a valid mysqltest command, check your syntax or use # if you intended to write a comment
2009-02-02 16:24:08 +00:00
marko
e97b5d3e3a branches/zip: Enclose some backup functions in #ifdef UNIV_HOTBACKUP.
recv_read_cp_info_for_backup(), recv_scan_log_seg_for_backup():
These functions are only called by InnoDB Hot Backup.
2009-02-02 12:28:17 +00:00
marko
11d57d9369 branches/zip: innobase_start_or_create_for_mysql(): Remove a factual error
in the function comment.  Parameters are not read from a file "srv_init".
2009-02-02 08:48:05 +00:00
vasil
5aa989e25d branches/zip:
Add ChangeLog entry for the change in r4072.
2009-02-02 07:32:04 +00:00
vasil
f2842a215f branches/zip:
Adjust the failing patch patches/information_schema.diff.
2009-01-31 06:05:24 +00:00
marko
6aab391620 branches/zip: Make innodb_adaptive_hash_index settable.
btr_search_disabled: Rename to btr_search_enabled and change the type
to char, so that it can be directly linked to the MySQL parameters.
Note that the variable is protected by btr_search_latch and
btr_search_enabled_mutex, a new mutex introduced in this patch.

btr_search_enabled_mutex: A new mutex, to protect btr_search_enabled
together with btr_search_latch.

buf_pool_drop_hash_index(): New function, to be called from
btr_search_disable().

btr_search_disable(), btr_search_enable(): Fix bugs.  These functions
were previously unused.

btr_search_guess_on_hash(), btr_search_build_page_hash_index():
Check btr_search_enabled once more, while holding btr_search_latch.

btr_cur_search_to_nth_level(): Note that the reads of btr_search_enabled
may be dirty and explain why it should not be a problem.

innobase_adaptive_hash_index: Remove. The variable btr_search_enabled will be used directly instead.

innodb_adaptive_hash_index_update(): New function, an update callback for
innodb_adaptive_hash_index.  This will call either btr_search_disable()
or btr_search_enable() when the value is assigned.  The functions will
be called even if the value does not appear to be changed, e.g., when
setting from TRUE to TRUE or FALSE to FALSE.

rb://85 approved by Heikki Tuuri.  This addresses Issue #163.
2009-01-30 21:30:29 +00:00
marko
635268b769 branches/zip: ibuf_use_t: Add the constant IBUF_USE_COUNT, to eliminate
a gcc warning about an assertion that trivially holds.
The warning was introduced in r4061, in the merge of
branches/innodb+ -r4053.

ibuf_insert(): Let an assertion fail if ibuf_use is unknown.
2009-01-30 10:58:56 +00:00
marko
8b025adba6 branches/zip: Port the applicable parts of r4053 from branches/innodb+:
Implement the global variable innodb_change_buffering, with the
following values:

none - buffer nothing
inserts - buffer inserts (the default)

Approved by Ken Jacobs.
2009-01-29 09:27:09 +00:00
marko
4185e79893 branches/zip: btr0sea.c: Revert the inadvertent change made in r4056. 2009-01-29 07:39:04 +00:00
calvin
533afa46ce branches/zip: Merge revisions 4032:4035 from branches/5.1
All InnoDB related tests passed on Windows, except
known failure in partition_innodb_semi_consistent.

The inadvertent change to btr0sea.c in this commit is reverted in r4060.

  ------------------------------------------------------------------------
  r4035 | vasil | 2009-01-26 09:26:25 -0600 (Mon, 26 Jan 2009) | 23 lines

  branches/5.1:

  Merge a change from MySQL:

    ------------------------------------------------------------
    revno: 2646.161.4
    committer: Tatiana A. Nurnberg <azundris@mysql.com>
    branch nick: 51-31177v2
    timestamp: Mon 2009-01-12 06:32:49 +0100
    message:
      Bug#31177: Server variables can't be set to their current values

      Bounds-checks and blocksize corrections were applied to user-input,
      but constants in the server were trusted implicitly. If these values
      did not actually meet the requirements, the user could not set change
      a variable, then set it back to the (wonky) factory default or maximum
      by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).

      Now checks also apply to the server's presets. Wonky values and maxima
      get corrected at startup. Consequently all non-offsetted values the user
      sees are valid, and users can set the variable to that exact value if
      they so desire.
2009-01-29 01:06:41 +00:00
marko
15b9f877ec branches/zip: Enclose some functions inside #ifdef UNIV_HOTBACKUP:
ut_sprintf_timestamp_without_extra_chars(), ut_get_year_month_day(),
log_reset_first_header_and_checkpoint(): These functions are only used
in InnoDB Hot Backup.
2009-01-28 13:21:45 +00:00
marko
0f8dcc7cb7 branches/zip: trx0sys.ic: Remove unnecessary #include <data0type.h>. 2009-01-28 12:35:49 +00:00
vasil
3c0d6f302f branches/zip:
Adjust the paths in innodb_lock_wait_timeout.diff with a recent rename of
the test/result files in the MySQL tree.
2009-01-28 06:21:44 +00:00
marko
89cfaddf22 branches/zip: btr_search_validate(): Fix an assertion failure that was
introduced in r4036.
Do not call buf_block_get_space(), buf_block_get_page_no()
unless the block state is BUF_BLOCK_FILE_PAGE.

This bug was reported by Michael.
2009-01-27 22:46:13 +00:00
marko
0a2e4aa324 branches/zip: Revert the change to univ.i that was accidentally
committed in r4045.
2009-01-27 22:33:20 +00:00
marko
938c8ee6b7 branches/zip: btr_search_validate(): Fix a bogus UNIV_DEBUG
assertion failure that was accidentally introduced in r4036.
Instead of calling buf_block_get_frame(), which asserts that the
block must be buffer-fixed, access block->frame directly.  That
is safe, because changes of block->page.state are protected by
the buffer pool mutex, which we are holding.

This bug was reported by Michael.
2009-01-27 22:31:17 +00:00
marko
2300edb00f branches/zip: buf_LRU_invalidate_tablespace(): Fix a race condition:
read zip_size while still holding block_mutex.
2009-01-27 08:05:24 +00:00
vasil
b20b32d1c8 branches/zip:
Adjust the paths in innodb_file_per_table.diff with a recent rename of
the test/result files in the MySQL tree.
2009-01-27 06:04:17 +00:00
marko
b707b2e3b1 branches/zip: In r988, the function buf_block_align() was enclosed
within UNIV_DEBUG. The two remaining callers in non-debug builds,
btr_search_guess_on_hash() and btr_search_validate(), were rewritten
to call buf_page_hash_get().

To implement support for a resizeable buffer pool, the function
buf_block_align() had been rewritten to perform a page hash lookup in
the buffer pool. The caller was also made responsible for holding the
buffer pool mutex.

Because the page hash lookup is expensive and it has to be done while
holding the buffer pool mutex, implement buf_block_align() by pointer
arithmetics again, and make btr_search_guess_on_hash() call it. Note
that this will have to be adjusted if the interface to the resizeable
buffer pool is actually implemented.

rb://83 approved by Heikki Tuuri, to address Issue #161.

As a deviation from the approved patch, this patch also makes
btr_search_validate() (invoked by CHECK TABLE) check that
buf_pool->page_hash is consistent with buf_block_align().
2009-01-26 20:33:20 +00:00
marko
0dfed5a8f3 branches/zip: buf_page_get_gen(): Fix a "possibly uninitialized" warning
that was introduced in r4030.
2009-01-26 14:16:39 +00:00
marko
e75eaabaeb branches/zip: Merge revisions 4005:4032 from branches/5.1:
------------------------------------------------------------------------
  r4032 | marko | 2009-01-23 15:43:51 +0200 (Fri, 23 Jan 2009) | 10 lines

  branches/5.1: Merge r4031 from branches/5.0:

  btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
  returns NULL.  The page may have been evicted from the buffer pool
  between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
  because the buffer pool mutex will be released between these two calls.
  (Bug #42279, Issue #160)

  rb://82 approved by Heikki Tuuri
  ------------------------------------------------------------------------
2009-01-23 13:49:04 +00:00
marko
5dceabc908 branches/zip: buf_page_get_gen(): Remove the unused mode BUF_GET_NOWAIT.
This was noticed while investigating Issue #160.
2009-01-23 13:31:36 +00:00
marko
0bd67bdba1 branches/zip: Remove some redundant #include directives. 2009-01-23 12:07:38 +00:00
marko
70ca1bee38 branches/zip: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE.
This will help trim the dependencies of InnoDB Hot Backup.

recv_recovery_from_checkpoint_start(): Rename to
recv_recovery_from_checkpoint_start_func(), and remove the two first
parameters unless UNIV_LOG_ARCHIVE is defined.  Define and use
the auxiliary macros TYPE_CHECKPOINT and LIMIT_LSN in the function.

struct recv_sys_struct: Remove archive_group unless UNIV_LOG_ARCHIVE
is defined.

Do not define LOG_ARCHIVE unless UNIV_LOG_ARCHIVE is defined.
2009-01-23 09:26:10 +00:00
marko
bef98e3442 branches/zip: Remove some redundant #include statements. 2009-01-23 09:04:49 +00:00
vasil
2ff10a87f7 branches/zip:
Add ChangeLog entries for the bugfixes in r4004 and r4005.
2009-01-20 15:01:08 +00:00
marko
7944c2cac9 branches/zip: Merge revisions 3930:4005 from branches/5.1:
------------------------------------------------------------------------
  r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines

  branches/5.1: Merge r4003 from branches/5.0:

  rec_set_nth_field(): When the field already is SQL null,
  do nothing when it is being changed to SQL null. (Bug #41571)

  Normally, MySQL does not pass "do-nothing" updates to the storage engine.
  When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
  is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
  without this fix.

  rb://81 approved by Heikki Tuuri
  ------------------------------------------------------------------------
  r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines

  branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
  accessing table->locks and release kernel_mutex before returning from
  the function.  This fixes a portential race condition in the
  "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
  and OPTIMIZE TABLE. (Bug #42152)

  rb://80 approved by Heikki Tuuri
  ------------------------------------------------------------------------
2009-01-20 14:29:22 +00:00
marko
fa3e41cb3c branches/zip: Add assertions that the kernel_mutex is being held
while accessing table->locks or un_member.tab_lock.locks.
This is related to Issue #158.  According to static analysis,
the added debug assertions should always hold.

lock_table_has_to_wait_in_queue(), lock_queue_iterator_reset(),
lock_queue_iterator_get_prev(), add_trx_relevant_locks_to_cache(),
fetch_data_into_cache(): Add ut_ad(mutex_own(&kernel_mutex)).
2009-01-16 12:53:40 +00:00