An error occurred fetching the project authors.
  1. 29 Apr, 2010 1 commit
  2. 22 Jan, 2010 1 commit
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot, fixes BUG#49238. · f65b3f78
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6421 | jyang | 2010-01-12 07:59:16 +0200 (Tue, 12 Jan 2010) | 8 lines
      branches/5.1: Fix bug #49238: Creating/Dropping a temporary table
      while at 1023 transactions will cause assert. Handle possible
      DB_TOO_MANY_CONCURRENT_TRXS when deleting metadata in
      row_drop_table_for_mysql().
      
      rb://220, approved by Marko
      f65b3f78
  3. 02 Nov, 2009 1 commit
  4. 05 Oct, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB snapshot 5.1-ss5921, part 2. Fixes BUG#44369 · 95c6cc51
      Satya B authored
      BUG#44369 - InnoDB: Does not uniformly disallow disallowed column names
      
      Detailed revision comments:
      
      r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
      branches/5.1: Block creating table with column name conflicting
      with Innodb reserved key words. (Bug #44369) rb://151 approved
      by Sunny Bains.
      
      
      r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
      branches/5.1: This is to revert change 5741. A return status for
      create_table_def() needs to be fixed.
      
      r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
      branches/5.1: Block creating table with column name conflicting
      with Innodb reserved key words. (Bug #44369) rb://151 approved
      by Sunny Bains.
      
      
      95c6cc51
  5. 24 Jun, 2009 1 commit
    • MySQL Build Team's avatar
      Backport into build-200906240007-5.1.34sp1 · 579f8385
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 2857.1.1
      > revision-id: satya.bn@sun.com-20090415114608-26b21dtx3doeidcc
      > parent: davi.arnaut@sun.com-20090414120532-9a34lwlk105z8log
      > committer: Satya B <satya.bn@sun.com>
      > branch nick: mysql-5.1-bugteam-innodb
      > timestamp: Wed 2009-04-15 17:16:08 +0530
      > message:
      >   Applying InnoDB snashot 5.1-ss4699, part 1. Fixes BUG#39320 and other
      >   problems
      >   
      >   1) BUG#39320 - innodb crash in file btr/btr0pcur.c line 217 with 
      >                  innodb_locks_unsafe_for_binlog
      >   
      >   2) Fixes bug in multi-table semi consistent reads.
      >   
      >   3) Fixes email address from dev@innodb.com to innodb_dev_ww@oracle.com
      >   
      >   4) Fixes warning message generated by main.innodb test
      >   
      >   
      >   Detailed revision comments:
      >   
      >   r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 5 lines
      >   branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
      >   also for unlock_row().  (Bug #39320)
      >   
      >   rb://96 approved by Heikki Tuuri.
      >   
      >   r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 8 lines
      >   branches/5.1: Fix a bug in multi-table semi-consistent reads.
      >   Remember the acquired record locks per table handle (row_prebuilt_t)
      >   rather than per transaction (trx_t), so that unlock_row should successfully
      >   unlock all non-matching rows in multi-table operations.
      >   This deficiency was found while investigating Bug #39320.
      >   
      >   rb://94 approved by Heikki Tuuri.
      >   
      >   r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines
      >   branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
      >   modified by the current transaction.  This bug was introduced or unmasked
      >   in r4400.
      >   
      >   rb://97 approved by Heikki Tuuri
      >   
      >   r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
      >   branches/5.1:
      >   
      >   Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
      >   
      >   r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
      >   branches/5.1:
      >   
      >   Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
      >   
      >     TEST                                      RESULT   TIME (ms)
      >     ------------------------------------------------------------
      >     
      >     worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
      >     main.innodb                              [ pass ]   8803
      >     
      >     MTR's internal check of the test case 'main.innodb' failed.
      >     This means that the test case does not preserve the state that existed
      >     before the test case was executed.  Most likely the test case did not
      >     do a proper clean-up.
      >     This is the diff of the states of the servers before and after the
      >     test case was executed:
      >     mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
      >     mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
      >     mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
      >     mysqltest: ... Connected.
      >     mysqltest: Start processing test commands from './include/check-testcase.test' ...
      >     mysqltest: ... Done processing test commands.
      >     --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result	2009-03-30 14:12:31.000000000 +0300
      >     +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject	2009-03-30 14:12:41.000000000 +0300
      >     @@ -99,7 +99,7 @@
      >      INNODB_SUPPORT_XA	ON
      >      INNODB_SYNC_SPIN_LOOPS	20
      >      INNODB_TABLE_LOCKS	ON
      >     -INNODB_THREAD_CONCURRENCY	8
      >     +INNODB_THREAD_CONCURRENCY	16
      >      INNODB_THREAD_SLEEP_DELAY	10000
      >      INSERT_ID	0
      >      INTERACTIVE_TIMEOUT	28800
      >     
      >     mysqltest: Result content mismatch
      >     
      >     not ok
      >   
      >   r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
      >   branches/5.1:
      >   
      >   Revert a change to Makefile.am that I committed accidentally in c4574.
      579f8385
  6. 22 Jun, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss5343, Fixes BUG#45357 · 7d0675f6
      Satya B authored
      1. BUG#45357 - 5.1.35 crashes with Failing assertion: index->type & DICT_CLUSTERED
      
      2. Also fixes the compilation problem when the flag -DUNIV_MUST_NOT_INLINE
      
      Detailed revision comments:
      
      r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines
      branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
      refuse to unlock the record.
      (Bug #45357, caused by the fix of Bug #39320).
      rb://132 approved by Sunny Bains.
      r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines
      branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
      with -DUNIV_MUST_NOT_INLINE.
      7d0675f6
  7. 15 Apr, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss4699, part 1. Fixes BUG#39320 and other · 58c33f55
      Satya B authored
      problems
      
      1) BUG#39320 - innodb crash in file btr/btr0pcur.c line 217 with 
                     innodb_locks_unsafe_for_binlog
      
      2) Fixes bug in multi-table semi consistent reads.
      
      3) Fixes email address from dev@innodb.com to innodb_dev_ww@oracle.com
      
      4) Fixes warning message generated by main.innodb test
      
      
      Detailed revision comments:
      
      r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 5 lines
      branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
      also for unlock_row().  (Bug #39320)
      
      rb://96 approved by Heikki Tuuri.
      
      r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 8 lines
      branches/5.1: Fix a bug in multi-table semi-consistent reads.
      Remember the acquired record locks per table handle (row_prebuilt_t)
      rather than per transaction (trx_t), so that unlock_row should successfully
      unlock all non-matching rows in multi-table operations.
      This deficiency was found while investigating Bug #39320.
      
      rb://94 approved by Heikki Tuuri.
      
      r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines
      branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
      modified by the current transaction.  This bug was introduced or unmasked
      in r4400.
      
      rb://97 approved by Heikki Tuuri
      
      r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
      branches/5.1:
      
      Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
      
      r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
      branches/5.1:
      
      Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
      
        TEST                                      RESULT   TIME (ms)
        ------------------------------------------------------------
        
        worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
        main.innodb                              [ pass ]   8803
        
        MTR's internal check of the test case 'main.innodb' failed.
        This means that the test case does not preserve the state that existed
        before the test case was executed.  Most likely the test case did not
        do a proper clean-up.
        This is the diff of the states of the servers before and after the
        test case was executed:
        mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
        mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
        mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
        mysqltest: ... Connected.
        mysqltest: Start processing test commands from './include/check-testcase.test' ...
        mysqltest: ... Done processing test commands.
        --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result	2009-03-30 14:12:31.000000000 +0300
        +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject	2009-03-30 14:12:41.000000000 +0300
        @@ -99,7 +99,7 @@
         INNODB_SUPPORT_XA	ON
         INNODB_SYNC_SPIN_LOOPS	20
         INNODB_TABLE_LOCKS	ON
        -INNODB_THREAD_CONCURRENCY	8
        +INNODB_THREAD_CONCURRENCY	16
         INNODB_THREAD_SLEEP_DELAY	10000
         INSERT_ID	0
         INTERACTIVE_TIMEOUT	28800
        
        mysqltest: Result content mismatch
        
        not ok
      
      r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
      branches/5.1:
      
      Revert a change to Makefile.am that I committed accidentally in c4574.
      58c33f55
  8. 15 Jan, 2009 1 commit
  9. 13 Jan, 2009 1 commit
    • Timothy Smith's avatar
      Applying InnoDB snapshot innodb-5.1-ss3603 · 96415bb3
      Timothy Smith authored
      Detailed description of changes:
      r3601 | marko | 2008-12-22 16:05:19 +0200 (Mon, 22 Dec 2008) | 9 lines
      branches/5.1: Make
      SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
      a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1.
      This fixes an error that was introduced in r370, causing
      semi-consistent read not to not unlock rows in READ UNCOMMITTED mode.
      (Bug #41671, Issue #146)
      
      rb://67 approved by Heikki Tuuri
      96415bb3
  10. 12 Jan, 2009 2 commits
    • Timothy Smith's avatar
      Applying InnoDB snapshot innodb-5.1-ss3603 · 13927f53
      Timothy Smith authored
      Detailed description of changes:
      r3590 | marko | 2008-12-18 15:33:36 +0200 (Thu, 18 Dec 2008) | 11 lines
      branches/5.1: When converting a record to MySQL format, copy the default
      column values for columns that are SQL NULL.  This addresses failures in
      row-based replication (Bug #39648).
      
      row_prebuilt_t: Add default_rec, for the default values of the columns in
      MySQL format.
      
      row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of
      padding columns.
      
      rb://64 approved by Heikki Tuuri
      13927f53
    • Timothy Smith's avatar
      Applying InnoDB snapshot innodb-5.1-ss3603 · 9eddf576
      Timothy Smith authored
      Detailed description of changes:
      
      r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 6 lines
      branches/5.1: row_mysql_store_col_in_innobase_format(): Correct a misleading
      comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
      the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
      refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
      takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
      
      r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
      branches/5.1: fix bug#40386: Not flushing query cache after truncate
      
      ha_statistics.records can not be 0 unless the table is empty, set to
      1 instead. The original problem of bug 29507 is fixed in the server.
      
      Additional test was done with the fix of bug 29507 in the server.
      
      Approved by: Heikki (on IM)
      9eddf576
  11. 14 Dec, 2008 6 commits
    • Timothy Smith's avatar
      Apply InnoDB snapshot innodb-5.1-ss2858, part 15. Fixes · d29aaf89
      Timothy Smith authored
      Bug #39830: Table autoinc value not updated on first insert.
      Bug #35498: Cannot get table test/table1 auto-inccounter value in ::info
      Bug #36411: Failed to read auto-increment value from storage engine" in 5.1.24 auto-inc
      
      Detailed revision comments:
      
      r2854 | sunny | 2008-10-23 08:30:32 +0300 (Thu, 23 Oct 2008) | 13 lines
      branches/5.1: Backport changes from branches/zip r2725
      
      Simplify the autoinc initialization code. This removes the
      non-determinism related to reading the table's autoinc value for the first
      time. This change has also reduced the sizeof dict_table_t by sizeof(ibool)
      bytes because we don't need the dict_table_t::autoinc_inited field anymore.
      
      rb://16
      d29aaf89
    • Timothy Smith's avatar
      Apply InnoDB snapshot innodb-5.1-ss2858, part 13. Fixes · a32e0486
      Timothy Smith authored
      Bug #40224: New AUTOINC changes mask reporting of deadlock/timeout errors
      
      
      Detailed revision comments:
      
      r2849 | sunny | 2008-10-22 12:01:18 +0300 (Wed, 22 Oct 2008) | 8 lines
      branches/5.1: Return the actual error code encountered when allocating
      a new autoinc value. The change in behavior (bug) was introduced in 5.1.22
      when we introduced the new AUTOINC locking model.
      
      rb://31
      a32e0486
    • Timothy Smith's avatar
      Apply InnoDB snapshot innodb-5.1-ss2858, part 10. · 7cd7760d
      Timothy Smith authored
      Fix memory handling to avoid possible crash during error printout.  (Code
      review, no associated bug.)
      
      
      Detailed revision comments:
      
      r2782 | marko | 2008-10-13 14:21:02 +0300 (Mon, 13 Oct 2008) | 5 lines
      branches/5.1: Backport a fix from branches/zip r2763:
      
      row_drop_database_for_mysql(): Postpone mem_free(table_name), so that
      an error printout will not dereference freed memory.
      7cd7760d
    • Timothy Smith's avatar
      Apply InnoDB snapshot innodb-5.1-2858, part 7. · 22f6a842
      Timothy Smith authored
      A follow-up fix for Bug 38839, which exposed a pre-existing bug in the
      autoinc handling.
      
      Detailed revision comments:
      
      r2722 | sunny | 2008-10-04 02:48:04 +0300 (Sat, 04 Oct 2008) | 18 lines
      branches/5.1: This bug has always existed but was masked by other errors. The
      fix for bug# 38839 triggered this bug. When the offset and increment are > 1
      we need to calculate the next value taking into consideration the two
      variables. Previously we simply assumed they were 1 particularly offset was
      never used. MySQL does its own calculation and that's probably why it seemed
      to work in the past. We would return what we thought was the correct next
      value and then MySQL would recalculate the actual value from that and return
      it to the caller (e.g., handler::write_row()). Several new tests have been
      added that try and catch some edge cases. The tests exposed a wrap around
      error in MySQL next value calculation which was filed as bug 39828. The tests
      will need to be updated once MySQL fix that bug.
      
      One good side effect of this fix is that dict_table_t size has been
      reduced by 8 bytes because we have moved the autoinc_increment field to
      the row_prebuilt_t structure. See review-board for a detailed discussion.
      
      rb://3
      22f6a842
    • Timothy Smith's avatar
      Apply InnoDB snapshot innodb-5.1-ss2858, part 2. Fixes · 19cdcb1f
      Timothy Smith authored
      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)
      19cdcb1f
    • Timothy Smith's avatar
      Completing snapshot innodb-5.1-ss2438, part 2. Fixes · e361d448
      Timothy Smith authored
      Bug #36169: create innodb compressed table with too large row size crashed
      
      
      Revision comments:
      
      r2422 | vasil | 2008-04-24 16:00:30 +0300 (Thu, 24 Apr 2008) | 11 lines
      branches/5.1:
      
      Fix Bug#36169 create innodb compressed table with too large row size crashed
      
      Sometimes it is possible that
      row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
      row_create_index_for_mysql() when the index object is freed so copy the
      table name to a safe place beforehand and use the copy.
      
      Approved by:	Sunny
      e361d448
  12. 14 May, 2008 1 commit
    • unknown's avatar
      revert the following CS on grounds of "right patch, wrong time": · 2c91699e
      unknown authored
        
       "Apply InnoDB snapshot innodb-5.1-ss2438.
      
        Addresses the following bugs:
      
        Change the fix for Bug#32440 to show bytes instead of kilobytes in
        INFORMATION_SCHEMA.TABLES.DATA_FREE.
      
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
      
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      
        Fix Bug#36169 create innodb compressed table with too large row size crash
        Sometimes it is possible that
        row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
        row_create_index_for_mysql() when the index object is freed so copy the
        table name to a safe place beforehand and use the copy.
      
        Fix Bug#36434 ha_innodb.so is installed in the wrong directory
        Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
        forgotten in this commit: http://lists.mysql.com/commits/40206"
      
      
      mysql-test/r/innodb.result:
        revert InnoDB snapshot innodb-5.1-ss2438
      mysql-test/r/mix2_myisam.result:
        merge-fixes: undoing previous unspecified post-merge fixes
        by kaa a/o 2008/2/13 (1.7)
      mysql-test/t/innodb.test:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/Makefile.am:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/handler/ha_innodb.cc:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/plug.in:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/row/row0mysql.c:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/row/row0sel.c:
        revert InnoDB snapshot innodb-5.1-ss2438
      2c91699e
  13. 10 May, 2008 1 commit
    • unknown's avatar
      Apply InnoDB snapshot innodb-5.1-ss2438. · 7febbe45
      unknown authored
      Addresses the following bugs:
      
        Change the fix for Bug#32440 to show bytes instead of kilobytes in
        INFORMATION_SCHEMA.TABLES.DATA_FREE.
      
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
      
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      
        Fix Bug#36169 create innodb compressed table with too large row size crashed
        Sometimes it is possible that
        row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
        row_create_index_for_mysql() when the index object is freed so copy the
        table name to a safe place beforehand and use the copy.
      
        Fix Bug#36434 ha_innodb.so is installed in the wrong directory
        Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
        forgotten in this commit: http://lists.mysql.com/commits/40206
      
      
      mysql-test/r/innodb.result:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2420:
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
        
        Revision r2421:
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      mysql-test/t/innodb.test:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2420:
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
        
        Revision r2421:
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      storage/innobase/Makefile.am:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2429:
        branches/5.1:
        
        * Use INNODB_CFLAGS insead of cluttering CFLAGS with InnoDB specific
          flags. CFLAGS are used to compile every file in the MySQL source tree.
        
        * Add INNODB_DYNAMIC_CFLAGS to the flags of the dynamic plugin and use
          -prefer-non-pic to make the dynamic plugin faster on i386.
        
        Approved by:	Sunny
        
        
        Revision r2437:
        branches/5.1:
        
        Fix Bug#36434 ha_innodb.so is installed in the wrong directory
        
        Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
        forgotten in this commit: http://lists.mysql.com/commits/40206
        
        
        
        Revision r2430:
        branches/5.1:
        
        Use CFLAGS instead of INNODB_CFLAGS to avoid having incompatible flags
        inserted in CFLAGS and INNODB_CFLAGS and to avoid compiling mysql and
        innodb with different flags.
        
        Discussed with:	Sunny
        
        
        Revision r2434:
        branches/5.1:
        
        Merge changes from MySQL:
        
          ChangeSet@1.2645, 2007-12-19 13:24:43+00:00, jperkin@chorlton.adsl.perkin.org.uk +14 -0
            Add new pkgplugindir handling to seperate plugins from libraries,
            and allow override for binary distributions.  Extend mysql_config
            to print compiled-in plugin location for third-party plugins to
            use.  Resolves bug#31736.
        
        and
        
          ChangeSet@1.2646, 2008-01-02 13:00:46+00:00, jperkin@chorlton.adsl.perkin.org.uk +11 -0
            Use pkglibdir to simplify pkgplugindir, and fix the path in a
            couple of Makefiles.  Continuation of the fix for bug#31736.
        
        
        
        Revision r2436:
        branches/5.1:
        
        Non-functional white space change in Makefile.am:
        Use tabs for indentation and be consistent about spaces around the
        equal sign.
      storage/innobase/handler/ha_innodb.cc:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2419:
        branches/5.1:
        
        Change the fix for Bug#32440 to show bytes instead of kilobytes in
        INFORMATION_SCHEMA.TABLES.DATA_FREE.
        
        Suggested by:	Domas Mituzas <domas@mysql.com>
        Approved by:	Heikki
        
        
        
        Revision r2435:
        branches/5.1:
        
        Merge change from MySQL:
        
          ChangeSet@1.2563, 2008-03-18 19:42:04+04:00, gluh@mysql.com +1 -0
            Bug#35406 5.1-opt crashes on select from I_S.REFERENTIAL_CONSTRAINTS
            added intialization of f_key_info.referenced_key_name for the case when
            referenced table is dropped
        
        
        
        Revision r2420:
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
        
        Revision r2421:
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      storage/innobase/plug.in:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2429:
        branches/5.1:
        
        * Use INNODB_CFLAGS insead of cluttering CFLAGS with InnoDB specific
          flags. CFLAGS are used to compile every file in the MySQL source tree.
        
        * Add INNODB_DYNAMIC_CFLAGS to the flags of the dynamic plugin and use
          -prefer-non-pic to make the dynamic plugin faster on i386.
        
        Approved by:	Sunny
        
        
        Revision r2432:
        branches/5.1:
        
        Non-functional change: use tabs for indentation in plug.in.
        
        
        Revision r2431:
        branches/5.1:
        
        Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
        
        
        Revision r2430:
        branches/5.1:
        
        Use CFLAGS instead of INNODB_CFLAGS to avoid having incompatible flags
        inserted in CFLAGS and INNODB_CFLAGS and to avoid compiling mysql and
        innodb with different flags.
        
        Discussed with:	Sunny
        
        
        Revision r2433:
        branches/5.1:
        
        Add vim modeline to hint it that plug.in is a config file
        so it can be colorized.
      storage/innobase/row/row0mysql.c:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2422:
        branches/5.1:
        
        Fix Bug#36169 create innodb compressed table with too large row size crashed
        
        Sometimes it is possible that
        row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
        row_create_index_for_mysql() when the index object is freed so copy the
        table name to a safe place beforehand and use the copy.
        
        Approved by:	Sunny
      storage/innobase/row/row0sel.c:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2388:
        branches/5.1:
        
        Swap the order in which mysql_thd, mysql_query_str and *mysql_query_str
        are checked for non-NULL.
        
        Suggested by:	Marko
      7febbe45
  14. 19 Feb, 2008 1 commit
    • unknown's avatar
      Applied InnoDB snapshot innodb-5.1-ss2298 · 4b25d5b1
      unknown authored
      Fixes the following bugs:
      
      - Bug #33349: possible race condition revolving around data dictionary and repartitioning
        Introduce retry/sleep logic as a workaround for a transient bug
        where ::open fails for partitioned tables randomly if we are using
        one file per table.
      
      - Bug #34053: normal users can enable innodb_monitor logging
        In CREATE TABLE and DROP TABLE check whether the table in question is one
        of the magic innodb_monitor tables and whether the user has enough rights
        to mess with it before doing anything else.
      
      - Bug #22868: 'Thread thrashing' with > 50 concurrent conns under an upd-intensive workloadw
      - Bug #29560: InnoDB >= 5.0.30 hangs on adaptive hash rw-lock 'waiting for an X-lock'
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
      
      - Bug #30930: Add auxiliary function to retrieve THD::thread_id
        Add thd_get_thread_id() function.  Also make check_global_access() function
        visible to InnoDB under INNODB_COMPATIBILITY_HOOKS #define.
      
      
      include/mysql/plugin.h:
        Add thd_get_thread_id() accessor function
      mysql-test/r/innodb.result:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2261:
        branches/5.1: Merge a change from MySQL AB:
        
        ChangeSet@2007-10-13 15:49:42+03:00, aelkin@koti.dsl.inet.fi
        
        Bug #29136 erred multi-delete on trans table does not rollback the statement
        
        innodb.test, innodb.result: trans table specific test added
      mysql-test/t/innodb.test:
        Applied InnoDB snapshot innodb-5.1-ss2298
      sql/mysql_priv.h:
        Make check_global_access() declaration available if when
        INNODB_COMPATIBILITY_HOOKS is defined.
      sql/sql_class.cc:
        Add thd_get_thread_id() accessor function.
        
        Add 'extern "C"' to definition for thd_get_xid().  Not strictly
        needed, but in keeping with our coding style.
      storage/innobase/btr/btr0cur.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2295:
        branches/5.1:
        
        Merge r2294 from branches/5.0:
        
        Fix typo and add comma in comment.
      storage/innobase/handler/ha_innodb.cc:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        - But remove the declaration of check_global_access() from ha_innodb.cc,
          because it is now visible in mysql_priv.h under INNODB_COMPATIBILITY_HOOKS
        
        Revision r2270:
        branches/5.1:
        
        Rename the user visible parameter innodb-use-adaptive-hash-indexes to
        innodb-adaptive-hash-index so that it is in sync with MySQL 5.0.
        
        Suggested by:	Heikki
        Approved by:	Heikki
        
        
        Revision r2236:
        branches/5.1: bug#33349
        
        Introduce retry/sleep logic as a workaround for a transient bug
        where ::open fails for partitioned tables randomly if we are using
        one file per table.
        
        
        Reviewed by: Heikki
        
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
        
        
        Revision r2246:
        branches/5.1:
        
        Fix formatting of the autoinc-lock-mode command line parameter.
        
        Old view (./mysqld --help --verbose):
        
          --innodb-autoinc-lock-mode=#
                              The AUTOINC lock modes supported by InnoDB:
          0 => Old
                              style AUTOINC locking (for backward compatibility)
          1 =>
                              New style AUTOINC locking
          2 => No AUTOINC locking
                              (unsafe for SBR)
        
        New view:
        
          --innodb-autoinc-lock-mode=#
                              The AUTOINC lock modes supported by InnoDB:
                              0 => Old style AUTOINC locking (for backward
                              compatibility)
                              1 => New style AUTOINC locking
                              2 => No AUTOINC locking (unsafe for SBR)
        
        Looks like these strings are "automatically" wrapped by MySQL in the
        following way:
        * newlines (\n) in the string are ignored
        * newline separator (\n) is inserted every 57 or so characters.
        * lots of white space is appended to each inserted new line.
        
        Approved by:	Heikki
      storage/innobase/include/os0sync.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/read0read.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2188:
        branches/5.1: Remove unused field can_be_too_old from read_view_struct.
      storage/innobase/include/row0mysql.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
        
        
        Revision r2272:
        branches/5.1:
        
        Fix typo in comment.
      storage/innobase/include/sync0arr.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0rw.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0rw.ic:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0sync.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0sync.ic:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/os/os0sync.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/read/read0read.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2188:
        branches/5.1: Remove unused field can_be_too_old from read_view_struct.
      storage/innobase/row/row0mysql.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
        
        
        Revision r2272:
        branches/5.1:
        
        Fix typo in comment.
      storage/innobase/srv/srv0srv.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/sync/sync0arr.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/sync/sync0rw.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/sync/sync0sync.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      mysql-test/r/innodb_bug34053.result:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
      mysql-test/t/innodb_bug34053.test:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
      4b25d5b1
  15. 15 Jan, 2008 1 commit
    • unknown's avatar
      Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots. · d39f2048
      unknown authored
      Fixes:
      
      Bug #18942: DROP DATABASE does not drop an orphan FOREIGN KEY constraint
        Fix Bug#18942 by dropping all foreign key constraints at the end of
        DROP DATABASE. Usually, by then, there are no foreign constraints
        left because all of them are dropped when the relevant tables are
        dropped. This code is to ensure that any orphaned FKs are wiped too.
      
      Bug #29157: UPDATE, changed rows incorrect
        Return HA_ERR_RECORD_IS_THE_SAME from ha_innobase::update_row() if no
        columns were updated.
      
      Bug #32440: InnoDB free space info does not appear in SHOW TABLE STATUS or I_S
        Put information about the free space in a tablespace in
        INFORMATION_SCHEMA.TABLES.DATA_FREE. This information was previously
        available in INFORMATION_SCHEMA.TABLES.TABLE_COMMENT, but MySQL has
        removed it from there recently.
        The stored value is in kilobytes.
        This can be considered as a permanent workaround to
        http://bugs.mysql.com/32440. "Workaround" becasue that bug is about the
        data missing from TABLE_COMMENT and this is actually not solved.
      
      
      mysql-test/r/innodb.result:
        New tests for bugs fixed as part of snapshots innodb-5.1-ss2146 and innodb-5.1-ss2178
      mysql-test/r/partition_innodb.result:
        Update results - InnoDB now sets Data_length (show table status)
      mysql-test/t/innodb.test:
        New tests for bugs fixed as part of snapshots innodb-5.1-ss2146 and innodb-5.1-ss2178
      mysql-test/t/partition_innodb.test:
        Mask out Data_Free in show table status, because it varies depending on
        which tests have been run.
      storage/innobase/handler/ha_innodb.cc:
        Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots.
        
        
        Revision r2178:
        branches/5.1:
        
        Merge r2177 from trunk/:
        
        Fix Bug#29157 "UPDATE, changed rows incorrect":
        
        Return HA_ERR_RECORD_IS_THE_SAME from ha_innobase::update_row() if no
        columns were updated.
        
        
        Revision r2169:
        branches/5.1:
        
        Bug#32440:
        
        Put information about the free space in a tablespace in
        INFORMATION_SCHEMA.TABLES.DATA_FREE. This information was previously
        available in INFORMATION_SCHEMA.TABLES.TABLE_COMMENT, but MySQL has
        removed it from there recently.
        
        The stored value is in kilobytes.
        
        This can be considered as a permanent workaround to
        http://bugs.mysql.com/32440. "Workaround" becasue that bug is about the
        data missing from TABLE_COMMENT and this is actually not solved.
      storage/innobase/row/row0mysql.c:
        Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots.
        
        
        Revision r2161:
        branches/5.1:
        
        Merge r2160 from trunk/:
        
        Fix Bug#18942 by dropping all foreign key constraints at the end of
        DROP DATABASE. Usually, by then, there are no foreign constraints
        left because all of them are dropped when the relevant tables are
        dropped. This code is to ensure that any orphaned FKs are wiped too.
      storage/innobase/trx/trx0trx.c:
        Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots.
      d39f2048
  16. 06 Nov, 2007 1 commit
    • unknown's avatar
      Apply snapshot innodb-5.1-ss1989 · e2513bf0
      unknown authored
      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
      e2513bf0
  17. 25 Aug, 2007 1 commit
    • unknown's avatar
      Apply InnoDB snapshot innodb-5.1-ss1726. · 6d4b3c58
      unknown authored
      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.
      6d4b3c58
  18. 25 Jul, 2007 1 commit
    • unknown's avatar
      Apply snapshot innodb-51-ss1644 · c2f0c211
      unknown authored
      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.
      c2f0c211
  19. 10 Jul, 2007 1 commit
    • unknown's avatar
      Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. · 32b5fb73
      unknown authored
      After applying the snapshots, ensure that code conforms to the final version
      of WL 3914.
      
      It is signficant that, after these changes, InnoDB does not define MYSQL_SERVER,
      and can be built as an independent storage engine plugin.
      
      Fixes:
      Bug#9709:  InnoDB inconsistensy causes "Operating System Error 32/33"
      Bug#18828: If InnoDB runs out of undo slots, it returns misleading 'table is full'
      Bug#20090: InnoDB: Error: trying to declare trx to enter InnoDB
      Bug#20352: Make ibuf_contract_for_n_pages tunable
      Bug#21101: Wrong error on exceeding max row size for InnoDB table
      Bug#21293: Deadlock detection prefers to kill long running FOR UPDATE queries
      Bug#22819: SHOW INNODB STATUS crashes the server with an assertion failure under high load
      Bug#25078: Make the replication thread to ignore innodb_thread_concurrency
      Bug#25645: Assertion failure in file srv0srv.c
      Bug#28138: indexing column prefixes produces corruption in InnoDB
      
      
      BitKeeper/deleted/.del-Makefile.am~55504c43d99979e4:
        Delete: storage/innobase/buf/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~79bb55303929b560:
        Delete: storage/innobase/dict/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~7cd88e5f9a8d7ce8:
        Delete: storage/innobase/data/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~e19a1fb29b1fe527:
        Delete: storage/innobase/btr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~4ae65b009d41d1d:
        Delete: storage/innobase/eval/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~679131a02af3f6fb:
        Delete: storage/innobase/fsp/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~6acac9ae30eabdb3:
        Delete: storage/innobase/dyn/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~a5e6b4385717fcb7:
        Delete: storage/innobase/fil/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~11d601934b49c19:
        Delete: storage/innobase/fut/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~5aab37bf3b6c430:
        Delete: storage/innobase/ibuf/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~af2d719bb6e66986:
        Delete: storage/innobase/handler/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~f0dbbc7a78648e18:
        Delete: storage/innobase/ha/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~41684e54a5b0d26a:
        Delete: storage/innobase/log/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~edd95d7290ddeff3:
        Delete: storage/innobase/lock/Makefile.am
      BitKeeper/deleted/.del-Makefile.i:
        Delete: storage/innobase/include/Makefile.i
      BitKeeper/deleted/.del-Makefile.am~2a6ccdba41b591a3:
        Delete: storage/innobase/mach/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~2bd35bda856342:
        Delete: storage/innobase/os/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~8448688c5ab92132:
        Delete: storage/innobase/mem/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~b5a7a8cfa711b6de:
        Delete: storage/innobase/mtr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~2cee8a309eb8eee2:
        Delete: storage/innobase/page/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~3d0553f8aa9c456b:
        Delete: storage/innobase/read/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~7b0c4abae6684f8c:
        Delete: storage/innobase/pars/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~d0e0dd55cbd413f0:
        Delete: storage/innobase/que/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~20a219ccf7825d65:
        Delete: storage/innobase/row/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~37bdfb2973b2442b:
        Delete: storage/innobase/rem/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~557098c4e5c01ee2:
        Delete: storage/innobase/thr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~fdfe12f48c2499af:
        Delete: storage/innobase/sync/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~feb2280a52035d8d:
        Delete: storage/innobase/srv/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~456d34c4816dbda4:
        Delete: storage/innobase/ut/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~5ec2ef0d2c35e138:
        Delete: storage/innobase/usr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~d25c456e48393313:
        Delete: storage/innobase/trx/Makefile.am
      mysql-test/r/innodb.result:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1421:
        Fix the innodb test by shifting some of the contents of the .result file.
        
        Approved by:	Marko
        
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
      mysql-test/t/innodb.test:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
      storage/innobase/btr/btr0btr.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/data/data0data.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1490:
        Add #include <ctype.h>.  Apparently, this header is no longer included by
        the common headers.  This may be related to WL#2936
        (pluggable storage engines).
      storage/innobase/data/data0type.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/dict/dict0crea.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/dict/dict0dict.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1490:
        Add #include <ctype.h>.  Apparently, this header is no longer included by
        the common headers.  This may be related to WL#2936
        (pluggable storage engines).
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
        
        
        Revision r1529:
        Revert r799, which was supposed to prevent similar cases as Bug#21638.
        In reality, the patch breaks the handling of prefix indexes of
        variable-length columns in ROW_FORMAT=COMPACT.  Reverting the patch
        is only a partial fix of Bug#28138.
        
        
        Revision r1535:
        Document that DICT_MAX_INDEX_COL_LEN must not be changed.
      storage/innobase/fsp/fsp0fsp.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1420:
        Output to the error log information about the limitations of
        UNIV_IBUF_DEBUG.
        
        innobase_start_or_create_for_mysql(): Note that crash recovery is broken
        when UNIV_IBUF_DEBUG is defined.
        
        ibuf_counts[]: Make this a two-dimensional array.  No need to allocate
        anything from the heap.  Eliminate ibuf_counts_inited, as the array
        will be zero-filled by the runtime environment.
        
        ibuf_count_check(): New function, to print out an explanation before
        assertion failure.
        
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
        
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/include/db0err.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/include/dict0dict.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/include/dict0dict.ic:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/include/dict0mem.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1535:
        Document that DICT_MAX_INDEX_COL_LEN must not be changed.
        
        
        Revision r1536:
        Change the comment to a more appropriate one. Discussed with Heikki on IM.
        
        Approved by:	Heikki
      storage/innobase/include/ha_prototypes.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1482:
        Fix Bug#25078 by always letting the replication thread on the slave
        server to enter InnoDB. This can be made further customizable by the
        user if we introduce a new config parameter. This will wait until
        config parameters can be easily added.
        
        Approved by:	Marko
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      storage/innobase/include/os0file.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1431:
        Fix Bug#9709 by retrying (forever) if ERROR_SHARING_VIOLATION or
        ERROR_LOCK_VIOLATION is encountered during file operation.
        This is caused by backup software, so InnoDB should retry while the backup
        software is done with the file.
        
        Approved by:	Heikki
      storage/innobase/include/rem0rec.ic:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1569:
        Fix some in:/out: comments.
        
        Approved by:	Marko
      storage/innobase/include/row0mysql.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
      storage/innobase/include/trx0trx.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1462:
        Fix typo in comment.
        
        
        Revision r1486:
        Improve the comment for trx_struct::undo_no.
        
        Suggested by:	Heikki
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1497:
        Add the number of locks acquired by a transaction to its weight when
        choosing the lightest transaction to kill when a deadlock occurs.
        This fixes Bug#21293 partially.
        
        Approved by:	Heikki
        
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      storage/innobase/include/trx0undo.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/include/ut0ut.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
      storage/innobase/lock/lock0lock.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1457:
        Fix Bug#22819, remove assertion. (http://bugs.mysql.com/bug.php?id=22819)
        
        
        Revision r1497:
        Add the number of locks acquired by a transaction to its weight when
        choosing the lightest transaction to kill when a deadlock occurs.
        This fixes Bug#21293 partially.
        
        Approved by:	Heikki
        
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/log/log0log.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1521:
        Forward port r1520 from branches/5.0
        
        Patch to allow monitor threads to stop before proceeding with normal shutdown. 
        Also have a separate time counter for tablespace monitor.
        
        reviewed by: Heikki
        
        
        Revision r1524:
        Undo bad space formatting introduced in earlier commit r1521
        
        spotted by: Marko
        
        
        Revision r1533:
        logs_empty_and_mark_files_at_shutdown(): Remove trailing whitespace that
        was added in r1521.
      storage/innobase/os/os0file.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1431:
        Fix Bug#9709 by retrying (forever) if ERROR_SHARING_VIOLATION or
        ERROR_LOCK_VIOLATION is encountered during file operation.
        This is caused by backup software, so InnoDB should retry while the backup
        software is done with the file.
        
        Approved by:	Heikki
      storage/innobase/rem/rem0rec.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
        
        
        Revision r1531:
        rec_get_converted_size_new(): Simplify and move a debug assertion.
        
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
        
        
        Revision r1555:
        rec_get_converted_size_new(): The total size of the infimum and supremum
        records in ROW_FORMAT=COMPACT is REC_N_NEW_EXTRA_BYTES + 8.  The
        REC_N_NEW_EXTRA_BYTES was accidentally omitted in r1546.  This function
        should never be called on those records, though.
        
        
        Revision r1569:
        Fix some in:/out: comments.
        
        Approved by:	Marko
      storage/innobase/row/row0ins.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1485:
        Minor cleanup.
        
        row_ins_check_foreign_constraint(), row_ins_scan_sec_index_for_duplicate():
        Make use of the predicates page_rec_is_infimum() and page_rec_is_supremum().
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/row/row0mysql.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
        
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/row/row0row.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1529:
        Revert r799, which was supposed to prevent similar cases as Bug#21638.
        In reality, the patch breaks the handling of prefix indexes of
        variable-length columns in ROW_FORMAT=COMPACT.  Reverting the patch
        is only a partial fix of Bug#28138.
      storage/innobase/row/row0sel.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1452:
        Fix phantom reads (http://bugs.mysql.com/27197) following Heikki's
        patch in the bug followup.
        
        Approved by:	Heikki
        
        
        
        Revision r1455:
        Reindent with tabs instead of spaces.
        
        Spotted by:	Marko
      storage/innobase/srv/srv0srv.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1424:
        Bug#20352. Added variable srv_insert_buffer_batch_size. We want to make
        this variable settable. Since the pluggable engine interface currently
        doesn't provide a usable mechanism, we will add the latter functionality
        once it's available.
        
        
        Revision r1426:
        Fix code indentation from r1424.
        
        
        Revision r1459:
        Fix typo in the comment.
        
        
        Revision r1482:
        Fix Bug#25078 by always letting the replication thread on the slave
        server to enter InnoDB. This can be made further customizable by the
        user if we introduce a new config parameter. This will wait until
        config parameters can be easily added.
        
        Approved by:	Marko
        
        
        Revision r1487:
        Fix typo in comment.
        
        Spotted by:	Marko
        
        
        Revision r1521:
        Forward port r1520 from branches/5.0
        
        Patch to allow monitor threads to stop before proceeding with normal shutdown. 
        Also have a separate time counter for tablespace monitor.
        
        reviewed by: Heikki
        
        
        Revision r1532:
        srv_lock_timeout_and_monitor_thread(): Correct the indentation that was
        broken in r1521.
        
        
        Revision r1553:
        Fix Bug#20090 as suggested in the bug followup by Heikki.
        
        Approved by:	Heikki
      storage/innobase/srv/srv0start.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1420:
        Output to the error log information about the limitations of
        UNIV_IBUF_DEBUG.
        
        innobase_start_or_create_for_mysql(): Note that crash recovery is broken
        when UNIV_IBUF_DEBUG is defined.
        
        ibuf_counts[]: Make this a two-dimensional array.  No need to allocate
        anything from the heap.  Eliminate ibuf_counts_inited, as the array
        will be zero-filled by the runtime environment.
        
        ibuf_count_check(): New function, to print out an explanation before
        assertion failure.
      storage/innobase/sync/sync0arr.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/trx/trx0rec.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/trx/trx0trx.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1491:
        Fix typo in comment.
        
        
        Revision r1497:
        Add the number of locks acquired by a transaction to its weight when
        choosing the lightest transaction to kill when a deadlock occurs.
        This fixes Bug#21293 partially.
        
        Approved by:	Heikki
        
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
        
        
        Revision r1522:
        trx0trx.c: Add missing #include "ha_prototypes.h".
      storage/innobase/trx/trx0undo.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/ut/ut0ut.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1490:
        Add #include <ctype.h>.  Apparently, this header is no longer included by
        the common headers.  This may be related to WL#2936
        (pluggable storage engines).
      mysql-test/r/innodb_trx_weight.result:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1498:
        Add a test about the behavior introduced in r1497.
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      mysql-test/include/innodb_trx_weight.inc:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
        
        
        Revision r1556:
        mysql-test/innodb_trx_weight.inc: Add username root to the "connect" statement.
        The Unix user running mysql-test-run usually does not have any privileges
        on the MySQL test database.
      mysql-test/t/innodb_trx_weight.test:
        Fixes after merging InnoDB snapshots.
        
        Revision r1498:
        Add a test about the behavior introduced in r1497.
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      sql/sql_class.cc:
        Fixes after merging InnoDB snapshots.
      storage/innobase/Makefile.am:
        Fixes after merging InnoDB snapshots.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
      storage/innobase/handler/ha_innodb.cc:
        Fixes after merging InnoDB snapshots.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
        
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
        
        
        
        Revision r1425:
        Fixed a missing function decoration that slipped into r1422.
        
        
        Revision r1434:
        Fix typo.
        
        
        Revision r1442:
        Potential fix for Bug#25645:
        
        "Move innobase_release_stat_resources(trx) outside the 'if' in
        ha_innobase::external_lock(). That would add more safety that whatever
        MySQL does at a query end, there would be no risk of a hang on the btr
        search latch."
        
        Also call innobase_release_temporary_latches() in the beginning of
        ha_innobase::close().
        
        Approved by:	Heikki
        
        
        Revision r1453:
        Bugfix: only call innobase_release_temporary_latches() in case of current_thd
        is not NULL, otherwise we get NULL pointer dereferencing.
        
        Approved by:	Heikki
        
        
        Revision r1474:
        Fix typo in comment: the exact prototype is in
        include/data0type.ic, not in data/data0type.ic
        
        
        
        Revision r1482:
        Fix Bug#25078 by always letting the replication thread on the slave
        server to enter InnoDB. This can be made further customizable by the
        user if we introduce a new config parameter. This will wait until
        config parameters can be easily added.
        
        Approved by:	Marko
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1489:
        thd_to_trx(), check_trx_exists(): Remove the handlerton parameter.  It is a
        singleton object whose address is stored into innodb_hton_ptr.
        
        
        Revision r1492:
        Convert innobase_buffer_pool_size and innobase_log_file_size types from
        longlong to long long because MYSQL_SYSVAR_LONGLONG marco expects long long
        type.
        
        Also change
        ((ulint)innobase_buffer_pool_size) / 1024
        to
        (ulint)(innobase_buffer_pool_size / 1024)
        and remove comment which is no longer true.
        
        Provided that innobase_buffer_pool_size is always 64bits these statements
        are equivalent if ulint is 64 bit (well it will screw up if
        innobase_buffer_pool_size is negative). And if ulint is 32 bit the later
        variant gives a little more chance that the value will fit.
        
        Approved by:	Heikki
        
        
        Revision r1493:
        ha_innodb.cc: Remove the declarations of some global InnoDB variables
        whose name starts with srv_.  These variables are declared in the header
        files that are covered by #include directives in ha_innodb.cc.
        
        
        Revision r1495:
        Introduce the function reset_template() for resetting some fields of
        row_prebuilt_t; currently prebuilt->read_just_key and
        prebuilt->keep_other_fields_on_keyread.
        
        
        Revision r1496:
        ha_innobase::extra(): Replace references to prebuilt->trx with
        thd_to_trx(ha_thd()), in order to avoid potential memory corruption.
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1527:
        Cleanup in ha_innodb.cc:
        
        thd_is_replication_slave_thread(), thd_has_edited_nontrans_tables():
        Remove blank line between the function comment and the function
        definition.  There should be exactly one line between the return
        type and the function comment, and this line should be one of
        '', 'static', 'UNIV_INLINE', and 'extern "C"'.
        
        
        Revision r1538:
        Do not return error in ha_innobase::info if srv_force_recovery >= 4. This is to allow for 
        normal processing of the query by MySQL instead of generating an error.
        
        Reviewed by: Heikki
        
        
        
        Revision r1551:
        ha_innobase::innobase_read_and_init_auto_inc(): Remember and restore
        prebuilt->sql_stat_start.  In an ALTER TABLE statement in the innodb_gis
        test, an ut_ad() assertion failed, because no IX lock had been acquired
        on the table, because prebuilt->sql_stat_start was inadvertently reset
        to FALSE, by this function.  This function was called via
        ha_innobase::info() and mysql_prepare_alter_table().
      storage/innobase/plug.in:
        Fixes after merging InnoDB snapshots.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
      storage/innobase/handler/ha_innodb.h:
        Fixes after merging InnoDB snapshots.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
      32b5fb73
  20. 22 Mar, 2007 1 commit
    • unknown's avatar
      Apply the following InnoDB snapshots: · 76de7d78
      unknown authored
      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).
      76de7d78
  21. 23 Feb, 2007 1 commit
    • unknown's avatar
      Fixed compiler warnings · 9e678492
      unknown authored
      Fixed compile-pentium64 scripts
      Fixed wrong estimate of update_with_key_prefix in sql-bench
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 into mysql.com:/home/my/mysql-5.1
      Fixed unsafe define of uint4korr()
      Fixed that --extern works with mysql-test-run.pl
      Small trivial cleanups
      This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
      Move all connection handling and command exectuion main loop from sql_parse.cc to sql_connection.cc
      Split handle_one_connection() into reusable sub functions.
      Split create_new_thread() into reusable sub functions.
      Added thread_scheduler; Preliminary interface code for future thread_handling code.
      
      Use 'my_thread_id' for internal thread id's
      Make thr_alarm_kill() to depend on thread_id instead of thread
      Make thr_abort_locks_for_thread() depend on thread_id instead of thread
      In store_globals(), set my_thread_var->id to be thd->thread_id.
      Use my_thread_var->id as basis for my_thread_name()
      The above changes makes the connection we have between THD and threads more soft.
      
      Added a lot of DBUG_PRINT() and DBUG_ASSERT() functions
      Fixed compiler warnings
      Fixed core dumps when running with --debug
      Removed setting of signal masks (was never used)
      Made event code call pthread_exit() (portability fix)
      Fixed that event code doesn't call DBUG_xxx functions before my_thread_init() is called.
      Made handling of thread_id and thd->variables.pseudo_thread_id uniform.
      Removed one common 'not freed memory' warning from mysqltest
      Fixed a couple of usage of not initialized warnings (unlikely cases)
      Suppress compiler warnings from bdb and (for the moment) warnings from ndb
      
      
      BitKeeper/deleted/.del-SETUP.sh.rej:
        Rename: BUILD/SETUP.sh.rej -> BitKeeper/deleted/.del-SETUP.sh.rej
      BitKeeper/deleted/.del-configure.in.rej:
        Rename: configure.in.rej -> BitKeeper/deleted/.del-configure.in.rej
      BitKeeper/deleted/.del-my_global.h.rej:
        Rename: include/my_global.h.rej -> BitKeeper/deleted/.del-my_global.h.rej
      BitKeeper/deleted/.del-my_pthread.h.rej:
        Rename: include/my_pthread.h.rej -> BitKeeper/deleted/.del-my_pthread.h.rej
      BitKeeper/deleted/.del-mysql_client_test.c.rej:
        Rename: tests/mysql_client_test.c.rej -> BitKeeper/deleted/.del-mysql_client_test.c.rej
      BitKeeper/deleted/.del-mysqld.cc.rej~35c1c438e11ebd89:
        Rename: sql/mysqld.cc.rej -> BitKeeper/deleted/.del-mysqld.cc.rej~35c1c438e11ebd89
      BitKeeper/deleted/.del-sql_parse.cc.rej:
        Rename: sql/sql_parse.cc.rej -> BitKeeper/deleted/.del-sql_parse.cc.rej
      BitKeeper/deleted/.del-table.cc.rej:
        Rename: sql/table.cc.rej -> BitKeeper/deleted/.del-table.cc.rej
      BitKeeper/deleted/.del-thr_alarm.c.rej:
        Rename: mysys/thr_alarm.c.rej -> BitKeeper/deleted/.del-thr_alarm.c.rej
      BUILD/compile-pentium64:
        Update this to be in line with compile-pentium
      BUILD/compile-pentium:
        Send command line options to SETUP.sh
      BUILD/compile-solaris-sparc-debug:
        Update scripts
      BUILD/compile-solaris-sparc-forte:
        Update scripts
      BUILD/compile-solaris-sparc-purify:
        Update scripts
      BUILD/compile-solaris-sparc:
        Update scripts
      BitKeeper/deleted/.del-DbtupSystemRestart.cpp~15b54d7e4e75d2d:
        Removed compiler warning
      BitKeeper/deleted/.del-ha_berkeley.cc:
        Moved get_auto_primary_key() here as int5store() gives (wrong) compiler warnings in win64
      configure.in:
        Added detection of port_create and port.h (for future)as 
        ---
        manual merge
      BitKeeper/deleted/.del-ha_berkeley.h:
        Moved get_auto_primary_key() to ha_berkeley.cc
      BitKeeper/deleted/.del-mysqlmanager.c~e97636d71145a0b:
        Fixed compiler warnings
      BitKeeper/etc/ignore:
        added storage/ndb/src/ndbapi/ndberror_check
      client/mysqlbinlog.cc:
        Removed not needed 'static' (caused compiler warning)
      client/mysqldump.c:
        Fixed compiler warnings from 'max' build
      client/mysqltest.c:
        Free warning and query memory no abort.
        (Removes strange warnings on screen if mysql-test-run fails)
        Removed compiler warnings
        Portability fix for windows (windows doesn't have mode_t)
      client/sql_string.h:
        Removed compiler warning
      cmd-line-utils/readline/xmalloc.c:
        Fixed compiler warnings from 'max' build
      extra/charset2html.c:
        Fixed compiler warnings
      extra/comp_err.c:
        Fixed compiler warnings from 'max' build
      extra/yassl/include/lock.hpp:
        Fix for windows64
      extra/yassl/include/openssl/ssl.h:
        Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
      extra/yassl/include/socket_wrapper.hpp:
        Moved socket_t to ssl.h, to be able to removed compiler warnings on windows 64 bit
      extra/yassl/include/yassl.hpp:
        Fix for windows64
      extra/yassl/src/ssl.cpp:
        Removed compiler warning
        Detect wrong parameter (Happens when running test suite on solaris)
        Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
      extra/yassl/taocrypt/src/integer.cpp:
        Fixed compiler warnings
      extra/yassl/testsuite/testsuite.cpp:
        Removed compiler warning
      include/config-win.h:
        Added HAVE_WINSOCK2 (for future)
      include/my_dbug.h:
        Fixed DBUG_PROCESS() so that we don't get compiler warnings for it
      include/my_global.h:
        Fixed unsafe define of uint4korr()
        manual merge (ignore changes from 5.0)
        Fixed warnings on win64 when using int5store and int6store
      include/my_pthread.h:
        Added my_thread_id typedef
        Renamed 'my_thread_id() function to my_thead_dbug_id()
      include/thr_alarm.h:
        Make thr_alarm_kill() to depend on thread_id instead of thread
      include/thr_lock.h:
        Make thr_abort_locks_for_thread() depend on thread_id instead of thread
      libmysql/libmysql.def:
        Fixed compiler warnings on win64
      libmysqld/CMakeLists.txt:
        Added missing files
      libmysqld/Makefile.am:
        Added new files
      libmysqld/lib_sql.cc:
        Remove not needed code (store_globals() now takes care of things)
      mysql-test/lib/mtr_report.pl:
        Removed wrong messages when using --extern
      mysql-test/mysql-test-run.pl:
        Fixed that --extern works
        Print help on stdout instead of stderr (make it easier to pipe it to less)
        Fixed typo that caused mysql-test-run.pl to fail on Solaris
      mysql-test/r/keywords.result:
        manual merge
      mysql-test/r/ndb_lock.result:
        After merge fixes
      mysql-test/r/ps.result:
        Portability fix
      mysql-test/t/disabled.def:
        Disabled ndb_alter_table as this very often fails for me (and have done it for a long time)
      mysql-test/t/keywords.test:
        manual merge
      mysql-test/t/ndb_lock.test:
        Added other possible error code
      mysql-test/t/ps.test:
        Portability fix (when compiling without DLOPEN)
      mysql-test/t/wait_timeout.test:
        Don't run this if we are not using a thread per connection (as other thread_handling code may not support timeouts)
      mysys/base64.c:
        Fixed compiler warnings on win64
      mysys/mf_keycache.c:
        Fixed compiler warnings
      mysys/my_getopt.c:
        Fixed compiler warning
      mysys/my_init.c:
        Fixed compiler warning
        Re-indented long comment
      mysys/my_thr_init.c:
        Always use mysys_var->id to generate thread name (makes things uniform accross thread implementations and thread usage)
        Always generate my_thread_name() when using DBUG
        Ensure mysys_var->pthread_self is set
        Fixed compiler warnings
      mysys/ptr_cmp.c:
        Fixed compiler warnings from 'max' build
      mysys/thr_alarm.c:
        Change thr_alarm_kill() to use mysys_var->id instead of thread id
        Fixed compiler warning on windows
      mysys/thr_lock.c:
        Change thr_abort_locks_for_thread() to use mysys_var->id instead of thread id
        Add purecov statements around not tested code
        Fixed compiler warnings
      mysys/thr_mutex.c:
        my_thread_id() -> my_thread_dbug_id()
      server-tools/instance-manager/guardian.cc:
        Fixed compiler warning
      server-tools/instance-manager/instance.cc:
        Fixed compiler warning
      server-tools/instance-manager/mysql_connection.cc:
        Fixed compiler warnings
      server-tools/instance-manager/mysqlmanager.cc:
        Fixed compiler warnings
      sql/CMakeLists.txt:
        Added missing files
      sql/Makefile.am:
        Added new files
      sql/event_scheduler.cc:
        Added pthread_exit() calls
        Ensure DBUG_xxx calls are not made before my_thread_init()
        Use common functions to set up thread handling
      sql/field.h:
        manual merge
      sql/ha_ndbcluster.cc:
        Removed some trivial 'current_thd' calls
      sql/handler.cc:
        Avoid warnings on KILL_CONNECTION
        Don't print out null pointer with printf()  (Causes crashes on Solaris)
      sql/item.cc:
        Fixed compiler warnings from 'max' build
      sql/item_cmpfunc.cc:
        After merge fixes
      sql/item_func.cc:
        Merge embedded and normal code usage
        (GET_LOCK, RELEASE_LOCK now works on my_thread_id instead of pthread_t)
        Fixed compiler warning
      sql/item_strfunc.cc:
        Fixed compiler warning
      sql/item_timefunc.cc:
        Fixed compiler warnings
      sql/lock.cc:
        Use (new) parameter to thr_abort_locks_for_thread()
      sql/log.cc:
        Fixed compiler warning
      sql/log_event.cc:
        Fixed compiler warnings about not used variable
      sql/mysql_priv.h:
        Remove TEST_NO_THREADS (not needed with new scheduler interface)
        Added functions from sql_connect.cc and new functions from sql_parse.cc
      sql/mysqld.cc:
        Use thread_scheduler structure to dispatch calls (make code more dynamic)
        Change --one-thread option to use thread_scheduler interface
        Made ONE_THREAD option independent of DBUG_BUILD
        --one-thread is now depricated. One should instead use '--thread-handling=no-threads'
        Remove not used uname() function.
        Split create_new_thread() into reusable sub functions.
        Preliminary interface code for future thread_handling code.
        Fixed compiler warnings
      sql/parse_file.cc:
        Don't send zero pointer to fn_format() (Causes crashes when using --debug)
      sql/repl_failsafe.cc:
        Setup pseudo_thread_id same way as other code
      sql/set_var.cc:
        Added variables 'thread_handling'
        Prepare for future variable 'thread_pool_size'
        Fixed compiler warnings
      sql/set_var.h:
        Fixed compiler warning
      sql/slave.cc:
        Setup pseudo_thread_id same way as other code
        Removed not used signal mask
      sql/sql_acl.cc:
        Fixed compiler warnings from 'max' build
      sql/sql_base.cc:
        Fixed long comments
        Normalized variable setup
        Don't destroy value of thd->variables.pseduo_thread_id
        More DBUG_PRINT()'s
        More DBUG_ASSERT()'s
        Fixed compiler warnings from 'max' build
      sql/sql_class.cc:
        Remove thd->real_id and thd->dbug_thread_id
        Added DBUG_ASSERT()
        Use thread_scheduler to signal threads to be killed.
        In THD::store_globals(), set my_thread_var->id to be thd->thread_id.
        Fixed compiler warnings
      sql/sql_class.h:
        Use 'my_thread_id' for internal thread id's
        Remove not needed THD elements: block_signals and dbug_thread_id
        Added 'thread_scheduler' scheduling extension element to THD
      sql/sql_insert.cc:
        After merge fixes
        (This actually fixes a bug in old code when many connections are in use)
        Setup pseudo_thread_id same way as other code
        Removed not used signal mask
        Initialize variable that may be used unitialized on error conditions (not fatal)
      sql/sql_parse.cc:
        Move connection related code to sql_connect.cc
        Remove setting of signal mask (not needed)
        Ensure TABLE_LIST->alias is set for generated TABLE_LIST elements (fixed core dumps when running with --debug)
        Added previous 'optional' element to reset_mgh()
        Removed not needed DBUG_PRINT call
      sql/sql_partition.cc:
        Fixed compiler warnings
      sql/sql_prepare.cc:
        Removed not needed casts
        Fixed compiler warnings from 'max' build
      sql/sql_select.cc:
        Fixed compiler warnings
      sql-bench/bench-init.pl.sh:
        Added --one-missing-tests
      sql-bench/example:
        Better example
      sql-bench/run-all-tests.sh:
        Added --only-missing-tests
      sql-bench/test-insert.sh:
        Fixed wrong estimate of update_with_key_prefix
      sql/sql_show.cc:
        Don't send pthread_kill() to threads to detect if they exists.
        (Not that useful and causes problems with future thread_handling code)
        Fixed compiler warnings
      sql/sql_table.cc:
        Simplify code
        Fixed compiler warnings
      sql/sql_test.cc:
        Remove dbug_thread_id from test output
      sql/sql_view.cc:
        Don't send zero pointer to fn_format()
      sql/tztime.cc:
        Fixed compiler warning
      sql/udf_example.def:
        Fixed compiler warnings on win64
      sql/unireg.cc:
        Initialize variable that may be used unitialized on error conditions
      storage/archive/archive_test.c:
        Fixed compiler warnings
      storage/archive/azio.c:
        Fixed compiler warnings
      storage/innobase/dict/dict0crea.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/dict/dict0dict.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/dict/dict0load.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/dict/dict0mem.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/eval/eval0proc.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/handler/ha_innodb.cc:
        Fixed compiler warnings detected on windows64
      storage/innobase/include/ut0byte.ic:
        Fixed compiler warnings on win64
      storage/innobase/include/ut0ut.ic:
        Fixed compiler warnings on win64
      storage/innobase/mtr/mtr0log.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/pars/pars0lex.l:
        Fixed warnings on win64
      storage/innobase/rem/rem0cmp.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/row/row0mysql.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/row/row0sel.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/sync/sync0rw.c:
        Fixed compiler warnings detected on windows64
      storage/innobase/trx/trx0trx.c:
        Fixed compiler warnings detected on windows64
      storage/myisam/mi_log.c:
        my_thread_id() -> my_thread_debug_id()
      storage/myisam/mi_packrec.c:
        Fixed compiler warnings detected on windows64
      storage/myisam/myisamchk.c:
        Fixed compiler warnings from 'max' build
      storage/ndb/src/common/debugger/EventLogger.cpp:
        Fixed compiler warnings
      storage/ndb/src/common/util/ConfigValues.cpp:
        Removed compiler warnings
      storage/ndb/src/common/util/NdbSqlUtil.cpp:
        Removed compiler warnings
      storage/ndb/src/cw/cpcd/CPCD.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/backup/Backup.cpp:
        Fixed compiler warnings detected on windows64
      storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
        Fixed compiler warnings detected on windows64
      storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
        Fixed compiler warnings detected on windows64
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/blocks/diskpage.hpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/ndbd_malloc.cpp:
        Fixed compiler warnings
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
        Fixed compiler warnings
      storage/ndb/src/mgmclient/main.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/NdbOperationExec.cpp:
        Fixed compiler warnings
      storage/ndb/src/ndbapi/SignalSender.cpp:
        Fixed compiler warnings
      storage/ndb/tools/restore/consumer_restore.cpp:
        Fixed compiler warnings
      strings/ctype-ucs2.c:
        Fixed compiler warnings
      strings/ctype-utf8.c:
        Fixed compiler warnings
      strings/decimal.c:
        Fixed compiler warnings
      strings/my_strchr.c:
        Fixed conflict between function and prototype
      support-files/compiler_warnings.supp:
        Ignore warnings from sql_yacc.cc that are hard to remove
        Ignore some not important warnings from windows 64 bit build
        Suppress warnings from bdb and (for the moment) warnings from ndb
        Suppress all warnings for all pushbuild platforms (should make all trees green)
      vio/viosslfactories.c:
        Added DBUG_PRINT
      BUILD/compile-pentium64-max:
        New BitKeeper file ``BUILD/compile-pentium64-max''
      libmysqld/scheduler.cc:
        New BitKeeper file ``libmysqld/scheduler.cc''
      libmysqld/sql_connect.cc:
        New BitKeeper file ``libmysqld/sql_connect.cc''
      mysql-test/include/one_thread_per_connection.inc:
        New BitKeeper file ``mysql-test/include/one_thread_per_connection.inc''
      mysql-test/r/no-threads.result:
        New BitKeeper file ``mysql-test/r/no-threads.result''
      mysql-test/r/one_thread_per_connection.require:
        New BitKeeper file ``mysql-test/r/one_thread_per_connection.require''
      mysql-test/t/no-threads-master.opt:
        New BitKeeper file ``mysql-test/t/no-threads-master.opt''
      mysql-test/t/no-threads.test:
        New BitKeeper file ``mysql-test/t/no-threads.test''
      sql/scheduler.cc:
        New BitKeeper file ``sql/scheduler.cc''
      sql/scheduler.h:
        New BitKeeper file ``sql/scheduler.h''
      sql/sql_connect.cc:
        New BitKeeper file ``sql/sql_connect.cc''
      9e678492
  22. 09 Nov, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1-ss1004 · 0ea6669e
      unknown authored
      Fixes:
      - Bug #15815: Very poor performance with multiple queries running concurrently
      - Bug #22868: 'Thread thrashing' with > 50 concurrent conns under an upd-intensive workloadw
      - Bug #24089: Race condition in fil_flush_file_spaces()
      
      
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1-ss1004
        
        Revision r934:
        btr_lift_page_up(): Set new page levels in all ancestor pages, not just
        in the father page.
        
        btr0btr.h: Add a BTR_MAX_LEVELS define.
      storage/innobase/buf/buf0buf.c:
        Applied innodb-5.1-ss1004
        
        Revision r999:
        Reduce buffer pool mutex contention under >= 4 big concurrent
        CPU-bound SELECT queries.  (Bug #22868)
        
        Fix: replace the mutex by one mutex protecting the 'flush list'
        (and the free list) and several mutexes protecting portions of the
        buffer pool, where we keep several indivudual LRU lists of pages.
        
        This patch is from Sunny Bains and Heikki Tuuri.
      storage/innobase/buf/buf0flu.c:
        Applied innodb-5.1-ss1004
        
        Revision r999:
        Reduce buffer pool mutex contention under >= 4 big concurrent
        CPU-bound SELECT queries.  (Bug #22868)
        
        Fix: replace the mutex by one mutex protecting the 'flush list'
        (and the free list) and several mutexes protecting portions of the
        buffer pool, where we keep several indivudual LRU lists of pages.
        
        This patch is from Sunny Bains and Heikki Tuuri.
      storage/innobase/buf/buf0lru.c:
        Applied innodb-5.1-ss1004
        
        Revision r999:
        Reduce buffer pool mutex contention under >= 4 big concurrent
        CPU-bound SELECT queries.  (Bug #22868)
        
        Fix: replace the mutex by one mutex protecting the 'flush list'
        (and the free list) and several mutexes protecting portions of the
        buffer pool, where we keep several indivudual LRU lists of pages.
        
        This patch is from Sunny Bains and Heikki Tuuri.
        
        
        Revision r1004:
        UT_LIST_REMOVE(): Invalidate the node pointers #ifdef UNIV_DEBUG.
        
        buf_LRU_invalidate_tablespace(): Invoke UT_LIST_GET_PREV(LRU, block)
        before UT_LIST_REMOVE(LRU, buf_pool->LRU, block).
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1-ss1004
        
        Revision r973:
        Do not break the latching order in TRUNCATE TABLE.
        
        dict_truncate_index_tree(): Replace parameter rec_t* rec with
        btr_pcur_t* pcur.  Reposition pcur before calling btr_create().
        
        sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
      storage/innobase/fil/fil0fil.c:
        Applied innodb-5.1-ss1004
        
        Revision r1002:
        fil_flush_file_spaces(): Copy the system->unflushed_spaces list to an
        array while holding the mutex.  This removes the crash-triggering
        race condition that was introduced when fixing Bug 15653.  (Bug #24089)
      storage/innobase/include/btr0btr.h:
        Applied innodb-5.1-ss1004
        
        Revision r934:
        btr_lift_page_up(): Set new page levels in all ancestor pages, not just
        in the father page.
        
        btr0btr.h: Add a BTR_MAX_LEVELS define.
      storage/innobase/include/buf0buf.h:
        Applied innodb-5.1-ss1004
        
        Revision r999:
        Reduce buffer pool mutex contention under >= 4 big concurrent
        CPU-bound SELECT queries.  (Bug #22868)
        
        Fix: replace the mutex by one mutex protecting the 'flush list'
        (and the free list) and several mutexes protecting portions of the
        buffer pool, where we keep several indivudual LRU lists of pages.
        
        This patch is from Sunny Bains and Heikki Tuuri.
      storage/innobase/include/buf0buf.ic:
        Applied innodb-5.1-ss1004
        
        Revision r999:
        Reduce buffer pool mutex contention under >= 4 big concurrent
        CPU-bound SELECT queries.  (Bug #22868)
        
        Fix: replace the mutex by one mutex protecting the 'flush list'
        (and the free list) and several mutexes protecting portions of the
        buffer pool, where we keep several indivudual LRU lists of pages.
        
        This patch is from Sunny Bains and Heikki Tuuri.
      storage/innobase/include/dict0crea.h:
        Applied innodb-5.1-ss1004
        
        Revision r973:
        Do not break the latching order in TRUNCATE TABLE.
        
        dict_truncate_index_tree(): Replace parameter rec_t* rec with
        btr_pcur_t* pcur.  Reposition pcur before calling btr_create().
        
        sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
      storage/innobase/include/ut0lst.h:
        Applied innodb-5.1-ss1004
        
        Revision r1004:
        UT_LIST_REMOVE(): Invalidate the node pointers #ifdef UNIV_DEBUG.
        
        buf_LRU_invalidate_tablespace(): Invoke UT_LIST_GET_PREV(LRU, block)
        before UT_LIST_REMOVE(LRU, buf_pool->LRU, block).
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1-ss1004
        
        Revision r973:
        Do not break the latching order in TRUNCATE TABLE.
        
        dict_truncate_index_tree(): Replace parameter rec_t* rec with
        btr_pcur_t* pcur.  Reposition pcur before calling btr_create().
        
        sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
      0ea6669e
  23. 21 Sep, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1 snapshots ss799 and ss854 · bf2f50d3
      unknown authored
      Bugs fixed:
      - Bug #20877: InnoDB data dictionary memory footprint is too big
      - Bug #13544: Second delete of same row in transaction illustrates non-optimal locking
      - Bug #20791: valgrind errors in InnoDB
      
      
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r823:
        Minor cleanup related to Bug #20877.
        
        btr_print_recursive(): Replace tree->tree_indexes with tree->index.
        This should have been done in r453.
        
        univ.i: Add UNIV_BTR_PRINT.
        
        rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
        other bitfields.  Change the types to unsigned, in case ulint or ibool
        bitfields will not work.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/btr/btr0cur.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/btr/btr0pcur.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/btr/btr0sea.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0buf.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0flu.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0lru.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0rea.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/data/data0data.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/data/data0type.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/dict/dict0boot.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r833:
        Tweak the bit-field definitions introduced since r813 to address Bug #20877.
        
        rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
        yet that could be fused to the same machine word, but we play it safe,
        because the field writer_is_wait_ex may be modified by several threads
        simultaneously.  Such fields should always be allocated an own machine
        word.
        
        dict_table_t: Change the type of all bit-fields to "unsigned".  Make
        "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
        bit-fields, so that the bit-fields can be allocated together.  Do not
        make autoinc_inited a bit-field, as we cannot allocate any field
        from the same machine word.
        
        dict_build_table_def_step(): Pass a local variable to
        fil_create_new_single_table_tablespace() and initialize table->space
        from it after the call, now that table->space is a bit-field.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r826:
        The code base was reindented in r763 and automatic .emacs indentation
        settings introduced. Some problems were found, so from this commit on one
        additional indentation rule is introduced:
        
         (add-to-list 'c-offsets-alist '(arglist-intro . +))
        
        Note that fixing some of the unfortunate line-splits done in r764 will be
        done in a future change.
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r831:
        Add dict_col_get_clust_pos_noninline(), which was forgotten from r820.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r845:
        Split long lines with [] operators better.
      storage/innobase/dict/dict0load.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/dict/dict0mem.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
      storage/innobase/eval/eval0eval.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r826:
        The code base was reindented in r763 and automatic .emacs indentation
        settings introduced. Some problems were found, so from this commit on one
        additional indentation rule is introduced:
        
         (add-to-list 'c-offsets-alist '(arglist-intro . +))
        
        Note that fixing some of the unfortunate line-splits done in r764 will be
        done in a future change.
      storage/innobase/eval/eval0proc.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/fil/fil0fil.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/fsp/fsp0fsp.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r845:
        Split long lines with [] operators better.
      storage/innobase/handler/ha_innodb.cc:
        Applied innodb-5.1 snapshots ss799 and ss854
      storage/innobase/handler/ha_innodb.h:
        Applied innodb-5.1 snapshots ss799 and ss854
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/btr0btr.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/btr0btr.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
      storage/innobase/include/btr0cur.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/btr0cur.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/btr0pcur.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r817:
        btr0pcur.h: Change FIXME to TODO.
      storage/innobase/include/btr0sea.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
      storage/innobase/include/buf0buf.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
      storage/innobase/include/data0data.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/include/data0type.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/data0type.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/dict0boot.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r816:
        Remove more remnants of mixed indexes.
      storage/innobase/include/dict0dict.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r831:
        Add dict_col_get_clust_pos_noninline(), which was forgotten from r820.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
      storage/innobase/include/dict0dict.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/dict0mem.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r815:
        dict_index_t: Remove tree_indexes.  It should have been removed in r453
        when the list in dict_tree_t was replaced with the pointer tree_index.
        
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r833:
        Tweak the bit-field definitions introduced since r813 to address Bug #20877.
        
        rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
        yet that could be fused to the same machine word, but we play it safe,
        because the field writer_is_wait_ex may be modified by several threads
        simultaneously.  Such fields should always be allocated an own machine
        word.
        
        dict_table_t: Change the type of all bit-fields to "unsigned".  Make
        "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
        bit-fields, so that the bit-fields can be allocated together.  Do not
        make autoinc_inited a bit-field, as we cannot allocate any field
        from the same machine word.
        
        dict_build_table_def_step(): Pass a local variable to
        fil_create_new_single_table_tablespace() and initialize table->space
        from it after the call, now that table->space is a bit-field.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r835:
        Change the recently introduced ulint bit-fields to unsigned.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
      storage/innobase/include/dict0types.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/ibuf0ibuf.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/page0page.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
      storage/innobase/include/page0page.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/read0read.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/rem0cmp.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/rem0cmp.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/rem0rec.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/include/rem0rec.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/rem0types.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/include/row0upd.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/sync0rw.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r823:
        Minor cleanup related to Bug #20877.
        
        btr_print_recursive(): Replace tree->tree_indexes with tree->index.
        This should have been done in r453.
        
        univ.i: Add UNIV_BTR_PRINT.
        
        rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
        other bitfields.  Change the types to unsigned, in case ulint or ibool
        bitfields will not work.
        
        
        Revision r833:
        Tweak the bit-field definitions introduced since r813 to address Bug #20877.
        
        rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
        yet that could be fused to the same machine word, but we play it safe,
        because the field writer_is_wait_ex may be modified by several threads
        simultaneously.  Such fields should always be allocated an own machine
        word.
        
        dict_table_t: Change the type of all bit-fields to "unsigned".  Make
        "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
        bit-fields, so that the bit-fields can be allocated together.  Do not
        make autoinc_inited a bit-field, as we cannot allocate any field
        from the same machine word.
        
        dict_build_table_def_step(): Pass a local variable to
        fil_create_new_single_table_tablespace() and initialize table->space
        from it after the call, now that table->space is a bit-field.
      storage/innobase/include/univ.i:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r823:
        Minor cleanup related to Bug #20877.
        
        btr_print_recursive(): Replace tree->tree_indexes with tree->index.
        This should have been done in r453.
        
        univ.i: Add UNIV_BTR_PRINT.
        
        rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
        other bitfields.  Change the types to unsigned, in case ulint or ibool
        bitfields will not work.
      storage/innobase/lock/lock0lock.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/log/log0log.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/log/log0recv.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mem/mem0dbg.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mem/mem0pool.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mtr/mtr0log.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mtr/mtr0mtr.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/os/os0file.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/os/os0thread.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/page/page0cur.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/page/page0page.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
      storage/innobase/pars/pars0opt.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/pars/pars0pars.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/pars/pars0sym.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/read/read0read.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/rem/rem0cmp.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/rem/rem0rec.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0ins.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0purge.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0row.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r825:
        row_search_for_mysql(): Skip setting the next-key lock on an already 
        delete-marked record in a clustered index where the search criteria is 
        unique, within the same transaction (Bug #13544).
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r845:
        Split long lines with [] operators better.
      storage/innobase/row/row0uins.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0umod.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0upd.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r851:
        row_upd_sec_step(): Fix false comment.
      storage/innobase/row/row0vers.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/srv/srv0srv.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/srv/srv0start.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/sync/sync0arr.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/sync/sync0rw.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/sync/sync0sync.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0purge.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0rec.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0rseg.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0sys.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r829:
        Erase the magic number in the trx sys header using a redo-logged write;
        it should be redo-logged because the data structure is file-based;
        this patch does not fix any bug; the original erase operation was added
        in r781 to fix Valgrind Bug #20791
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0trx.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0undo.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      bf2f50d3
  24. 05 Sep, 2006 1 commit
    • unknown's avatar
      Applied InnoDB 5.1 snapshot ss787. · 0da158aa
      unknown authored
      Bugs fixed:
      - Bug #20791    valgrind errors in InnoDB
        Remove Valgrind warning of Bug #20791 : in new database
        creation, we read the doublewrite buffer magic number from
        uninitialized memory; the code worked because it was extremely
        unlikely that the memory would contain the magic number
      - Bug #21784    DROP TABLE crashes 5.1.12-pre if concurrent
        queries on the table
        remove update_thd() in ::store_lock()
      
      
      Also includes numerous coding style fixes, etc.  See file-level
      comments for details.
      
      
      sql/ha_innodb.cc:
        Applied InnoDB 5.1 snapshot ss787.
        
          r755:
          Merge a patch from MySQL AB (Mats Kindal):
        
          Lock and unlock prepare_commit_mutex under the same conditions.
        
          r782:
          Fix bug #21784 of a crash in DROP TABLE with concurrent queries on the table
      storage/innobase/Makefile.am:
        Applied InnoDB 5.1 snapshot ss787.
        
          r772:
          Merge changes from MySQL AB:
        
          ChangeSet
            2006/08/23 13:59:16-07:00 brian@zim.(none)
            This patch removes need for a innodb to have its own configure.
      storage/innobase/btr/btr0btr.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/btr/btr0cur.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r761:
          btr_cur_search_to_nth_level(): Document where cursor is left at in
          PAGE_CUR_LE searches.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/btr/btr0pcur.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/btr/btr0sea.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/buf/buf0buf.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/buf/buf0flu.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/buf/buf0lru.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
      storage/innobase/buf/buf0rea.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/data/data0data.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r743:
          dfield_print_raw(): Make static.  Print at most 1000 bytes to avoid
          excessive space usage of the error log.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/data/data0type.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/dict/dict0boot.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/dict/dict0crea.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/dict/dict0dict.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
        
          r767:
          Remove dict_col_t::aux, which was only used when copying an index definition
          to the data dictionary cache.
      storage/innobase/dict/dict0load.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/dict/dict0mem.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/eval/eval0eval.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/eval/eval0proc.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/fil/fil0fil.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/fsp/fsp0fsp.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/fut/fut0lst.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/ha/ha0ha.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r735:
          Remove all traces of the obsolete concept of replicate spaces.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/include/btr0btr.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/btr0cur.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/btr0cur.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/btr0pcur.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/buf0buf.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/buf0buf.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/buf0flu.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/buf0rea.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/data0data.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r743:
          dfield_print_raw(): Make static.  Print at most 1000 bytes to avoid
          excessive space usage of the error log.
      storage/innobase/include/data0data.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/data0type.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/dict0boot.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/dict0dict.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/dict0mem.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r767:
          Remove dict_col_t::aux, which was only used when copying an index definition
          to the data dictionary cache.
      storage/innobase/include/eval0eval.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/fut0lst.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/ibuf0ibuf.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/lock0lock.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/log0log.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/log0recv.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r735:
          Remove all traces of the obsolete concept of replicate spaces.
      storage/innobase/include/mach0data.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/mem0mem.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/include/mtr0log.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/mtr0mtr.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/os0file.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/page0cur.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/page0page.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
      storage/innobase/include/que0que.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/read0read.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/rem0cmp.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/rem0rec.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/include/row0mysql.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/row0purge.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/row0row.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r777:
          Remove unused code.
        
          row_build(): Remove type==ROW_COPY_ALSO_EXTERNALS, because it is never
          passed.
      storage/innobase/include/row0row.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/row0sel.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/row0sel.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/row0undo.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/row0upd.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/sync0rw.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/sync0rw.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/sync0sync.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/sync0sync.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/trx0rec.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/trx0rseg.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/include/trx0sys.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/include/trx0trx.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/trx0trx.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/trx0undo.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/trx0undo.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/trx0xa.h:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/univ.i:
        Applied InnoDB 5.1 snapshot ss787.
        
          r772:
          Merge changes from MySQL AB:
        
          ChangeSet
            2006/08/23 13:59:16-07:00 brian@zim.(none)·
            This patch removes need for a innodb to have its own configure.·
        
          univ.i: Replace ../ib_config.h with config.h.
        
          r777:
          Remove unused code.
        
          univ.i: Do not #define YYDEBUG, because it is only useful for debugging
          the grammar of the Bison-generated InnoDB SQL parser.
      storage/innobase/include/ut0byte.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/include/ut0rnd.ic:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/lock/lock0lock.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/log/log0log.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/log/log0recv.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r735:
          Remove all traces of the obsolete concept of replicate spaces.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/mem/mem0dbg.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/mem/mem0mem.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/mem/mem0pool.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/mtr/mtr0log.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/mtr/mtr0mtr.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/os/os0file.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/os/os0proc.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/os/os0sync.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/os/os0thread.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/page/page0cur.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/page/page0page.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r761:
          btr_cur_search_to_nth_level(): Document where cursor is left at in
          PAGE_CUR_LE searches.
        
          r762:
          page_validate(): Add missing space to error print, for real this time,
          following an error in r761.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/pars/pars0opt.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/pars/pars0pars.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/que/que0que.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/read/read0read.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/rem/rem0cmp.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/rem/rem0rec.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/row/row0ins.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/row/row0mysql.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/row/row0purge.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/row/row0row.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
        
          r777:
          Remove unused code.
        
          row_build(): Remove type==ROW_COPY_ALSO_EXTERNALS, because it is never
          passed.
      storage/innobase/row/row0sel.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/row/row0uins.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/row/row0umod.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/row/row0undo.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/row/row0upd.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/row/row0vers.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/srv/srv0srv.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r741:
          srv_master_thread(): Add OS_THREAD_DUMMY_RETURN to get rid of a compiler
          warning "no return value from a function returning non-void".
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
        
          r780:
          Add a warning comment above the place where we set srv_main_thread_op_info
          to "waiting for server activity" that mentions that this string should not
          be changed.
      storage/innobase/srv/srv0start.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/sync/sync0arr.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/sync/sync0rw.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/sync/sync0sync.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/thr/thr0loc.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/trx/trx0purge.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/trx/trx0rec.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r735:
          Remove all traces of the obsolete concept of replicate spaces.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/trx/trx0roll.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/trx/trx0rseg.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/trx/trx0sys.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/trx/trx0trx.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/trx/trx0undo.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/ut/ut0byte.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/ut/ut0dbg.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r764:
          Split lines before an opening parenthesis, not after one.
        
          Replace some printf(...) in debug builds with fprintf(stderr, ...).
      storage/innobase/ut/ut0mem.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/ut/ut0ut.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
        
          r765:
          Split lines before binary operators, not after them.
      storage/innobase/ut/ut0vec.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      storage/innobase/ut/ut0wqueue.c:
        Applied InnoDB 5.1 snapshot ss787.
        
          r763:
          Reindent the code base (except for ha_innodb.{cc,h} and generated parser
          and lexer files).
      0da158aa
  25. 14 Aug, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots. · 2606cb93
      unknown authored
      All but ss677 are against the mysql-5.1 tree only.
      
      Fixes the following bugs:
      - Bug #19834: Using cursors when running in READ-COMMITTED can cause InnoDB to crash
      - Bug #20213: DBT2 testing cause mysqld to core using Innodb
      - Bug #20493: on partition tables, select and show command casue server crash
      - Bug #21113: Duplicate printout in SHOW INNODB STATUS
      - Bug #21313: rsql_..._recover_innodb_tmp_table is redundant and broken
      - Bug #21467: Manual URL wrong in InnoDB "page corrupted" error report
      
      
      mysql-test/r/innodb.result:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        innodb.result: Adjust Innodb_rows_inserted and Innodb_rows_updated
        to reflect the deleted statements in r420, which somehow reappeared
        in the MySQL tree.
      mysql-test/t/innodb.test:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
      sql/ha_innodb.cc:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        ha_innobase::start_stmt(): patch from Heikki:
        Do not call read_view_close_for_mysql().  (Bug #19834)
        
        Fix Bug#20213 and its duplicates: stress test crashes of InnoDB-5.1
        
        Fix Bug #20493 : we must prepare prebuilt->trx to point to the trx of this thd before using it
        
        Add update_thd() to several places in ha_innodb.cc to make sure prebuilt->trx points to the right trx object; in other functions add assertions that prebuilt->trx is for this thd; when 5.1 stabilizes, we can change these assertions to ut_ad() debug version assertions
        
        Remove redundant check_trx_exists() and ut_a() from r701,
        as suggested by Marko
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/buf/buf0buf.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/fil/fil0fil.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Make the tablespace cache hash size 100 or 1000 times bigger. Fixes bug
        #21112.
        
        After ut_print_timestamp(), always display "  InnoDB:" (note two spaces).
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/fsp/fsp0fsp.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        ibuf_print(): Don't print redundant information. Fixes bug #21113.
        
        Remove non-varying variable ibuf->meter and related constant IBUF_THRESHOLD.
      storage/innobase/include/btr0cur.ic:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        btr_cur_get_page(): Remove buggy assertion.
      storage/innobase/include/buf0buf.ic:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/include/ibuf0ibuf.ic:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Remove non-varying variable ibuf->meter and related constant IBUF_THRESHOLD.
      storage/innobase/log/log0log.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/log/log0recv.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/os/os0file.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Remove the special treatment of tables
        rsql_IDENTIFIER_recover_innodb_tmp_table, which is redundant and
        was broken with the introduction of the "safe" file name encoding of
        identifiers.  (Bug #21313)
        
        ChangeSet@1.2181.173.1  2006-08-02 17:57:06+02:00  ingo@local
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Changed back the encoded temp file prefix to #sql.
        
        After ut_print_timestamp(), always display "  InnoDB:" (note two spaces).
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/row/row0vers.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        row_vers_build_for_semi_consistent_read(): rec_trx_id was uninitialized
        in a comparison.  Initialize it.
      storage/innobase/srv/srv0start.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/ut/ut0dbg.c:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
        
        ut_dbg_assertion_failed(): Print space between timestamp and start of error
        message.
        
        After ut_print_timestamp(), always display "  InnoDB:" (note two spaces).
        
        Correct all URLs pointing to the MySQL manual. (Bug #21467)
      storage/innobase/Makefile.am:
        Applied innodb-5.1-ss677, -ss680, -ss713, and -ss720 snapshots.
        All but ss677 are against the mysql-5.1 tree only.
      2606cb93
  26. 02 Aug, 2006 1 commit
    • unknown's avatar
      Bug#18775 - Temporary table from alter table visible to other threads · ef976d20
      unknown authored
      Continued implementation of WL#1324 (table name to filename encoding)
      
      The intermediate (not temporary) files of the new table
      during ALTER TABLE was visible for SHOW TABLES. These
      intermediate files are copies of the original table with
      the changes done by ALTER TABLE. After all the data is
      copied over from the original table, these files are renamed 
      to the original tables file names. So they are not temporary 
      files. They persist after ALTER TABLE, but just with another 
      name.
      
      In 5.0 the intermediate files are invisible for SHOW TABLES
      because all file names beginning with "#sql" were suppressed.
      
      This failed since 5.1.6 because even temporary table names were
      converted when making file names from them. The prefix became
      converted to "@0023sql". Converting the prefix during SHOW TABLES
      would suppress the listing of user tables that start with "#sql".
      
      The solution of the problem is to continue the implementation of
      the table name to file name conversion feature. One requirement
      is to suppress the conversion for temporary table names.
      
      This change is straightforward for real temporary tables as there
      is a function that creates temporary file names.
      
      But the generated path names are located in TMPDIR and have no
      relation to the internal table name. This cannot be used for
      ALTER TABLE. Its intermediate files need to be in the same
      directory as the old table files. And it is necessary to be
      able to deduce the same path from the same table name repeatedly.
      
      Consequently the intermediate table files must be handled like normal
      tables. Their internal names shall start with tmp_file_prefix
      (#sql) and they shall not be converted like normal table names.
      
      I added a flags parameter to all relevant functions that are
      called from ALTER TABLE. It is used to suppress the conversion
      for the intermediate table files.
      
      The outcome is that the suppression of #sql in SHOW TABLES
      works again. It does not suppress user tables as these are
      converted to @0023sql on file level.
      
      This patch does also fix ALTER TABLE ... RENAME, which could not 
      rename a table with non-ASCII characters in its name.
      
      It does also fix the problem that a user could create a table like
      `#sql-xxxx-yyyy`, where xxxx is mysqld's pid and yyyy is the thread
      ID of some other thread, which prevented this thread from running 
      ALTER TABLE.
      
      Some of the above problems are mentioned in Bug 1405, which can
      be closed with this patch.
      
      This patch does also contain some minor fixes for other forgotten
      conversions. Still known problems are reported as bugs 21370,
      21373, and 21387.
      
      
      mysql-test/r/alter_table.result:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test results.
      mysql-test/r/backup.result:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test results.
      mysql-test/r/repair.result:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test results.
      mysql-test/t/alter_table.test:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test cases.
      mysql-test/t/backup.test:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added test cases.
      mysql-test/t/repair.test:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added a test case.
      sql/ha_myisam.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added missing table name mapping calls to backup() and restore().
      sql/ha_myisammrg.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/ha_ndbcluster.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/ha_ndbcluster_binlog.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/ha_ndbcluster_binlog.h:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Removed unnecessary check for wrong temp file prefix.
      sql/mysql_priv.h:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Extended quick_rm_table(), mysql_rename_table(), and
        build_table_filename() by an flags argument, which can indicate
        temporary table names that should not be converted.
        Added symbolic flag values.
      sql/sql_acl.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_base.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Fixed a comment.
        Added DBUG calls.
      sql/sql_db.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_delete.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_insert.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_partition.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_rename.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_show.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Reverted the former fix for this bug. tmp_file_prefix is now used
        verbatim in the comparison of file names.
      sql/sql_table.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added a check for a tmp_file_prefix file name to
        filename_to_tablename(). These names are now accepted without
        conversion.
        Extended quick_rm_table(), mysql_rename_table(), and
        build_table_filename() by an flags argument, which can indicate
        temporary table names that should not be converted.
        Removed the table to file name conversion from
        build_tmptable_filename().
        Disabled REPAIR TABLE ... USE_FRM for temporary tables.
        Added the forgotten conversion to mysql_alter_table() for the case
        of ALTER TABLE ... RENAME.
        Added comments and DBUG calls.
      sql/sql_trigger.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/sql_view.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Added an zero argument for the new 'flags' parameter.
      sql/table.cc:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Replaced a literal ".frm" by reg_ext.
        Added DBUG calls.
      storage/innobase/row/row0mysql.c:
        Bug#18775 - Temporary table from alter table visible to other threads
        Continued implementation of WL#1324 (table name to filename encoding)
        Changed back the encoded temp file prefix to #sql.
      ef976d20
  27. 26 Jul, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1-ss660 snapshot. · d36f9479
      unknown authored
       Changes in SQL parser:
       * Change default mode of SELECT from "lock in share mode"
         to "consistent read".
       * Remove support from SELECT for specifying "consistent read".
       * Add support in SELECT for specifying "lock in share mode".
       * Change all uses of SQL parser to specify "lock in share mode".
       * Modify syntax so that the only valid top-level statement is
         a procedure definition, since it's the only one that actually
         works.
       * Add support for lock waits.
      
      
      sql/ha_innodb.cc:
        Applied innodb-5.1-ss660 snapshot.
         Document better the "bool table_id" flag.
      storage/innobase/btr/btr0cur.c:
        Applied innodb-5.1-ss660 snapshot.
         btr_cur_search_to_nth_level(): Reacquire btr_search_latch after
         inserting to the insert buffer. This was noticed while analysing
         Bug#19801, but this should not fix this bug since, according to
         Heikki, btr_search_latch is not reserved during an insert.
      storage/innobase/configure.in:
        Applied innodb-5.1-ss660 snapshot.
         Add -Wpointer-arith to CFLAGS when using GCC.
      storage/innobase/data/data0type.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1-ss660 snapshot.
         Make dict_remove_db_name() non-static.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1-ss660 snapshot.
         ibuf_fixed_addr_page(): Add parameter space. As the insert buffer
         B-tree is only located in the system tablespace (space 0),
         IBUF_TREE_ROOT_PAGE_NO is only special in space 0.
      storage/innobase/include/data0type.h:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/include/dict0dict.h:
        Applied innodb-5.1-ss660 snapshot.
         Make dict_remove_db_name() non-static.
      storage/innobase/include/pars0grm.h:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/include/pars0pars.h:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/include/que0que.h:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/include/sync0rw.ic:
        Applied innodb-5.1-ss660 snapshot.
         rw_lock_s_unlock_func(): Change a debug assertion to a
         production assertion in order to track down Bug#19081.
      storage/innobase/include/trx0trx.h:
        Applied innodb-5.1-ss660 snapshot.
         trx_sig_send() always succeeds or asserts.
      storage/innobase/include/ut0ut.h:
        Applied innodb-5.1-ss660 snapshot.
         Document better the "bool table_id" flags.
      storage/innobase/mem/mem0mem.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/pars/lexyy.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/pars/pars0grm.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/pars/pars0grm.h:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/pars/pars0grm.y:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/pars/pars0lex.l:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/pars/pars0pars.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/que/que0que.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1-ss660 snapshot.
         * Disable prefetch and adaptive hash index for tables
           with rows over 1024 bytes in InnoDB's SQL parser.
         * row_sel_try_search_shortcut(): Do not return SEL_FOUND
           when the record was not found. This bug was introduced
           in MySQL/InnoDB 5.0.3, but luckily it should never
           manifest itself, given that existing InnoDB SQL code
           never makes use of consistent reads.
         * Don't take unnecesary locks on supremum records when the
           srv_locks_unsafe_for_binlog option is enabled. Fixes an
           assertion failure in the innodb_unsafe_binlog testcase
           when compiled with UNIV_DEBUG.
      storage/innobase/row/row0upd.c:
        Applied innodb-5.1-ss660 snapshot.
      storage/innobase/trx/trx0roll.c:
        Applied innodb-5.1-ss660 snapshot.
         trx_sig_send() always succeeds or asserts.
      storage/innobase/trx/trx0trx.c:
        Applied innodb-5.1-ss660 snapshot.
         trx_sig_send() always succeeds or asserts.
      storage/innobase/ut/ut0ut.c:
        Applied innodb-5.1-ss660 snapshot.
         Document better the "bool table_id" flags.
      d36f9479
  28. 01 Jun, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1-ss594 snapshot. · 2dca2a1a
      unknown authored
       Fixed BUG#19542 "InnoDB doesn't increase the Handler_read_prev couter".
       Fixed BUG#19609 "Case sensitivity of innodb_data_file_path gives stupid error".
       Fixed BUG#19727 "InnoDB crashed server and crashed tables are ot recoverable".
       Also:
       * Remove remnants of the obsolete concept of memoryfixing tables and indexes.
       * Remove unused dict_table_LRU_trim().
       * Remove unused 'trx' parameter from dict_table_get_on_id_low(),
         dict_table_get(), dict_table_get_and_increment_handle_count().
       * Add a normal linked list implementation.
       * Add a work queue implementation.
       * Add 'level' parameter to mutex_create() and rw_lock_create().
         Remove mutex_set_level() and rw_lock_set_level().
       * Rename SYNC_LEVEL_NONE to SYNC_LEVEL_VARYING.
       * Add support for bound ids in InnoDB's parser.
       * Define UNIV_BTR_DEBUG for enabling consistency checks of
         FIL_PAGE_NEXT and FIL_PAGE_PREV when accessing sibling
         pages of B-tree indexes.
         btr_validate_level(): Check the validity of the doubly linked
         list formed by FIL_PAGE_NEXT and FIL_PAGE_PREV.
       * Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1.
         ut_print_name(), ut_print_name1(): Add parameter 'table_id' for
         distinguishing names of tables from other identifiers.
         New: innobase_convert_from_table_id(), innobase_convert_from_id(),
              innobase_convert_from_filename(), innobase_get_charset.
         dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(),
         dict_skip_word(), dict_create_foreign_constraints_low(): Add
         parameter 'cs' so that isspace() can be replaced with my_isspace(),
         whose operation depends on the connection character set.
         dict_scan_id(): Convert identifier to UTF-8.
         dict_str_starts_with_keyword(): New extern function, to replace
         dict_accept() in row_search_for_mysql().
         mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier().
         ha_innobase::create(): Remove the thd->convert_strin() call. Pass the
         statement to InnoDB in the connection character set and let InnoDB
         convert the identifier to UTF-8.
       * Add max_row_size to dict_table_t.
       * btr0cur.c
         btr_copy_externally_stored_field(): Only set the 'offset' variable
         when needed.
       * buf0buf.c
         buf_page_io_complete(): Write to the error log if the page number or
         the space id o the disk do not match those in memory. Also write to
         the error log if a page was read from the doublewrite buffer. The
         doublewrite buffer should be only read by the lower-level function
         fil_io() at database startup.
       * dict0dict.c
         dict_scan_table_name(): Remove fallback to differently encoded name
         when the table is not found. The encoding is handled at a higher level.
       * ha_innodb.cc
         Increment statistic counter in ha_innobase::index_prev() (bug 19542).
         Add innobase_convert_string wrapper function and a new file
         ha_prototypes.h.
         innobase_print_identifier(): Remove TODO comment before calling
         get_quote_char_for_identifier(). That function apparently assumes
         the identifier to be encoded in UTF-8.
       * ibuf0ibuf.c|h
         ibuf_count_get(), ibuf_counts[], ibuf_count_inited(): Define these
         only #ifdef UNIV_IBUF_DEBUG. Previously, when compiled without
         UNIV_IBUF_DEBUG, invoking ibuf_count_get() would crash InnoDB.
         The function is only being called #ifdef UNIV_IBUF_DEBUG.
       * innodb.result
         Adjust the results for changes in the foreign key error messages.
       * mem0mem.c|h
         New: mem_heap_dup(), mem_heap_printf(), mem_heap_cat().
       * os0file.c
         Check the page trailers also after writing to disk. This improves
         chances of diagnosing bug 18886.
         os_file_check_page_trailers(): New function for checking that the
         two copies of the LSN stamped on the page match.
         os_aio_simulated_handle(): Call os_file_check_page_trailers()
         before and after os_file_write().
       * row0mysql.c
         Move trx_commit_for_mysql(trx) calls before calls to
         row_mysql_unlock_data_dictionary(trx) (bug 19727).
       * row0sel.c
         row_fetch_print(): Handle SQL NULL values without crashing.
         row_sel_store_mysql_rec(): Remove useless call to rec_get_nth_field
         when handling an externally stored column.
         Fetch externally stored fields when using InnoDB's internal SQL
         parser.
         Optimize BLOB selects by using prebuilt->blob_heap directly instead
         of first reading BLOB data to a temporary heap and then copying it
         to prebuilt->blob_heap.
       * srv0srv.c
         srv_master_thread(): Remove unreachable code.
       * srv0start.c
         srv_parse_data_file_paths_and_sizes(): Accept lower-case 'm' and
         'g' as abbreviations of megabyte and gigabyte (bug 19609).
         srv_parse_megabytes(): New fuction.
       * ut0dbg.c|h
         Implement InnoDB assertions (ut_a and ut_error) with abort() when
         the code is compiled with GCC 3 or later on other platforms than
         Windows or Netware. Also disable the variable ut_dbg_stop_threads
         and the function ut_dbg_stop_thread() i this case, unless
         UNIV_SYC_DEBUG is defined. This should allow the compiler to
         generate more compact code for assertions.
       * ut0list.c|h
         Add ib_list_create_heap().
      
      
      mysql-test/r/innodb.result:
        Applied innodb-5.1-ss594 snapshot.
      mysql-test/t/innodb.test:
        Copy the comment from the beginning of the file
         to the end because MySQL developers continue
         adding test cases to this file.
      sql/ha_innodb.cc:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/CMakeLists.txt:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/Makefile.am:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/btr/btr0cur.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/btr/btr0pcur.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/btr/btr0sea.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/buf/buf0buf.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/buf/buf0flu.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/data/data0type.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/dict/dict0load.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/dict/dict0mem.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/fil/fil0fil.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ha/hash0hash.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/data0type.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/dict0dict.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/dict0dict.ic:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/dict0mem.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/fil0fil.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/fsp0fsp.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ibuf0ibuf.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/mem0mem.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/pars0pars.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/pars0sym.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/pars0types.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/rem0rec.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/row0purge.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/row0undo.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/srv0srv.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/sync0rw.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/sync0sync.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/univ.i:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ut0dbg.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ut0ut.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/lock/lock0lock.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/log/log0log.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/log/log0recv.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/mem/mem0dbg.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/mem/mem0mem.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/mem/mem0pool.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/os/os0file.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/os/os0thread.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/pars/lexyy.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/pars/pars0lex.l:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/pars/pars0pars.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/pars/pars0sym.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/row/row0ins.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/row/row0purge.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/row/row0row.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/row/row0upd.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/srv/srv0srv.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/srv/srv0start.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/sync/sync0arr.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/sync/sync0rw.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/sync/sync0sync.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/thr/thr0loc.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/trx/trx0purge.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/trx/trx0rec.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/trx/trx0roll.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/trx/trx0rseg.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/trx/trx0sys.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/trx/trx0trx.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ut/Makefile.am:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ut/ut0dbg.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ut/ut0ut.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ha_prototypes.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ut0list.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ut0list.ic:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/include/ut0wqueue.h:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ut/ut0list.c:
        Applied innodb-5.1-ss594 snapshot.
      storage/innobase/ut/ut0wqueue.c:
        Applied innodb-5.1-ss594 snapshot.
      2dca2a1a
  29. 23 Apr, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1-ss475 snapshot. · ca9b46f7
      unknown authored
      * Fix BUG#15650: "DELETE with LEFT JOIN crashes server with innodb_locks_unsafe_for binlog"
      * Fix BUG#17134: "Partitions: uncommitted changes are visible"
      * Fix BUG#17992: "Partitions: InnoDB, somehow rotten table after UPDATE"
        row0ins.c: MySQL's partitioned table code does not set preduilt->sql_stat_start right
        if it does an insert in the same statement after doing a search first in the same
        partition table. We now write trx id always to the buffer, not just when flag
        sql_stat_start is on. This will waste CPU time very sightly.
      * Fix BUG#18077: "InnoDB uses full explicit table locks in stored FUNCTION"
      * Fix BUG#18238: "When locks exhaust the buffer pool, InnoDB does not roll back the trx"
      * Fix BUG#18252" "Disk space leak in updates of InnoDB BLOB rows in 5.0 and 5.1"
      * Fix BUG#18283: "When InnoDB returns error 'lock table full', MySQL can write to binlog too much"
      * Fix BUG#18350: "Use consistent read in CREATE ... SELECT ... if innodb_locks_unsafe_for_binlog"
      * Fix BUG#18384: "InnoDB memory leak on duplicate key errors in 5.0 if row has many columns"
      * Fix BUG#18934: "InnoDB crashes when table uses column names like DB_ROW_ID"
        Refuse tables that use reserved column names.
      * InnoDB's SQL parser:
        - Add support for UNSIGNED types, EXIT keyword, quoted identifiers, user-function callbacks
          for processing results of FETCH statements, bound literals, DATA_VARCHAR for bound literals.
        - Allow bound literals of type non-INTEGER to be of length 0.
        - Add make_flex.sh and update lexer/parser generation documentation.
        - Add comment clarifying the difference between 'alias' and 'indirection' fields in sym_node_t.
        - Remove never reached duplicate code in pars_set_dfield_type().
        - Rewrite pars_info datatypes and APIs, add a few helper functions.
        - Since the functions definitions in pars_info_t are accessed after pars_sql() returns
          in the query graph execution stage, we can't free pars_info_t in pars_sql(). Instead,
          make pars_sql() transfer ownership of pars_info_t to the created query graph, and
          make que_graph_free() free it if needed.
        - Allow access to system columns like DB_ROW_ID.
      * Use bound literals in row_truncate_table_for_mysql, row_drop_table_for_mysql,
        row_discard_tablespace_for_mysql, and row_rename_table_for_mysql.
      * Setting an isolation level of the transaction to read committed weakens the locks for
        this session similarly like the option innodb_locks_unsafe_for binlog. This patch removes
        alnost all gap locking (used in next-key locking) and makes MySQL to release the row locks
        on the rows which does not belong to result set. Additionally, nonlocking selects on
        INSERT INTO SELECT, UPDATE ... (SELECT ...), and CREATE ... SELECT ... use a nonlocking
        consistent read. If a binlog is used, then binlog format should be set to row based
        binloging to make the execution of the complex SQL statements.
      * Disable the statistic variables btr_search_n_hash_fail and n_hash_succ, n_hash_fail,
        n_patt_succ, and n_searches of btr_search_t in builds without #ifdef UNIV_SEARCH_PERF_STAT.
      * Make innodb.test faster. Group all consistent read test cases to a one test case and
        wait their lock timeout after all have been send to the server. Decrease amount of rows
        inserted in a certain test - this has no effect on the effectiveness of the test and
        reduces the running time by ~10 sec. Remove temporary work-arounds from innodb.result
        now that ALTER TABLE DROP FOREIGN KEY works once again.
      * Make innodb_unsafe_binlog.test faster. Grout all consistent read test cases to a one
        test case amd wait their lock timeout after all have been sent to the server. Remove
        unnecessary option --loose_innodb_lock_wait_timeout.
      * Print dictionary memory size in SHOW INNODB STATUS.
      * Fix memory leaks in row_create_table_for_mysql() in rare corner cases.
      * Remove code related to clustered tables. They were never implemented, and the
        implementation would be challenging with ROW_FORMAT=COMPACT. Remove the table types
        DICT_TABLE_CLUSTER_MEMBER and DICT_TABLE_CLUSTER and all related tests and functions.
        dict_table_t: Remove mix_id, mix_len, mix_id_len, mix_id_buf, and cluster_name.
        plan_t: Remove mixed_index.
        dict_create_sys_tables_tuple(): Set MIX_ID=0, MIX_LEN=0, CLUSTER_NAME=NULL when
        inserting into SYS_TABLES.
        dict_tree_check_search_tuple(): Enclose in #ifdef UNIV_DEBUG.
      * Move calling of thr_local_free() from trx_free_for_mysql() to
        innobase_close_connection().
      
      
      mysql-test/r/innodb.result:
        Applied innodb-5.1-ss475 snapshot.
      mysql-test/r/innodb_unsafe_binlog.result:
        Applied innodb-5.1-ss475 snapshot.
      mysql-test/t/innodb-master.opt:
        Applied innodb-5.1-ss475 snapshot.
      mysql-test/t/innodb.test:
        Applied innodb-5.1-ss475 snapshot.
      mysql-test/t/innodb_unsafe_binlog-master.opt:
        Applied innodb-5.1-ss475 snapshot.
      mysql-test/t/innodb_unsafe_binlog.test:
        Applied innodb-5.1-ss475 snapshot.
      sql/ha_innodb.cc:
        Applied innodb-5.1-ss475 snapshot.
         Do not use inlined functions in ha_innodb.cc.
         Remove assertion ut_error which crashes the mysqld server
         if it prints a warning about the adaptive latch.
      storage/innobase/Makefile.am:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/btr/btr0cur.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/btr/btr0pcur.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/btr/btr0sea.c:
        Applied innodb-5.1-ss475 snapshot.
         Fix compilation problem with non-C99 compilers.
      storage/innobase/buf/buf0lru.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/cmakelists.txt:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/configure.in:
        Applied innodb-5.1-ss475 snapshot.
         Add disabled-by-default logic to switch GCC to a strict C89-mode.
         Add -Werror-implicit-function_declaration to CFLAGS when using gcc.
      storage/innobase/data/data0type.c:
        Applied innodb-5.1-ss475 snapshot.
         dtype_print(): Recognize DATA_FIXBINARY and DATA_BLOB types.
         Print known flags from prtype. Use a switch statement instead
         of else-if chain.
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1-ss475 snapshot.
         Use bound literals in all SQL statements instead of elaborately
         constructing correctly allocated and quoted strings to pass the
         data in ASCII form.
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/dict/dict0load.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/dict/dict0mem.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/eval/eval0proc.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/btr0cur.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/btr0cur.ic:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/btr0sea.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/buf0lru.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/dict0dict.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/dict0dict.ic:
        Applied innodb-5.1-ss475 snapshot.
         Remove too strict assertions from some dict_table_t
         accessor functions.
      storage/innobase/include/dict0mem.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/eval0proc.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/hash0hash.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/lock0lock.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/mem0mem.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/page0page.ic:
        Applied innodb-5.1-ss475 snapshot.
         Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
      storage/innobase/include/pars0grm.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/pars0pars.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/pars0sym.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/pars0types.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/que0que.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/row0mysql.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/row0sel.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/row0upd.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/trx0trx.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/univ.i:
        Applied innodb-5.1-ss475 snapshot.
         Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
         When using GCC, use __inline__ instead of inline.
      storage/innobase/include/ut0mem.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/lock/lock0lock.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/log/log0recv.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/mem/mem0dbg.c:
        Applied innodb-5.1-ss475 snapshot.
         Add (void*) cast when using the %p printf format specifier.
      storage/innobase/mem/mem0mem.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/os/os0sync.c:
        Applied innodb-5.1-ss475 snapshot.
         Add (void*) cast when using the %p printf format specifier.
      storage/innobase/pars/lexyy.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/make_bison.sh:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0grm.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0grm.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0grm.y:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0lex.l:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0opt.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0pars.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/pars0sym.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/que/que0que.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/row/row0ins.c:
        Applied innodb-5.1-ss475 snapshot.
         Remove a memory leak when trying to insert a duplicate record to a
         clustered inedx comprising more than about 90 columns (Bug#18384).
         row_ins_duplicate_error_in_clust(): Call mem_heap_free(heap) at
         func_exit if needed.
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1-ss475 snapshot.
         row_mysql_is_system_table(): Use strncmp, not memcmp, since we
         don't know how long the input string is.
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1-ss475 snapshot.
         Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
         row_sel_field_store_in_mysql_format(): Turn the assertions on
         mbminlen, mbmaxlen, and templ->type into debug assertions.
         fetch_step(): Print a more usefull error message when the cursor is closed.
      storage/innobase/row/row0upd.c:
        Applied innodb-5.1-ss475 snapshot.
         row_upd_index_replace_new_col_vals_index_pos(): Add a parameter
         order_only for limiting the replacement to the ordering fields
         of the index.
      storage/innobase/srv/srv0srv.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/sync/sync0arr.c:
        Applied innodb-5.1-ss475 snapshot.
         Add (void*) cast when using the %p printf format specifier.
      storage/innobase/sync/sync0rw.c:
        Applied innodb-5.1-ss475 snapshot.
         Add (void*) cast when using the %p printf format specifier.
      storage/innobase/sync/sync0sync.c:
        Applied innodb-5.1-ss475 snapshot.
         Add (void*) cast when using the %p printf format specifier.
      storage/innobase/trx/trx0trx.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/ut/Makefile.am:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/ut/ut0mem.c:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/ut0vec.h:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/include/ut0vec.ic:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/pars/make_flex.sh:
        Applied innodb-5.1-ss475 snapshot.
      storage/innobase/ut/ut0vec.c:
        Applied innodb-5.1-ss475 snapshot.
      ca9b46f7
  30. 10 Mar, 2006 1 commit
    • unknown's avatar
      Applied innodb-5.1-ss269 snapshot. · 050f14ac
      unknown authored
        Fixed BUGS:
        #3300: "UPDATE statement with no index column in where condition locks
          all rows"
          Implement semi-consistent read to reduce lock conflicts at the cost
          of breaking serializability.
          ha_innobase::unlock_row(): reset the "did semi consistent read" flag
          ha_innobase::was_semi_consistent_read(),
          ha_innobase::try_semi_consistent_read(): new methods
          row_prebuilt_t, row_create_prebuilt(): add field row_read_type for
          keeping track of semi-consistent reads
          row_vers_build_for_semi_consistent_read(),
          row_sel_build_committed_vers_for_mysql(): new functions
          row_search_for_mysql(): implement semi-consistent reads
      
        #9802: "Foreign key checks disallow alter table".
          Added test cases.
      
        #12456: "Cursor shows incorrect data - DML does not affect,
          probably caching"
          This patch implements a high-granularity read view to be used with
          cursors. In this high-granularity consistent read view modifications 
          done by the creating transaction after the cursor is created or 
         future transactions are not visible. But those modifications that 
         transaction did before the cursor was created are visible.
      
        #12701: "Support >4GB buffer pool and log files on 64-bit Windows"
          Do not call os_file_create_tmpfile() at runtime. Instead, create all
          tempfiles at startup and guard access to them with mutexes.
      
        #13778: "If FOREIGN_KEY_CHECKS=0, one can create inconsistent FOREIGN KEYs".
          When FOREIGN_KEY_CHECKS=0 we still need to check that datatypes between
          foreign key references are compatible.
      
        #14189: "VARBINARY and BINARY variables: trailing space ignored with InnoDB"
          innobase_init(): Assert that
          DATA_MYSQL_BINARY_CHARSET_COLL == my_charset_bin.number.
          dtype_get_pad_char(): Do not pad VARBINARY or BINARY columns.
          row_ins_cascade_calc_update_vec(): Refuse ON UPDATE CASCADE when trying
          to change the length of a VARBINARY column that refers to or is referenced
          by a BINARY column. BINARY columns are no longer padded on comparison,
          and thus they cannot be padded on storage either.
      
        #14747: "Race condition can cause btr_search_drop_page_hash_index() to crash"
          Note that buf_block_t::index should be protected by btr_search_latch
          or an s-latch or x-latch on the index page.
          btr_search_drop_page_hash_index(): Read block->index while holding
          btr_search_latch and use the cached value in the loop.  Remove some
          redundant assertions.
      
        #15108: "mysqld crashes when innodb_log_file_size is set > 4G"
      
        #15308: "Problem of Order with Enum Column in Primary Key"
      
        #15550: "mysqld crashes in printing a FOREIGN KEY error in InnoDB"
          row_ins_foreign_report_add_err(): When printing the parent record,
          use the index in the parent table rather than the index in the child table.
      
        #15653: "Slow inserts to InnoDB if many thousands of .ibd files"
          Keep track on unflushed modifications to file spaces.  When there are tens
          of thousands of file spaces, flushing all files in fil_flush_file_spaces()
          would be very slow.
          fil_flush_file_spaces(): Only flush unflushed file spaces.
          fil_space_t, fil_system_t: Add a list of unflushed spaces.
      
        #15991: "innodb-file-per-table + symlink database + rename = cr"
         os_file_handle_error(): Map the error codes EXDEV, ENOTDIR, and EISDIR
         to the new code OS_FILE_PATH_ERROR. Treat this code as OS_FILE_PATH_ERROR.
         This fixes the crash on RENAME TABLE when the .ibd file is a symbolic link
         to a different file system.
      
        #16157: "InnoDB crashes when main location settings are empty"
          This patch is from Heikki.
      
        #16298: "InnoDB segfaults in INSERTs in upgrade of 4.0 -> 5.0 tables
          with VARCHAR BINARY"
          dict_load_columns(): Set the charset-collation code
          DATA_MYSQL_BINARY_CHARSET_COLL for those binary string columns
          that lack a charset-collation code, i.e., the tables were created
          with an older version of MySQL/InnoDB than 4.1.2.
      
        #16229: "MySQL/InnoDB uses full explicit table locks in trigger processing"
          Take a InnoDB table lock only if user has explicitly requested a table
          lock. Added some additional comments to store_lock() and external_lock().
      
        #16387: "InnoDB crash when dropping a foreign key <table>_ibfk_0"
          Do not mistake TABLENAME_ibfk_0 for auto-generated id.
          dict_table_get_highest_foreign_id(): Ignore foreign constraint
          identifiers starting with the pattern TABLENAME_ibfk_0.
      
        #16582: "InnoDB: Error in an adaptive hash index pointer to page"
          Account for a race condition when dropping the adaptive hash index
          for a B-tree page.
          btr_search_drop_page_hash_index(): Retry the operation if a hash index
          with different parameters was built meanwhile.  Add diagnostics for the
          case that hash node pointers to the page remain.
          btr_search_info_update_hash(), btr_search_info_update_slow():
          Document the parameter "info" as in/out.
      
        #16814: "SHOW INNODB STATUS format error in LATEST FOREIGN KEY ERROR
          section"
          Add a missing newline to the LAST FOREIGN KEY ERROR section in SHOW
          INNODB STATUS output.
          dict_foreign_error_report(): Always print a newline after invoking
          dict_print_info_on_foreign_key_in_create_format().
      
        #16827: "Better InnoDB error message if ibdata files omitted from my.cnf"
      
        #17126: "CHECK TABLE on InnoDB causes a short hang during check of adaptive
          hash"
          CHECK TABLE blocking other queries, by releasing the btr_search_latch
          periodically during the adaptive hash table validation.
      
        #17405: "Valgrind: conditional jump or move depends on unititialised values"
          buf_block_init(): Reset magic_n, buf_fix_count and io_fix to avoid
          testing uninitialized variables.
      
      
      
      mysql-test/r/innodb.result:
        Applied innodb-5.1-ss269 snapshot.
      mysql-test/t/innodb.test:
        Applied innodb-5.1-ss269 snapshot.
      sql/ha_innodb.cc:
        Applied innodb-5.1-ss269 snapshot.
      sql/ha_innodb.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/btr/btr0cur.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/btr/btr0pcur.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/btr/btr0sea.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/buf/buf0buf.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/buf/buf0flu.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/buf/buf0lru.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/buf/buf0rea.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/data/data0data.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/data/data0type.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/dict/dict0boot.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/dict/dict0load.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/dict/dict0mem.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/dyn/dyn0dyn.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/eval/eval0eval.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/eval/eval0proc.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/fil/fil0fil.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/fsp/fsp0fsp.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/fut/fut0lst.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ha/ha0ha.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ha/hash0hash.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0btr.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0btr.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0cur.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0cur.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0pcur.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0pcur.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0sea.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0sea.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/btr0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/buf0buf.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/buf0buf.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/buf0flu.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/buf0flu.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/buf0lru.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/data0data.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/data0data.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/data0type.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/data0type.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/db0err.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0boot.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0boot.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0crea.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0dict.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0dict.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0load.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dict0mem.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dyn0dyn.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/dyn0dyn.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/eval0eval.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/eval0eval.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/eval0proc.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/eval0proc.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/fil0fil.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/fsp0fsp.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/fut0lst.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ha0ha.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/hash0hash.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/hash0hash.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ibuf0ibuf.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ibuf0ibuf.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/lock0lock.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/lock0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/log0log.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/log0log.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/log0recv.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mach0data.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mach0data.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mem0dbg.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mem0dbg.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mem0mem.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mem0mem.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mem0pool.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mtr0log.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mtr0mtr.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/mtr0mtr.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/os0file.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/os0proc.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/os0sync.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/os0sync.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/os0thread.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/page0cur.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/page0cur.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/page0page.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/page0page.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/page0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/pars0grm.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/pars0opt.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/pars0pars.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/pars0sym.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/pars0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/que0que.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/que0que.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/que0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/read0read.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/read0read.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/rem0cmp.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/rem0cmp.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/rem0rec.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/rem0rec.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0ins.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0mysql.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0purge.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0row.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0row.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0sel.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0sel.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0uins.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0umod.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0undo.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0upd.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0upd.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/row0vers.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/srv0srv.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/srv0start.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/sync0arr.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/sync0rw.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/sync0rw.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/sync0sync.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/sync0sync.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0purge.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0purge.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0rec.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0roll.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0rseg.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0rseg.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0sys.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0sys.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0trx.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0trx.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0undo.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0undo.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/trx0xa.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/univ.i:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/usr0sess.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/usr0types.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0byte.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0byte.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0dbg.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0lst.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0mem.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0mem.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0rnd.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0rnd.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0sort.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0ut.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/include/ut0ut.ic:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/lock/lock0lock.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/log/log0log.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/log/log0recv.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/mach/mach0data.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/mem/mem0dbg.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/mem/mem0mem.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/mem/mem0pool.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/mtr/mtr0log.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/mtr/mtr0mtr.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/os/os0file.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/os/os0proc.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/os/os0sync.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/os/os0thread.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/page/page0cur.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/page/page0page.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/lexyy.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0grm.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0grm.h:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0grm.y:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0lex.l:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0opt.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0pars.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/pars/pars0sym.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/que/que0que.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/read/read0read.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/rem/rem0cmp.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/rem/rem0rec.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0ins.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0purge.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0row.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0uins.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0umod.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0undo.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0upd.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/row/row0vers.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/srv/srv0que.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/srv/srv0srv.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/srv/srv0start.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/sync/sync0arr.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/sync/sync0rw.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/sync/sync0sync.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/thr/thr0loc.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0purge.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0rec.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0roll.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0rseg.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0sys.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0trx.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/trx/trx0undo.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/usr/usr0sess.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ut/ut0byte.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ut/ut0dbg.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ut/ut0mem.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ut/ut0rnd.c:
        Applied innodb-5.1-ss269 snapshot.
      storage/innobase/ut/ut0ut.c:
        Applied innodb-5.1-ss269 snapshot.
      mysql-test/r/innodb_unsafe_binlog.result:
        New BitKeeper file ``mysql-test/r/innodb_unsafe_binlog.result''
      mysql-test/t/innodb_unsafe_binlog-master.opt:
        New BitKeeper file ``mysql-test/t/innodb_unsafe_binlog-master.opt''
      mysql-test/t/innodb_unsafe_binlog.test:
        New BitKeeper file ``mysql-test/t/innodb_unsafe_binlog.test''
      storage/innobase/pars/make_bison.sh:
        New BitKeeper file ``storage/innobase/pars/make_bison.sh''
      050f14ac
  31. 09 Feb, 2006 1 commit
  32. 02 Jan, 2006 1 commit
  33. 31 Dec, 2005 1 commit
    • unknown's avatar
      WL#1324 table name to file name encoding · 9c7412ca
      unknown authored
      - Encoding itself, implemented as a charset
        "filename". Originally planned to use '.'
        as an escape character, but now changed to '@'
        for two reasons: "ls" does not return
        file names starting with '.' considering them
        as a kind of hidden files; some platforms
        do not allow several dots in a file name.
      - replacing many calls of my_snprintf() and
        strnxmov() to the new build_table_filename().
      - Adding MY_APPEND_EXT mysys flag, to append
        an extention rather that replace it.
      - Replacing all numeric constants in fn_format
        flag arguments to their mysys definitions, e.g.
        MY_UNPACK_FILENAME,
      - Predictability in several function/methods:
        when a table name can appear with or withot .frm
        extension. Some functions/methods were changed
        so accept names strictly with .frm, other - strictly
        without .frm extensions. Several DBUG_ASSERTs were
        added to check whether an extension is passed.
      Many files:
        table name to file name encoding
      mysql_priv.h:
        Prototypes for new table name encoding tools.
      ctype-utf8.c:
        Implementing "filename" charset for
        table name to file name encoding.
      row0mysql.c:
        Fixing table name prefix.
      mf_format.c:
        Adding MY_APPEND_EXT processing.
      Many files:
        Fixing tests.
      my_sys.h:
        Adding new flag to append rather than replace an extension.
      m_ctype.h:
        Adding "filename" charset definition.
      
      
      include/m_ctype.h:
        Adding "filename" charset definition.
      include/my_sys.h:
        Adding new flag to append rather than replace an extension.
      mysql-test/t/alter_table.test:
        Fixing tests.
      mysql-test/t/create.test:
        Fixing tests.
      mysql-test/t/show_check.test:
        Fixing tests.
      mysql-test/r/alter_table.result:
        Fixing tests.
      mysql-test/r/create.result:
        Fixing tests.
      mysql-test/r/mysqldump.result:
        Fixing tests.
      mysys/mf_format.c:
        Adding MY_APPEND_EXT processing.
      sql/discover.cc:
        table name to file name encoding
      sql/ha_berkeley.cc:
        table name to file name encoding
      sql/ha_innodb.cc:
        table name to file name encoding
      sql/ha_myisam.cc:
        table name to file name encoding
      sql/ha_myisammrg.cc:
        table name to file name encoding
      sql/ha_ndbcluster.cc:
        table name to file name encoding
      sql/ha_partition.cc:
        table name to file name encoding
      sql/handler.cc:
        table name to file name encoding.
      sql/init.cc:
        table name to file name encoding
      sql/mysqld.cc:
        table name to file name encoding
      sql/parse_file.cc:
        table name to file name encoding
      sql/sql_acl.cc:
        table name to file name encoding
      sql/sql_base.cc:
        table name to file name encoding
      sql/sql_db.cc:
        table name to file name encoding
      sql/sql_delete.cc:
        table name to file name encoding
      sql/sql_rename.cc:
        table name to file name encoding
      sql/sql_show.cc:
        table name to file name encoding
      sql/sql_table.cc:
        table name to file name encoding
      sql/sql_trigger.cc:
        table name to file name encoding
      sql/sql_view.cc:
        table name to file name encoding
      sql/strfunc.cc:
        table name to file name encoding
      sql/table.cc:
        table name to file name encoding
      sql/unireg.cc:
        table name to file name encoding
      storage/innobase/row/row0mysql.c:
        Fixing table name prefix.
        ,
      storage/myisam/mi_create.c:
        table name to file name encoding
      storage/myisam/mi_delete_table.c:
        table name to file name encoding
      storage/myisam/mi_open.c:
        table name to file name encoding
      storage/myisam/mi_rename.c:
        table name to file name encoding
      strings/ctype-utf8.c:
        Implementing "filename" charset for
        table name to file name encoding.
      sql/mysql_priv.h:
        Prototypes for new table name encoding tools.
      storage/myisammrg/myrg_create.c:
        table name to file name encoding
      storage/myisammrg/myrg_open.c:
        table name to file name encoding
      9c7412ca
  34. 22 Dec, 2005 1 commit
    • unknown's avatar
      WL#1012: All changes as one single changeset. · 09346e6e
      unknown authored
      This includes both code and test cases.
      
      
      BitKeeper/deleted/.del-ctype_ucs_binlog.result~280d136b1a0bcf17:
        Delete: mysql-test/r/ctype_ucs_binlog.result
      BitKeeper/deleted/.del-rpl_delete_all.result~7c050d592614b3f:
        Delete: mysql-test/r/rpl_delete_all.result
      BitKeeper/deleted/.del-rpl000013-slave.opt~18266ad8a2403e8d:
        Delete: mysql-test/t/rpl000013-slave.opt
      BitKeeper/deleted/.del-rpl_delete_all.test~700a1490277780e0:
        Delete: mysql-test/t/rpl_delete_all.test
      mysql-test/extra/binlog_tests/binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/blackhole.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/ctype_cp932.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/drop_temp_table.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/insert_select-binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_ddl.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_deadlock.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_loaddata_m.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_log.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_multi_query.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_reset_slave.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_stm_000001.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_stm_EE_err.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_stm_charset.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_user_variables.test:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_binlog.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_blackhole.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_ctype_cp932.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_ctype_ucs.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_drop_tmp_tbl.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_insert_select.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_mix_innodb_myisam.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_000012.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_000015.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_deadlock_innodb.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_flushlog_loop.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_loaddata_s.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_000001.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_EE_err.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_charset.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_ddl.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_err_ignoredtable.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_flsh_tbls.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_loaddata_m.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_log.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_max_relay_size.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_multi_query.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_mystery22.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_reset_slave.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_rewrt_db.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_sp.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_timezone.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_until.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_user_variables.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_view.result:
        Import patch wl1012.patch
      mysql-test/t/binlog_row_binlog-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_000012.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_000015-slave.sh:
        Import patch wl1012.patch
      mysql-test/t/rpl_000015.slave-mi:
        Import patch wl1012.patch
      mysql-test/t/rpl_000015.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_deadlock_innodb-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-master.sh:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-slave.sh:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_loaddata_s-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_loaddata_s.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_000001-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_err_ignoredtable-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_loaddata_m-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_log-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_log-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_mystery22.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_rewrt_db-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_rewrt_db.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_sp-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_sp-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_sp.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_timezone-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_timezone-slave.opt:
        Import patch wl1012.patch
      BUILD/SETUP.sh:
        Import patch wl1012.patch
      Makefile.am:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_timezone.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_until.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_view.test:
        Import patch wl1012.patch
      client/Makefile.am:
        Import patch wl1012.patch
      client/client_priv.h:
        Import patch wl1012.patch
      client/mysqlbinlog.cc:
        Import patch wl1012.patch
      configure.in:
        Import patch wl1012.patch
      include/Makefile.am:
        Import patch wl1012.patch
      include/base64.h:
        Import patch wl1012.patch
      include/config-win.h:
        Import patch wl1012.patch
      include/my_base.h:
        Import patch wl1012.patch
      include/my_global.h:
        Import patch wl1012.patch
      mysql-test/Makefile.am:
        Import patch wl1012.patch
      mysql-test/mysql-test-run.pl:
        Import patch wl1012.patch
      mysql-test/mysql-test-run.sh:
        Import patch wl1012.patch
      mysql-test/r/date_formats.result:
        Import patch wl1012.patch
      mysql-test/r/flush_block_commit.result:
        Import patch wl1012.patch
      mysql-test/r/innodb.result:
        Import patch wl1012.patch
      mysql-test/r/rpl000017.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_change_master.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_commit_after_flush.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_create_database.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_do_grant.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_loaddata.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_log_pos.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_multi_delete.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_multi_update.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_openssl.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_replicate_do.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_rotate_logs.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_server_id1.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_server_id2.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_temporary.result:
        Import patch wl1012.patch
      mysql-test/r/user_var-binlog.result:
        Import patch wl1012.patch
      mysql-test/t/create_select_tmp.test:
        Import patch wl1012.patch
      mysql-test/t/date_formats.test:
        Import patch wl1012.patch
      mysql-test/t/disabled.def:
        Import patch wl1012.patch
      mysql-test/t/innodb.test:
        Import patch wl1012.patch
      mysql-test/t/mysqlbinlog.test:
        Import patch wl1012.patch
      mysql-test/t/mysqlbinlog2.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000002.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000006.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000013.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000017.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_auto_increment.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_change_master.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_commit_after_flush.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_create_database.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_do_grant.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_drop.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_empty_master_crash.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_failed_optimize.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_heap.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_insert_id.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_insert_ignore.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_loaddata.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_log_pos.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_delete.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_update.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_update2.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_update3.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_openssl.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_redirect.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_relayrotate.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_replicate_do.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_rotate_logs.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_server_id1.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_sp_effects.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_temporary.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_trigger.test:
        Import patch wl1012.patch
      mysql-test/t/sp.test:
        Import patch wl1012.patch
      mysql-test/t/user_var-binlog.test:
        Import patch wl1012.patch
      mysys/Makefile.am:
        Import patch wl1012.patch
      mysys/base64.c:
        Import patch wl1012.patch
      sql/Makefile.am:
        Import patch wl1012.patch
      sql/ha_innodb.cc:
        Import patch wl1012.patch
      sql/ha_innodb.h:
        Import patch wl1012.patch
      sql/ha_partition.cc:
        Import patch wl1012.patch
      sql/handler.cc:
        Import patch wl1012.patch
      sql/handler.h:
        Import patch wl1012.patch
      sql/item_sum.cc:
        Import patch wl1012.patch
      sql/log.cc:
        Import patch wl1012.patch
      sql/log_event.cc:
        Import patch wl1012.patch
      sql/log_event.h:
        Import patch wl1012.patch
      sql/mysql_priv.h:
        Import patch wl1012.patch
      sql/mysqld.cc:
        Import patch wl1012.patch
      sql/rpl_filter.h:
        Import patch wl1012.patch
      sql/set_var.cc:
        Import patch wl1012.patch
      sql/share/errmsg.txt:
        Import patch wl1012.patch
      sql/slave.cc:
        Import patch wl1012.patch
      sql/slave.h:
        Import patch wl1012.patch
      sql/sp.cc:
        Import patch wl1012.patch
      sql/sp_head.cc:
        Import patch wl1012.patch
      sql/sql_acl.cc:
        Import patch wl1012.patch
      sql/sql_base.cc:
        Import patch wl1012.patch
      sql/sql_class.cc:
        Import patch wl1012.patch
      sql/sql_class.h:
        Import patch wl1012.patch
      sql/sql_delete.cc:
        Import patch wl1012.patch
      sql/sql_insert.cc:
        Import patch wl1012.patch
      sql/sql_lex.h:
        Import patch wl1012.patch
      sql/sql_list.h:
        Import patch wl1012.patch
      sql/sql_load.cc:
        Import patch wl1012.patch
      sql/sql_parse.cc:
        Import patch wl1012.patch
      sql/sql_plugin.cc:
        Import patch wl1012.patch
      sql/sql_rename.cc:
        Import patch wl1012.patch
      sql/sql_repl.h:
        Import patch wl1012.patch
      sql/sql_select.cc:
        Import patch wl1012.patch
      sql/sql_show.cc:
        Import patch wl1012.patch
      sql/sql_table.cc:
        Import patch wl1012.patch
      sql/sql_udf.cc:
        Import patch wl1012.patch
      sql/sql_union.cc:
        Import patch wl1012.patch
      sql/sql_update.cc:
        Import patch wl1012.patch
      sql/sql_yacc.yy:
        Import patch wl1012.patch
      sql/table.cc:
        Import patch wl1012.patch
      sql/table.h:
        Import patch wl1012.patch
      storage/innobase/include/lock0lock.h:
        Import patch wl1012.patch
      storage/innobase/include/row0mysql.h:
        Import patch wl1012.patch
      storage/innobase/include/row0vers.h:
        Import patch wl1012.patch
      storage/innobase/lock/lock0lock.c:
        Import patch wl1012.patch
      storage/innobase/row/row0mysql.c:
        Import patch wl1012.patch
      storage/innobase/row/row0sel.c:
        Import patch wl1012.patch
      storage/innobase/row/row0vers.c:
        Import patch wl1012.patch
      09346e6e