Commit graph

2014 commits

Author SHA1 Message Date
calvin
75fbaa78d5 branches/zip: fix a type in r5935
Should be innodb_open_files, spotted by Michael.
2009-09-21 13:53:22 +00:00
vasil
2f41cc6472 branches/zip:
Add ChangeLog entries for c5938.
2009-09-21 04:26:04 +00:00
calvin
5af4815f80 branches/zip: Merge revisions 2584:2956 from branches/6.0,
except c2932.

Bug#37232 and bug#31183 were fixed in the 6.0 branch only.
They should be fixed in the plugin too, specially MySQL 6.0
is discontinued at this point.

    ------------------------------------------------------------------------
    r2604 | inaam | 2008-08-21 09:37:06 -0500 (Thu, 21 Aug 2008) | 8 lines

    branches/6.0     bug#37232

    Relax locking behaviour for REPLACE INTO t SELECT ... FROM t1.
    Now SELECT on t1 is performed as a consistent read when the isolation
    level is set to READ COMMITTED.

    Reviewed by: Heikki
    ------------------------------------------------------------------------
    r2605 | inaam | 2008-08-21 09:59:33 -0500 (Thu, 21 Aug 2008) | 7 lines

    branches/6.0

    Added a comment to clarify why distinct calls to read MySQL binary
    log file name and log position do not entail any race condition.

    Suggested by: Heikki
    ------------------------------------------------------------------------
    r2956 | inaam | 2008-11-04 04:47:30 -0600 (Tue, 04 Nov 2008) | 11 lines

    branches/6.0  bug#31183

    If the system tablespace runs out of space because 'autoextend' is
    not specified with innodb_data_file_path there was no error message
    printed to the error log. The client would get 'table full' error.
    This patch prints an appropriate error message to the error log.

    rb://43

    Approved by: Marko
    ------------------------------------------------------------------------
2009-09-19 06:14:25 +00:00
calvin
411864293e branches/zip: fix bug#44338; minor non-functional changes
Bug#44338 innodb has message about non-existing option 
innodb_max_files_open. Change the option to innodb_open_files.
The fix was committed into 6.0 branch.
2009-09-18 20:08:02 +00:00
vasil
23a1c5d3a1 branches/zip:
Fix typo.
2009-09-18 16:06:46 +00:00
vasil
520500534a branches/zip:
White space and formatting cleanup in the ChangeLog
2009-09-18 03:59:30 +00:00
marko
866adf529d branches/zip: innodb-zip.test: Make the test work with zlib 1.2.3.3.
Apparently, the definition of compressBound() has slightly changed.

This has been filed as Mantis Issue #345.
2009-09-17 05:32:08 +00:00
vasil
eebb00baf2 branches/zip:
Add ChangeLog entries for r5916.
2009-09-16 17:47:22 +00:00
vasil
354e4c9a64 branches/zip:
Whitespace cleanup in the ChangeLog.
2009-09-16 17:37:13 +00:00
marko
44cae3eda8 branches/zip: innobase_get_cset_width(): Cache the value of current_thd. 2009-09-16 08:56:23 +00:00
marko
6f14c55872 branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700
(changes to CMakeLists.txt)

  ------------------------------------------------------------------------
  r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
  Changed paths:
     M /branches/5.1/Makefile.am

  branches/5.1:

  Merge a change from MySQL:

    ------------------------------------------------------------
    revno: 2988
    committer: Satya B <satya.bn@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Wed 2009-07-01 11:06:05 +0530
    message:
      Fix build failure after applying Innodb snapshot 5.1-ss5282

      After applying Innodb snapshot 5.1-ss5282, build was broken
      because of missing header file.

      Adding the header file to Makefile.am after informing the
      innodb developers.
    modified:
      storage/innobase/Makefile.am
  ------------------------------------------------------------------------
  r5740 | jyang | 2009-09-03 06:33:47 +0300 (Thu, 03 Sep 2009) | 5 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/db0err.h
     A /branches/5.1/mysql-test/innodb_bug46000.result
     A /branches/5.1/mysql-test/innodb_bug46000.test

  branches/5.1: Disallow creating index with the name of
  "GEN_CLUST_INDEX" which is reserved for the default system
  primary index. (Bug #46000) rb://149 approved by Sunny Bains.
  ------------------------------------------------------------------------
  r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
  Changed paths:
     M /branches/5.1/dict/dict0dict.c
     M /branches/5.1/handler/ha_innodb.cc
     A /branches/5.1/mysql-test/innodb_bug44369.result
     A /branches/5.1/mysql-test/innodb_bug44369.test
     M /branches/5.1/row/row0mysql.c

  branches/5.1: Block creating table with column name conflicting
  with Innodb reserved key words. (Bug #44369) rb://151 approved
  by Sunny Bains.
  ------------------------------------------------------------------------
  r5757 | jyang | 2009-09-04 04:26:13 +0300 (Fri, 04 Sep 2009) | 3 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/db0err.h
     D /branches/5.1/mysql-test/innodb_bug46000.result
     D /branches/5.1/mysql-test/innodb_bug46000.test

  branches/5.1: Revert change in 5740. Making the fix in a subsequent
  check in.
  ------------------------------------------------------------------------
  r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
  Changed paths:
     M /branches/5.1/dict/dict0dict.c
     M /branches/5.1/handler/ha_innodb.cc
     D /branches/5.1/mysql-test/innodb_bug44369.result
     D /branches/5.1/mysql-test/innodb_bug44369.test
     M /branches/5.1/row/row0mysql.c

  branches/5.1: This is to revert change 5741. A return status for
  create_table_def() needs to be fixed.
  ------------------------------------------------------------------------
  r5797 | calvin | 2009-09-09 18:26:29 +0300 (Wed, 09 Sep 2009) | 3 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc

  branches/5.1: merge change from 5.1.38

  HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
  ------------------------------------------------------------------------
  r5799 | calvin | 2009-09-09 20:47:31 +0300 (Wed, 09 Sep 2009) | 10 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc

  branches/5.1: fix bug#46256

  Allow tables to be dropped even if the collation is not found,
  but issue a warning.

  Could not find an easy way to add mysql-test since it requires
  changes to charsets and restarting the server. Tests were
  executed manually.

  Approved by: Heikki (on IM)
  ------------------------------------------------------------------------
  r5805 | vasil | 2009-09-10 08:41:48 +0300 (Thu, 10 Sep 2009) | 7 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc

  branches/5.1:

  Fix a compilation warning caused by c5799:

  handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
  handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
  ------------------------------------------------------------------------
  r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
  Changed paths:
     M /branches/5.1/dict/dict0dict.c
     M /branches/5.1/handler/ha_innodb.cc
     A /branches/5.1/mysql-test/innodb_bug44369.result
     A /branches/5.1/mysql-test/innodb_bug44369.test
     M /branches/5.1/row/row0mysql.c

  branches/5.1: Block creating table with column name conflicting
  with Innodb reserved key words. (Bug #44369) rb://151 approved
  by Sunny Bains.
  ------------------------------------------------------------------------
  r5895 | jyang | 2009-09-15 03:39:21 +0300 (Tue, 15 Sep 2009) | 5 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     A /branches/5.1/mysql-test/innodb_bug46000.result
     A /branches/5.1/mysql-test/innodb_bug46000.test

  branches/5.1: Disallow creating index with the name of
  "GEN_CLUST_INDEX" which is reserved for the default system
  primary index. (Bug #46000) rb://149 approved by Marko Makela.
  ------------------------------------------------------------------------
2009-09-16 08:54:43 +00:00
marko
d6faf6c464 branches/zip: Introduce UNIV_LOG_LSN_DEBUG and MLOG_LSN for redo log
diagnostics.  This was written in order to better track down
Issue #313 in InnoDB Hot Backup.

MLOG_LSN: A new redo log entry type, for recording the current log
sequence number (LSN).  This will be checked in an assertion in
recv_parse_log_rec().

rb://161, discussed with Sunny and Vasil.
2009-09-16 07:07:21 +00:00
marko
e0090e408c branches/zip: ut0ut.h: Do not #include "os0sync.h" #ifdef UNIV_HOTBACKUP.
Since r5872, the InnoDB Hot Backup build was broken.
Fix it by not defining any thread synchronization primitives in ut0ut.h.
InnoDB Hot Backup is a single-threaded program.
2009-09-15 10:26:01 +00:00
marko
272fb2d42d branches/zip: Add */.dirstamp to svn:ignore,
for https://svn.innodb.com/svn/hotbackup/branches/3.5
2009-09-15 09:18:50 +00:00
marko
fca68766f9 branches/zip: Avoid bogus messages about latching order violations when
UNIV_SYNC_DEBUG is defined.

sync_thread_levels_g(): Add the parameter "warn".  Do not print
anything unless it is set.

sync_thread_add_level(): Pass warn=TRUE to sync_thread_levels_g()
when the check is within an assertion; FALSE if it is not.
2009-09-15 07:29:00 +00:00
inaam
1490f879e2 branches/zip rb://159
In case of pages that are not made young the counter is incremented
only when the page in question is 'old'. In case of pages that are
made young the counter is incremented in case of all pages. For apple
to apple comparison this patch changes the 'young-making' counter to
consider only 'old' blocks.

Approved by: Marko
2009-09-14 14:20:48 +00:00
vasil
164ba87ece branches/zip:
Add missing return statement in the test program that could have
caused a warning.
2009-09-14 08:17:18 +00:00
vasil
78b505b47f branches/zip:
Back-merge c5880 and c5881 from branches/embedded-1.0:

  ------------------------------------------------------------------------
  r5880 | vasil | 2009-09-12 17:28:44 +0300 (Sat, 12 Sep 2009) | 18 lines
  Changed paths:
     M /branches/embedded-1.0/configure.in
     M /branches/embedded-1.0/include/os0sync.h
     M /branches/embedded-1.0/srv/srv0start.c
  
  branches/embedded-1.0:
  
  Clean up and simplify the code that surrounds the atomic ops:
  
  * Simplify the code that prints what atomics are used:
  Instead of repeating the same conditions on which each atomics are used
  use just one printf that prints a variable defined by the code which
  chooses what atomics to use.
  
  * In os0sync.h pick up each atomic variant only if it has been selected
  by autoconf (based on IB_ATOMIC_MODE_* macros). Define the startup message
  to be printed.
  
  * In configure.in: check what user has chosen and if he has chosen
  something that is not available, emit an error. If nothing has been chosen
  explicitly by the user, auto select an option according to the described
  logic in configure.in.
  
  ------------------------------------------------------------------------
  r5881 | vasil | 2009-09-12 20:08:27 +0300 (Sat, 12 Sep 2009) | 4 lines
  Changed paths:
     M /branches/embedded-1.0/configure.in
  
  branches/embedded-1.0:
  
  Fix syntax error in test program.
  
  ------------------------------------------------------------------------
2009-09-14 07:38:45 +00:00
vasil
f2bb363bc8 branches/zip:
Remove unnecessary macro.
2009-09-12 11:11:25 +00:00
vasil
729cb51007 branches/zip:
Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
2009-09-12 08:35:17 +00:00
vasil
a2b17a33ca branches/zip:
Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and 
IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
all follow the same HAVE_IB_* convention.
2009-09-12 08:25:44 +00:00
vasil
7bb8d19ceb branches/zip:
Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
instead of in univ.i. The code expects os_*() macros to be present if
HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
them next to defining the os_*() macros.
2009-09-12 08:13:44 +00:00
vasil
ff368dec8a branches/zip:
Include ut0auxconf.h only if none of the macros it would define is defined.
The check when to include this header was outdated from the time when there
was only one macro involved.

Move the atomics checks that are in univ.i outside of
#if windows ... #else ... #endif
This simplifies the code and removes some duplicates like defining
HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.

Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
2009-09-12 07:33:11 +00:00
vasil
69bf228c69 branches/zip:
Move the check whether to include ut0auxconf.h before everything because
we are now even checking for GCC atomics, we relied on MySQL to define
this macro before.
2009-09-12 07:01:17 +00:00
vasil
96c1bc3244 branches/zip:
Update comment to reflect reality.
2009-09-12 06:43:45 +00:00
vasil
9bb26d5d7f branches/zip:
Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
2009-09-12 06:30:08 +00:00
vasil
43f8d26e5a branches/zip:
Simplify the compile time checks by splittig them into 5 independent checks:

* Whether GCC atomics are available
* Whether pthread_t can be used by GCC atomics
* Whether Solaris libc atomics are available
* Whether pthread_t can be used by Solaris libs atomics
* Checking the size of pthread_t
2009-09-12 06:26:03 +00:00
vasil
2f416fa23f branches/zip:
Include string.h which is needed for memset().
2009-09-12 06:22:55 +00:00
vasil
ae766b35f5 branches/zip:
Check that pthread_t can indeed be passed to Solaris atomic functions, instead
of assuming that it can be passed if 0 can be assigned to it. It could be that:
* 0 can be assigned, but pthread_t cannot be passed and
* 0 cannot be assigned but pthread_t can be passed

Better to check what we are interested in, not something else and make
assumptions.
2009-09-12 06:07:08 +00:00
vasil
cc78975784 branches/zip:
Fix the indentation of the closing bracket.
2009-09-11 16:46:47 +00:00
marko
7fd517a79d branches/zip: Roll back recovered dictionary transactions before
dropping incomplete indexes (Issue #337).

trx_rollback_or_clean_recovered(ibool all): New function, split from
trx_rollback_or_clean_all_recovered().  all==FALSE will only roll back
dictionary transactions.

recv_recovery_from_checkpoint_finish(): Call
trx_rollback_or_clean_recovered(FALSE) before
row_merge_drop_temp_indexes().

rb://158 approved by Sunny Bains
2009-09-10 10:29:46 +00:00
marko
3bd1a9fbfd branches/zip: Reduce mutex contention that was introduced when
addressing Bug #45015 (Issue #316), in r5703.

buf_page_set_accessed_make_young(): New auxiliary function, called by
buf_page_get_zip(), buf_page_get_gen(),
buf_page_optimistic_get_func(). Call ut_time_ms() outside of
buf_pool_mutex. Use cached access_time.

buf_page_set_accessed(): Add the parameter time_ms, so that
ut_time_ms() need not be called while holding buf_pool_mutex.

buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
buf_page_t::access_time without holding buf_pool_mutex. This should be
OK, because the field is only used for heuristic purposes.

buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
FALSE, so that we will not waste time moving blocks in the LRU list in
the warm-up phase or when the workload fits in the buffer pool.

rb://156 approved by Sunny Bains
2009-09-10 09:47:09 +00:00
marko
baaf443343 branches/zip: buf_page_release(): De-stutter the function comment. 2009-09-10 09:10:20 +00:00
marko
5bae37f691 branches/zip: trx_cleanup_at_db_startup(): Fix a typo in comment. 2009-09-10 04:29:31 +00:00
calvin
c8cb3ab8dd branches/zip:
HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
But the plugin should still work with previous versions
of MySQL.
2009-09-09 14:28:10 +00:00
vasil
549e764431 branches/zip:
Fix a bug in manipulating the variable innodb_old_blocks_pct:

for any value assigned it got that value -1, except for 75. When
assigned 75, it got 75.

  mysql> set global innodb_old_blocks_pct=15;
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> show variables like 'innodb_old_blocks_pct';
  +-----------------------+-------+
  | Variable_name         | Value |
  +-----------------------+-------+
  | innodb_old_blocks_pct | 14    | 
  +-----------------------+-------+
  1 row in set (0.00 sec)
  
  mysql> set global innodb_old_blocks_pct=75;
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> show variables like 'innodb_old_blocks_pct';
  +-----------------------+-------+
  | Variable_name         | Value |
  +-----------------------+-------+
  | innodb_old_blocks_pct | 75    | 
  +-----------------------+-------+

After the fix it gets exactly what was assigned.

Approved by:	Marko (via IM)
2009-09-09 12:35:58 +00:00
marko
944431f027 branches/zip: buf_page_is_accessed(): Correct the function comment. 2009-09-09 06:25:00 +00:00
marko
2b85929647 branches/zip: buf_page_peek_if_too_old(): Silence a compiler warning
that was introduced in r5779 on 32-bit systems.
2009-09-09 06:00:59 +00:00
marko
3952b42b75 branches/zip: ut_time_ms(): Return ulint, not uint. 2009-09-09 05:50:50 +00:00
marko
5419aefd62 branches/zip: buf_page_peek_if_too_old(): Make the bitmasking work when
buf_pool->freed_page_clock is wider than 32 bits.
2009-09-09 05:17:19 +00:00
marko
36b963cc5e branches/zip: Remove BUF_LRU_INITIAL_RATIO, which should have been removed
together with buf_LRU_get_recent_limit().
2009-09-08 14:50:25 +00:00
calvin
263266707c branches/zip: Build InnoDB on Windows with UNIV_HOTBACKUP
The changes are non-functional changes for normal InnoDB,
but needed for building the Hot Backup on Windows (with
UNIV_HOTBACKUP defined).

- Define os_aio_use_native_aio for HB.
- Do not acquire seek mutexes for backup since HB is single threaded.
- Do not use srv_flush_log_at_trx_commit for HB build

rb://155

Approved by: Marko
2009-09-07 20:15:05 +00:00
marko
b905fc4d62 branches/zip: recv_recover_page_func(): Write the log sequence number
to the compressed page, if there is one.  Previously, the function only
wrote the LSN to the uncompressed page.

It is not clear why recv_recover_page_func() is updating FIL_PAGE_LSN
in the buffer pool.  The log sequence number will be stamped on the
page when it is flushed to disk, in buf_flush_init_for_writing().
I noticed this inconsistency when analyzing Issue #313, but this patch
does not fix it.  That is no surprise, since FIL_PAGE_LSN should only
matter on disk files, not in the buffer pool.
2009-09-03 13:55:51 +00:00
marko
9b774a00e8 branches/zip: row_merge(): Remove a bogus debug assertion
that was triggered when creating an index on an empty table.

row_merge_sort(): Add debug assertions and comments that justify
the loop termination condition.

The bogus assertion ut_ad(ihalf > 0) was reported by Michael.
2009-09-03 13:36:15 +00:00
marko
3596a58d3e branches/zip: MLOG_MULTI_REC_END: Correct the comment. 2009-09-03 10:05:44 +00:00
marko
6db95370ab branches/zip: recv_scan_log_recs(): Replace while with do...while,
because the termination condition will always hold on the first iteration.
2009-09-03 09:46:38 +00:00
marko
932c00c32c branches/zip: log_reserve_and_write_fast(): Do not cache the log_sys pointer
in a local variable.
2009-09-03 07:55:36 +00:00
marko
92e8d1b2b6 branches/zip: log_check_log_recs(): Enclose in #ifdef UNIV_LOG_DEBUG.
Add const qualifiers.
2009-09-03 07:38:22 +00:00
marko
1a83ac7fc4 branches/zip: ut_align(): Make ptr const, like in ut_align_down(). 2009-09-03 07:28:35 +00:00
marko
2ee3352082 branches/zip: log_reserve_and_write_fast(): Remove the redundant
output parameter "success".
Success is also indicated by a nonzero return value.
2009-09-03 05:36:12 +00:00