Commit graph

328 commits

Author SHA1 Message Date
marko
38657b251e branches/zip: trx_general_rollback_for_mysql(): Remove the redundant
parameter partial. If savept==NULL, partial==FALSE.
2009-08-11 10:42:37 +00:00
calvin
173f74eabe branches/zip: remove duplicate "the" in comments. 2009-08-06 22:04:03 +00:00
inaam
c34ab748cc branches/zip
Change the read ahead parameter name to innodb_read_ahead_threshold.
Change the meaning of this parameter to signify the number of pages
that must be sequentially accessed for InnoDB to trigger a readahead
request.

Suggested by: Ken
2009-07-20 15:23:15 +00:00
vasil
667afaf123 branches/zip: Merge r5497:5518 from branches/5.1:
------------------------------------------------------------------------
  r5518 | vasil | 2009-07-20 11:29:47 +0300 (Mon, 20 Jul 2009) | 22 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Merge a change from MySQL:
  
    ------------------------------------------------------------
    revno: 2874.2.1
    committer: Anurag Shekhar <anurag.shekhar@sun.com>
    branch nick: mysql-5.1-bugteam-windows-warning
    timestamp: Wed 2009-05-13 15:41:24 +0530
    message:
      Bug #39802 On Windows, 32-bit time_t should be enforced
      
      This patch fixes compilation warning, "conversion from 'time_t' to 'ulong', 
      possible loss of data". 
      The fix is to typecast time_t to ulong before assigning it to ulong. 
      Backported this from 6.0-bugteam tree.
    modified:
      storage/archive/ha_archive.cc
      storage/federated/ha_federated.cc
      storage/innobase/handler/ha_innodb.cc
      storage/myisam/ha_myisam.cc
  
  ------------------------------------------------------------------------
2009-07-20 07:45:18 +00:00
vasil
8d57fae29c branches/zip: Merge r5341:5497 from branches/5.1, skipping:
c5419 because it is merge from branches/zip into branches/5.1
c5466 because the source code has been adjusted to match the MySQL
  behavior and the innodb-autoinc test does not fail in branches/zip,
  if c5466 is merged, then innodb-autoinc starts failing, Sunny suggested
  not to merge c5466.
and resolving conflicts in c5410, c5440, c5488:

  ------------------------------------------------------------------------
  r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines
  Changed paths:
     M /branches/5.1/include/trx0sys.ic
     M /branches/5.1/trx/trx0purge.c
     M /branches/5.1/trx/trx0sys.c
     M /branches/5.1/trx/trx0undo.c
  
  branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
  when compiling with -DUNIV_MUST_NOT_INLINE.
  ------------------------------------------------------------------------
  r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb_bug42101-nonzero.result
     M /branches/5.1/mysql-test/innodb_bug42101-nonzero.test
     M /branches/5.1/mysql-test/innodb_bug42101.result
     M /branches/5.1/mysql-test/innodb_bug42101.test
  
  branches/5.1: Merge r5418 from branches/zip:
  
    ------------------------------------------------------------------------
    r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
    Changed paths:
       M /branches/zip/ChangeLog
       M /branches/zip/handler/ha_innodb.cc
       M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
       M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
       M /branches/zip/mysql-test/innodb_bug42101.result
       M /branches/zip/mysql-test/innodb_bug42101.test
    
    branches/zip: Fix a race condition caused by
    SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
    When innodb_commit_concurrency is initially set nonzero,
    DEFAULT would change it back to 0, triggering Bug #42101.
    rb://139 approved by Heikki Tuuri.
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
  r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines
  Changed paths:
     M /branches/5.1/fil/fil0fil.c
  
  branches/5.1:
  
  Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
  
  by changing the URL from
  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
  
  ------------------------------------------------------------------------
  r5466 | vasil | 2009-07-02 10:46:45 +0300 (Thu, 02 Jul 2009) | 6 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1:
  
  Adjust the failing innodb-autoinc test to conform to the latest behavior
  of the MySQL code. The idea and the comment in innodb-autoinc.test come
  from Sunny.
  
  ------------------------------------------------------------------------
  r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     A /branches/5.1/mysql-test/innodb_bug21704.result
     A /branches/5.1/mysql-test/innodb_bug21704.test
  
  branches/5.1:
  
  Fix Bug#21704 Renaming column does not update FK definition
  
  by checking whether a column that participates in a FK definition is being
  renamed and denying the ALTER in this case.
  
  The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
  http://lists.mysql.com/commits/77714
  and was later adjusted to conform to InnoDB coding style by me (Vasil),
  I also added some more comments and moved the bug specific mysql-test to
  a separate file to make it more manageable and flexible.
  
  ------------------------------------------------------------------------
2009-07-14 06:16:18 +00:00
vasil
95a9790ceb branches/zip:
Change the defaults for
innodb_sync_spin_loops: 20 -> 30
innodb_spin_wait_delay: 5 -> 6

This change was proposed by Sun/MySQL based on their performance testing,
see https://svn.innodb.com/innobase/Release_tasks_for_InnoDB_Plugin_V1.0.4
2009-07-10 08:02:22 +00:00
inaam
43fceb74f2 branches/zip rb://133
This patch introduces heuristics based flushing rate of dirty pages to
avoid IO bursts at checkpoint.

1) log_capacity / log_generated per second gives us number of seconds
in which ALL dirty pages need to be flushed. Based on this rough
assumption we can say that
n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate

2) We use weighted averages (hard coded to 20 seconds) of
log_generation_rate to avoid resonance.

3) From the desired_flush_rate we subtract the number of pages that have
been flushed due to LRU flushing. That gives us pages that we should
flush as part of flush_list cleanup. And that is the number (capped by
maximum io_capacity) that we try to flush from the master thread.

Knobs:
======

innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
Since this heuristic is very experimental and has the potential to
dramatically change the IO pattern I think it is a good idea to leave a
knob to turn it off.

Approved by: Heikki
2009-07-08 15:11:40 +00:00
inaam
462111149c branches/zip rb://126
Based on contribution from Google Inc.
This patch introduces a new parameter innodb_io_capacity to control the
rate at which master threads performs various tasks. The default value
is 200 and higher values imply more aggressive flushing and ibuf merges
from within the master thread.
This patch also changes the ibuf merge from synchronous to asynchronous.
Another minor change is not to force the master thread to wait for a
log flush to complete every second.

Approved by: Heikki
2009-07-07 21:57:14 +00:00
inaam
35bcc4ee2b branches/zip
Non functional change. s/Percona/Percona Inc./
2009-06-30 17:21:09 +00:00
marko
6bfbdb2d0d branches/zip: Do not crash on SET GLOBAL innodb_file_format=DEFAULT
or SET GLOBAL innodb_file_format_check=DEFAULT.

innodb_file_format.test: New test for innodb_file_format and
innodb_file_format_check.

innodb_file_format_name_validate(): Store the string in *save.
innodb_file_format_name_update(): Check the string again.

innodb_file_format_check_validate(): Store the string in *save.
innodb_file_format_check_update(): Check the string again.

Issue #282, rb://140 approved by Heikki Tuuri
2009-06-29 12:49:54 +00:00
marko
3bc2b8f158 branches/zip: ha_innobase::add_index(), ha_innobase::final_drop_index():
Start prebuilt->trx before locking the table.  This should fix Issue #293
and could fix Issue #229.
Approved by Sunny (over IM).
2009-06-29 07:52:30 +00:00
marko
bb0e1c34df branches/zip: Fix a race condition caused by
SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
When innodb_commit_concurrency is initially set nonzero,
DEFAULT would change it back to 0, triggering Bug #42101.
rb://139 approved by Heikki Tuuri.
2009-06-25 11:55:52 +00:00
marko
3b765849d4 branches/zip: ha_innodb.cc: Move the misplaced Doxygen @file comment. 2009-06-25 11:20:56 +00:00
marko
943c28d5a8 branches/zip: Replace a DBUG_ASSERT with ut_a to track down Issue #290. 2009-06-25 09:27:08 +00:00
calvin
73823ce1d2 branches/zip: remove relative path of header files.
Suggested by Marko.
2009-06-24 12:51:08 +00:00
calvin
eebca3bfea branches/zip: change the header file path.
Change the header file path from ../storage/innobase/include/
to ../include/. In the planned 5.1 + plugin release, the source
directory of the plugin will not be in storage/innobase.

Approved by: Heikki (IM)
2009-06-23 19:59:42 +00:00
marko
55cb42519b branches/zip: ha_innobase::check_if_incompatible_data(): When
ROW_FORMAT=DEFAULT, do not compare to get_row_type().
Without this change, fast index creation will be disabled
in recent versions of MySQL 5.1.
2009-06-22 10:58:20 +00:00
marko
9226817201 branches/zip: Merge revisions 5233:5341 from branches/5.1:
------------------------------------------------------------------------
  r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines

  branches/5.1: Merge the test case from r5232 from branches/5.0:
    ------------------------------------------------------------------------
    r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines

    branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
    (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").

    Also, add a test case for Bug #40565.

    rb://128 approved by Heikki Tuuri
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
  r5243 | sunny | 2009-06-04 03:17:14 +0300 (Thu, 04 Jun 2009) | 14 lines

  branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
  the bug fix we would assert on missing autoinc columns. With this fix we allow
  MySQL to open the table but set the next autoinc value for the column to the
  MAX value. This effectively disables the next value generation. INSERTs will
  fail with a generic AUTOINC failure. However, the user should be able to
  read/dump the table, set the column values explicitly, use ALTER TABLE to
  set the next autoinc value and/or sync the two data dictionaries to resume
  normal operations.

  Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
  index (PRIMARY)

  rb://118
  ------------------------------------------------------------------------
  r5252 | sunny | 2009-06-04 10:16:24 +0300 (Thu, 04 Jun 2009) | 2 lines

  branches/5.1: The version of the result file checked in was broken in r5243.
  ------------------------------------------------------------------------
  r5259 | vasil | 2009-06-05 10:29:16 +0300 (Fri, 05 Jun 2009) | 7 lines

  branches/5.1:

  Remove the word "Error" from the printout because the mysqltest suite
  interprets it as an error and thus the innodb-autoinc test fails.

  Approved by:	Sunny (via IM)
  ------------------------------------------------------------------------
  r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines

  branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
  with -DUNIV_MUST_NOT_INLINE.

  (null merge; this had already been committed in branches/zip)
  ------------------------------------------------------------------------
  r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines

  branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
  refuse to unlock the record.
  (Bug #45357, caused by the fix of Bug #39320).
  rb://132 approved by Sunny Bains.
  ------------------------------------------------------------------------
2009-06-17 09:15:32 +00:00
inaam
99c57a5251 branches/zip rb://131
This patch changes the following defaults:

max_dirty_pages_pct: default from 90 to 75. max allowed from 100 to 99
additional_mem_pool_size: default from 1 to 8 MB
buffer_pool_size: default from 8 to 128 MB
log_buffer_size: default from 1 to 8 MB
read_io_threads/write_io_threads: default from 1 to 4

The log file sizes are untouched because of upgrade issues

Reviewed by: Heikki
2009-06-11 12:15:41 +00:00
inaam
bfa7cf72aa branches/zip
rb://130

Enable Group Commit functionality that was broken in 5.0 when
distributed transactions were introduced.

Reviewed by: Heikki
2009-06-09 16:46:29 +00:00
inaam
b667060360 branches/zip
Non functional change:

Added legal notices acknowledging percona contribution to the multiple
IO helper threads patch i.e.: r5262
2009-06-08 15:18:21 +00:00
vasil
5d3b805292 branches/zip:
Enable functionality to have multiple background io helper threads.
This patch is based on percona contributions.

More details about this patch will be written at:
https://svn.innodb.com/innobase/MultipleBackgroundThreads

The patch essentially does the following:

expose following knobs:
innodb_read_io_threads = [1 - 64] default 1
innodb_write_io_threads = [1 - 64] default 1

deprecate innodb_file_io_threads (this parameter was relevant only on windows)

Internally it allows multiple segments for read and write IO request arrays
where one thread works on one segement.

Submitted by:	Inaam (rb://124)
Approved by:	Heikki (rb://124)
2009-06-05 15:04:25 +00:00
vasil
a3548774c6 branches/zip:
Fix Mantis Issue#244 fix bug in linear read ahead (no check on access pattern)

The changes are:

1) Take into account access pattern when deciding whether or not to do linear
  read ahead.
2) Expose a knob innodb_read_ahead_factor = [0-64] default (8), dynamic,
  global to control linear read ahead behvior
3) Disable random read ahead. Keep the code for now.

Submitted by:	Inaam (rb://122)
Approved by:	Heikki (rb://122)
2009-06-05 14:13:31 +00:00
marko
68a1ee9960 branches/zip: Add some Doxygen comments for many structs, typedefs,
#defines and global variables.  Many are still missing.
2009-05-26 12:28:49 +00:00
marko
11ff89d994 branches/zip: Add @file comments, and convert decorative
/*********************************
comments to Doxygen /** style like this:
/*****************************//**

This conversion was performed by the following command:

perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) {
s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2}
print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i
2009-05-25 09:52:29 +00:00
marko
d075e80c49 branches/zip: Split some long lines that were introduced in r5091. 2009-05-25 08:09:45 +00:00
marko
a45e6d2bae branches/zip: Adjust some function comments after r5091. 2009-05-25 05:54:17 +00:00
marko
e49dee377b branches/zip: Convert the function comments to Doxygen format.
This patch was created by running the following commands:

for i in */*[ch]; do doxygenify.pl $i; done
perl -i -pe 's#\*{3} \*/$#****/#' */*[ch]

where doxygenify.pl is
https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510

Verified the consistency as follows:

(0) not too many /* in: */ or /* out: */ comments left in the code:
grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch]

(1) no difference when ignoring blank lines, after stripping all
C90-style /* comments */, including multi-line ones, before and after
applying this patch:

perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch]
diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2

(2) after stripping @return comments and !<, generated a diff and omitted
the hunks where /* out: */ function return comments were removed:

perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\
 */*[ch]
svn diff|
perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print'

Some unintended changes were left.  These will be removed in a
subsequent patch.
2009-05-25 05:30:14 +00:00
marko
931572dfaa branches/zip: ha_innodb.cc: Add some missing function comments. 2009-05-20 19:17:43 +00:00
marko
4e652f12c0 branches/zip: innobase_end(), innobase_flush_logs():
Document the function parameters.
2009-05-20 12:17:26 +00:00
marko
c7ae9cc921 branches/zip: ha_innodb.cc: Clean up some comments. 2009-05-20 10:45:03 +00:00
marko
e986fb2c8e branches/zip: innodb_export_status(): Remove the return(0),
now that the function was declared void in r5060.
2009-05-20 10:07:49 +00:00
marko
288a29458b branches/zip: Clean up some comments. 2009-05-20 10:06:59 +00:00
marko
b04cffec7d branches/zip: Add missing function comments. 2009-05-20 04:42:12 +00:00
marko
bc48ebd870 branches/zip: Merge revisions 4976:4994 from branches/5.1:
------------------------------------------------------------------------
  r4994 | marko | 2009-05-14 15:04:55 +0300 (Thu, 14 May 2009) | 18 lines

  branches/5.1: Prevent a race condition in innobase_commit() by ensuring
  that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)

  srv_commit_concurrency: Make this a static variable in ha_innodb.cc.

  innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
  is not changed from or to 0 at run time.  This is needed, because
  innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
  Without this limitation, the checks for innodb_commit_concurrency>0
  in innobase_commit() should be removed and that function would have to
  acquire and release commit_cond_m at least twice per invocation.
  Normally, innodb_commit_concurrency=0, and introducing the mutex operations
  would mean significant overhead.

  innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.

  rb://123 approved by Heikki Tuuri
  ------------------------------------------------------------------------
2009-05-14 11:31:43 +00:00
vasil
06e8e00ed9 branches/zip: Merge revisions 4710:4746 from branches/5.1:
------------------------------------------------------------------------
  r4746 | vasil | 2009-04-18 00:32:08 +0300 (Sat, 18 Apr 2009) | 110 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/pars0pars.h
  
  branches/5.1:
  
  Merge a change from MySQL:
  
    ------------------------------------------------------------
    revno: 2728.10.2
    committer: Ignacio Galarza <iggy@mysql.com>
    branch nick: mysql-5.1-bugteam-bug29125
    timestamp: Fri 2009-02-13 11:41:47 -0500
    message:
      Bug#29125 Windows Server X64: so many compiler warnings
      - Remove bothersome warning messages.  This change focuses on the warnings 
      that are covered by the ignore file: support-files/compiler_warnings.supp.
      - Strings are guaranteed to be max uint in length
    modified:
      client/mysql_upgrade.c
      client/mysqladmin.cc
      client/mysqlbinlog.cc
      client/mysqlcheck.c
      client/mysqldump.c
      client/mysqlslap.c
      client/mysqltest.cc
      client/sql_string.cc
      extra/comp_err.c
      extra/yassl/src/buffer.cpp
      extra/yassl/taocrypt/include/block.hpp
      extra/yassl/taocrypt/src/algebra.cpp
      extra/yassl/taocrypt/src/asn.cpp
      include/config-win.h
      libmysql/libmysql.c
      mysys/array.c
      mysys/base64.c
      mysys/charset.c
      mysys/checksum.c
      mysys/default.c
      mysys/default_modify.c
      mysys/hash.c
      mysys/mf_keycache.c
      mysys/mf_tempdir.c
      mysys/my_append.c
      mysys/my_compress.c
      mysys/my_conio.c
      mysys/my_copy.c
      mysys/my_getwd.c
      mysys/my_pread.c
      mysys/my_quick.c
      mysys/my_read.c
      mysys/safemalloc.c
      mysys/string.c
      server-tools/instance-manager/buffer.cc
      server-tools/instance-manager/instance.cc
      server-tools/instance-manager/options.cc
      server-tools/instance-manager/parse.h
      sql-common/client.c
      sql-common/my_user.c
      sql/event_data_objects.cc
      sql/event_parse_data.cc
      sql/events.cc
      sql/gen_lex_hash.cc
      sql/item.h
      sql/item_func.cc
      sql/item_strfunc.cc
      sql/item_timefunc.cc
      sql/lock.cc
      sql/log_event.cc
      sql/log_event.h
      sql/log_event_old.cc
      sql/net_serv.cc
      sql/sp_head.h
      sql/spatial.h
      sql/sql_class.h
      sql/sql_connect.cc
      sql/sql_crypt.cc
      sql/sql_error.cc
      sql/sql_insert.cc
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_load.cc
      sql/sql_prepare.cc
      sql/sql_profile.cc
      sql/sql_repl.cc
      sql/sql_servers.cc
      sql/sql_string.cc
      sql/sql_table.cc
      sql/sql_trigger.cc
      sql/sql_udf.cc
      sql/sql_view.cc
      sql/udf_example.c
      sql/uniques.cc
      storage/archive/azio.c
      storage/archive/azlib.h
      storage/csv/ha_tina.cc
      storage/csv/ha_tina.h
      storage/csv/transparent_file.h
      storage/federated/ha_federated.cc
      storage/federated/ha_federated.h
      storage/heap/hp_write.c
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/pars0pars.h
      storage/myisam/ha_myisam.cc
      storage/myisam/mi_check.c
      storage/myisam/mi_packrec.c
      storage/myisam/mi_search.c
      storage/myisam/rt_index.c
      storage/myisammrg/ha_myisammrg.cc
      strings/ctype.c
      strings/my_vsnprintf.c
      tests/bug25714.c
      tests/mysql_client_test.c
2009-04-17 20:50:09 +00:00
marko
a0714b182c branches/zip: univ.i: Define REFMAN as the base URL of the
MySQL Reference Manual and use it in every string.
This fixes Issue #221.
2009-04-16 12:02:27 +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
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
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
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
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
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
marko
6b52f8cab2 branches/zip: innobase_get_at_most_n_mbchars(): Declare in ha_prototypes.h. 2009-03-20 12:15:52 +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