Commit graph

1574 commits

Author SHA1 Message Date
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
marko
68247c5fa6 branches/zip: page_validate(): Always report the space id and the
name of the index.

In Hot Backup, do not invoke comparison functions, as MySQL collations
will be unavailable.
2009-03-20 10:52:14 +00:00
marko
e9760189d6 branches/zip: Add const qualifiers or in/out comments to some function
parameters in log0log.
2009-03-20 10:45:18 +00:00
marko
184ee4885c branches/zip: Non-functional change for reducing dependencies in InnoDB Hot Backup:
Replace srv_sys->dummy_ind1 and srv_sys->dummy_ind2 with
dict_ind_redundant and dict_ind_compact, initialized in dict_init().
2009-03-20 10:33:33 +00:00
marko
113101682f branches/zip: Merge revisions 4400:4481 from branches/5.1:
------------------------------------------------------------------------
  r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines

  branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
  modified by the current transaction.  This bug was introduced or unmasked
  in r4400.

  rb://97 approved by Heikki Tuuri
  ------------------------------------------------------------------------
2009-03-19 13:23:32 +00:00
marko
bbd50cdb96 branches/zip: buf_buddy_free_low(): Correct the function comment. 2009-03-18 12:32:13 +00:00
marko
c3d8b9b07c branches/zip: buf_LRU_block_remove_hashed_page(): Add some debug assertions. 2009-03-18 10:43:54 +00:00
vasil
a10dbcf572 branches/zip:
Remove mysql-test/patches/bug41893.diff because that bug has been fixed
in the MySQL repository, see http://bugs.mysql.com/41893.
2009-03-18 09:53:53 +00:00
vasil
5088cbd2c0 branches/zip:
Increment the InnoDB Plugin version from 1.0.3 to 1.0.4 now that
1.0.3 has been released.
2009-03-17 13:50:30 +00:00
marko
7f61b840f3 branches/zip: buf0buddy.c: Add and adjust some debug assertions. 2009-03-17 10:34:19 +00:00
vasil
b0886420bb branches/zip:
Remove mysql-test/patches/bug32625.diff because that bug was fixed in
the mysql repository (1 year and 4 months after sending them the simple
patch!). See http://bugs.mysql.com/32625
2009-03-17 07:38:19 +00:00
marko
51d210d480 branches/zip: sync_thread_add_level(): Make the assertions about
level == SYNC_BUF_BLOCK more readable.
2009-03-16 12:12:02 +00:00
marko
0511d15392 branches/zip: UT_LIST_VALIDATE(): Assert that the link is non-NULL
before dereferencing it.  In this way, ut_list_node_313 will be
pointing to the last non-NULL list item at the time of the assertion
failure.  (gcc-4.3.2 -O3 seems to optimize the common subexpressions
and make the variable NULL, though.)
2009-03-16 10:59:25 +00:00
marko
ee2b2dc739 branches/zip: UT_LIST_VALIDATE(): Add the parameter ASSERTION and
adjust all callers.
2009-03-16 09:43:34 +00:00
marko
48070b5332 branches/zip: Merge revisions 4359:4400 from branches/5.1:
------------------------------------------------------------------------
  r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 2 lines

  branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
  also for unlock_row().  (Bug #39320)
  ------------------------------------------------------------------------
  r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 5 lines

  branches/5.1: Fix a bug in multi-table semi-consistent reads.
  Remember the acquired record locks per table handle (row_prebuilt_t)
  rather than per transaction (trx_t), so that unlock_row should successfully
  unlock all non-matching rows in multi-table operations.
  This deficiency was found while investigating Bug #39320.
  ------------------------------------------------------------------------

These were submitted as rb://94 and rb://96 and approved by Heikki Tuuri.
2009-03-12 08:26:40 +00:00
marko
7b8d03fe54 branches/zip: trx_sys_create_doublewrite_buf(): As the dummy change,
initialize FIL_PAGE_TYPE.  This will make it easier to write the debug
assertions for ibbackup --apply-log.
2009-03-12 07:26:11 +00:00
marko
391592d1b0 branches/zip: btr_store_big_rec_extern_fields(): Initialize FIL_PAGE_TYPE
in a separate redo log entry.  This will make ibbackup --apply-log
debugging easier.
2009-03-12 07:22:27 +00:00
calvin
af74d20640 branches/zip: remove compile flag MYSQL_SERVER for dynamic plugin
The dynamic plugin on Windows used to be built with MYSQL_SERVER
compile flag, while it is not the case for other platforms.
r3797 assumed MYSQL_SERVER was not defined for dynamic plugin,
which introduced the engine crash during dropping a database.
2009-03-09 08:10:17 +00:00
vasil
995814262e branches/zip:
Add ChangeLog entry for the bugfix in c4360.
2009-03-05 20:31:37 +00:00
vasil
eaf12b9438 branches/zip: Merge revision 4359 from branches/5.1:
------------------------------------------------------------------------
  r4359 | vasil | 2009-03-05 21:42:01 +0200 (Thu, 05 Mar 2009) | 14 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Merge a change from MySQL:
  
    ------------------------------------------------------------
    revno: 2747
    committer: Timothy Smith <timothy.smith@sun.com>
    branch nick: 51
    timestamp: Fri 2009-01-16 17:49:07 +0100
    message:
      Add another cast to ignore int/ulong difference in error types, silence warning on Win64
    modified:
      storage/innobase/handler/ha_innodb.cc
  
  ------------------------------------------------------------------------
2009-03-05 20:29:07 +00:00
vasil
bbbce3d8c9 branches/zip: Merge revision 4358 from branches/5.1 (resolving a conflict):
------------------------------------------------------------------------
  r4358 | vasil | 2009-03-05 21:21:10 +0200 (Thu, 05 Mar 2009) | 21 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Merge a change from MySQL:
  
    ------------------------------------------------------------
    revno: 2728.19.1
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2009-02-03 11:36:46 +0000
    message:
      BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
            
      There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
      (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
      of type 'ulint' while mysql uses an 'int'. 
            
      To fix the problem the function manipulates an error variable of
      type 'ulint' and only casts it into 'int' when needs to return the value.
    modified:
      storage/innobase/handler/ha_innodb.cc
  
  ------------------------------------------------------------------------
2009-03-05 20:27:54 +00:00
vasil
602ce08d2f branches/zip: Merge revisions 4287:4357 from branches/5.1:
------------------------------------------------------------------------
  r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
  It was not a SIGSEGV but an assertion failure. The assertion was checking
  the invariant that *first_value passed in by MySQL doesn't contain a value
  that is greater than the max value for that type. The assertion has been
  changed to a check and if the value is greater than the max we report a
  generic AUTOINC failure.
  
  rb://93
  Approved by Heikki
  
  ------------------------------------------------------------------------
2009-03-05 20:23:17 +00:00
vasil
3c9bec1100 branches/zip:
Implement a check whether pthread_t objects can be used by GCC atomic
builtin functions. This check is implemented in plug.in and defines the
macro HAVE_ATOMIC_PTHREAD_T. This macro is checked in univ.i and the
relevant part of the code enabled (the one that uses GCC atomics against
pthread_t objects).

In addition to this, the same program that is compiled as part of the
plug.in check is added in ut/ut0auxconf.c. In the InnoDB Plugin source
archives that are shipped to the users, a generated Makefile.in is added.
That Makefile.in will be modified to compile ut/ut0auxconf.c and define
the macro HAVE_ATOMIC_PTHREAD_T if the compilation succeeds. I.e.
Makefile.in will emulate the work that is done by plug.in. This is done in
order to make the check happen and HAVE_ATOMIC_PTHREAD_T eventually
defined without regenerating MySQL's ./configure from
./storage/innobase/plug.in. The point is not to ask users to install the
autotools and regenerate ./configure.

rb://95

Approved by:	Marko
2009-03-05 14:38:59 +00:00
vasil
584f4cea77 branches/zip:
Fix typo made in r4353.
2009-03-05 11:49:51 +00:00
vasil
16010bad91 branches/zip:
As suggested by Ken, print a message that says that the Google SMP patch
(GCC atomics) is disabled if it is. Also extend the message when the patch
is partially enabled to make it clear that it is partially enabled.
2009-03-05 07:27:29 +00:00
vasil
94ea323ea8 branches/zip:
Add FreeBSD to the list of the operating systems that have
sizeof(pthread_t) == sizeof(void*) (i.e. word size).

On FreeBSD pthread_t is defined like:

  /usr/include/sys/_pthreadtypes.h:

  typedef struct  pthread                 *pthread_t;

I did the following tests (per Inaam's recommendation):

a) appropriate version of GCC is available on that platform (4.1.2 or
higher for atomics to be available)

  On FreeBSD 6.x the default compiler is 3.4.6, on FreeBSD 7.x the default
  one is 4.2.1. One can always install the version of choice from the ports
  collection. If gcc 3.x is used then HAVE_GCC_ATOMIC_BUILTINS will not be
  defined and thus the change I am committing will make no difference.

b) find out if sizeof(pthread_t) == sizeof(long)

  On 32 bit both are 4 bytes, on 64 bit both are 8 bytes.

c) find out the compiler generated platform define (e.g.: __aix, __sunos__
etc.)

  The macro is __FreeBSD__.

d) patch univ.i with the appropriate platform define
e) build the mysql
f) ensure it is using atomic builtins (look at the err.log message at
system startup. It should say we are using atomics for both mutexes and
rw-locks)
g) do sanity testing (keeping in view the smp changes)

  I ran the mysql-test suite. All tests pass.
2009-02-27 11:27:18 +00:00
inaam
4b020d3ad5 branches/zip
This is a fix for issue#178. Instead of using UNIV_LINUX which is
defined through CFLAGS we use compiler generated define __linux__
that is effective for both .c and .cc files.
2009-02-27 00:16:46 +00:00
inaam
65c50b9bc8 branches/zip
This is to revert the changes made to the plug.in (r4251) as a fix for
issue# 178. Changes to plug.in will not propogate to a plugin
installation unless autotools are rerun which is unacceptable.

A fix for issue# 178 will be committed in a separate commit.
2009-02-27 00:13:19 +00:00
marko
e16455819f branches/zip: btr_check_blob_fil_page_type(): Do not report
FIL_PAGE_TYPE mismatch even when purging a BLOB.
Heavy users may have large data files created with MySQL 5.0 or earlier,
and they don not want to have the error log flooded with such messages.

This fixes Issue #182.
2009-02-26 21:27:51 +00:00
vasil
d3a5264fcf branches/zip:
Apply any necessary patches to the mysql tree at the end of setup.sh
This step was previously done manually (and sometimes forgotten).
2009-02-26 07:21:20 +00:00
vasil
1a6c97369f branches/zip:
Do not output the commands that restore the environment because they depend
on the state of the environment before the test starts executing.
2009-02-25 19:33:32 +00:00
vasil
370c303636 branches/zip:
White-space cleanup in the ChangeLog
2009-02-25 15:19:19 +00:00
marko
93ec81bb6d branches/zip: Correct the initialization of the memory subsystem once
again, to finally put Issue #181 to rest.

Revert some parts of r4274.  It is best not to call ut_malloc() before
srv_general_init().

mem_init(): Do not call ut_mem_init().

srv_general_init(): Initialize the memory subsystem in two phases:
first ut_mem_init(), then mem_init().  This is because os_sync_init()
and sync_init() depend on ut_mem_init() and mem_init() depends on
os_sync_init() or sync_init().

srv_parse_data_file_paths_and_sizes(),
srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
to the global variables directly.  Allocate memory with malloc()
instead of ut_malloc(), because these functions will be called before
srv_general_init().

srv_free_paths_and_sizes(): New function, for cleaning up after
srv_parse_data_file_paths_and_sizes() and
srv_parse_log_group_home_dirs().

rb://92 approved by Sunny Bains
2009-02-25 10:09:15 +00:00
vasil
09f6d57af9 branches/zip:
Fix Bug synopsis and remove explanation
2009-02-25 09:08:32 +00:00