Commit graph

113 commits

Author SHA1 Message Date
Sunny Bains
34a05995df Fix bug #52263 innodb does not compile on OpenSolaris with gcc4.3.2
Disable the GCC visibility attribute on all sun platforms.

Approved by Marko on IRC.
2010-08-12 20:00:07 +10:00
Vasil Dimov
f867d5c1dc Increment InnoDB version to 1.1.2
InnoDB 1.1.1 was released with MySQL 5.5.5-m3
2010-07-21 20:19:59 +03:00
Vasil Dimov
5ba3936517 Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
(resolving conflicts in mysql-test/suite/rpl/t/rpl_sync-slave.opt and
configure.cmake)
2010-07-21 17:22:29 +03:00
Davi Arnaut
07e7b4d6fe WL#5486: Remove code for unsupported platforms
Remove Netware specific code.
2010-07-15 08:13:30 -03:00
Marko Mäkelä
c1567ecebd Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
Vasil Dimov
3ca1a91eb0 Merge Bug#47991 fix from mysql-5.1-innodb
------------------------------------------------------------
  revno: 3517
  revision-id: vasil.dimov@oracle.com-20100622163043-dc0lxy0byg74viet
  parent: marko.makela@oracle.com-20100621095148-8g73k8k68dpj080u
  committer: Vasil Dimov <vasil.dimov@oracle.com>
  branch nick: mysql-5.1-innodb
  timestamp: Tue 2010-06-22 19:30:43 +0300
  message:
    Fix Bug#47991 InnoDB Dictionary Cache memory usage increases indefinitely
    when renaming tables
    
    Allocate the table name using ut_malloc() instead of table->heap because
    the latter cannot be freed.
    
    Adjust dict_sys->size calculations all over the code.
    
    Change dict_table_t::name from const char* to char* because we need to
    ut_malloc()/ut_free() it.
    
    Reviewed by:	Inaam, Marko, Heikki (rb://384)
    Approved by:	Heikki (rb://384)
  ------------------------------------------------------------
2010-06-23 10:17:21 +03:00
Vasil Dimov
028bb395b7 Decrement version number from 1.1.2 to 1.1.1, this latest tree
is going to be 1.1.1.
2010-06-17 12:35:23 +03:00
Vasil Dimov
5a0b9cd296 Increment InnoDB version number from 1.1.1 to 1.1.2,
the 1.1.1 release will be included inside MySQL 5.5.5 and is
up to (inclusive):
vasil.dimov@oracle.com-20100602124314-21l3cb27w4rbfqrq
2010-06-15 17:51:57 +03:00
Marko Mäkelä
963b19861f Merge a change from mysql-5.1-innodb:
TO DO: Enable this in CMake-based builds.

------------------------------------------------------------
revno: 3474
revision-id: marko.makela@oracle.com-20100520104042-ma2nsscqdvwoph8k
parent: marko.makela@oracle.com-20100519081618-h38q02qxuvcowbtk
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Thu 2010-05-20 13:40:42 +0300
message:
  Bug#53593: Add some instrumentation to improve Valgrind sensitivity

  BUILD/*: Add valgrind_configs=--with-valgrind.
  BUILD/*: Remove -USAFEMALLOC from valgrind_flags.

  configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND.

  include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions.
  include/my_sys.h: Make TRASH do MEM_UNDEFINED().

  include/m_string.h: Remove unused macro bzero_if_purify(A,B).

  _mymalloc(): Declare MEM_UNDEFINED() on the allocated memory.

  _myfree(): Declare MEM_NOACCESS() on the freed memory.

  storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on
  HAVE_VALGRIND rather than HAVE_purify.

  Possible things to do:
   * In my_global.h, remove the defined(HAVE_purify) condition
     from the _WIN32 uint3korr().
   * In my_global.h *int*korr(), use | instead of +
     in order to keep the Valgrind V bits accurate
   * Consider replacing HAVE_purify with HAVE_VALGRIND
   * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
2010-05-20 14:43:06 +03:00
Marko Mäkelä
98406ba452 Bug#53593: Add some instrumentation to improve Valgrind sensitivity
BUILD/*: Add valgrind_configs=--with-valgrind.
BUILD/*: Remove -USAFEMALLOC from valgrind_flags.

configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND.

include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions.
include/my_sys.h: Make TRASH do MEM_UNDEFINED().

include/m_string.h: Remove unused macro bzero_if_purify(A,B).

_mymalloc(): Declare MEM_UNDEFINED() on the allocated memory.

_myfree(): Declare MEM_NOACCESS() on the freed memory.

storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on
HAVE_VALGRIND rather than HAVE_purify.

Possible things to do:
 * In my_global.h, remove the defined(HAVE_purify) condition
   from the _WIN32 uint3korr().
 * In my_global.h *int*korr(), use | instead of +
   in order to keep the Valgrind V bits accurate
 * Consider replacing HAVE_purify with HAVE_VALGRIND
 * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
2010-05-20 13:40:42 +03:00
Sunny Bains
9eb93f225a Remove UNIV_DEBUG and UNIV_SYNC_DEBUG from univ.i. Left over from testing
the revert of kernel mutex split patch.
2010-05-12 12:33:59 +10:00
Sunny Bains
02fc9f0223 Revert the kernel mutex split phase I patch. Some artefacts have been left
in the code but they have nothing to do with the kernel mutex split code.
Some subsequent commits use the new functions. This patch has been tested
with: ./mtr --suite=innodb with UNIV_DEBUG and UNIV_SYNC_DEBUG enabled.
All tests were successful.
2010-05-12 11:18:10 +10:00
Vasil Dimov
3ba71f73be Merge from mysql-5.1-innodb:
------------------------------------------------------------
  revno: 3438
  revision-id: marko.makela@oracle.com-20100504105546-4ew7a77e9uhxmhho
  parent: marko.makela@oracle.com-20100504093128-44v6glupe1dsh0ug
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-05-04 13:55:46 +0300
  message:
    Remove UNIV_BTR_AVOID_COPY. It was broken because btr_attach_half_pages()
    would get the block, new_block in the wrong order.
    Fixing that would have complicated the function even further
    for this marginal case.
  modified:
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
    storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
  ------------------------------------------------------------
2010-05-04 16:47:47 +03:00
Marko Mäkelä
304daa7431 fsp_init_file_page_low(): Zero out the page. (Bug #53306) 2010-05-04 16:13:58 +03:00
Marko Makela
91702fd313 Merge r6103 from InnoDB Plugin to the built-in InnoDB to fix Bug #53202:
------------------------------------------------------------------------
  r6103 | marko | 2009-10-26 15:46:18 +0200 (Mon, 26 Oct 2009) | 4 lines
  Changed paths:
     M /branches/zip/row/row0ins.c

  branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
  DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
  Valgrind warnings about uninitialized data.  (The warnings were
  harmless, because the fields would be initialized at a later stage.)
  ------------------------------------------------------------------------
2010-04-28 08:33:25 +02:00
Vasil Dimov
a1bdbe8a0c Do not define UNIV_DEBUG_VALGRIND when HAVE_purify because
this results in some valgrind errors.

Bug#53202 valgrind: uninitialized bytes in dtuple_print()
has been opened to track this.
2010-04-27 17:05:41 +03:00
Vasil Dimov
66b4a1e614 Merge r3403..3414 from mysql-5.1-innodb:
------------------------------------------------------------
  revno: 3414
  revision-id: marko.makela@oracle.com-20100422093342-jf9ojlzdqsdebohn
  parent: marko.makela@oracle.com-20100421185359-8qaxoa2yyrpzwdd7
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Thu 2010-04-22 12:33:42 +0300
  message:
    Correct the definition of DICT_SYS_INDEXES_NAME_FIELD.
    When row_merge_drop_temp_indexes() was reworked to drop the indexes
    via the data dictionary cache, the code was broken because it would
    read the index name from the wrong field.
  modified:
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/dict/dict0boot.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0boot.c
    storage/innodb_plugin/include/dict0boot.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fdict0boot.h
  ------------------------------------------------------------
  revno: 3413
  revision-id: marko.makela@oracle.com-20100421185359-8qaxoa2yyrpzwdd7
  parent: marko.makela@oracle.com-20100421102723-0i80uezbyu0ekj5d
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 21:53:59 +0300
  message:
    btr_page_split_and_insert(): Avoid an infinite loop. (Bug #52964)
    
    btr_page_tuple_smaller(): New function, refactored from
    btr_page_split_and_insert().
    
    btr_page_get_split_rec(): Renamed from btr_page_get_sure_split_rec().
    Note that a NULL return may mean that the tuple is to be inserted into
    either the lower or upper page, to be determined by btr_page_tuple_smaller().
    
    btr_page_split_and_insert(): When btr_page_get_split_rec() returns NULL,
    invoke btr_page_tuple_smaller() to determine which half-page the tuple
    belongs to.
    
    Reviewed by Sunny Bains
  modified:
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
  ------------------------------------------------------------
  revno: 3412
  revision-id: marko.makela@oracle.com-20100421102723-0i80uezbyu0ekj5d
  parent: marko.makela@oracle.com-20100421100029-mji6lmdgvuqh96qq
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 13:27:23 +0300
  message:
    dict_create_index_step(): Be strict about DYNAMIC and COMPRESSED tables.
    Bug #50495 is about REDUNDANT and COMPACT tables, after all.
  modified:
    mysql-test/suite/innodb_plugin/r/innodb-zip.result 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.result
    mysql-test/suite/innodb_plugin/t/innodb-zip.test 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.test
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/dict/dict0crea.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0crea.c
  ------------------------------------------------------------
  revno: 3411
  revision-id: marko.makela@oracle.com-20100421100029-mji6lmdgvuqh96qq
  parent: marko.makela@oracle.com-20100421095033-0acvzxb8um8cms0a
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 13:00:29 +0300
  message:
    ha_innobase::add_index(): Only check for duplicate indexes
    when the data dictionary is locked.
    This fixes a UNIV_DEBUG assertion failure in innodb-index.test.
  modified:
    storage/innodb_plugin/handler/handler0alter.cc 1845@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fhandler%2Fhandler0alter.cc
  ------------------------------------------------------------
  revno: 3410
  revision-id: marko.makela@oracle.com-20100421095033-0acvzxb8um8cms0a
  parent: marko.makela@oracle.com-20100421094032-ir4glqk46qvg2ywn
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 12:50:33 +0300
  message:
    dtuple_convert_big_rec(): Store locally any fields whose maximum length
    is less than 256 bytes. (Bug #52745)
    Add related comments and debug assertions to the "offsets"
    functions in rem0rec.c.
    Approved by Sunny Bains
  modified:
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/data/data0data.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdata%2Fdata0data.c
    storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
  ------------------------------------------------------------
  revno: 3409
  revision-id: marko.makela@oracle.com-20100421094032-ir4glqk46qvg2ywn
  parent: marko.makela@oracle.com-20100421091611-uu46iygmv5sizjru
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 12:40:32 +0300
  message:
    Adjust tests for the Bug #50495 fix.
  modified:
    mysql-test/suite/innodb_plugin/r/innodb-zip.result 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.result
    mysql-test/suite/innodb_plugin/t/innodb-zip.test 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.test
    mysql-test/suite/innodb_plugin/t/innodb_bug36169.test 2418@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb_bug36169.test
  ------------------------------------------------------------
  revno: 3408
  revision-id: marko.makela@oracle.com-20100421091611-uu46iygmv5sizjru
  parent: marko.makela@oracle.com-20100421063916-h3gwjea7jzjilyww
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 12:16:11 +0300
  message:
    rec_convert_dtuple_to_rec(): Correct the debug check.
    The "extern" accessor functions return zero or nonzero, not 0 or 1.
  modified:
    storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
  ------------------------------------------------------------
  revno: 3407
  revision-id: marko.makela@oracle.com-20100421063916-h3gwjea7jzjilyww
  parent: marko.makela@oracle.com-20100420201550-cax1xywvlcdshgfg
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-04-21 09:39:16 +0300
  message:
    rec_convert_dtuple_to_rec(): Add a debug check.
  modified:
    storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
  ------------------------------------------------------------
  revno: 3406
  revision-id: marko.makela@oracle.com-20100420201550-cax1xywvlcdshgfg
  parent: marko.makela@oracle.com-20100420114222-diq7h2hiom9ww6me
  committer: Marko Makela <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-04-20 23:15:50 +0300
  message:
    btr_cur_optimistic_insert(): Remove unused variable "heap".
  modified:
    storage/innodb_plugin/btr/btr0cur.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0cur.c
  ------------------------------------------------------------
  revno: 3405
  revision-id: marko.makela@oracle.com-20100420114222-diq7h2hiom9ww6me
  parent: marko.makela@oracle.com-20100420082908-tpako8jd4imkh1xb
  committer: Marko Makela <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-04-20 14:42:22 +0300
  message:
    dict_create_index_step(): Invoke dict_index_add_to_cache()
    in strict mode only if innodb_strict_mode is set. (Bug #50495)
    
    trx_is_strict(): New function, for checking innodb_strict_mode.
  modified:
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/dict/dict0crea.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0crea.c
    storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
    storage/innodb_plugin/include/trx0trx.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Ftrx0trx.h
  ------------------------------------------------------------
  revno: 3404
  revision-id: marko.makela@oracle.com-20100420082908-tpako8jd4imkh1xb
  parent: marko.makela@oracle.com-20100419103603-u5pz4qc6hfhx4nua
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-04-20 11:29:08 +0300
  message:
    Implement UNIV_BTR_AVOID_COPY, an optimization of page splits.
  modified:
    storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
    storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
    storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
  ------------------------------------------------------------
  revno: 3403
  revision-id: marko.makela@oracle.com-20100419103603-u5pz4qc6hfhx4nua
  parent: marko.makela@oracle.com-20100419094405-fd3xwadullishv07
  committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Mon 2010-04-19 13:36:03 +0300
  message:
    Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set.
  modified:
    storage/innobase/include/univ.i 2@cee13dc7-1704-0410-992b-c9b4543f1246:trunk%2Finclude%2Funiv.i
    storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
2010-04-22 14:24:42 +03:00
Vasil Dimov
a8afa78349 Merge from innodb-branches-innodb+ 2010-04-22 13:51:12 +03:00
Vasil Dimov
7b653d649a Bump InnoDB version after 1.1.0 has been released in MySQL 5.5.4-m3. 2010-04-21 12:53:37 +03:00
Marko =?ISO-8859-1?Q?M=E4kel=E4?=
ca85feba83 Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set. 2010-04-19 13:36:03 +03:00
Vasil Dimov
c877ff39bc Import branches/innodb+ from SVN on top of storage/innobase. 2010-04-12 18:20:41 +03:00
Satya B
c6c12db965 Merge Innodb Plugin 1.0.6 from mysql-5.1-bugteam storage/innodb_plugin to mysql-trunk-merge.
Merging revisions 3221 to 3230 from mysql-5.1-bugteam
2009-12-02 19:30:50 +05:30
Sergey Vojtovich
ced8719400 Merge of innodb-zip-ss6129 from 5.1 to mysql-trunk. 2009-11-05 16:29:58 +04:00
Satya B
d63eb541f5 Merging Innodb plugin 1.0.5 revisions from 5.1-main from revisions 3149 to 3163
also merged missing Innodb plugin revisions r5636,r5635 manually
2009-10-16 17:28:02 +05:30
Joerg Bruehe
deab1e9ce3 Some fixes to make 5.4.2-beta compile on the less common
platforms like AIX, HP-UX, and Solaris 8.

All these are upmerges from 5.1 which came too late to be
included when 5.4.2-beta was cloned, so they were applied
during the build phase.
2009-09-08 15:38:40 +02:00
Guilhem Bichot
7ceb29ff17 Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same
layout as we always had in trees containing only the builtin
2) win\configure.js WITH_INNOBASE_STORAGE_ENGINE still works.

storage/innobase/CMakeLists.txt:
  fix to new directory name (and like 5.1)
storage/innobase/Makefile.am:
  fix to new directory name (and like 5.1)
storage/innobase/handler/ha_innodb.cc:
  fix to new directory name (and like 5.1)
storage/innobase/plug.in:
  fix to new directory name (and like 5.1)
2009-08-07 12:16:00 +02:00
Guilhem Bichot
b57e4dbd88 Creation of mysql-trunk = {summit + "Innodb plugin replacing the builtin"}:
bzr branch mysql-5.1-performance-version mysql-trunk # Summit
cd mysql-trunk
bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin 
bzr rm innobase # remove the builtin
Next step: build, test fixes.
2009-08-04 13:25:19 +02:00
Mikael Ronstrom
510835a072 Fix for BUG#45131 2009-06-10 12:23:02 +02:00
Mikael Ronstrom
c6a6820ed7 Add support for Atomic instructions for Windows
Enables Google patch support on Windows
2009-03-06 19:25:38 +01:00
Mikael Ronstrom
b28aba4a46 Workaround for bug with gcc on Solaris using pthread_setschedprio
Improved data typing of server variables in InnoDB to avoid bugs on
Windows.
Workaround for bug in gcc assembler on 32-bit Mac OS X as well as
on Solaris.
2009-02-23 14:05:17 +01:00
Mikael Ronstrom
2c82616b23 Fix build issue on 32-bit Solaris using gcc 2009-02-20 12:32:51 +01:00
MySQL Build Team
243a5b1d37 Use sun_prefetch_read_many() and friends, instead of sparc_prefetch_read_many(),
etc.  The sparc_* are defined only for sparc, but the sun_* are generic for x86
and sparc (and are defined empty for any other platform).
2009-01-28 22:17:20 +01:00
Mikael Ronstrom
7e065ee9ae Merge port of Google SMP patch to Solaris 2008-10-30 10:23:36 +01:00
Mikael Ronstrom
2e2ba495b0 Fixed compiler issues 2008-10-16 19:59:04 +02:00
Mikael Ronstrom
b5d2ed1b5f Merged fix of compiler issue 2008-10-16 19:48:53 +02:00
Mikael Ronstrom
d6975de87e Compile fixes, sun_prefetch.h only available on Sun Studio 2008-10-16 17:06:48 +02:00
Mikael Ronstrom
b553ba77e7 Compile fix, sun_prefetch.h only available in Sun Studio 2008-10-16 17:04:44 +02:00
Mikael Ronstrom
e1602b8d98 merge Google SMP patch 2008-10-15 23:32:54 +02:00
Mikael Ronstrom
1732095b7d Google SMP patch 2008-10-15 20:54:18 +02:00
Mikael Ronstrom
5c6d63b26d Merged Sparc Prefetch patch 2008-10-15 10:53:58 +02:00
Mikael Ronstrom
3c24289f24 Performance inline patch 2008-10-13 21:49:39 +02:00
Mikael Ronstrom
c2ad3cada0 Sparc prefetch patch 2008-10-13 21:46:29 +02:00
unknown
9aaab69ab1 Apply innodb-5.1-ss2360 snapshot
Fixes:
- Bug #34920: auto_increment resets to 1 on foreign key creation
  We need to use/inherit the passed in autoinc counter for ALTER TABLE
  statements too.


mysql-test/r/innodb.result:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2345:
  branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
  counter for ALTER TABLE statements too.
mysql-test/t/innodb.test:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2345:
  branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
  counter for ALTER TABLE statements too.
storage/innobase/dict/dict0dict.c:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
storage/innobase/handler/ha_innodb.cc:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
  
  
  Revision r2345:
  branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
  counter for ALTER TABLE statements too.
storage/innobase/handler/ha_innodb.h:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
storage/innobase/include/dict0dict.h:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
storage/innobase/include/dict0mem.h:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
storage/innobase/include/row0sel.h:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
storage/innobase/include/univ.i:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
storage/innobase/row/row0sel.c:
  Apply innodb-5.1-ss2360 snapshot
  
  Revision r2353:
  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
  the assertion where it crashed previously, since the type has now changed
  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
  check for overflow, for the different INT types supported for both
  signed and unsigned.
2008-03-27 02:40:45 +01:00
unknown
bdffce056b Apply snapshot innodb-5.1-ss2034
The following bugs are fixed:

Bug #31860: Server crashes after inserting into InnoDB table with auto_increment column
  In the Bug 16979 fix there was an erroneous assertion that
  autoincrement columns can't contain negative values. With the fix, the
  autoincrement table counter is set to 0 if the maximum value read from
  the autoinc column index is negative.


mysql-test/r/innodb.result:
  Apply snapshot innodb-5.1-ss2034
  
  Revision r2034:
  Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
  autoincrement columns can't contain negative values. With the fix, the
  autoincrement table counter is set to 0 if the maximum value read from
  the autoinc column index is negative.
  
  Add test for the bug fix but the test is not really useful as the server
  needs to be restarted half way through the test. It has been added for 
  reference only.
mysql-test/t/innodb.test:
  Apply snapshot innodb-5.1-ss2034
  
  Revision r2034:
  Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
  autoincrement columns can't contain negative values. With the fix, the
  autoincrement table counter is set to 0 if the maximum value read from
  the autoinc column index is negative.
  
  Add test for the bug fix but the test is not really useful as the server
  needs to be restarted half way through the test. It has been added for 
  reference only.
storage/innobase/handler/ha_innodb.cc:
  Apply snapshot innodb-5.1-ss2034
  
  Revision r2017:
  Use "InnoDB:" prefix in error messages.
  
  
  Revision r2018:
  Remove ut_print_timestamp(), this should have been removed when the following
  changes were made by MySQL.
  
  	ChangeSet@1.1810.467.1  2005-08-11 19:19:20+03:00  jani@omakaista.fi
  
  Fix error message so that it conforms to "  InnoDB: Error: ...".
storage/innobase/include/univ.i:
  Apply snapshot innodb-5.1-ss2034
  
  Revision r2015:
  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Remove warnings on 64-bit systems.
storage/innobase/row/row0sel.c:
  Apply snapshot innodb-5.1-ss2034
  
  Revision r2034:
  Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
  autoincrement columns can't contain negative values. With the fix, the
  autoincrement table counter is set to 0 if the maximum value read from
  the autoinc column index is negative.
  
  Add test for the bug fix but the test is not really useful as the server
  needs to be restarted half way through the test. It has been added for 
  reference only.
storage/innobase/sync/sync0sync.c:
  Apply snapshot innodb-5.1-ss2034
  
  Revision r2017:
  Use "InnoDB:" prefix in error messages.
2007-11-06 16:40:50 -07:00
unknown
e2513bf07f Apply snapshot innodb-5.1-ss1989
Fixes the following bugs:

Bug #30706: SQL thread on slave is allowed to block client queries when slave load is high
  Add (innodb|innobase|srv)_replication_delay MySQL config parameter.

Bug #30888: Innodb table + stored procedure + row deletion = server crash
  While adding code for the low level read of the AUTOINC value from the index,
  the case for MEDIUM ints which are 3 bytes was missed triggering an
  assertion.

Bug #30907: Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases
  We don't rely on *first_value to be 0 when checking whether
  get_auto_increment() has been invoked for the first time in a multi-row
  INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
  inside ha_innobase::start_stmt() too.

Bug #31444: "InnoDB: Error: MySQL is freeing a thd" in innodb_mysql.test
  ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and
  trx->n_mysql_tables_in_use only after row_lock_table_for_mysql() returns
  DB_SUCCESS.  A timeout on LOCK TABLES would lead to an inconsistent state,
  which would cause trx_free() to print a warning.

Bug #31494: innodb + 5.1 + read committed crash, assertion
  Set an error code when a deadlock occurs in semi-consistent read.


mysql-test/r/innodb.result:
  Apply snapshot innodb-5.1-ss1989
  
  Also, a test is moved into the new innodb_autoinc_lock_mode_zero
  test, because it depends on a non-default setting for a read-only
  variable.
  
  Revision r1821:
  Merge a change from MySQL AB:
  
  ChangeSet@1.2536.50.1  2007-08-02 12:45:56-07:00  igor@mysql.com
  
  Fixed bug#28404.
  This patch adds cost estimation for the queries with ORDER BY / GROUP BY
  and LIMIT.
  If there was a ref/range access to the table whose rows were required
  to be ordered in the result set the optimizer always employed this access
  though a scan by a different index that was compatible with the required
  order could be cheaper to produce the first L rows of the result set.
  Now for such queries the optimizer makes a choice between the cheapest
  ref/range accesses not compatible with the given order and index scans
  compatible with it.
  
  innodb.result: Adjusted results for test cases affected fy the fix for
  bug #28404.
  
  
  Revision r1781:
  Fix a test case that was broken after Bug#16979 fix. See r1645 and r1735.
  The variable used in the tests below was introduced in r1735.
  
  
  Revision r1792:
  innodb.result: Revert r1655, which should have been reverted as part of r1781.
  
  
  Revision r1843:
  Add test for Bug# 21409, the actual bug was fixed in r1334.
mysql-test/t/innodb.test:
  Apply snapshot innodb-5.1-ss1989
  
  Also, a test is moved into the new innodb_autoinc_lock_mode_zero
  test, because it depends on a non-default setting for a read-only
  variable.
  
  Revision r1781:
  Fix a test case that was broken after Bug#16979 fix. See r1645 and r1735.
  The variable used in the tests below was introduced in r1735.
  
  
  Revision r1843:
  Add test for Bug# 21409, the actual bug was fixed in r1334.
storage/innobase/buf/buf0lru.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1819:
  Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
  
  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
  area is defined.
  
  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
  
  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
  in many places.
  
  mem_init_buf(): Check that the memory is writable, and declare it undefined.
  
  mem_erase_buf(): Check that the memory is writable, and declare it freed.
storage/innobase/dict/dict0dict.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1894:
  Add debug lock checks to autoinc functions. Add lock guards around an
  invocation of dict_table_autoinc_initialize().
storage/innobase/dict/dict0load.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1974:
  Prevent loading of tables that have unsupported features most notably
  FTS indexes.
storage/innobase/handler/ha_innodb.cc:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1850:
  Implement this feature request:
  http://bugs.mysql.com/30706
  
  * Add a function that returns the number of microseconds since
    epoch - ut_time_us().
  
  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
  
  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
    until a timeout elapses.
  
  * Using all of the above, handle the replication thread specially in
    srv_conc_enter_innodb().
  
  Approved by:	Heikki
  
  
  
  Revision r1887:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2528.115.25  2007-08-27 18:18:14-06:00  tsmith@hindu.god
  
  Fix some Windows compiler warnings.
  
  dict0mem.c: Fix compiler warning with a cast.
  
  ha_innodb.cc: Change type to fix a compiler warning.
  
  
  Revision r1809:
  ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and
  trx->n_mysql_tables_in_use only after row_lock_table_for_mysql()
  returns DB_SUCCESS.  A timeout on LOCK TABLES would lead to an
  inconsistent state, which would cause trx_free() to print a warning.
  
  This was later reported as Bug #31444.
  
  
  Revision r1833:
  Add /*== ... === */ decoration that was missing around some auto-inc functions.
  Add a missing comment, fix the length of a decoration.  Initialize the *value
  out parameter in ha_innobase::innobase_get_auto_increment().
  
  
  Revision r1866:
  Revert r1850 as MySQL did not approve the addition.
  
  log for r1850:
  
  Implement this feature request:
  http://bugs.mysql.com/30706
  
  * Add a function that returns the number of microseconds since
    epoch - ut_time_us().
  
  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
  
  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
    until a timeout elapses.
  
  * Using all of the above, handle the replication thread specially in
    srv_conc_enter_innodb().
  
  
  Revision r1846:
  Add config option innodb_use_adaptive_hash_indexes to enable/disable
  adaptive hash indexes. It is enabled by default (no change in default
  behavior).
  
  Approved by:	Marko
  
  
  Revision r1974:
  Prevent loading of tables that have unsupported features most notably
  FTS indexes.
  
  
  Revision r1829:
  Add assertion to enforce check of an implicit invariant and add comment about
  retry of autoinc read semantics. We always reread the table's autoinc counter
  after attempting to initialize it i.e., we want to guarantee that a read of
  autoinc valus that is returned to the caller is always covered by the
  AUTOINC locking mechanism.
  
  
  Revision r1787:
  Move the prototype of innobase_print_identifier() from ut0ut.c to
  ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
  #ifndef UNIV_HOTBACKUP.
  
  
  Revision r1888:
  Merge a change from MySQL AB:
  
  ChangeSet@1.2528.115.30  2007-08-28 10:17:15-06:00  tsmith@hindu.god
  
  Fix another compiler warning on Windows in InnoDB.
  
  ha_innodb.cc:
  
  Fix compiler warning: ::get_auto_increment takes a ulonglong
  for nb_desired_values, but InnoDB's trx struct stores it as
  a ulint (unsigned long).  Probably harmless, as a single
  statement won't be asking for more than 2^32 rows.
  
  
  Revision r1987:
  Bug fix: The problem was that when write_row() attempted to update the max
  autoinc value, and if it was rolled back because of a deadlock, the 
  deadlock error (transaction rollback) was not being propagated back to MySQL.
  
  
  Revision r1889:
  Merge a change from MySQL AB:
  
  ChangeSet@1.2560  2007-09-21 10:15:16+02:00  gkodinov@local
  
  ha_innodb.cc: fixed type conversion warnings revealed by bug 30639 
  
  
  Revision r1989:
  Suppress printing of deadlock errors while reading the autoinc value.
  DB_DEADLOCK errors are part of normal processing and excessive printing
  of these error messages could be disconcerting for users. 
  
  
  Revision r1828:
  Fix two bugs:
  
  Bug# 30907: We don't rely on *first_value to be 0 when checking whether
  get_auto_increment() has been invoked for the first time in a multi-row
  INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
  inside ha_innobase::start_stmt() too.
  
  Bug# 30888: While adding code for the low level read of the AUTOINC value
  from the index, the case for MEDIUM ints which are 3 bytes was missed
  triggering an assertion.
storage/innobase/handler/ha_innodb.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1844:
  Remove the prototypes of some functions inside #if 0.
  The function definitions were removed in r1746.
storage/innobase/ibuf/ibuf0ibuf.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1965:
  ibuf_insert_to_index_page(): Fix typos in diagnostic output.
storage/innobase/include/db0err.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1974:
  Prevent loading of tables that have unsupported features most notably
  FTS indexes.
storage/innobase/include/ha_prototypes.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1787:
  Move the prototype of innobase_print_identifier() from ut0ut.c to
  ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
  #ifndef UNIV_HOTBACKUP.
storage/innobase/include/mach0data.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1779:
  Fix a bug that handles the case where the host specific byte order matches
  the InnoDB storage byte order, which is big-endian.
storage/innobase/include/mach0data.ic:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1779:
  Fix a bug that handles the case where the host specific byte order matches
  the InnoDB storage byte order, which is big-endian.
storage/innobase/include/mem0dbg.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1830:
  Improve memory debugging.  This is follow-up to r1819.
  
  mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
  defined.  Previously, this function was only compiled with UNIV_DEBUG.
  
  mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
  Valgrind.  Otherwise, Valgrind would complain on the second call of
  mem_heap_empty().
  
  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
  for failed Valgrind checks.
storage/innobase/include/mem0mem.ic:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1830:
  Improve memory debugging.  This is follow-up to r1819.
  
  mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
  defined.  Previously, this function was only compiled with UNIV_DEBUG.
  
  mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
  Valgrind.  Otherwise, Valgrind would complain on the second call of
  mem_heap_empty().
  
  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
  for failed Valgrind checks.
  
  
  Revision r1937:
  mem_heap_free_top(): Remove a bogus Valgrind warning.
  
  
  Revision r1819:
  Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
  
  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
  area is defined.
  
  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
  
  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
  in many places.
  
  mem_init_buf(): Check that the memory is writable, and declare it undefined.
  
  mem_erase_buf(): Check that the memory is writable, and declare it freed.
storage/innobase/include/rem0rec.ic:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1918:
  Improve Valgrind instrumentation.
  
  rec_offs_set_n_alloc(): Use UNIV_MEM_ASSERT_AND_ALLOC().
  
  UNIV_MEM_ASSERT_AND_ALLOC(): New directive, similar to
  UNIV_MEM_ASSERT_AND_FREE().
storage/innobase/include/row0mysql.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1783:
  Correct the function comments of row_create_table_for_mysql() and
  row_drop_table_for_mysql().
storage/innobase/include/sync0rw.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1757:
  Enclose rw_lock_validate() in #ifdef UNIV_DEBUG.  It is only called by
  debug assertions.
storage/innobase/include/univ.i:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1827:
  Merge r1826 from branches/zip: UNIV_MEM_ASSERT_AND_FREE():
  Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW().
  The memory area need not be initialized.
  This mistake was made in r1815.
  
  
  Revision r1918:
  Improve Valgrind instrumentation.
  
  rec_offs_set_n_alloc(): Use UNIV_MEM_ASSERT_AND_ALLOC().
  
  UNIV_MEM_ASSERT_AND_ALLOC(): New directive, similar to
  UNIV_MEM_ASSERT_AND_FREE().
  
  
  Revision r1830:
  Improve memory debugging.  This is follow-up to r1819.
  
  mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
  defined.  Previously, this function was only compiled with UNIV_DEBUG.
  
  mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
  Valgrind.  Otherwise, Valgrind would complain on the second call of
  mem_heap_empty().
  
  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
  for failed Valgrind checks.
  
  
  Revision r1819:
  Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
  
  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
  area is defined.
  
  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
  
  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
  in many places.
  
  mem_init_buf(): Check that the memory is writable, and declare it undefined.
  
  mem_erase_buf(): Check that the memory is writable, and declare it freed.
  
  
  Revision r1948:
  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display also __FILE__ and __LINE__
  when these Valgrind checks fail.
storage/innobase/include/ut0ut.h:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1850:
  Implement this feature request:
  http://bugs.mysql.com/30706
  
  * Add a function that returns the number of microseconds since
    epoch - ut_time_us().
  
  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
  
  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
    until a timeout elapses.
  
  * Using all of the above, handle the replication thread specially in
    srv_conc_enter_innodb().
  
  Approved by:	Heikki
  
  
  
  Revision r1862:
  Add ut_snprintf() function. On Windows this needs to be implemented
  using auxiliary functions because there is no snprintf-variant on
  Windows that behaves exactly as specified in the standard:
  
  * Always return the number of characters that would have been printed
    if the size were unlimited (not including the final `\0').
  * Always '\0'-terminate the result
  * Do not touch the buffer if size=0, only return the number of characters
    that would have been printed. Can be used to estimate the size needed
    and to allocate it dynamically.
  
  See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
  2 ap variables are used.
  
  Approved by:	Heikki
  
  
  Revision r1866:
  Revert r1850 as MySQL did not approve the addition.
  
  log for r1850:
  
  Implement this feature request:
  http://bugs.mysql.com/30706
  
  * Add a function that returns the number of microseconds since
    epoch - ut_time_us().
  
  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
  
  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
    until a timeout elapses.
  
  * Using all of the above, handle the replication thread specially in
    srv_conc_enter_innodb().
storage/innobase/mem/mem0dbg.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1830:
  Improve memory debugging.  This is follow-up to r1819.
  
  mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
  defined.  Previously, this function was only compiled with UNIV_DEBUG.
  
  mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
  Valgrind.  Otherwise, Valgrind would complain on the second call of
  mem_heap_empty().
  
  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
  for failed Valgrind checks.
  
  
  Revision r1819:
  Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
  
  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
  area is defined.
  
  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
  
  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
  in many places.
  
  mem_init_buf(): Check that the memory is writable, and declare it undefined.
  
  mem_erase_buf(): Check that the memory is writable, and declare it freed.
storage/innobase/mem/mem0mem.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1819:
  Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
  
  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
  area is defined.
  
  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
  
  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
  in many places.
  
  mem_init_buf(): Check that the memory is writable, and declare it undefined.
  
  mem_erase_buf(): Check that the memory is writable, and declare it freed.
storage/innobase/row/row0mysql.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1786:
  row_create_table_for_mysql(), row_truncate_table_for_mysql(),
  row_drop_table_for_mysql(): Do not mention innodb_force_recovery
  when newraw is set.
  
  
  Revision r1790:
  row_drop_table_for_mysql(): Before calling
  dict_table_remove_from_cache(table) and thus freeing the memory
  allocated for the table, copy the table name.  This avoids reading
  freed memory when name == table->name.
  
  Approved by Sunny.
  
  
  Revision r1783:
  Correct the function comments of row_create_table_for_mysql() and
  row_drop_table_for_mysql().
  
  
  Revision r1894:
  Add debug lock checks to autoinc functions. Add lock guards around an
  invocation of dict_table_autoinc_initialize().
storage/innobase/row/row0sel.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1782:
  Add comment that the variable dest should be word aligned. After discussion
  on IM with Heikki.
  
  
  Revision r1988:
  Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
  
  innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
  Unfortunately, these will not trigger Bug #31494, because there merely
  occur lock wait timeouts, not deadlocks.
  
  
  Revision r1820:
  Use the clustered index and not the one selected by the optimizer in the plan,
  when building a previous version of the row. This bug is triggered when
  running queries via InnoDB's internal SQL parser; when InnoDB's optimizer
  selects a secondary index for the plan.
  
  
  Revision r1828:
  Fix two bugs:
  
  Bug# 30907: We don't rely on *first_value to be 0 when checking whether
  get_auto_increment() has been invoked for the first time in a multi-row
  INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
  inside ha_innobase::start_stmt() too.
  
  Bug# 30888: While adding code for the low level read of the AUTOINC value
  from the index, the case for MEDIUM ints which are 3 bytes was missed
  triggering an assertion.
  
  
  Revision r1779:
  Fix a bug that handles the case where the host specific byte order matches
  the InnoDB storage byte order, which is big-endian.
storage/innobase/sync/sync0rw.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1757:
  Enclose rw_lock_validate() in #ifdef UNIV_DEBUG.  It is only called by
  debug assertions.
storage/innobase/ut/ut0ut.c:
  Apply snapshot innodb-5.1-ss1989
  
  Revision r1850:
  Implement this feature request:
  http://bugs.mysql.com/30706
  
  * Add a function that returns the number of microseconds since
    epoch - ut_time_us().
  
  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
  
  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
    until a timeout elapses.
  
  * Using all of the above, handle the replication thread specially in
    srv_conc_enter_innodb().
  
  Approved by:	Heikki
  
  
  
  Revision r1873:
  snprintf() should always return non-negative result. According to
  Microsoft documentation about _vscprintf():
  
    If format is a null pointer, the invalid parameter handler is invoked,
    as described in Parameter Validation. If execution is allowed to
    continue, the functions return -1 and set errno to EINVAL.
  
  The UNIX variant of snprintf() segfaults if format is a NULL pointer
  (similar to strlen(NULL) for example), so it is better to conform to
  this behavior and crash our custom Windows version instead of
  returning -1. Noone would expect -1 to be returned from snprintf().
  
  Cosmetic: Add a space after typecast.
  
  Approved by:	Marko
  
  
  Revision r1862:
  Add ut_snprintf() function. On Windows this needs to be implemented
  using auxiliary functions because there is no snprintf-variant on
  Windows that behaves exactly as specified in the standard:
  
  * Always return the number of characters that would have been printed
    if the size were unlimited (not including the final `\0').
  * Always '\0'-terminate the result
  * Do not touch the buffer if size=0, only return the number of characters
    that would have been printed. Can be used to estimate the size needed
    and to allocate it dynamically.
  
  See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
  2 ap variables are used.
  
  Approved by:	Heikki
  
  
  Revision r1866:
  Revert r1850 as MySQL did not approve the addition.
  
  log for r1850:
  
  Implement this feature request:
  http://bugs.mysql.com/30706
  
  * Add a function that returns the number of microseconds since
    epoch - ut_time_us().
  
  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
  
  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
    until a timeout elapses.
  
  * Using all of the above, handle the replication thread specially in
    srv_conc_enter_innodb().
  
  
  Revision r1787:
  Move the prototype of innobase_print_identifier() from ut0ut.c to
  ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
  #ifndef UNIV_HOTBACKUP.
  
  
  Revision r1789:
  ut_print_namel(): Do not assume that all '/' are separators between
  database and table names.
  
  Approved by Heikki.
  
  
  Revision r1936:
  ut_print_buf(): Add a Valgrind check that the buffer is wholly defined.
mysql-test/r/innodb-semi-consistent.result:
  Apply snapshot innodb-5.1-ss1989
  
  
  Revision r1988:
  Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
  
  innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
  Unfortunately, these will not trigger Bug #31494, because there merely
  occur lock wait timeouts, not deadlocks.
mysql-test/r/innodb_autoinc_lock_mode_zero.result:
  New test, using read-only setting --innodb-autoinc-lock-mode=0
mysql-test/t/innodb-semi-consistent-master.opt:
  Apply snapshot innodb-5.1-ss1989
  
  
  Revision r1988:
  Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
  
  innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
  Unfortunately, these will not trigger Bug #31494, because there merely
  occur lock wait timeouts, not deadlocks.
mysql-test/t/innodb-semi-consistent.test:
  Apply snapshot innodb-5.1-ss1989
  
  
  Revision r1988:
  Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
  
  innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
  Unfortunately, these will not trigger Bug #31494, because there merely
  occur lock wait timeouts, not deadlocks.
mysql-test/t/innodb_autoinc_lock_mode_zero-master.opt:
  New test, using read-only setting --innodb-autoinc-lock-mode=0
mysql-test/t/innodb_autoinc_lock_mode_zero.test:
  New test, using read-only setting --innodb-autoinc-lock-mode=0
2007-11-06 15:42:58 -07:00
unknown
c2f0c211cd Apply snapshot innodb-51-ss1644
Fixes:
- Bug #23710: crash_commit_before fails if innodb_file_per_table=1
- Bug #28254: innodb crash if shutdown during innodb_table_monitor is running
- Bug #28604: innodb_force_recovery restricts data dump
- Bug #29097: fsp_get_available_space_in_free_extents() is capped at 4TB
- Bug #29155: Innodb "Parallel recovery" is not prevented


storage/innobase/Makefile.am:
  Apply snapshot innodb-51-ss1644
  
  Revision r1632:
  Add include/lock0priv.h to noinst_HEADERS in Makefile.am.
  
  
  
  Revision r1636:
  Move lock_get_type() from lock/lock0lock.c to include/lock0priv.ic:
  * lock0lock.c: remove lock_get_type() and include include/lock0priv.ic
  * lock0priv.h: include lock0priv.ic and add lock_get_type() prototype
  * Makefile.am: add lock0priv.ic to noinst_HEADERS
  * lock0priv.ic: introduce this new file containing the body of
    lock_get_type()
  
  This move is necessary in order to use lock_get_type() from other lock/
  source files (it's going to be used in lock/lock0iter.c).
  
  Approved by:	Heikki
  
  
  Revision r1638:
  Introduce a lock queue iterator for easy (and opaque) traversing of lock
  queues. Supports table and record lock queues via the same interface.
  
  There is only "get previous" method because currently there is no need
  for "get next" - it would be unused. Feel free to add one if needed.
  
  Approved by:	Heikki
storage/innobase/buf/buf0buf.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1624:
  Fix change missed as part of Bug 15815. Use a function to check if a block
  needs to be made younger.
  
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/buf/buf0lru.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/fsp/fsp0fsp.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1605:
  Fix Bug#29097 "fsp_get_available_space_in_free_extents() is capped at 4TB"
  by typecasting the variables before multiplying them, so that the result of
  the multiplication is of type "unsigned long long".
  
  I verified this fix by creating a sparse file of 6TB and forcing InnoDB to
  use it without overwriting it with zeroes (by commenting the code that
  overwrites :newraw files).
  
  New type ullint is introduced with the sole purpose of shortening
  "unsigned long long", please do not define it to something else than
  "unsigned long long".
  
  Approved by:	Heikki
storage/innobase/handler/ha_innodb.cc:
  Apply snapshot innodb-51-ss1644
  
  Revision r1605:
  Fix Bug#29097 "fsp_get_available_space_in_free_extents() is capped at 4TB"
  by typecasting the variables before multiplying them, so that the result of
  the multiplication is of type "unsigned long long".
  
  I verified this fix by creating a sparse file of 6TB and forcing InnoDB to
  use it without overwriting it with zeroes (by commenting the code that
  overwrites :newraw files).
  
  New type ullint is introduced with the sole purpose of shortening
  "unsigned long long", please do not define it to something else than
  "unsigned long long".
  
  Approved by:	Heikki
  
  
  Revision r1573:
  create_table_def(): Eliminate the inline function call to dict_table_is_comp()
  that was introduced in r1571.  Inlining is disabled in ha_innodb.cc.
  
  
  Revision r1574:
  innodb_check_for_record_too_big_error(): Divide the return value of
  page_get_free_space_of_empty_noninline() by 2.  Until r1571, that function
  did not return the same value as page_get_free_space_of_empty().
  
  
  Revision r1571:
  Fix a severe bug that was introduced in r1422 when fixing Bug 21101.
  When creating an index containing a too long record, InnoDB would
  dereference a NULL pointer when trying to determine the maximum row length.
  
  innodb_check_for_record_too_big_error(): Replace the dict_table_t*
  parameter with a Boolean flag.  There is not always a dict_table_t object
  when this function is called.
  
  page_get_free_space_of_empty_noninline(): Move the definition and
  declaration from row0mysql (!) to page0page.  Make the signature
  identical with page_get_free_space_of_empty().
  
  create_clustered_index_when_no_primary(): Add the parameter "comp".
  Remove unnecessary casts.
storage/innobase/include/buf0buf.ic:
  Apply snapshot innodb-51-ss1644
  
  Revision r1624:
  Fix change missed as part of Bug 15815. Use a function to check if a block
  needs to be made younger.
storage/innobase/include/fsp0fsp.h:
  Apply snapshot innodb-51-ss1644
  
  Revision r1605:
  Fix Bug#29097 "fsp_get_available_space_in_free_extents() is capped at 4TB"
  by typecasting the variables before multiplying them, so that the result of
  the multiplication is of type "unsigned long long".
  
  I verified this fix by creating a sparse file of 6TB and forcing InnoDB to
  use it without overwriting it with zeroes (by commenting the code that
  overwrites :newraw files).
  
  New type ullint is introduced with the sole purpose of shortening
  "unsigned long long", please do not define it to something else than
  "unsigned long long".
  
  Approved by:	Heikki
storage/innobase/include/lock0lock.h:
  Apply snapshot innodb-51-ss1644
  
  Revision r1623:
  Fix typo in comment.
  
  
  Revision r1628:
  lock_has_to_wait() is needed in the INFORMATION_SCHEMA implementation
  in order to determine which lock is blocking which. Make it non-static
  and put its definition in include/lock0lock.h.
  
  Approved by:	Heikki (via IM)
storage/innobase/include/mem0mem.ic:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/include/page0page.h:
  Apply snapshot innodb-51-ss1644
  
  Revision r1571:
  Fix a severe bug that was introduced in r1422 when fixing Bug 21101.
  When creating an index containing a too long record, InnoDB would
  dereference a NULL pointer when trying to determine the maximum row length.
  
  innodb_check_for_record_too_big_error(): Replace the dict_table_t*
  parameter with a Boolean flag.  There is not always a dict_table_t object
  when this function is called.
  
  page_get_free_space_of_empty_noninline(): Move the definition and
  declaration from row0mysql (!) to page0page.  Make the signature
  identical with page_get_free_space_of_empty().
  
  create_clustered_index_when_no_primary(): Add the parameter "comp".
  Remove unnecessary casts.
storage/innobase/include/row0mysql.h:
  Apply snapshot innodb-51-ss1644
  
  Revision r1571:
  Fix a severe bug that was introduced in r1422 when fixing Bug 21101.
  When creating an index containing a too long record, InnoDB would
  dereference a NULL pointer when trying to determine the maximum row length.
  
  innodb_check_for_record_too_big_error(): Replace the dict_table_t*
  parameter with a Boolean flag.  There is not always a dict_table_t object
  when this function is called.
  
  page_get_free_space_of_empty_noninline(): Move the definition and
  declaration from row0mysql (!) to page0page.  Make the signature
  identical with page_get_free_space_of_empty().
  
  create_clustered_index_when_no_primary(): Add the parameter "comp".
  Remove unnecessary casts.
storage/innobase/include/univ.i:
  Apply snapshot innodb-51-ss1644
  
  Revision r1605:
  Fix Bug#29097 "fsp_get_available_space_in_free_extents() is capped at 4TB"
  by typecasting the variables before multiplying them, so that the result of
  the multiplication is of type "unsigned long long".
  
  I verified this fix by creating a sparse file of 6TB and forcing InnoDB to
  use it without overwriting it with zeroes (by commenting the code that
  overwrites :newraw files).
  
  New type ullint is introduced with the sole purpose of shortening
  "unsigned long long", please do not define it to something else than
  "unsigned long long".
  
  Approved by:	Heikki
  
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/lock/lock0lock.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1631:
  Move lock_rec_find_set_bit() and lock_rec_get_prev() from
  lock/lock0lock.c to include/lock0priv.h and make them non-static.
  They will be used in lock/lock0iter.c.
  
  Approved by:	Heikki
  
  
  Revision r1636:
  Move lock_get_type() from lock/lock0lock.c to include/lock0priv.ic:
  * lock0lock.c: remove lock_get_type() and include include/lock0priv.ic
  * lock0priv.h: include lock0priv.ic and add lock_get_type() prototype
  * Makefile.am: add lock0priv.ic to noinst_HEADERS
  * lock0priv.ic: introduce this new file containing the body of
    lock_get_type()
  
  This move is necessary in order to use lock_get_type() from other lock/
  source files (it's going to be used in lock/lock0iter.c).
  
  Approved by:	Heikki
  
  
  Revision r1628:
  lock_has_to_wait() is needed in the INFORMATION_SCHEMA implementation
  in order to determine which lock is blocking which. Make it non-static
  and put its definition in include/lock0lock.h.
  
  Approved by:	Heikki (via IM)
  
  
  Revision r1629:
  Add "const" qualifiers to lock_get_type() and lock_get_mode().
  
  Approved by:	Sunny
  
  
  Revision r1626:
  Move lock_*struct structures from lock/lock0lock.c to include/lock0priv.h.
  
  This is needed in order to add more code to lock/ that uses members of
  these structures (internal to the lock module) but in a separate file,
  rather than lock0lock.c. lock0lock.c is a way too big already.
  
  Approved by:	Sunny
storage/innobase/log/log0recv.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1607:
  Bug#23710
  
  At InnoDB startup consider the case where log scan went beyond checkpoint_lsn as a crash and initiate crash recovery code path.
  
  reviewed by: Heikki
storage/innobase/mem/mem0mem.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/mem/mem0pool.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/os/os0file.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1613:
  Fix Bug#29155 by enabling file locking on FreeBSD.
  It has been disabled because InnoDB has refused to start on
  FreeBSD & LinuxThreads, but now it starts just fine.
  
  Approved by:	Heikki
storage/innobase/page/page0page.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1571:
  Fix a severe bug that was introduced in r1422 when fixing Bug 21101.
  When creating an index containing a too long record, InnoDB would
  dereference a NULL pointer when trying to determine the maximum row length.
  
  innodb_check_for_record_too_big_error(): Replace the dict_table_t*
  parameter with a Boolean flag.  There is not always a dict_table_t object
  when this function is called.
  
  page_get_free_space_of_empty_noninline(): Move the definition and
  declaration from row0mysql (!) to page0page.  Make the signature
  identical with page_get_free_space_of_empty().
  
  create_clustered_index_when_no_primary(): Add the parameter "comp".
  Remove unnecessary casts.
storage/innobase/rem/rem0rec.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/row/row0mysql.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1571:
  Fix a severe bug that was introduced in r1422 when fixing Bug 21101.
  When creating an index containing a too long record, InnoDB would
  dereference a NULL pointer when trying to determine the maximum row length.
  
  innodb_check_for_record_too_big_error(): Replace the dict_table_t*
  parameter with a Boolean flag.  There is not always a dict_table_t object
  when this function is called.
  
  page_get_free_space_of_empty_noninline(): Move the definition and
  declaration from row0mysql (!) to page0page.  Make the signature
  identical with page_get_free_space_of_empty().
  
  create_clustered_index_when_no_primary(): Add the parameter "comp".
  Remove unnecessary casts.
storage/innobase/sync/sync0rw.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1598:
  Add some comments.
  
  Approved by:	Heikki (via IM)
storage/innobase/sync/sync0sync.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1598:
  Add some comments.
  
  Approved by:	Heikki (via IM)
storage/innobase/trx/trx0sys.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
storage/innobase/trx/trx0trx.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1595:
  trx_commit_for_mysql(): Avoid acquiring and releasing kernel_mutex when
  trx->sess or trx_dummy_sess is non-NULL.
storage/innobase/ut/ut0mem.c:
  Apply snapshot innodb-51-ss1644
  
  Revision r1581:
  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
2007-07-24 19:34:31 -06:00
unknown
76de7d788c Apply the following InnoDB snapshots:
innodb-5.1-ss1318
innodb-5.1-ss1330
innodb-5.1-ss1332
innodb-5.1-ss1340

Fixes:
- Bug #21409: Incorrect result returned when in READ-COMMITTED with query_cache ON
  At low transaction isolation levels we let each consistent read set
  its own snapshot.

- Bug #23666: strange Innodb_row_lock_time_% values in show status; also millisecs wrong
  On Windows ut_usectime returns secs and usecs relative to the UNIX
  epoch (which is Jan, 1 1970).

- Bug #25494: LATEST DEADLOCK INFORMATION is not always cleared
  lock_deadlock_recursive(): When the search depth or length is exceeded,
  rewind lock_latest_err_file and display the two transactions at the
  point of aborting the search.

- Bug #25927: Foreign key with ON DELETE SET NULL on NOT NULL can crash server
  Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns for which
  there is a foreign key constraint ON ... SET NULL.

- Bug #26835: Repeatable corruption of utf8-enabled tables inside InnoDB
  The bug could be reproduced as follows:

  Define a table so that the first column of the clustered index is
  a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
  of differing length are considered equivalent.

  Insert and delete a record.  Before the delete-marked record is
  purged, insert another record whose first column is of different
  length but equivalent to the first record.  Under certain conditions,
  the insertion can be incorrectly performed as update-in-place.

  Likewise, an operation that could be done as update-in-place can
  unnecessarily be performed as delete and insert, but that would not
  cause corruption but merely degraded performance.


mysql-test/r/innodb.result:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1284:
  Merge changes from MySQL AB:
  
  ChangeSet
    2007/01/24 14:49:36+04:00 holyfoot@mysql.com 
    bug 22682 Test fails --without-geometry
    geometry dependent parts moved to proper .test files
  
  mysql-test/r/innodb.result
    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -2
    result fixed
  
  mysql-test/r/innodb_gis.result
    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +2 -0
    result fixed
  
  mysql-test/t/innodb.test
    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -6
    HAVE_GEOMETRY dependent part moved to innodb_gis.test
  
  mysql-test/t/innodb_gis.test
    2007/01/24 14:49:35+04:00 holyfoot@mysql.com +6 -0
    HAVE_GEOMETRY dependent part moved here from innodb.test
  
  
  Revision r1186:
  dict_load_foreign(): Use a local variable instead of the 10-bit field
  foreign->n_fields in order to preserve ON UPDATE CASCADE and
  ON DELETE CASCADE flags.  For some reason, gcc does not warn about
  shifting a 10-bit field to right by 24 bits.  (Bug 24741)
  
  This bug was introduced while reducing the memory footprint of the
  InnoDB data dictionary (Bug 20877).
  
  innodb.test, innodb.result: Add a test case.
  
  
  Revision r1318:
  Add a test case for r1316 (Bug #25927).
  
  
  Revision r1340:
  innodb.test, innodb.result: Add test case for Bug #26835.
  The bug could be reproduced as follows:
  
  Define a table so that the first column of the clustered index is
  a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
  of differing length are considered equivalent.
  
  Insert and delete a record.  Before the delete-marked record is
  purged, insert another record whose first column is of different
  length but equivalent to the first record.  Under certain conditions,
  the insertion can be incorrectly performed as update-in-place.
  
  Likewise, an operation that could be done as update-in-place can
  unnecessarily be performed as delete and insert, but that would not
  cause corruption but merely degraded performance.
mysql-test/t/innodb.test:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1284:
  Merge changes from MySQL AB:
  
  ChangeSet
    2007/01/24 14:49:36+04:00 holyfoot@mysql.com 
    bug 22682 Test fails --without-geometry
    geometry dependent parts moved to proper .test files
  
  mysql-test/r/innodb.result
    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -2
    result fixed
  
  mysql-test/r/innodb_gis.result
    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +2 -0
    result fixed
  
  mysql-test/t/innodb.test
    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -6
    HAVE_GEOMETRY dependent part moved to innodb_gis.test
  
  mysql-test/t/innodb_gis.test
    2007/01/24 14:49:35+04:00 holyfoot@mysql.com +6 -0
    HAVE_GEOMETRY dependent part moved here from innodb.test
  
  
  Revision r1283:
  Merge changes from MySQL AB:
  
  ChangeSet
    2007/01/22 18:42:52+02:00 monty@mysql.com 
    Give warnings for unused objects
    Changed error message to be compatible with old error file
    Added new error message for new DUP_ENTRY syntax
  
  mysql-test/t/innodb.test
    2007/01/22 18:42:49+02:00 monty@mysql.com +14 -14
    Changed to use new error message
  
  
  Revision r1186:
  dict_load_foreign(): Use a local variable instead of the 10-bit field
  foreign->n_fields in order to preserve ON UPDATE CASCADE and
  ON DELETE CASCADE flags.  For some reason, gcc does not warn about
  shifting a 10-bit field to right by 24 bits.  (Bug 24741)
  
  This bug was introduced while reducing the memory footprint of the
  InnoDB data dictionary (Bug 20877).
  
  innodb.test, innodb.result: Add a test case.
  
  
  Revision r1318:
  Add a test case for r1316 (Bug #25927).
  
  
  Revision r1329:
  Merge changes from MySQL AB to mysql-test directives.
  The results are not affected.
  
  
  Revision r1340:
  innodb.test, innodb.result: Add test case for Bug #26835.
  The bug could be reproduced as follows:
  
  Define a table so that the first column of the clustered index is
  a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
  of differing length are considered equivalent.
  
  Insert and delete a record.  Before the delete-marked record is
  purged, insert another record whose first column is of different
  length but equivalent to the first record.  Under certain conditions,
  the insertion can be incorrectly performed as update-in-place.
  
  Likewise, an operation that could be done as update-in-place can
  unnecessarily be performed as delete and insert, but that would not
  cause corruption but merely degraded performance.
storage/innobase/buf/buf0buf.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/buf/buf0flu.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/buf/buf0lru.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/dict/dict0boot.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/dict/dict0crea.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
storage/innobase/dict/dict0dict.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1316:
  Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns for which
  there is a foreign key constraint ON ... SET NULL.  (Bug #25927)
  
  dict_foreign_find_index(): Add paramettter check_null.
  
  dict_foreign_add_to_cache(): Do not allow ON DELETE SET NULL
  or ON UPDATE SET NULL if any of the referencing columns are declared NOT NULL.
  
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
storage/innobase/dict/dict0load.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1186:
  dict_load_foreign(): Use a local variable instead of the 10-bit field
  foreign->n_fields in order to preserve ON UPDATE CASCADE and
  ON DELETE CASCADE flags.  For some reason, gcc does not warn about
  shifting a 10-bit field to right by 24 bits.  (Bug 24741)
  
  This bug was introduced while reducing the memory footprint of the
  InnoDB data dictionary (Bug 20877).
  
  innodb.test, innodb.result: Add a test case.
  
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
storage/innobase/fil/fil0fil.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/fsp/fsp0fsp.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/ha/ha0ha.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/handler/ha_innodb.cc:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1204:
  Change this in ha_innobase:
  
   void*           innobase_prebuilt;
  
  to this:
  
   row_prebuilt_t* prebuilt;
  
  by introducing the typedef in ha_innodb.h, and remove all the now needless
  local variables and casts in ha_innodb.cc.
  
  Revision r1298:
  ha_innodb.cc: Remove all references to thd->ha_data[hton->slot].
  
  thd_to_trx(thd, hton): Accessor for getting the InnoDB trx object
  of a MySQL thread object and an InnoDB handlerton.
  
  
  Revision r1292:
  Remove the declarations of some global functions in ha_innodb.h and declare
  them static in ha_innodb.cc.  These functions are invoked via function
  pointers in handlerton.
  
  
  Revision r1300:
  ha_innodb.cc: Replace thd->tablespace_op with thd_tablespace_op(thd).
  Plugins must treat class THD as an opaque type.
  
  
  Revision r1198:
  Merge a change from MySQL AB:
  
  ChangeSet@1.2372, 2006-12-31 02:29:11+01:00, kent@mysql.com +79 -0
    Many files:
      Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
      Adjusted year(s) in copyright header 
      Added GPL copyright text
  
  
  Revision r1271:
  Merge changes from MySQL AB:
  
  Rename some FIELD_TYPE_ constants to MYSQL_TYPE_.
  
  Change the scope of a type cast of two dividends.
  
  
  Revision r1299:
  ha_innodb.cc: Replace thd->in_lock_tables with thd_in_lock_tables(thd).
  Plugins must treat class THD as an opaque type.
  
  
  Revision r1201:
  Apply patch from MySQL:
  
   ChangeSet@1.2353, 2006-12-19 16:57:51-07:00, tsmith@siva.hindu.god +13 -0
     Added innodb_rollback_on_timeout option to restore the 4.1 
     InnoDB timeout behavior (Bug 24200)
  
  Revision r1322:
  ha_innodb.cc: Remove the unused innobase_repl_ variables.
  
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
  
  
  Revision r1334:
  Fix for Bug# 21409. At low transaction isolation levels we let each 
  consistent read set its own snapshot
storage/innobase/handler/ha_innodb.h:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1204:
  Change this in ha_innobase:
  
   void*           innobase_prebuilt;
  
  to this:
  
   row_prebuilt_t* prebuilt;
  
  by introducing the typedef in ha_innodb.h, and remove all the now needless
  local variables and casts in ha_innodb.cc.
  
  Revision r1292:
  Remove the declarations of some global functions in ha_innodb.h and declare
  them static in ha_innodb.cc.  These functions are invoked via function
  pointers in handlerton.
  
  
  Revision r1198:
  Merge a change from MySQL AB:
  
  ChangeSet@1.2372, 2006-12-31 02:29:11+01:00, kent@mysql.com +79 -0
    Many files:
      Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
      Adjusted year(s) in copyright header 
      Added GPL copyright text
  
  
  Revision r1201:
  Apply patch from MySQL:
  
   ChangeSet@1.2353, 2006-12-19 16:57:51-07:00, tsmith@siva.hindu.god +13 -0
     Added innodb_rollback_on_timeout option to restore the 4.1 
     InnoDB timeout behavior (Bug 24200)
storage/innobase/ibuf/ibuf0ibuf.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/buf0buf.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/buf0flu.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/dict0dict.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/ha0ha.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/lock0lock.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/log0log.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/mem0mem.h:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1241:
  Remove the unused function mem_strdupq().
storage/innobase/include/mem0mem.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1241:
  Remove the unused function mem_strdupq().
storage/innobase/include/rem0rec.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1338:
  rec_offs_nth_size(): Treat n==0 as a special case.  (Bug #26835)
storage/innobase/include/sync0rw.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/sync0sync.h:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1247:
  Rename mutex_enter_nowait to mutex_enter_nowait_func and add macro
  mutex_enter_nowait that supplies the default __FILE__ and __LINE__
  arguments. Adjust callers.
storage/innobase/include/sync0sync.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1294:
  Fixed inline asm code, it didn't work with GCC > ver 3.x.
  
  
  Revision r1244:
  Add ut_ad() debug assertions.
  
  UT_LIST_ADD_FIRST(), UT_LIST_ADD_LAST(), UT_LIST_INSERT_AFTER():
  Assert against some trivial cases of cyclic lists.
  
  mutex_enter_func(): Assert that the current thread is not holding the mutex.
  
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/trx0sys.ic:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/include/univ.i:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1285:
  Merge a change from MySQL AB:
  
  ChangeSet
    2006/10/26 15:41:47-04:00 iggy@amd64. 
    Post Merge Cleanup
  
  storage/innobase/include/univ.i
    2006/10/26 15:38:50-04:00 iggy@amd64. +9 -0
    Post Merge Cleanup
storage/innobase/include/ut0lst.h:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1244:
  Add ut_ad() debug assertions.
  
  UT_LIST_ADD_FIRST(), UT_LIST_ADD_LAST(), UT_LIST_INSERT_AFTER():
  Assert against some trivial cases of cyclic lists.
  
  mutex_enter_func(): Assert that the current thread is not holding the mutex.
storage/innobase/lock/lock0lock.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1330:
  lock_deadlock_recursive(): When the search depth or length is exceeded,
  rewind lock_latest_err_file and display the two transactions at the
  point of aborting the search.  (Bug #25494)
  
  
  Revision r1332:
  lock_deadlock_recursive(): When aborting the search, display a note
  regardless of start->undo_no.  Otherwise, aborted searches may show
  up as genuine deadlocks.  This mistake was made in r1330.
storage/innobase/log/log0log.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1247:
  Rename mutex_enter_nowait to mutex_enter_nowait_func and add macro
  mutex_enter_nowait that supplies the default __FILE__ and __LINE__
  arguments. Adjust callers.
storage/innobase/log/log0recv.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/mem/mem0pool.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/pars/pars0pars.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/que/que0que.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/read/read0read.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/row/row0mysql.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1201:
  Apply patch from MySQL:
  
   ChangeSet@1.2353, 2006-12-19 16:57:51-07:00, tsmith@siva.hindu.god +13 -0
     Added innodb_rollback_on_timeout option to restore the 4.1 
     InnoDB timeout behavior (Bug 24200)
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
storage/innobase/row/row0vers.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/srv/srv0que.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/srv/srv0srv.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1262:
  Fix for Bug# 23666. On Windows ut_usectime returns secs 
  and usecs relative to the UNIX epoch (which is Jan, 1 1970).
  
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/sync/sync0rw.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1247:
  Rename mutex_enter_nowait to mutex_enter_nowait_func and add macro
  mutex_enter_nowait that supplies the default __FILE__ and __LINE__
  arguments. Adjust callers.
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
storage/innobase/sync/sync0sync.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1247:
  Rename mutex_enter_nowait to mutex_enter_nowait_func and add macro
  mutex_enter_nowait that supplies the default __FILE__ and __LINE__
  arguments. Adjust callers.
storage/innobase/thr/thr0loc.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/trx/trx0purge.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/trx/trx0roll.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/trx/trx0rseg.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/trx/trx0sys.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/trx/trx0trx.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
  
  
  Revision r1324:
  Merge changes from MySQL AB:
  
  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
    Fixed compiler warnings
    ...
    Fixed compiler warnings detected on windows64
storage/innobase/trx/trx0undo.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/usr/usr0sess.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1242:
  Merge r1239 from
  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
storage/innobase/ut/ut0ut.c:
  Apply the following InnoDB snapshots:
  innodb-5.1-ss1318
  innodb-5.1-ss1330
  innodb-5.1-ss1332
  innodb-5.1-ss1340
  
  Revision r1262:
  Fix for Bug# 23666. On Windows ut_usectime returns secs 
  and usecs relative to the UNIX epoch (which is Jan, 1 1970).
2007-03-22 15:59:35 -06:00
unknown
a5868736ff Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
Fixes:
- Bug #24712: SHOW TABLE STATUS for file-per-table showing incorrect time fields
- Bug #24386: Performance degradation caused by instrumentation in mutex_struct
- Bug #24190: many exportable definitions of field_in_record_is_null
- Bug #21468: InnoDB crash during recovery with corrupted data pages: XA bug?


storage/innobase/buf/buf0buf.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1045:
  buf_page_init_for_read(): Correct the indentation.
storage/innobase/buf/buf0flu.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1038:
  Port r983 from branches/zip: Enclose some more debug code in
  #ifdef UNIV_SYNC_DEBUG to allow the code to be built
  with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
storage/innobase/dict/dict0dict.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1124:
  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
  adding a second parameter, adjust callers.
storage/innobase/ha/ha0ha.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/ha/hash0hash.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/handler/ha_innodb.cc:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1028:
  Merge a change from MySQL AB.
  
  ChangeSet
    2006/11/10 17:22:43+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi 
    Bug #24190  many exportable definitions of field_in_record_is_null
    
    mysql had several(2) exportable definitions of field_in_record_is_null function.
    
    Fixed with adding static.
  
  storage/innobase/handler/ha_innodb.cc
    2006/11/10 17:22:36+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi +1 -1
    made static
  
  
  Revision r1008:
  Minor cleanup.
  
  ha_innobase::rnd_pos(): Use correct format in DBUG_PRINT statements.
  
  buf_page_release(): Remove the local variable buf_fix_count.
  
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
  
  
  Revision r1124:
  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
  adding a second parameter, adjust callers.
  
  Revision r1134:
  Fix a potential bug in ha_innodb.cc:innobase_query_is_update() where the
  function can be called with "current_thd == NULL". Minor non-functional fix
  in log0recv.c
  
  
  Revision r1098:
  Fix bug #24712: SHOW TABLE STATUS for file-per-table showing incorrect
  time fields
  
  
  Revision r1109:
  ha_innodb.cc: Remove unused define MAX_ULONG_BIT.
storage/innobase/include/btr0sea.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1088:
  Replace the Latin abbreviation "cf." in comments.
storage/innobase/include/buf0buf.ic:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1008:
  Minor cleanup.
  
  ha_innobase::rnd_pos(): Use correct format in DBUG_PRINT statements.
  
  buf_page_release(): Remove the local variable buf_fix_count.
storage/innobase/include/data0type.ic:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1088:
  Replace the Latin abbreviation "cf." in comments.
storage/innobase/include/dict0dict.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1124:
  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
  adding a second parameter, adjust callers.
storage/innobase/include/ha0ha.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/include/hash0hash.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/include/sync0rw.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/include/sync0sync.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1038:
  Port r983 from branches/zip: Enclose some more debug code in
  #ifdef UNIV_SYNC_DEBUG to allow the code to be built
  with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
  
  
  Revision r1037:
  Port r972 from branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
  The code was previously unused in non-debug builds.
  
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
  
  
  Revision r1084:
  Remove the unused constants SYNC_INFINITE_TIME and SYNC_TIME_EXCEEDED.
storage/innobase/include/sync0sync.ic:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/include/univ.i:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1006:
  Introduce #define UNIV_LIST_DEBUG for enabling the debug code in
  UT_LIST_REMOVE_CLEAR().
  
  
  Revision r1088:
  Replace the Latin abbreviation "cf." in comments.
  
  
  Revision r1083:
  univ.i: Document the debug flags (UNIV_DEBUG et al).
storage/innobase/include/ut0lst.h:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1006:
  Introduce #define UNIV_LIST_DEBUG for enabling the debug code in
  UT_LIST_REMOVE_CLEAR().
storage/innobase/lock/lock0lock.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1009:
  Remove duplicate printing of row lock counts in SHOW INNODB STATUS, and in
  the remaining print, add a comma so it doesn't get combined with the heap
  size. Both problems were introduced in r383.
storage/innobase/log/log0recv.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1134:
  Fix a potential bug in ha_innodb.cc:innobase_query_is_update() where the
  function can be called with "current_thd == NULL". Minor non-functional fix
  in log0recv.c
  
  
  Revision r1078:
  Merge r1067:1077 from branches/5.0:
  
  innobase_start_or_create_for_mysql(): Remove unnecessary delay now that
  we moved the setting sync_order_checks_on=TRUE to log0recv.c,
  to the start of the rollback phase in crash recovery.
  
  Fix assertion failure sync0sync.c line 1239
  (the latter ut_error in sync_thread_reset_level())
  in crash recovery when UNIV_SYNC_DEBUG is enabled.
  
  
  Revision r1080:
  Merge r1079 from branches/5.0:
  
  recv_recovery_from_checkpoint_finish(): Add 1 sec delay
  before switching on the sync order checks in crash recovery, so that
  file I/O threads have time to suspend themselves.
storage/innobase/row/row0ins.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1124:
  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
  adding a second parameter, adjust callers.
storage/innobase/row/row0sel.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1038:
  Port r983 from branches/zip: Enclose some more debug code in
  #ifdef UNIV_SYNC_DEBUG to allow the code to be built
  with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
  
  
  Revision r1124:
  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
  adding a second parameter, adjust callers.
storage/innobase/row/row0upd.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1124:
  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
  adding a second parameter, adjust callers.
storage/innobase/srv/srv0start.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1038:
  Port r983 from branches/zip: Enclose some more debug code in
  #ifdef UNIV_SYNC_DEBUG to allow the code to be built
  with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
  
  
  Revision r1078:
  Merge r1067:1077 from branches/5.0:
  
  innobase_start_or_create_for_mysql(): Remove unnecessary delay now that
  we moved the setting sync_order_checks_on=TRUE to log0recv.c,
  to the start of the rollback phase in crash recovery.
  
  Fix assertion failure sync0sync.c line 1239
  (the latter ut_error in sync_thread_reset_level())
  in crash recovery when UNIV_SYNC_DEBUG is enabled.
  
  
  Revision r1070:
  Remove another accidentally committed change to srv0start.c.
  The change was accidentally committed with the merge in r1068.
  This revision corresponds to r1051 with a properly merged
  r1067 of branches/5.0.
  
  
  Revision r1068:
  Merge r1067 from branches/5.0:
  
  trx_rollback_for_mysql(), trx_commit_for_mysql():
  Protect the creation of trx_dummy_sess with kernel_mutex.
  This error was introduced in r1046 and r1050.
  
  
  Revision r1069:
  Remove an accidentally committed change to srv0start.c.
  The change was accidentally committed with the merge in r1068.
storage/innobase/sync/sync0rw.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/sync/sync0sync.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1038:
  Port r983 from branches/zip: Enclose some more debug code in
  #ifdef UNIV_SYNC_DEBUG to allow the code to be built
  with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
  
  
  Revision r1037:
  Port r972 from branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
  The code was previously unused in non-debug builds.
  
  
  Revision r1039:
  Port r1034 from branches/zip: Remove some instrumentation and reduce
  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
storage/innobase/trx/trx0roll.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1049:
  Merge r1048 from branches/5.0:
  
  trx_rollback_for_mysql(): Do not set trx->sess back to NULL.
  This bug was introduced in r1046.
  
  
  Revision r1047:
  Merge r1046 from branches/5.0:
  
  branches/5.0: trx_rollback_for_mysql(): Ensure that trx->sess is non-NULL
  when calling trx_general_rollback_for_mysql().  This removes a segmentation
  fault when rolling back a prepared transaction in XA recovery.  (Bug #21468)
  
  
  Revision r1068:
  Merge r1067 from branches/5.0:
  
  trx_rollback_for_mysql(), trx_commit_for_mysql():
  Protect the creation of trx_dummy_sess with kernel_mutex.
  This error was introduced in r1046 and r1050.
  
  
  Revision r1051:
  Merge r1050 from branches/5.0:
  
  trx_rollback_for_mysql(): Fix the comment introduced in r1046.
  
  trx_commit_for_mysql(): Use the dummy trx->sess also for committing a prepared
  transaction in XA recovery, just in case our code would need the session
  object also in that case (does not seem to need it right now).
storage/innobase/trx/trx0trx.c:
  Applied innodb-5.1-ss1039 and innodb-5.1-ss1134 snapshots.
  
  Revision r1009:
  Remove duplicate printing of row lock counts in SHOW INNODB STATUS, and in
  the remaining print, add a comma so it doesn't get combined with the heap
  size. Both problems were introduced in r383.
  
  Revision r1068:
  Merge r1067 from branches/5.0:
  
  trx_rollback_for_mysql(), trx_commit_for_mysql():
  Protect the creation of trx_dummy_sess with kernel_mutex.
  This error was introduced in r1046 and r1050.
  
  
  Revision r1051:
  Merge r1050 from branches/5.0:
  
  trx_rollback_for_mysql(): Fix the comment introduced in r1046.
  
  trx_commit_for_mysql(): Use the dummy trx->sess also for committing a prepared
  transaction in XA recovery, just in case our code would need the session
  object also in that case (does not seem to need it right now).
2007-01-04 19:51:34 -07:00
unknown
b4649198da Post Merge Cleanup 2006-10-26 15:41:47 -04:00
unknown
f6f91b9d3b Apply InnoDB snapshot ss923
Fixes:
- Bug #18077: InnoDB uses full explicit table locks in stored FUNCTION


storage/innobase/btr/btr0btr.c:
  Apply InnoDB snapshot ss923
  
  Revision r919:
  btr_page_get_father_for_rec(): Remove bogus comment about removed dict_tree_t.
storage/innobase/dict/dict0dict.c:
  Apply InnoDB snapshot ss923
  
  Revision r892:
  Merge changes from MySQL AB.
  
  dict_col_copy_type_noninline(): Remove the return statement.
  Some compilers do not allow return expressions of void type.
  
  innobase_start_or_create_for_mysql(): Do not cap srv_max_threads to 1000
  on Windows.
  
  Makefile.am (EXTRA_DIST): Add plug.in
  
  
  Revision r897:
  dict_index_get_if_in_cache(): Enclose in #ifdef UNIV_DEBUG.
  Replace the search loop with a call to dict_index_find_on_id_low().
storage/innobase/handler/ha_innodb.cc:
  Apply InnoDB snapshot ss923
  
  Revision r887:
  storage/innobase/handler: Merge changes from MySQL AB:
  
  ChangeSet
    2006/09/30 18:44:42-07:00 brian@zim.(none) 
    Merge zim.(none):/home/brian/mysql/merge-5.1
    into  zim.(none):/home/brian/mysql/arch-5.1
  
  ChangeSet
    2006/09/30 12:49:46-07:00 brian@zim.(none) 
    This patch adds handlerton passing to functions. NDB and Innodb still require a global hanlderton in the main code due to the nature of the sql_cache call back function (should be solveable... another patch).
    Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call. 
  
  ChangeSet
    2006/09/29 17:19:02-07:00 brian@zim.(none) 
    This removes the passing of global hton to engine instance. 
  
  ChangeSet
    2006/09/28 13:22:56+02:00 gbichot@dl145h.mysql.com 
    Merge gbichot@bk-internal:/home/bk/mysql-5.1-arch
    into  dl145h.mysql.com:/users/gbichot/mysql-5.1-arch
  
  ChangeSet
    2006/09/28 13:19:43+02:00 gbichot@dl145h.mysql.com 
    In the handlerton, cursor creation function don't have an argument
    and so the engine calls current_thd to derive transaction information;
    instead we now pass THD to those functions, it looks more logical
    (it makes the implicit current_thd parameter more visible).
    Approved by Brian and Monty.
  
  ChangeSet
    2006/09/26 22:51:53-07:00 brian@zim.(none) 
    Merge zim.(none):/home/brian/mysql/merge-5.1
    into  zim.(none):/home/brian/mysql/arch-5.1
  
  
  Revision r895:
  Merge changes from MySQL AB, and remove two compilation warnings.
  
  ha_innodb.cc: innodb_mutex_show_status(): Add (ulong) casts to
  ulonglong expressions being passed to fprintf %lu.  The warnings
  were apparently introduced by MySQL AB developers.
  
  mysql_declare_plugin(innobase): Add PLUGIN_LICENSE_GPL.
  
  have_innodb.inc: Merge changes from MySQL AB.
  
  
  Revision r923:
  ha_innobase::store_lock(): When downgrading table locks, do not
  check thd->in_lock_tables but test if
  thd->lex->sql_command == SQLCOM_LOCK_TABLES
  instead.  Otherwise, stored functions will use table locks.  (Bug #18077)
  
  This patch is from Heikki.
storage/innobase/include/dict0dict.h:
  Apply InnoDB snapshot ss923
  
  Revision r897:
  dict_index_get_if_in_cache(): Enclose in #ifdef UNIV_DEBUG.
  Replace the search loop with a call to dict_index_find_on_id_low().
storage/innobase/include/mem0dbg.h:
  Apply InnoDB snapshot ss923
  
  Revision r901:
  Enclose some mem debug functions in #ifdef UNIV_DEBUG or #ifdef UNIV_MEM_DEBUG.
storage/innobase/include/mtr0mtr.h:
  Apply InnoDB snapshot ss923
  
  Revision r866:
  mtr_print(), mtr_memo_contains(): Disable unless #ifdef UNIV_DEBUG.
storage/innobase/include/mtr0mtr.ic:
  Apply InnoDB snapshot ss923
  
  Revision r866:
  mtr_print(), mtr_memo_contains(): Disable unless #ifdef UNIV_DEBUG.
storage/innobase/include/sync0rw.h:
  Apply InnoDB snapshot ss923
  
  Revision r907:
  Send all SHOW ENGINE INNODB STATUS information to the client also when
  UNIV_SYNC_DEBUG is defined.
  
  rw_lock_list_print_info(): Add parameter "file".
  
  mutex_list_print_info(): Add parameter "file".  Make the function static.
storage/innobase/include/sync0sync.h:
  Apply InnoDB snapshot ss923
  
  Revision r907:
  Send all SHOW ENGINE INNODB STATUS information to the client also when
  UNIV_SYNC_DEBUG is defined.
  
  rw_lock_list_print_info(): Add parameter "file".
  
  mutex_list_print_info(): Add parameter "file".  Make the function static.
storage/innobase/include/univ.i:
  Apply InnoDB snapshot ss923
  
  Revision r894:
  univ.i: Indent some of the directives, and remove conditions about Windows
  in the "#else" branch of "#if building on Windows".
storage/innobase/mem/mem0dbg.c:
  Apply InnoDB snapshot ss923
  
  Revision r901:
  Enclose some mem debug functions in #ifdef UNIV_DEBUG or #ifdef UNIV_MEM_DEBUG.
  
  
  Revision r902:
  mem0dbg.c: Enclose some more function definitions in #ifdef UNIV_MEM_DEBUG.
  The declarations were already enclosed in #ifdef UNIV_MEM_DEBUG.
storage/innobase/mem/mem0pool.c:
  Apply InnoDB snapshot ss923
  
  Revision r896:
  mem0pool.c: Remove obsolete comments about the dictionary cache being
  managed with an LRU algorithm.
storage/innobase/mtr/mtr0mtr.c:
  Apply InnoDB snapshot ss923
  
  Revision r866:
  mtr_print(), mtr_memo_contains(): Disable unless #ifdef UNIV_DEBUG.
storage/innobase/row/row0purge.c:
  Apply InnoDB snapshot ss923
  
  Revision r869:
  row_purge_parse_undo_rec(): Correct a faulty condition.  Luckily, this
  bug would only surface if the InnoDB SQL interpreter were used for
  updating fixed-length columns.  Currently (as the UPD_NODE_NO_SIZE_CHANGE
  flag is never set), cmpl_info can only be 0 or UPD_NODE_NO_ORD_CHANGE.
  Luckily, UPD_NODE_NO_ORD_CHANGE is 1, and the condition was simplified
  to !cmpl_info.
storage/innobase/sync/sync0rw.c:
  Apply InnoDB snapshot ss923
  
  Revision r907:
  Send all SHOW ENGINE INNODB STATUS information to the client also when
  UNIV_SYNC_DEBUG is defined.
  
  rw_lock_list_print_info(): Add parameter "file".
  
  mutex_list_print_info(): Add parameter "file".  Make the function static.
storage/innobase/sync/sync0sync.c:
  Apply InnoDB snapshot ss923
  
  Revision r907:
  Send all SHOW ENGINE INNODB STATUS information to the client also when
  UNIV_SYNC_DEBUG is defined.
  
  rw_lock_list_print_info(): Add parameter "file".
  
  mutex_list_print_info(): Add parameter "file".  Make the function static.
2006-10-20 12:36:15 -06:00