Commit graph

56 commits

Author SHA1 Message Date
Marko Mäkelä
97acc4a1c3 MDEV-12270 Port MySQL 8.0 Bug#21141390 REMOVE UNUSED FUNCTIONS AND CONVERT GLOBAL SYMBOLS TO STATIC
InnoDB defines some functions that are not called at all.
Other functions are called, but only from the same compilation unit.

Remove some function declarations and definitions, and add 'static'
keywords. Some symbols must be kept for separately compiled tools,
such as innochecksum.
2017-03-17 12:48:50 +02:00
Marko Mäkelä
4e1116b2c6 MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL
Also, remove empty .ic files that were not removed by my MySQL commit.

Problem:
InnoDB used to support a compilation mode that allowed to choose
whether the function definitions in .ic files are to be inlined or not.
This stopped making sense when InnoDB moved to C++ in MySQL 5.6
(and ha_innodb.cc started to #include .ic files), and more so in
MySQL 5.7 when inline methods and functions were introduced
in .h files.

Solution:
Remove all references to UNIV_NONINL and UNIV_MUST_NOT_INLINE from
all files, assuming that the symbols are never defined.
Remove the files fut0fut.cc and ut0byte.cc which only mattered when
UNIV_NONINL was defined.
2017-03-17 12:42:07 +02:00
Marko Mäkelä
89d80c1b0b Fix many -Wconversion warnings.
Define my_thread_id as an unsigned type, to avoid mismatch with
ulonglong.  Change some parameters to this type.

Use size_t in a few more places.

Declare many flag constants as unsigned to avoid sign mismatch
when shifting bits or applying the unary ~ operator.

When applying the unary ~ operator to enum constants, explictly
cast the result to an unsigned type, because enum constants can
be treated as signed.

In InnoDB, change the source code line number parameters from
ulint to unsigned type. Also, make some InnoDB functions return
a narrower type (unsigned or uint32_t instead of ulint;
bool instead of ibool).
2017-03-07 19:07:27 +02:00
Marko Mäkelä
a13a636c74 MDEV-11802 innodb.innodb_bug14676111 fails
The function trx_purge_stop() was calling os_event_reset(purge_sys->event)
before calling rw_lock_x_lock(&purge_sys->latch). The os_event_set()
call in srv_purge_coordinator_suspend() is protected by that X-latch.

It would seem a good idea to consistently protect both os_event_set()
and os_event_reset() calls with a common mutex or rw-lock in those
cases where os_event_set() and os_event_reset() are used
like condition variables, tied to changes of shared state.

For each os_event_t, we try to document the mutex or rw-lock that is
being used. For some events, frequent calls to os_event_set() seem to
try to avoid hangs. Some events are never waited for infinitely, only
timed waits, and os_event_set() is used for early termination of these
waits.

os_aio_simulated_put_read_threads_to_sleep(): Define as a null macro
on other systems than Windows. TODO: remove this altogether and disable
innodb_use_native_aio on Windows.

os_aio_segment_wait_events[]: Initialize only if innodb_use_native_aio=0.

log_write_flush_to_disk_low(): Invoke log_mutex_enter() at the end, to
avoid race conditions when changing the system state. (No potential
race condition existed before MySQL 5.7.)
2017-02-20 12:32:43 +02:00
Jan Lindström
71495a1748 MDEV-11849: Fix storage/innobase/* compile warnings 2017-01-26 08:05:24 +02:00
sensssz
a24e6258ec Change all space indentions to tab. 2016-10-23 13:36:26 -04:00
sensssz
c455898b2c Implement VATS in XtraDB and InnoDB. 2016-10-19 01:42:10 -04:00
Jan Lindström
fec844aca8 Merge InnoDB 5.7 from mysql-5.7.14.
Contains also:
       MDEV-10549 mysqld: sql/handler.cc:2692: int handler::ha_index_first(uchar*): Assertion `table_share->tmp_table != NO_TMP_TABLE || m_lock_type != 2' failed. (branch bb-10.2-jan)
       Unlike MySQL, InnoDB still uses THR_LOCK in MariaDB

       MDEV-10548 Some of the debug sync waits do not work with InnoDB 5.7 (branch bb-10.2-jan)
       enable tests that were fixed in MDEV-10549

       MDEV-10548 Some of the debug sync waits do not work with InnoDB 5.7 (branch bb-10.2-jan)
       fix main.innodb_mysql_sync - re-enable online alter for partitioned innodb tables
2016-09-08 15:49:03 +03:00
Jan Lindström
2e814d4702 Merge InnoDB 5.7 from mysql-5.7.9.
Contains also

MDEV-10547: Test multi_update_innodb fails with InnoDB 5.7

	The failure happened because 5.7 has changed the signature of
	the bool handler::primary_key_is_clustered() const
	virtual function ("const" was added). InnoDB was using the old
	signature which caused the function not to be used.

MDEV-10550: Parallel replication lock waits/deadlock handling does not work with InnoDB 5.7

	Fixed mutexing problem on lock_trx_handle_wait. Note that
	rpl_parallel and rpl_optimistic_parallel tests still
	fail.

MDEV-10156 : Group commit tests fail on 10.2 InnoDB (branch bb-10.2-jan)
  Reason: incorrect merge

MDEV-10550: Parallel replication can't sync with master in InnoDB 5.7 (branch bb-10.2-jan)
  Reason: incorrect merge
2016-09-02 13:22:28 +03:00
Sergei Golubchik
3361aee591 Merge branch '10.0' into 10.1 2016-06-28 22:01:55 +02:00
Sergei Golubchik
a79d46c3a4 Merge branch 'merge-innodb-5.6' into 10.0 2016-06-21 14:58:19 +02:00
Sergei Golubchik
720e04ff67 5.6.31 2016-06-21 14:21:03 +02:00
Sergei Golubchik
7697bf0bd7 Merge branch 'github/10.0-galera' into 10.1
Note: some tests fail, just as they failed before the merge!
2015-12-22 10:32:33 +01:00
Jan Lindström
080da551ea MDEV-8869: Potential lock_sys->mutex deadlock
In wsrep BF we have already took lock_sys and trx
mutex either on wsrep_abort_transaction() or
before wsrep_kill_victim(). In replication we
could own lock_sys mutex taken in
lock_deadlock_check_and_resolve().
2015-12-21 16:36:26 +02:00
Jan Lindström
4437f51682 MDEV-8869: Potential lock_sys->mutex deadlock
In wsrep brute force (BF) we have already took lock_sys and trx
mutex either on wsrep_abort_transaction() or
before wsrep_kill_victim().
2015-12-14 10:10:09 +02:00
Sergei Golubchik
6d06fbbd1d move to storage/innobase 2015-05-04 19:17:21 +02:00
Sergei Golubchik
f62c12b405 Merge 10.0.14 into 10.1 2014-10-15 12:59:13 +02:00
Jan Lindström
ab150128ce MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3880.

    Added a new functions to handler API to forcefully abort_transaction,
    producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These
    were added for future possiblity to add more storage engines that
    could use galera replication.
2014-08-27 13:15:37 +03:00
Jan Lindström
df4dd593f2 MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3879.

Added a new functions to handler API to forcefully abort_transaction,
producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These
were added for future possiblity to add more storage engines that
could use galera replication.
2014-08-26 15:43:46 +03:00
Nirbhay Choubey
8358dd53b7 bzr merge -r4346 maria/10.0 (maria-10.0.13) 2014-08-11 23:55:41 -04:00
Jan Lindström
6dad23f04a MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1
Merge https://github.com/kakao/mariadb-10.0 that contains Facebook's
    implementation for defragmentation

    facebook/mysql-5.6@a2d3a74
    facebook/mysql-5.6@def96c8
    facebook/mysql-5.6@9c67c5d
    facebook/mysql-5.6@921a81b
    facebook/mysql-5.6@aa519bd
    facebook/mysql-5.6@fea7d13
    facebook/mysql-5.6@09b29d3
    facebook/mysql-5.6@9284abb
    facebook/mysql-5.6@dbd623d
    facebook/mysql-5.6@aed55dc
    facebook/mysql-5.6@aad5c82

    This version does not add new SQL-syntax and new handler API function.
    Instead optimize table is mapped to defragment table if
    innodb_defragment=ON, by default the feature is off.

    Contains changes authored by Sunguck Lee (Kakao).
2014-08-06 15:28:58 +03:00
Sergei Golubchik
3e9d4541d5 MDEV-6340 Mariadb 10.0.12 fatal "Lost connection" error w/ GCC 4.9 'Release' build; workaround ~ CFLAGS="-fno-delete-null-pointer-checks"
don't use attribute nonnull for arguments that can be null
2014-07-31 09:51:05 +02:00
Nirbhay Choubey
086af8367e bzr merge -r4209 maria/10.0. 2014-05-21 11:09:55 -04:00
Sergei Golubchik
8ee9d19607 innodb 5.6.17 2014-05-07 17:32:23 +02:00
Nirbhay Choubey
02ba2bfdb4 Merging revision from codership-mysql/5.5 (r3928..3968) and
codership-mysql/5.6 (r4021..4065).
- Also contains fixes for some build failures.
2014-03-27 16:26:00 -04:00
Nirbhay Choubey
90e4f7f9d3 * bzr merge -rtag:mariadb-10.0.9 maria/10.0
* Fix for post-merge build failures.
2014-03-26 14:27:24 -04:00
Nirbhay Choubey
b5871a51e9 * bzr merge -r4027..4061 codership/5.6
* Merged Innodb changes to xtradb
2014-03-26 11:12:38 -04:00
Sergei Golubchik
27d45e4696 MDEV-5574 Set AUTO_INCREMENT below max value of column.
Update InnoDB to 5.6.14
Apply MySQL-5.6 hack for MySQL Bug#16434374
Move Aria-only HA_RTREE_INDEX from my_base.h to maria_def.h (breaks an assert in InnoDB)
Fix InnoDB memory leak
2014-02-01 09:33:26 +01:00
Jan Lindström
ba3ff50ab2 Merge 10.0 to galera-10.0 2013-09-03 17:50:36 +03:00
Seppo Jaakola
0a9216835f Initial merge result with mariaDB 10: lp:maria 2013-07-13 13:01:13 +03:00
Sergei Golubchik
a9035be5b7 10.0-base merge 2013-04-15 15:09:22 +02:00
Michael Widenius
068c61978e Temporary commit of 10.0-merge 2013-03-26 00:03:13 +02:00
Sergei Golubchik
ab83952f29 10.0-base merge 2013-01-31 09:48:19 +01:00
Yasufumi Kinoshita
ddf518c567 Bug#59354 : Bug #12659252 : ASSERT !OTHER_LOCK AT LOCK_REC_ADD_TO_QUEUE DURING A DELETE OPERATION
The converted implicit lock should wait for the prior conflicting lock if found.

rb://1437 approved by Marko
2012-11-28 17:07:02 +09:00
Yasufumi Kinoshita
8dd87e690d Bug#59354 : Bug #12659252 : ASSERT !OTHER_LOCK AT LOCK_REC_ADD_TO_QUEUE DURING A DELETE OPERATION
The converted implicit lock should wait for the prior conflicting lock if found.

rb://1437 approved by Marko
2012-11-28 17:05:23 +09:00
Michael Widenius
1d0f70c2f8 Temporary commit of merge of MariaDB 10.0-base and MySQL 5.6 2012-08-01 17:27:34 +03:00
Marko Mäkelä
0f95f99b03 Bug#12584374 LOCK_VALIDATE TRIPS ASSERTION !BLOCK->PAGE.FILE_PAGE_WAS_FREED
lock_clust_rec_some_has_impl(), row_get_rec_trx_id(),
lock_rec_queue_validate(), lock_table_other_has_incompatible(),
lock_table_has_to_wait_in_queue(), lock_table_queue_validate():
Add const qualifiers.

row_get_trx_id_offset(): Add const qualifiers. Keep the parameter rec
only in UNIV_DEBUG builds. Inline the function.

lock_rec_validate_page(): Take the buffer block as a parameter, to
avoid a buf_page_get_gen() call in most cases.

lock_rec_validate_page_low(): A version of lock_rec_validate_page()
that assumes that the lock system mutexes are already being held.

lock_rec_get_next_on_page_const(): A const variant of
lock_rec_get_next_on_page().

lock_validate(): Do not release the lock system mutex while
buffer-fixing the block for the lock_rec_validate_page() call.
Releasing the mutex apparently caused the assertion failure.

rb:665 approved by Sunny Bains
2011-05-24 14:11:21 +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
Marko Mäkelä
a2b9532188 Merge from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3495
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-06-02 13:37:14 +0300
message:
  Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record

  In semi-consistent read, only unlock freshly locked non-matching records.

  lock_rec_lock_fast(): Return LOCK_REC_SUCCESS,
  LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE.

  enum db_err: Add DB_SUCCESS_LOCKED_REC for indicating a successful
  operation where a record lock was created.

  lock_sec_rec_read_check_and_lock(),
  lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(),
  lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(),
  row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(),
  row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a
  new record lock was created. Adjust callers.

  row_unlock_for_mysql(): Correct the function documentation.

  row_prebuilt_t::new_rec_locks: Correct the documentation.
2010-06-02 14:37:33 +03:00
Marko Mäkelä
306e1338a5 Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record
In semi-consistent read, only unlock freshly locked non-matching records.

Define DB_SUCCESS_LOCKED_REC for indicating a successful operation
where a record lock was created.

lock_rec_lock_fast(): Return LOCK_REC_SUCCESS,
LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE.

lock_sec_rec_read_check_and_lock(),
lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(),
lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(),
row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(),
row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a
new record lock was created. Adjust callers.

row_unlock_for_mysql(): Correct the function documentation.

row_prebuilt_t::new_rec_locks: Correct the documentation.
2010-06-02 13:26:37 +03:00
Jimmy Yang
efc32dcf3f Check in patch for bug #53336, Improved InnoDB Transaction Reporting.
rb://335, Approved by Sunny Bains
2010-05-12 08:39:45 -07:00
Vasil Dimov
c877ff39bc Import branches/innodb+ from SVN on top of storage/innobase. 2010-04-12 18:20:41 +03:00
Satya B
83d5ca950b Applying InnoDB snapshot 5.1-ss6344, Fixes BUG#47814
and also applying 5.1-ss6355

Detailed revision comments:

r6324 | jyang | 2009-12-17 06:54:24 +0200 (Thu, 17 Dec 2009) | 8 lines
branches/5.1: Fix bug #47814 - Diagnostics are frequently not
printed after a long lock wait in InnoDB. Separate out the 
lock wait timeout check thread from monitor information
printing thread.

rb://200 Approved by Marko.

r6349 | marko | 2009-12-22 11:09:54 +0200 (Tue, 22 Dec 2009) | 3 lines
branches/5.1: lock_print_info_summary(): Remove a reference to
innobase_mysql_end_print_arbitrary_thd() that should have been
removed in r6347 when removing the function.

r6350 | marko | 2009-12-22 11:11:09 +0200 (Tue, 22 Dec 2009) | 1 line
branches/5.1: Remove an obsolete declaration of LOCK_thread_count.
2009-12-23 12:29:34 +05:30
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
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
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
Timothy Smith
19cdcb1f6b Apply InnoDB snapshot innodb-5.1-ss2858, part 2. Fixes
Bug#38231: Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK

branches/5.1:

Fix Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK

In TRUNCATE TABLE and discard tablespace: do not remove table-level S
and X locks and do not assert on such locks not being wait locks.
Leave such locks alone.

Approved by:    Heikki (rb://14)
2008-12-14 13:00:37 -07:00
unknown
6d4b3c5800 Apply InnoDB snapshot innodb-5.1-ss1726.
Bug #16979: AUTO_INC lock in InnoDB works a table level lock
  - this is a major change in InnoDB auto-inc handling.
Bug #27950: Duplicate entry error in auto-inc after mysqld restart
  - Init AUTOINC from delete_row().
Bug #28781: InnoDB increments auto-increment value incorrectly with ON DUPLICATE KEY UPDATE
  - Use value specified by MySQL, in update_row().


mysql-test/r/innodb.result:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1655:
  Fix the innodb.test failure mentioned in r1654.
storage/innobase/dict/dict0dict.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
  
  
  Revision r1719:
  Merge r1264 from branches/zip: Avoid memory fragmentation when
  adding column definitions to tables.
  
  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
  when creating dummy indexes.
  
  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
  
  dict_table_get_col_name(): Allow table->col_names to be NULL.
  
  dict_table_add_system_columns(), dict_table_add_to_cache():
  Add the parameter "heap".
  ---
  Additional changes that had to be merged from branches/zip:
  
  dict_table_add_system_columns(): New function, factored out from
  dict_table_add_to_cache().
  
  mlog_parse_index(): Add some consistency checks, and make use of
  dict_table_add_system_columns().
storage/innobase/dict/dict0mem.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
  
  
  Revision r1719:
  Merge r1264 from branches/zip: Avoid memory fragmentation when
  adding column definitions to tables.
  
  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
  when creating dummy indexes.
  
  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
  
  dict_table_get_col_name(): Allow table->col_names to be NULL.
  
  dict_table_add_system_columns(), dict_table_add_to_cache():
  Add the parameter "heap".
  ---
  Additional changes that had to be merged from branches/zip:
  
  dict_table_add_system_columns(): New function, factored out from
  dict_table_add_to_cache().
  
  mlog_parse_index(): Add some consistency checks, and make use of
  dict_table_add_system_columns().
storage/innobase/handler/ha_innodb.cc:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
  
  
  Revision r1718:
  Replace mysql_byte with uchar and remove the #define mysql_byte from
  ha_innodb.cc.  This cleanup was made possible as of r1550:
  
  
  Revision r1658:
  check_trx_exists(): Remove a redundant function call and assignment that
  was added by someone at MySQL.
  
  
  Revision r1656:
  
  
  Revision r1719:
  Merge r1264 from branches/zip: Avoid memory fragmentation when
  adding column definitions to tables.
  
  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
  when creating dummy indexes.
  
  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
  
  dict_table_get_col_name(): Allow table->col_names to be NULL.
  
  dict_table_add_system_columns(), dict_table_add_to_cache():
  Add the parameter "heap".
  ---
  Additional changes that had to be merged from branches/zip:
  
  dict_table_add_system_columns(): New function, factored out from
  dict_table_add_to_cache().
  
  mlog_parse_index(): Add some consistency checks, and make use of
  dict_table_add_system_columns().
  
  
  Revision r1654:
  
  One test case in innodb.test fails because of auto-increment
  changes in r1562:1653:
  
  $diff innodb.result innodb.reject
  504c504
  < 3	test2		this will work
  ---
  > 4	test2		this will work
storage/innobase/handler/ha_innodb.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
  
  
  Revision r1654:
  
  One test case in innodb.test fails because of auto-increment
  changes in r1562:1653:
  
  $diff innodb.result innodb.reject
  504c504
  < 3	test2		this will work
  ---
  > 4	test2		this will work
storage/innobase/ibuf/ibuf0ibuf.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1715:
  ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low()
  that was inadvertently added in r832.
  
  
  Revision r1719:
  Merge r1264 from branches/zip: Avoid memory fragmentation when
  adding column definitions to tables.
  
  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
  when creating dummy indexes.
  
  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
  
  dict_table_get_col_name(): Allow table->col_names to be NULL.
  
  dict_table_add_system_columns(), dict_table_add_to_cache():
  Add the parameter "heap".
  ---
  Additional changes that had to be merged from branches/zip:
  
  dict_table_add_system_columns(): New function, factored out from
  dict_table_add_to_cache().
  
  mlog_parse_index(): Add some consistency checks, and make use of
  dict_table_add_system_columns().
storage/innobase/include/dict0dict.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
  
  
  Revision r1719:
  Merge r1264 from branches/zip: Avoid memory fragmentation when
  adding column definitions to tables.
  
  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
  when creating dummy indexes.
  
  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
  
  dict_table_get_col_name(): Allow table->col_names to be NULL.
  
  dict_table_add_system_columns(), dict_table_add_to_cache():
  Add the parameter "heap".
  ---
  Additional changes that had to be merged from branches/zip:
  
  dict_table_add_system_columns(): New function, factored out from
  dict_table_add_to_cache().
  
  mlog_parse_index(): Add some consistency checks, and make use of
  dict_table_add_system_columns().
storage/innobase/include/dict0mem.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
  
  
  Revision r1719:
  Merge r1264 from branches/zip: Avoid memory fragmentation when
  adding column definitions to tables.
  
  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
  when creating dummy indexes.
  
  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
  
  dict_table_get_col_name(): Allow table->col_names to be NULL.
  
  dict_table_add_system_columns(), dict_table_add_to_cache():
  Add the parameter "heap".
  ---
  Additional changes that had to be merged from branches/zip:
  
  dict_table_add_system_columns(): New function, factored out from
  dict_table_add_to_cache().
  
  mlog_parse_index(): Add some consistency checks, and make use of
  dict_table_add_system_columns().
storage/innobase/include/lock0lock.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1664:
  lock_number_of_rows_locked(): Fix a typo in comment, and make the comments
  in lock0lock.c and lock0lock.h identical.  The typo was incorrectly fixed in
  r1623.
storage/innobase/include/row0mysql.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
storage/innobase/include/row0sel.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
storage/innobase/include/trx0trx.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
storage/innobase/include/ut0mem.h:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1713:
  Fix typo in comment.
storage/innobase/log/log0recv.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1657:
  recv_init_crash_recovery(): remove trailing white space
storage/innobase/row/row0mysql.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
storage/innobase/row/row0sel.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
storage/innobase/trx/trx0trx.c:
  Apply InnoDB snapshot innodb-5.1-ss1726.
  
  Revision r1645:
  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
  is one test that fails as of this commit. The updated test case should be
  part of the snapshot from MySQL shortly.
  
  Fix for bug# 27950 - Init AUTOINC from delete_row().
  
  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
  
  Summary of structural changes:
  ==============================
  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
  for simple INSERT statements (including multi-value inserts), we try and avoid
  acquiring the special AUTOINC table level lock unless another transaction has
  already reserved the AUTOINC table level lock, in which case we fall back
  to the old behavior of acquiring the AUTOINC table level lock.
  
  The max AUTOINC value is now read directly using the low level interface
  of InnoDB.
2007-08-24 19:14:52 -06: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