Home | Back
------------------------------------------------------------
revno: 3372
committer: Karen Langford <karen.langford@oracle.com>
branch nick: mysql-5.1.47-release
timestamp: Thu 2010-05-06 17:14:10 +0200
message:
  Merge
    ------------------------------------------------------------
    revno: 3351.14.74
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-05-04 12:31:28 +0300
    message:
      btr_page_split_and_insert(): Correct the fix of Bug #52964.
      When split_rec==NULL, choose the correct node pointer key (first_rec).
    ------------------------------------------------------------
    revno: 3351.14.73
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-05-03 15:28:59 +0300
    message:
      buf_zip_decompress(): Allow BUF_NO_CHECKSUM_MAGIC as the stamped checksum.
      buf_page_get_gen(): Assert that buf_zip_decompress() succeeds.
      Callers are not prepared for a NULL return value. (Bug #53248)
------------------------------------------------------------
revno: 3371
tags: clone-5.1.47-build
committer: Georgi Kodinov <joro@sun.com>
branch nick: merge-5.1-bugteam
timestamp: Wed 2010-05-05 17:57:53 +0300
message:
  tree name change
    ------------------------------------------------------------
    revno: 1810.3987.17
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: merge-5.0-bugteam
    timestamp: Wed 2010-05-05 12:40:18 +0300
    message:
      merge
        ------------------------------------------------------------
        revno: 1810.3989.2
        author: sunanda.menon@sun.com
        committer: MySQL Build Team <build@mysql.com>
        branch nick: mysql-5.0
        timestamp: Mon 2010-05-03 12:06:18 +0200
        message:
          Raise version number after cloning 5.0.91
        ------------------------------------------------------------
        revno: 1810.3989.1
        tags: clone-5.0.91-build
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: merge-5.0-bugteam
        timestamp: Sat 2010-05-01 16:46:04 +0300
        message:
          tree name change
    ------------------------------------------------------------
    revno: 1810.3987.16
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: merge-5.0-bugteam
    timestamp: Wed 2010-05-05 12:38:59 +0300
    message:
      tree name change
------------------------------------------------------------
revno: 3370
committer: Georgi Kodinov <joro@sun.com>
branch nick: B53417-5.1-bugteam
timestamp: Wed 2010-05-05 11:54:52 +0300
message:
  On behalf of Kristofer :
  
  Bug#53417 my_getwd() makes assumptions on the buffer sizes which not always hold true
        
  The mysys library contains many functions for rewriting file paths. Most of these
  functions makes implicit assumptions on the buffer sizes they write to. If a path is put
  in my_realpath() it will propagate to my_getwd() which assumes that the buffer holding
  the path name is greater than 2. This is not true in cases.
        
  In the special case where a VARBIN_ITEM is passed as argument to the LOAD_FILE function
  this can lead to a crash.
        
  This patch fixes the issue by introduce more safe guards agaist buffer overruns.
------------------------------------------------------------
revno: 3369
committer: Alfranio Correia <alfranio.correia@sun.com>
branch nick: mysql-5.1-bugteam.merge
timestamp: Tue 2010-05-04 23:15:10 +0100
message:
  merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam
    ------------------------------------------------------------
    revno: 3366.1.2
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-05-04 10:41:28 +0100
    message:
      BUG#43407 SET GLOBAL SQL_SLAVE_SKIP_COUNTER should log previous state in error log
            
      When issuing a 'SET GLOBAL SQL_SLAVE_SKIP_COUNTER' statement, the previous
      position along with the new position is dumped into the error log. Namely,
      the following information is printed out: skip_counter, group_relay_log_name
      and group_relay_log_pos.
    ------------------------------------------------------------
    revno: 3366.1.1
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-05-04 10:17:20 +0100
    message:
      BUG#43406 CHANGE MASTER TO should log previous state in error log
            
      When issuing a 'CHANGE MASTER TO' statement, key elements of the previous
      state, namely the host, port, the master_log_file and the master_log_pos
      are dumped into the error log.
------------------------------------------------------------
revno: 3368
committer: Omer BarNir <omer@mysql.com>
branch nick: bug-5.1
timestamp: Tue 2010-05-04 14:24:36 -0700
message:
  Updates to README file of the 'engines' test suites
------------------------------------------------------------
revno: 3367
committer: Georgi Kodinov <joro@sun.com>
branch nick: B53371-5.1-bugteam
timestamp: Tue 2010-05-04 17:03:28 +0300
message:
  Bug #53371: COM_FIELD_LIST can be abused to bypass table level grants.
  
  This is the 5.1 merge and extension of the fix.
  The server was happily accepting paths in table name in all places a table
  name is accepted (e.g. a SELECT). This allowed all users that have some
  privilege over some database to read all tables in all databases in all
  mysql server instances that the server file system has access to.
  Fixed by :
  1. making sure no path elements are allowed in quoted table name when
  constructing the path (note that the path symbols are still valid in table names
  when they're properly escaped by the server).
  2. checking the #mysql50# prefixed names the same way they're checked for
  path elements in mysql-5.0.
    ------------------------------------------------------------
    revno: 1810.3987.15
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B53371-5.0-bugteam
    timestamp: Mon 2010-05-03 18:16:51 +0300
    message:
      Bug #53371: COM_FIELD_LIST can be abused to bypass table level grants.
      
      The server was not checking the supplied to COM_FIELD_LIST table name
      for validity and compliance to acceptable table names standards.
      Fixed by checking the table name for compliance similar to how it's
      normally checked by the parser and returning an error message if
      it's not compliant.
------------------------------------------------------------
revno: 3366
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Mon 2010-05-03 19:21:09 +0200
message:
  Automerge
    ------------------------------------------------------------
    revno: 3364.1.1
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: merge-5.1-bugteam
    timestamp: Sat 2010-05-01 19:12:12 +0300
    message:
      merged 5.1-innodb
    ------------------------------------------------------------
    revno: 3351.14.72
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-30 13:02:36 +0300
    message:
      Disable innodb.innodb, main.ps_3innodb and main.partition_innodb_plugin
      mysql-tests because those emit (spurious?) valgrind warnings.
    ------------------------------------------------------------
    revno: 3351.14.71
    committer: Marko Makela <mmakela@bk-internal.mysql.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-29 15:41:47 +0200
    message:
      recv_sys_init(), recv_sys_empty_hash(): Shrink recv_sys->addr_hash.
      This addresses Bug #53122 in the built-in InnoDB.
    ------------------------------------------------------------
    revno: 3351.14.70
    committer: Marko Makela <mmakela@bk-internal.mysql.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-29 15:37:50 +0200
    message:
      recv_sys_init(), recv_sys_empty_hash(): Shrink recv_sys->addr_hash.
      recv_addr_t: Turn space,page_no into bitfields to save space on 64-bit.
      This addresses Bug #53122 in the InnoDB Plugin.
    ------------------------------------------------------------
    revno: 3351.14.69
    committer: Marko Makela <mmakela@bk-internal.mysql.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-29 15:29:45 +0200
    message:
      Reduce the next-key locking of READ UNCOMMITTED to match that of
      READ COMMITTED in the built-in InnoDB. (Bug #48607)
    ------------------------------------------------------------
    revno: 3351.14.68
    committer: Marko Makela <mmakela@bk-internal.mysql.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-29 15:27:43 +0200
    message:
      Reduce the next-key locking of READ UNCOMMITTED to match that of
      READ COMMITTED in the InnoDB Plugin. (Bug #48607)
    ------------------------------------------------------------
    revno: 3351.14.67
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-28 13:34:52 +0300
    message:
      Bug#53046 dict_update_statistics_low can still be run concurrently
      on same table
      
      Followup to vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr :
      
      Add more asserions, which I forgot.
    ------------------------------------------------------------
    revno: 3351.14.66
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-28 13:32:00 +0300
    message:
      Revert the fix of Bug#38996 Race condition in ANALYZE TABLE
      
      This is branches/zip@r6032 in SVN and _is part_ of
      revid:svn-v4:16c675df-0fcb-4bc9-8058-dcc011a37293:branches/zip:6113
      in BZR.
      
      This is being reverted because now the code is serialized directly on
      index->stat_n_diff_key_vals[] as the fix for
      Bug#53046 dict_update_statistics_low can still be run concurrently on same table
      goes.
    ------------------------------------------------------------
    revno: 3351.14.65
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-28 13:20:33 +0300
    message:
      Followup to vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7:
      
      Address Marko's suggestions wrt the fix of
      Bug#53046 dict_update_statistics_low can still be run concurrently
      on same table
    ------------------------------------------------------------
    revno: 3351.14.64
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-28 11:46:27 +0300
    message:
      Fix Bug#53046 dict_update_statistics_low can still be run concurrently
      on same table
      
      Protect dict_index_t::stat_n_diff_key_vals[] with an array of
      mutexes.
      
      Testing: tested all code paths under UNIV_SYNC_DEBUG
      for the one in dict_print() one has to enable the InnoDB table monitor:
      CREATE TABLE innodb_table_monitor (a int) ENGINE=INNODB;
    ------------------------------------------------------------
    revno: 3351.14.63
    committer: Marko Makela <mmakela@bk-internal.mysql.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-28 08:33:25 +0200
    message:
      Merge r6103 from InnoDB Plugin to the built-in InnoDB to fix Bug #53202:
        ------------------------------------------------------------------------
        r6103 | marko | 2009-10-26 15:46:18 +0200 (Mon, 26 Oct 2009) | 4 lines
        Changed paths:
           M /branches/zip/row/row0ins.c
      
        branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
        DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
        Valgrind warnings about uninitialized data.  (The warnings were
        harmless, because the fields would be initialized at a later stage.)
        ------------------------------------------------------------------------
    ------------------------------------------------------------
    revno: 3351.14.62
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Tue 2010-04-27 17:45:30 +0300
    message:
      Merge mysql-5.1 -> mysql-5.1-innodb, this merge does not change
      any files.
    ------------------------------------------------------------
    revno: 3351.14.61
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Tue 2010-04-27 17:05:41 +0300
    message:
      Do not define UNIV_DEBUG_VALGRIND when HAVE_purify because
      this results in some valgrind errors.
      
      Bug#53202 valgrind: uninitialized bytes in dtuple_print()
      has been opened to track this.
    ------------------------------------------------------------
    revno: 3351.14.60
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-04-27 16:51:54 +0300
    message:
      Merge
        ------------------------------------------------------------
        revno: 3351.43.3
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-04-27 09:16:45 +0300
        message:
          Merge 3417..3421 from mysql-5.1-innodb
        ------------------------------------------------------------
        revno: 3351.43.2
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-04-27 09:09:08 +0300
        message:
          Split the innodb.innodb mysql-test.
          
          Extract part of innodb.innodb into innodb.innodb_misc1
          
          This is needed in order to be able to more easily debug this test,
          under valgrind, it is too huge.
    ------------------------------------------------------------
    revno: 3351.14.59
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-04-27 16:47:38 +0300
    message:
      row_merge_drop_temp_indexes(): Remove a bogus char-to-ulint cast.
    ------------------------------------------------------------
    revno: 3351.14.58
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-26 16:10:29 +0300
    message:
      lock_rec_queue_validate(): Disable a bogus check that
      a transaction that holds a lock on a clustered index record
      also holds a lock on the secondary index record.
    ------------------------------------------------------------
    revno: 3351.14.57
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-26 14:26:09 +0300
    message:
      recv_sys_init(): Skip the red-black tree in Hot Backup.
    ------------------------------------------------------------
    revno: 3351.14.56
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-26 14:08:56 +0300
    message:
      Add a test case for Bug #52745.
    ------------------------------------------------------------
    revno: 3351.14.55
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-26 13:52:15 +0300
    message:
      Merge Vasil Dimov 2010-04-26 Bump InnoDB Plugin version number after 1.0.7
        ------------------------------------------------------------
        revno: 3351.43.1
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Mon 2010-04-26 11:35:57 +0300
        message:
          Bump InnoDB Plugin version number after 1.0.7 has been released
          in MySQL 5.1.46.
    ------------------------------------------------------------
    revno: 3351.14.54
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-26 13:27:25 +0300
    message:
      row_search_for_mysql(): Never try semi-consistent read in unique searches.
      They are only useful in table scans. (Bug #52663)
    ------------------------------------------------------------
    revno: 3351.14.53
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-26 10:39:49 +0300
    message:
      btr_page_split_and_insert(): Silence a compiler warning
      about possibly uninitialized variable insert_left.
    ------------------------------------------------------------
    revno: 3351.14.52
    committer: Calvin Sun <calvin.sun@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-22 14:16:14 -0500
    message:
      mysql-5.1-innodb: add error codes to innodb_bug51920.test
      kill of active connection yields different error code
      depending on platform.
    ------------------------------------------------------------
    revno: 3351.14.51
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Thu 2010-04-22 12:33:42 +0300
    message:
      Correct the definition of DICT_SYS_INDEXES_NAME_FIELD.
      When row_merge_drop_temp_indexes() was reworked to drop the indexes
      via the data dictionary cache, the code was broken because it would
      read the index name from the wrong field.
    ------------------------------------------------------------
    revno: 3351.14.50
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 21:53:59 +0300
    message:
      btr_page_split_and_insert(): Avoid an infinite loop. (Bug #52964)
      
      btr_page_tuple_smaller(): New function, refactored from
      btr_page_split_and_insert().
      
      btr_page_get_split_rec(): Renamed from btr_page_get_sure_split_rec().
      Note that a NULL return may mean that the tuple is to be inserted into
      either the lower or upper page, to be determined by btr_page_tuple_smaller().
      
      btr_page_split_and_insert(): When btr_page_get_split_rec() returns NULL,
      invoke btr_page_tuple_smaller() to determine which half-page the tuple
      belongs to.
      
      Reviewed by Sunny Bains
    ------------------------------------------------------------
    revno: 3351.14.49
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 13:27:23 +0300
    message:
      dict_create_index_step(): Be strict about DYNAMIC and COMPRESSED tables.
      Bug #50495 is about REDUNDANT and COMPACT tables, after all.
    ------------------------------------------------------------
    revno: 3351.14.48
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 13:00:29 +0300
    message:
      ha_innobase::add_index(): Only check for duplicate indexes
      when the data dictionary is locked.
      This fixes a UNIV_DEBUG assertion failure in innodb-index.test.
    ------------------------------------------------------------
    revno: 3351.14.47
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 12:50:33 +0300
    message:
      dtuple_convert_big_rec(): Store locally any fields whose maximum length
      is less than 256 bytes. (Bug #52745)
      Add related comments and debug assertions to the "offsets"
      functions in rem0rec.c.
      Approved by Sunny Bains
    ------------------------------------------------------------
    revno: 3351.14.46
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 12:40:32 +0300
    message:
      Adjust tests for the Bug #50495 fix.
    ------------------------------------------------------------
    revno: 3351.14.45
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 12:16:11 +0300
    message:
      rec_convert_dtuple_to_rec(): Correct the debug check.
      The "extern" accessor functions return zero or nonzero, not 0 or 1.
    ------------------------------------------------------------
    revno: 3351.14.44
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Wed 2010-04-21 09:39:16 +0300
    message:
      rec_convert_dtuple_to_rec(): Add a debug check.
    ------------------------------------------------------------
    revno: 3351.14.43
    committer: Marko Makela <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-04-20 23:15:50 +0300
    message:
      btr_cur_optimistic_insert(): Remove unused variable "heap".
    ------------------------------------------------------------
    revno: 3351.14.42
    committer: Marko Makela <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-04-20 14:42:22 +0300
    message:
      dict_create_index_step(): Invoke dict_index_add_to_cache()
      in strict mode only if innodb_strict_mode is set. (Bug #50495)
      
      trx_is_strict(): New function, for checking innodb_strict_mode.
    ------------------------------------------------------------
    revno: 3351.14.41
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Tue 2010-04-20 11:29:08 +0300
    message:
      Implement UNIV_BTR_AVOID_COPY, an optimization of page splits.
    ------------------------------------------------------------
    revno: 3351.14.40
    committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-19 13:36:03 +0300
    message:
      Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set.
    ------------------------------------------------------------
    revno: 3351.14.39
    committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-19 12:44:05 +0300
    message:
      Enable innodb_plugin tests based on the presence of lib_innodb_plugin.
    ------------------------------------------------------------
    revno: 3351.14.38
    committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
    branch nick: 5.1-innodb
    timestamp: Mon 2010-04-19 12:21:13 +0300
    message:
      Do not require innodb for running innodb_plugin tests.
    ------------------------------------------------------------
    revno: 3351.14.37
    committer: Marko Makela <mmakela@bk-internal.mysql.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-15 09:01:22 +0200
    message:
      storage/innodb_plugin: Relax too strict assertions about prefix
      indexed BLOBs for ROW_FORMAT=DYNAMIC and ROW_FORMAT_COMPRESSED tables
      (Bug #52746). In these tables, the locally stored prefix of a BLOB can
      be as small as 20 bytes (BTR_EXTERN_FIELD_REF_SIZE). ROW_FORMAT=REDUNDANT
      and ROW_FORMAT=COMPACT store a prefix of 768 bytes (REC_MAX_INDEX_COL_LEN).
      
      trx_undo_rec_get_col_val(): Relax the ut_ad() assertion and add a
      reference to dtuple_convert_big_rec().
      
      trx_undo_rec_get_partial_row(): Relax the ut_a() assertion that
      prompted Bug #52746.
    ------------------------------------------------------------
    revno: 3351.14.36
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-14 23:04:13 +0300
    message:
      Also send emails to innodb_dev_ww@oracle.com
    ------------------------------------------------------------
    revno: 3351.14.35
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-14 23:02:47 +0300
    message:
      Change the tree name to mysql-5.1-innodb in .bzr-mysql/default.conf
    ------------------------------------------------------------
    revno: 3351.14.34
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Mon 2010-04-12 17:26:20 +0300
    message:
      Fix path to have_innodb_plugin.inc
    ------------------------------------------------------------
    revno: 3351.14.33
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Mon 2010-04-12 17:23:00 +0300
    message:
      Remove unused file
    ------------------------------------------------------------
    revno: 3351.14.32
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Mon 2010-04-12 16:58:47 +0300
    message:
      Fix path to innodb-index.inc
    ------------------------------------------------------------
    revno: 3351.14.31
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Mon 2010-04-12 14:56:24 +0300
    message:
      Remove outdated InnoDB Plugin tests from mysql-test/suite/innodb,
      the InnoDB Plugin tests are now in mysql-test/suite/innodb_plugin.
      
      Move InnoDB tests to the innodb suite at mysql-test/suite/innodb.
    ------------------------------------------------------------
    revno: 3351.14.30
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-09 16:38:28 +0300
    message:
      Convert InnoDB Plugin tests to include have_innodb_plugin.inc.
      This also instructs mtr to transparently load the plugin.
    ------------------------------------------------------------
    revno: 3351.14.29
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-09 16:33:42 +0300
    message:
      Fix mtr warning in innodb-autoinc-44030.test
    ------------------------------------------------------------
    revno: 3351.14.28
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-09 16:29:13 +0300
    message:
      Fix a failure of innodb_plugin.innodb-autoinc-44030 now that
      MySQL and InnoDB dictionaries do not get out of sync.
    ------------------------------------------------------------
    revno: 3351.14.27
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-09 16:25:17 +0300
    message:
      Fix a mtr warning in innodb_plugin.innodb-autoinc
    ------------------------------------------------------------
    revno: 3351.14.26
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-09 16:07:41 +0300
    message:
      Merge from innodb-branches-zip
        ------------------------------------------------------------
        revno: 0.3.2081
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-zip
        timestamp: Fri 2010-04-09 16:05:29 +0300
        message:
          Merge from innodb-branches-zip
        ------------------------------------------------------------
        revno: 0.4.4
        committer: vdimov
        timestamp: Thu 2010-04-08 14:05:17 +0000
        message:
          branches/zip: Adjust the innodb test after change in behavior in MySQL
          
          The change in behavior was introduced by this changeset:
          
            ------------------------------------------------------------
            revno: 3405
            revision-id: joro@sun.com-20100317141846-es0qyf5zcqb0hu1c
            parent: davi.arnaut@sun.com-20100309125156-z2c4uyqque49v61k
            committer: Georgi Kodinov <joro@sun.com>
            branch nick: B49838-5.1-bugteam
            timestamp: Wed 2010-03-17 16:18:46 +0200
            message:
              Bug #49838: DROP INDEX and ADD UNIQUE INDEX for same index may corrupt
                 definition at engine
              
              If a single ALTER TABLE contains both DROP INDEX and ADD INDEX using
              the same index name (a.k.a. index modification) we need to disable
              in-place alter table because we can't ask the storage engine to have
              two copies of the index with the same name even temporarily (if we
              first do the ADD INDEX and then DROP INDEX) and we can't modify
              indexes that are needed by e.g. foreign keys if we first do
              DROP INDEX and then ADD INDEX.
              Fixed the problem by disabling in-place ALTER TABLE for these cases.
            modified:
              mysql-test/r/innodb_mysql.result sp1f-innodb_mysql.result-20060426055153-bychbbfnqtvmvrwccwhn24i6yi46uqjv
              mysql-test/t/innodb_mysql.test sp1f-innodb_mysql.test-20060816102624-6ymo37d3nyhvbqyzqn5ohsfuydwo426k
              sql/sql_table.cc               sp1f-sql_table.cc-19700101030959-tzdkvgigezpuaxnldqh3fx2h7h2ggslu
    ------------------------------------------------------------
    revno: 3351.14.25
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Fri 2010-04-09 15:56:51 +0300
    message:
      Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where
      they are ignored to a new test suite "innodb_plugin".
      
      Remove a hack in mtr that was deployed to run the builtin InnoDB tests against
      the InnoDB Plugin. Also detect if a test is an 'innodb plugin test' and if so
      then transparently replace the builtin InnoDB with the InnoDB Plugin.
    ------------------------------------------------------------
    revno: 3351.14.24
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Thu 2010-04-08 19:55:55 +0300
    message:
      Adjust mysql-test/suite/binlog/t/binlog_killed.test after a change
      in behavior in InnoDB. The change in behavior was introduced by this
      changeset:
      
        ------------------------------------------------------------
        revno: 3370
        revision-id: vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457
        parent: vasil.dimov@oracle.com-20100331130440-l0y517y3mjsjqy4v
        parent: vasil.dimov@oracle.com-20100331113119-2kbgkaz1d426a43c
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Wed 2010-03-31 16:06:13 +0300
        message:
          Merge from innodb-branches-5.1
            ------------------------------------------------------------
            revno: 0.1.819
            revision-id: vasil.dimov@oracle.com-20100331113119-2kbgkaz1d426a43c
            parent: vasil.dimov@oracle.com-20100331064722-9rc3wypzmer7d6jj
            parent: svn-v4:cee13dc7-1704-0410-992b-c9b4543f1246:branches/5.1:6918
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: innodb-branches-5.1
            timestamp: Wed 2010-03-31 14:31:19 +0300
            message:
              Merge from SVN
                ------------------------------------------------------------
                revno: 0.2.1
                revision-id: svn-v4:cee13dc7-1704-0410-992b-c9b4543f1246:branches/5.1:6918
                parent: svn-v4:cee13dc7-1704-0410-992b-c9b4543f1246:branches/5.1:6912
                committer: mmakela
                timestamp: Wed 2010-03-31 07:14:51 +0000
                message:
                  branches/5.1: Obey KILL during a lock wait (Bug #51920).
        
                  srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
                  Check trx_is_interrupted() in addition to checking the lock wait timeout.
        
                  rb://279 approved by Sunny Bains
    ------------------------------------------------------------
    revno: 3351.14.23
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 22:42:25 +0300
    message:
      Merge from innodb-branches-zip
        ------------------------------------------------------------
        revno: 0.3.2080
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-zip
        timestamp: Wed 2010-04-07 22:41:50 +0300
        message:
          Merge from SVN
        ------------------------------------------------------------
        revno: 0.4.3
        committer: vdimov
        timestamp: Wed 2010-04-07 18:40:38 +0000
        message:
          branches/zip: Whitespace fixup in univ.i
        ------------------------------------------------------------
        revno: 0.4.2
        committer: csun
        timestamp: Wed 2010-04-07 18:24:55 +0000
        message:
          branches/zip: fix compiler errors on Windows.
          Move ut_ad() to after declarations for C file.
    ------------------------------------------------------------
    revno: 3351.14.22
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 22:00:06 +0300
    message:
      Merge from innodb-branches-zip
        ------------------------------------------------------------
        revno: 0.3.2079
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-zip
        timestamp: Wed 2010-04-07 21:53:09 +0300
        message:
          Merge from SVN
        ------------------------------------------------------------
        revno: 0.4.1
        committer: mmakela
        timestamp: Wed 2010-04-07 11:03:54 +0000
        message:
          branches/zip: innobase_init(): Correct the error message
          about wrong innodb_change_buffering value.  Reported by Ranger.
    ------------------------------------------------------------
    revno: 3351.14.21
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 21:59:02 +0300
    message:
      Merge from innodb-branches-5.1
        ------------------------------------------------------------
        revno: 0.1.822
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-5.1
        timestamp: Wed 2010-04-07 21:52:37 +0300
        message:
          Merge from SVN
        ------------------------------------------------------------
        revno: 0.2.5
        committer: vdimov
        timestamp: Tue 2010-04-06 16:18:25 +0000
        message:
          branches/5.1:
          
          Fix ./export.sh to honor ENDREV
        ------------------------------------------------------------
        revno: 0.2.4
        committer: mmakela
        timestamp: Tue 2010-04-06 06:14:51 +0000
        message:
          branches/zip: trx0sys.ic: Correct a typo in a comment.
    ------------------------------------------------------------
    revno: 3351.14.20
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 21:33:36 +0300
    message:
      Repply changes to storage/innodb_plugin/plug.in that were made by MySQL
    ------------------------------------------------------------
    revno: 3351.14.19
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 21:30:44 +0300
    message:
      Repply changes to storage/innodb_plugin/mysql-test/innodb_bug42101-nonzero-master.opt that were made by MySQL
    ------------------------------------------------------------
    revno: 3351.14.18
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 21:17:13 +0300
    message:
      Repply changes to storage/innodb_plugin/mysql-test/*.opt that were made by MySQL
    ------------------------------------------------------------
    revno: 3351.14.17
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 20:44:47 +0300
    message:
      Repply changes to storage/innodb_plugin/handler/ha_innodb.cc that were made by MySQL
    ------------------------------------------------------------
    revno: 3351.14.16
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 20:24:43 +0300
    message:
      Repply changes to storage/innodb_plugin/Makefile.am that were made by MySQL
    ------------------------------------------------------------
    revno: 3351.14.15
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 20:21:15 +0300
    message:
      Reapply changes to storage/innodb_plugin/CMakeLists.txt that were made by MySQL
    ------------------------------------------------------------
    revno: 3351.14.14
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 19:53:14 +0300
    message:
      Import branches/zip@r6960 from SVN on top of storage/innodb_plugin
        ------------------------------------------------------------
        revno: 0.3.2078
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-zip
        timestamp: Wed 2010-04-07 14:18:43 +0300
        message:
          Move everything into a subdirectory xyz/
        ------------------------------------------------------------
        revno: 0.3.2077
        committer: mmakela
        timestamp: Wed 2010-04-07 06:21:26 +0000
        message:
          branches/zip: buf_flush_block_cmp(): Do not mix declarations and code.
          Stick to C90, because some build platforms are not C99 yet.
        ------------------------------------------------------------
        revno: 0.3.2076
        committer: vdimov
        timestamp: Tue 2010-04-06 18:05:54 +0000
        message:
          branches/zip: Whitespace fixup
        ------------------------------------------------------------
        revno: 0.3.2075
        committer: vdimov
        timestamp: Tue 2010-04-06 17:55:02 +0000
        message:
          Change the BZR property
        ------------------------------------------------------------
        revno: 0.3.2074
        committer: vdimov
        timestamp: Tue 2010-04-06 17:48:35 +0000
        message:
          Set some experimental properties
        ------------------------------------------------------------
        revno: 0.3.2073
        committer: vdimov
        timestamp: Tue 2010-04-06 16:20:33 +0000
        message:
          Set some experimental properties that could help with the merge into BZR.
        ------------------------------------------------------------
        revno: 0.3.2072
        committer: mmakela
        timestamp: Tue 2010-04-06 12:11:46 +0000
        message:
          branches/zip: Add debug checks to track down Issue #461.
          
          dict_table_check_for_dup_indexes(): Add the flag tmp_ok.  If !tmp_ok,
          check that no index name starts with TEMP_INDEX_PREFIX.
          
          ha_innobase::add_index(), ha_innobase::prepare_drop_index(),
          ha_innobase::final_drop_index(): Call dict_table_check_for_dup_indexes().
        ------------------------------------------------------------
        revno: 0.3.2071
        committer: mmakela
        timestamp: Wed 2010-03-31 11:30:56 +0000
        message:
          branches/zip: Merge revisions 6921:6924 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6924 | mmakela | 2010-03-31 15:28:25 +0300 (Wed, 31 Mar 2010) | 1 line
            Changed paths:
               M /branches/5.1/mysql-test/innodb_bug51920.test
          
            branches/5.1: innodb_bug51920.test: Fix a race condition.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2070
        committer: mmakela
        timestamp: Wed 2010-03-31 10:54:30 +0000
        message:
          branches/zip: Merge revisions 6918:6921 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6921 | mmakela | 2010-03-31 14:33:04 +0300 (Wed, 31 Mar 2010) | 2 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb_bug51920.result
               M /branches/5.1/mysql-test/innodb_bug51920.test
          
            branches/5.1: innodb_bug51920.test: Make the test quicker and more
            deterministic.  Suggested by Vasil Dimov.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2069
        committer: mmakela
        timestamp: Wed 2010-03-31 07:49:08 +0000
        message:
          branches/zip: Fix a compilation error that sneaked in in r6919.
        ------------------------------------------------------------
        revno: 0.3.2068
        committer: mmakela
        timestamp: Wed 2010-03-31 07:34:22 +0000
        message:
          branches/zip: Merge revisions 6788:6918 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6822 | vasil | 2010-03-15 10:17:31 +0200 (Mon, 15 Mar 2010) | 12 lines
            Changed paths:
               M /branches/5.1/row/row0sel.c
          
            branches/5.1:
          
            Typecast to silence a compiler warning:
          
            row/row0sel.c: 4548
                    C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
            row/row0sel.c: 4553
                    C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
          
            Reported by: Jonas Oreland <Jonas.Oreland@Sun.COM>
            Discussed with: Sunny Bains <sunny.bains@oracle.com>
            ------------------------------------------------------------------------
            r6884 | vdimov | 2010-03-26 13:05:03 +0200 (Fri, 26 Mar 2010) | 6 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb_bug38231.test
          
            branches/5.1:
          
            Fix a non-determinism in innodb_bug38231.
          
            Reported by: Sergey Vojtovich <svoj@Sun.COM>
            ------------------------------------------------------------------------
            r6911 | vdimov | 2010-03-30 11:39:02 +0300 (Tue, 30 Mar 2010) | 2 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1: Whitespace fixup
            ------------------------------------------------------------------------
            r6912 | vdimov | 2010-03-30 12:18:46 +0300 (Tue, 30 Mar 2010) | 2 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1: Whitespace fixup on line 354
            ------------------------------------------------------------------------
            r6918 | mmakela | 2010-03-31 11:14:51 +0300 (Wed, 31 Mar 2010) | 6 lines
            Changed paths:
               A /branches/5.1/mysql-test/innodb_bug51920.result
               A /branches/5.1/mysql-test/innodb_bug51920.test
               M /branches/5.1/srv/srv0srv.c
          
            branches/5.1: Obey KILL during a lock wait (Bug #51920).
          
            srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
            Check trx_is_interrupted() in addition to checking the lock wait timeout.
          
            rb://279 approved by Sunny Bains
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2067
        committer: mmakela
        timestamp: Mon 2010-03-29 09:54:57 +0000
        message:
          branches/zip: Merge c6899 from branches/innodb+:
          
          Add debug assertions to track down Bug #52360.
          hash_table_t::magic_n: Add HASH_TABLE_MAGIC_N checks, which were fully absent.
          ut_hash_ulint(): Assert table_size > 0 before division.
        ------------------------------------------------------------
        revno: 0.3.2066
        committer: mmakela
        timestamp: Mon 2010-03-29 07:36:19 +0000
        message:
          branches/zip: innodb_mutex_show_status(): Fix a condition
          that was accidentally negated in r6781, making SHOW ENGINE INNODB MUTEX STATUS
          display only locks with no OS waits.
        ------------------------------------------------------------
        revno: 0.3.2065
        committer: vdimov
        timestamp: Fri 2010-03-26 14:19:01 +0000
        message:
          Non-functional change: update copyright year to 2010 of the files
          that have been modified after 2010-01-01 according to svn.
          
          for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
        ------------------------------------------------------------
        revno: 0.3.2064
        committer: vdimov
        timestamp: Thu 2010-03-25 16:18:15 +0000
        message:
          branches/zip:
          
          Wrap line at 78 column in ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.2063
        committer: vdimov
        timestamp: Thu 2010-03-25 15:17:52 +0000
        message:
          branches/zip:
          
          Wrap ChangeLog at 78th column
        ------------------------------------------------------------
        revno: 0.3.2062
        committer: vdimov
        timestamp: Thu 2010-03-25 15:06:56 +0000
        message:
          branches/zip:
          
          Use Bug#N instead of Bug #N to be consistent with the rest of the fil.
        ------------------------------------------------------------
        revno: 0.3.2061
        committer: vdimov
        timestamp: Thu 2010-03-25 15:03:17 +0000
        message:
          branches/zip:
          
          Fix ChangeLog - write only the bug title in bugs.mysql.com-related entires.
        ------------------------------------------------------------
        revno: 0.3.2060
        committer: vdimov
        timestamp: Thu 2010-03-25 14:39:44 +0000
        message:
          branches/zip:
          
          Whitespace fixup to be consistent with the rest of the file.
        ------------------------------------------------------------
        revno: 0.3.2059
        committer: mmakela
        timestamp: Thu 2010-03-25 11:03:08 +0000
        message:
          branches/zip: page_validate(): Check the buf[] bounds.
        ------------------------------------------------------------
        revno: 0.3.2058
        committer: mmakela
        timestamp: Wed 2010-03-24 12:05:53 +0000
        message:
          branches/zip: dtype_new_store_for_order_and_null_size(): Add ut_ad() on mtype.
        ------------------------------------------------------------
        revno: 0.3.2057
        committer: vdimov
        timestamp: Tue 2010-03-23 17:31:02 +0000
        message:
          branches/zip:
          
          Merge joerg@mysql.com-20100322150231-vdq0afbqtmbs6phy from BZR,
          
          Including univ.i before mysql/plugin.h is needed to avoid this
          compiler error:
          
          o  This is how gcc puts it:
          o  > > ccache /usr/local/gcc-4.3.2/bin/gcc -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -g -O3 -march=i686   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
          o  > > In file included from ./include/univ.i:114,
          o  > >                  from trx/trx0i_s.c:36:
          o  > > ../../include/my_pthread.h:628: error: expected ')' before '*' token
          o  > > In file included from ../../include/my_pthread.h:732,
          o  > >                  from ./include/univ.i:114,
          o  > >                  from trx/trx0i_s.c:36:
          o  > > ../../include/mysql/psi/mysql_thread.h:100: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
          o  > > ../../include/mysql/psi/mysql_thread.h:116: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
          o  > > ../../include/mysql/psi/mysql_thread.h: In function 'inline_mysql_rwlock_init':
          o  > > ../../include/mysql/psi/mysql_thread.h:711: error: 'mysql_rwlock_t' has no member named 'm_psi'
          o  > > ../../include/mysql/psi/mysql_thread.h:716: error: 'mysql_rwlock_t' has no member named 'm_rwlock'
          o  > > .... ((continued))
          o  
          o  Intel's icc gives slightly clearer messages:
          o  > > icc -static-intel -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -O3 -g -unroll2 -ip -mp -restrict -no-ftz -no-prefetch   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
          o  > > ../../include/my_pthread.h(628): error: identifier "pthread_rwlock_t" is undefined
          o  > >   extern int rw_pr_init(rw_pr_lock_t *);
          o  > >                         ^
          o  > >
          o  > > ../../include/mysql/psi/mysql_thread.h(100): error: identifier "pthread_rwlock_t" is undefined
          o  > >     rw_lock_t m_rwlock;
          o  > >     ^
          o  > >
          o  > > ../../include/mysql/psi/mysql_thread.h(116): error: identifier "pthread_rwlock_t" is undefined
          o  > >     rw_pr_lock_t m_prlock;
          o  > >     ^
        ------------------------------------------------------------
        revno: 0.3.2056
        committer: jyang
        timestamp: Tue 2010-03-23 16:20:36 +0000
        message:
          branches/zip: This is patch from Inaam that uses red-black tree
          to speed up insertions into the flush_list and thus the recovery
          process. The patch has been tested by Nokia.
        ------------------------------------------------------------
        revno: 0.3.2055
        committer: mmakela
        timestamp: Tue 2010-03-23 12:09:24 +0000
        message:
          branches/zip: innodb_read_ahead_threshold: Add missing space to help string.
        ------------------------------------------------------------
        revno: 0.3.2054
        committer: mmakela
        timestamp: Tue 2010-03-23 12:07:53 +0000
        message:
          branches/zip: innodb_change_buffering: Correct the documentation.
        ------------------------------------------------------------
        revno: 0.3.2053
        committer: marko
        timestamp: Mon 2010-03-22 11:35:29 +0000
        message:
          branches/zip: mutex_own(), rw_lock_own(): Add attribute((warn_unused_result)).
        ------------------------------------------------------------
        revno: 0.3.2052
        committer: calvin
        timestamp: Thu 2010-03-18 22:32:23 +0000
        message:
          branches/zip: Fix Bug #52102 InnoDB Plugin shows performance drop
          comparing to builtin InnoDB (Windows only).
          
          Disable Windows atomics by default.
          
          Approved by: Inaam
        ------------------------------------------------------------
        revno: 0.3.2051
        committer: marko
        timestamp: Thu 2010-03-18 07:48:18 +0000
        message:
          branches/zip: buf_page_peek_if_too_old(): Use 32-bit arithmetics
          when comparing the age of access_time to buf_LRU_old_threshold_ms.
          This fixes a bug on 64-bit systems.
        ------------------------------------------------------------
        revno: 0.3.2050
        committer: calvin
        timestamp: Wed 2010-03-17 15:16:38 +0000
        message:
          branches/zip: rename IB_HAVE_PAUSE_INSTRUCTION to
          HAVE_IB_PAUSE_INSTRUCTION in CMakeLists.txt.
          
          The rename was done as r5871, but CMakeLists.txt was
          forgotten. Also, add INNODB_RW_LOCKS_USE_ATOMICS to
          CMake.
        ------------------------------------------------------------
        revno: 0.3.2049
        committer: inaam
        timestamp: Thu 2010-03-11 21:15:17 +0000
        message:
          branches/zip issue#463
          
          Fixed compiler warning about uninitialized variable.
          
          Non-functional change.
        ------------------------------------------------------------
        revno: 0.3.2048
        committer: marko
        timestamp: Thu 2010-03-11 11:34:28 +0000
        message:
          branches/zip: mtr_memo_contains(): Relax the assertion of r6800,
          allowing mtr->state == MTR_COMMITTING.
        ------------------------------------------------------------
        revno: 0.3.2047
        committer: marko
        timestamp: Thu 2010-03-11 10:02:57 +0000
        message:
          branches/zip: Add ut_ad(mtr->state == MTR_ACTIVE) to various places.
        ------------------------------------------------------------
        revno: 0.3.2046
        committer: jyang
        timestamp: Thu 2010-03-11 07:59:42 +0000
        message:
          branches/zip: Once change in bug #47621 merges into zip branch,
          zip only test innodb_bug44571 needs to be updated to reflect the
          column name change would be successful be done in InnoDB as well.
        ------------------------------------------------------------
        revno: 0.3.2045
        committer: marko
        timestamp: Thu 2010-03-11 07:53:01 +0000
        message:
          branches/zip: Fix and clarify the latching of some buf_block_t members.
          
          buf_block_t::check_index_page_at_flush: Note that this field is not
          protected by any mutex. Make it a separate field, not a bitfield that
          could share the machine word with other fields.
          
          buf_block_t::lock_hash_val: Note that this field is protected by
          buf_block_t::lock (or during block creation, by buf_pool_mutex and
          buf_block_t::mutex).
          
          buf_block_get_lock_hash_val(): Assert that block->lock is held by the
          current thread.
          
          Issue #465, rb://267 approved by Inaam Rana
        ------------------------------------------------------------
        revno: 0.3.2044
        committer: marko
        timestamp: Wed 2010-03-10 12:02:19 +0000
        message:
          branches/zip: Merge revisions 6669:6788 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
            Changed paths:
               M /branches/5.1/trx/trx0sys.c
          
            branches/5.1: fix bug#51653: outdated reference to set-variable
            Non functional change.
            ------------------------------------------------------------------------
            r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
            Changed paths:
               M /branches/5.1/plug.in
          
            branches/5.1:
          
            Whitespace fixup.
            ------------------------------------------------------------------------
            r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb_bug21704.result
               A /branches/5.1/mysql-test/innodb_bug47621.result
               A /branches/5.1/mysql-test/innodb_bug47621.test
          
            branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
            will become out of sync when renaming columns". MySQL does not
            provide new column name information to storage engine to
            update the system table. To avoid column name mismatch, we shall
            just request a table copy for now.
          
            rb://246 approved by Marko.
            ------------------------------------------------------------------------
            r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb_bug38231.test
          
            branches/5.1:
          
            Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
            enforced the presence of those recently and the test started failing like:
          
              main.innodb_bug38231                     [ fail ]
                      Test ended at 2010-03-10 08:48:32
          
              CURRENT_TEST: main.innodb_bug38231
              mysqltest: At line 49: Cannot run query on connection between send and reap
            ------------------------------------------------------------------------
            r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb_bug38231.test
          
            branches/5.1:
          
            In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
            with a more robust condition which waits for the TRUNCATE and LOCK commands
            to appear in information_schema.processlist. This could also break if there
            are other sessions executing the same SQL commands, but there are none during
            the execution of the mysql test.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2043
        committer: marko
        timestamp: Wed 2010-03-10 11:56:41 +0000
        message:
          branches/zip: Copy tests from branches/5.1 that were lost in some merge.
        ------------------------------------------------------------
        revno: 0.3.2042
        committer: marko
        timestamp: Wed 2010-03-10 11:39:06 +0000
        message:
          branches/zip: Add ChangeLog entries for r6789, r6790.
        ------------------------------------------------------------
        revno: 0.3.2041
        committer: jyang
        timestamp: Wed 2010-03-10 11:09:41 +0000
        message:
          branches/zip: Fix bug #51356: "many valgrind errors in error messages
          with concurrent ddl". Null terminate the name string returned
          from innobase_convert_identifier() call when reporting DB_DUPLICATE_KEY
          error in create_table_def().
          rb://266 approved by Marko
        ------------------------------------------------------------
        revno: 0.3.2040
        committer: jyang
        timestamp: Wed 2010-03-10 09:18:18 +0000
        message:
          branches/zip: If a unique index is on a column prefix, such
          unique index cannot be upgrade to primary index even if there
          is no primary index already defined. Also fix possible corruption
          when initialize "ref_length" value in case there is a mismatch
          between MySQL and InnoDB primary key. Fix bug #51378: "Init
          'ref_length'  to correct value, in case an out of bound MySQL
          primary_key".
          rb://262 approved by Marko.
        ------------------------------------------------------------
        revno: 0.3.2039
        committer: marko
        timestamp: Wed 2010-03-10 08:35:06 +0000
        message:
          branches/zip: recv_parse_log_rec(): Remove a bogus assertion about page_no.
          TODO: We might also consider removing recv_max_parsed_page_no, because
          it does not make much sense with *.ibd files.
          
          recv_report_corrupt_log(), recv_scan_log_recs(): Abort when a
          corrupted log record has been found, unless innodb_force_recovery has
          been set.
          
          This fixes Issue #464.
          rb://265 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.2038
        committer: vasil
        timestamp: Wed 2010-03-10 07:16:50 +0000
        message:
          branches/zip:
          
          Fix typo in comment
        ------------------------------------------------------------
        revno: 0.3.2037
        committer: marko
        timestamp: Tue 2010-03-09 12:09:26 +0000
        message:
          branches/zip: fil0fil.c: Update comments on table->flags as of r6252.
        ------------------------------------------------------------
        revno: 0.3.2036
        committer: marko
        timestamp: Tue 2010-03-09 07:41:08 +0000
        message:
          branches/zip: Make SHOW ENGINE INNODB MUTEX display SUM(os_waits)
          for block mutexes and blocks.
          
          Designed by Michael and Marko. rb://188, Issue #358
        ------------------------------------------------------------
        revno: 0.3.2035
        committer: marko
        timestamp: Mon 2010-03-08 12:35:42 +0000
        message:
          branches/zip: Fix IMPORT TABLESPACE of compressed tables.  Previously,
          a wrong parameter was passed to buf_flush_init_for_writing().
          
          fil_reset_too_high_lsns(): Set up page_zip and use it if needed.
          
          rb://264, Issue #352
        ------------------------------------------------------------
        revno: 0.3.2034
        committer: marko
        timestamp: Thu 2010-03-04 11:01:25 +0000
        message:
          branches/zip: trx_undo_update_rec_get_update(): Silence a bogus GCC warning
          about a possibly uninitialized variable.
        ------------------------------------------------------------
        revno: 0.3.2033
        committer: marko
        timestamp: Wed 2010-03-03 13:31:54 +0000
        message:
          branches/zip: row_raw_format(): Silence a GCC 4.4.2 warning
          of possibly uninitialized variable format_in_hex.
        ------------------------------------------------------------
        revno: 0.3.2032
        committer: marko
        timestamp: Wed 2010-03-03 12:52:43 +0000
        message:
          Document r6770.
        ------------------------------------------------------------
        revno: 0.3.2031
        committer: marko
        timestamp: Wed 2010-03-03 10:52:55 +0000
        message:
          branches/zip: Disallow duplicate index name when creating an index.
          This should fix Mantis Issue #461.
          
          innodb.test, innodb.result, innodb-index.test, innodb-index.result:
          Adjust the test result and mention that the introduced restriction
          has been reported as MySQL Bug #51451.
          
          innobase_check_index_keys(): Add a parameter for the InnoDB table and
          check that no duplicate index name is added.  Report errors by
          my_error() instead of sql_print_error().
          
          rb://260 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.2030
        committer: vasil
        timestamp: Tue 2010-03-02 16:20:48 +0000
        message:
          branches/zip:
          
          Add a NOTE to the comment of btr_node_ptr_get_child_page_no()
          to prevent mysterious bugs.
        ------------------------------------------------------------
        revno: 0.3.2029
        committer: calvin
        timestamp: Mon 2010-03-01 16:16:10 +0000
        message:
          branches/zip: fix bug#51587
          Non-functional change.
        ------------------------------------------------------------
        revno: 0.3.2028
        committer: marko
        timestamp: Wed 2010-02-24 08:56:43 +0000
        message:
          branches/zip: Allocate the merge sort buffers from a heap, not stack.
          
          The merge sort can use up to 48KiB of buffers when merging blocks.
          That can cause a stack overflow, especially on 64-bit systems when not
          building with inlined functions.  This was reported as Issue #462.
          
          row_merge_dup_report(): Allocate buf and offsets from a heap.
          
          row_merge_heap_create(): Allocate space for buf[3] too. Fix bogus
          sizeof arithmetics that happened to work, because
          sizeof(ulint)==sizeof(void*).
          
          row_merge_blocks(), row_merge_blocks_copy(): Allocate buf[3] from heap.
          
          row_merge_insert_index_tuples(): Allocate buf from graph_heap.
          
          rb://258 approved and tested by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.2027
        committer: marko
        timestamp: Mon 2010-02-22 06:57:23 +0000
        message:
          branches/zip: row_fetch_store_uint4(): Remove unused function.
          This was added to trunk in r435.
        ------------------------------------------------------------
        revno: 0.3.2026
        committer: vasil
        timestamp: Sat 2010-02-20 16:45:41 +0000
        message:
          Non-functional change: update copyright year to 2010 of the files
          that have been modified after 2010-01-01 according to svn.
          
          for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
        ------------------------------------------------------------
        revno: 0.3.2025
        committer: sunny
        timestamp: Thu 2010-02-18 11:44:31 +0000
        message:
          branches/zip: Don't print the entire lock bit set if the block was not
          found in the buffer pool. Only print the bits that are set and that
          information is in the lock and not in the block.
          
          See rb://256 approved by Marko.
        ------------------------------------------------------------
        revno: 0.3.2024
        committer: marko
        timestamp: Wed 2010-02-17 16:54:04 +0000
        message:
          branches/zip: Remove UNIV_BASIC_LOG_DEBUG.
          This fixes the FILE_FLUSH_LSN printouts mentioned in Issue #341.
          Suggested by Heikki.
        ------------------------------------------------------------
        revno: 0.3.2023
        committer: marko
        timestamp: Wed 2010-02-17 16:50:20 +0000
        message:
          branches/zip: fsp_init_file_page_low(): Declare the page uninitialized
          for Valgrind.
        ------------------------------------------------------------
        revno: 0.3.2022
        committer: marko
        timestamp: Wed 2010-02-17 16:49:21 +0000
        message:
          branches/zip: FIL_PAGE_FILE_FLUSH_LSN: Note that the field is only valid
          for the first page of each ibdata* file, not *.ibd files.
          Suggested by Heikki, in connection with the LSN warning noted in Issue #341.
        ------------------------------------------------------------
        revno: 0.3.2021
        committer: marko
        timestamp: Wed 2010-02-17 13:52:05 +0000
        message:
          branches/zip: Merge revisions 6613:6669 from branches/5.1:
            ------------------------------------------------------------------------
            r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines
          
            branches/5.1: Fix bug #50691, AIX implementation of readdir_r
            causes InnoDB errors. readdir_r() returns an non-NULL value
            in the case of reaching the end of a directory. It should
            not be treated as an error return.
          
            rb://238 approved by Marko
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2020
        committer: marko
        timestamp: Wed 2010-02-17 09:48:34 +0000
        message:
          branches/zip: lock_table_other_has_incompatible():
          Return an incompatible lock or NULL instead of TRUE or FALSE.
          Approved by Sunny over IM.
        ------------------------------------------------------------
        revno: 0.3.2019
        committer: marko
        timestamp: Tue 2010-02-16 13:06:16 +0000
        message:
          branches/zip: Fix a comment.
        ------------------------------------------------------------
        revno: 0.3.2018
        committer: marko
        timestamp: Tue 2010-02-16 12:53:20 +0000
        message:
          branches/zip: log_reserve_and_write_fast(): Correct a race condition
          in UNIV_LOG_LSN_DEBUG.  This could have caused Issue #440.
        ------------------------------------------------------------
        revno: 0.3.2017
        committer: sunny
        timestamp: Tue 2010-02-16 08:14:21 +0000
        message:
          branches/zip: Fix comment. Non functional change.
        ------------------------------------------------------------
        revno: 0.3.2016
        committer: sunny
        timestamp: Tue 2010-02-16 08:12:25 +0000
        message:
          branches/zip: Update the comments and fix the whitespace issues.
          See rb://255 Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.2015
        committer: sunny
        timestamp: Tue 2010-02-16 08:12:17 +0000
        message:
          branches/zip: Change the bit fields back to ulint. Bit fields were causing
          problems with concurrency on SMP systems because of word packing issues.
          The number of trx_t's in a system is not sufficient enough to require that
          we try and save a few bytes in the data structure.
          
          See rb://255 for details.
        ------------------------------------------------------------
        revno: 0.3.2014
        committer: marko
        timestamp: Tue 2010-02-16 08:05:36 +0000
        message:
          branches/zip: trx_lists_init_at_db_start(): Assert that the kernel_mutex
          is held by the caller.
        ------------------------------------------------------------
        revno: 0.3.2013
        committer: inaam
        timestamp: Fri 2010-02-12 17:22:35 +0000
        message:
          branches/zip
          
          ChangeLog entry for r6674.
        ------------------------------------------------------------
        revno: 0.3.2012
        committer: marko
        timestamp: Thu 2010-02-11 20:41:11 +0000
        message:
          branches/zip: Remove bogus debug assertions introduced in r6660.
        ------------------------------------------------------------
        revno: 0.3.2011
        committer: inaam
        timestamp: Thu 2010-02-11 15:54:44 +0000
        message:
          branches/zip bug# 49535
          
          This is a backport of r4924.
          mem_heap_get_size() scans all allocated blocks to calculate the total
          size of the heap. This patch introduces a new, total_size, field in
          mem_block_info_struct. This field is valid only for base block
          (i.e.: the first block allocated for the heap) and is set to
          ULINT_UNDEFINED in other blocks.
          This considerably improves the performance of redo scan during recovery.
          
          rb://108 issue#216
          
          Approved by: Heikki
          
          ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2010
        committer: marko
        timestamp: Thu 2010-02-11 11:09:48 +0000
        message:
          branches/zip: Relax a debug assertion about a missing BLOB. (Issue #452)
          When rolling back an incomplete transaction in purge, tolerate missing
          BLOBs also in update undo, when undoing an INSERT by updating a delete-marked
          record, and the delete-marked record is no longer needed.
          Previously, we only tolerated missing BLOBs in insert undo.
          This merely fixes a debug assertion; the code performed correctly
          without UNIV_DEBUG.
          
          rb://249 approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.2009
        committer: marko
        timestamp: Thu 2010-02-11 11:01:18 +0000
        message:
          branches/zip: Introduce thr_is_recv().
        ------------------------------------------------------------
        revno: 0.3.2008
        committer: marko
        timestamp: Thu 2010-02-11 09:21:11 +0000
        message:
          branches/zip: Clarify the rollback of INSERT by UPDATE of delete-marked rec.
          
          row_undo_mod_remove_clust_low(): Augment the function comment.
          
          row_undo_mod_remove_clust_low(), row_undo_mod_del_mark_or_remove_sec_low(),
          row_undo_mod_del_mark_or_remove_sec(), row_undo_mod_upd_del_sec():
          Add ut_ad(node->rec_type == TRX_UNDO_UPD_DEL_REC);
        ------------------------------------------------------------
        revno: 0.3.2007
        committer: marko
        timestamp: Wed 2010-02-10 11:11:04 +0000
        message:
          branches/zip: trx_rseg_create(): Unused function, remove.
        ------------------------------------------------------------
        revno: 0.3.2006
        committer: marko
        timestamp: Wed 2010-02-10 09:07:05 +0000
        message:
          branches/zip: Clean up after r6559.  Now that
          btr_pcur_open_with_no_init() is a macro, do not mix preprocessor
          directives in the macro invocation, because it is implementation-defined
          whether that is going to work.
        ------------------------------------------------------------
        revno: 0.3.2005
        committer: marko
        timestamp: Wed 2010-02-10 08:40:55 +0000
        message:
          branches/zip: Merge revisions 6538:6613 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6545 | jyang | 2010-02-03 03:57:32 +0200 (Wed, 03 Feb 2010) | 8 lines
            Changed paths:
               M /branches/5.1/lock/lock0lock.c
          
            branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
            incorrect when deadlock detection aborts". Print the correct
            lock owner when recursive function lock_deadlock_recursive()
            exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.
          
            rb://217, approved by Marko.
            ------------------------------------------------------------------------
            r6613 | inaam | 2010-02-09 20:23:09 +0200 (Tue, 09 Feb 2010) | 11 lines
            Changed paths:
               M /branches/5.1/buf/buf0buf.c
               M /branches/5.1/buf/buf0rea.c
               M /branches/5.1/include/buf0rea.h
          
            branches/5.1: Fix Bug #38901
            InnoDB logs error repeatedly when trying to load page into buffer pool
          
            In buf_page_get_gen() if we are unable to read a page (because of
            corruption or some other reason) we keep on retrying. This fills up
            error log with millions of entries in no time and we'd eventually run
            out of disk space. This patch limits the number of attempts that we
            make (currently set to 100) and after that we abort with a message.
          
            rb://241 Approved by: Heikki
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.2004
        committer: marko
        timestamp: Wed 2010-02-10 07:19:52 +0000
        message:
          branches/zip: Document r6614 in ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.2003
        committer: inaam
        timestamp: Tue 2010-02-09 18:26:23 +0000
        message:
          branches/plugin rb://242
          
          Let the master thread sleep if the amount of work to be done is
          calibrated as taking less than a second.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.2002
        committer: marko
        timestamp: Tue 2010-02-09 12:32:39 +0000
        message:
          branches/zip: recv_recovery_rollback_active():
          Drop the temporary tables and indexes after enabling sync order checks.
          This should not make any difference. This could have been done in r6611.
        ------------------------------------------------------------
        revno: 0.3.2001
        committer: marko
        timestamp: Tue 2010-02-09 12:28:25 +0000
        message:
          branches/zip: Roll back dictionary transaction(s) before scanning *.ibd files
          
          innobase_start_or_create_for_mysql(): Roll back data dictionary
          transactions before scanning the *.ibd files. Then, data dictionary
          records can be loaded to the cache before opening the *.ibd files.
          
          recv_recovery_rollback_active(): Refactored from
          recv_recovery_from_checkpoint_finish().
          
          rb://235, committing without review, because this is needed for
          TablespaceDictionary.
        ------------------------------------------------------------
        revno: 0.3.2000
        committer: marko
        timestamp: Tue 2010-02-09 11:53:59 +0000
        message:
          branches/zip: When dropping temporary indexes and tables at startup,
          first load them to the data dictionary cache and use the normal
          routines for dropping tables or indexes.  This should reduce the
          risk of bugs and also make the code compatible with the upcoming
          TablespaceDictionary implementation.
          
          DICT_SYS_INDEXES_NAME_FIELD: The clustered index position of SYS_INDEXES.NAME.
          
          row_merge_drop_temp_indexes(): Scan SYS_INDEXES for tables containing
          temporary indexes, and load the tables as needed. Invoke
          row_merge_drop_index() to drop the indexes.
          
          row_mysql_drop_temp_tables(): Scan SYS_TABLES for temporary tables,
          load them with dict_load_table() and drop them with
          row_drop_table_for_mysql().
          
          rb://251, not yet reviewed
        ------------------------------------------------------------
        revno: 0.3.1999
        committer: marko
        timestamp: Tue 2010-02-09 11:45:40 +0000
        message:
          branches/zip: dict_field_print_low(): Add const qualifier.
        ------------------------------------------------------------
        revno: 0.3.1998
        committer: marko
        timestamp: Tue 2010-02-09 09:02:37 +0000
        message:
          branches/zip: ha_innobase::add_index(): Check for !innodb_table.
        ------------------------------------------------------------
        revno: 0.3.1997
        committer: marko
        timestamp: Mon 2010-02-08 11:53:02 +0000
        message:
          branches/zip: btr_pcur_commit(): Unused function, remove.
        ------------------------------------------------------------
        revno: 0.3.1996
        committer: marko
        timestamp: Mon 2010-02-08 10:55:04 +0000
        message:
          branches/zip: rec_get_nth_field_offs_old():
          Replace if (!cond) ut_error; tests with ut_a(cond).
        ------------------------------------------------------------
        revno: 0.3.1995
        committer: marko
        timestamp: Mon 2010-02-08 08:06:39 +0000
        message:
          branches/zip: row_merge_drop_index(): Remove redundant condition
          on SYS_INDEXES.TABLE_ID.  INDEX_ID must be instance-widely unique,
          because SYS_FIELDS is not indexed by TABLE_ID.
        ------------------------------------------------------------
        revno: 0.3.1994
        committer: sunny
        timestamp: Thu 2010-02-04 14:11:23 +0000
        message:
          branches/zip: Remove the additional check introduced in r6534 which tries
          to check if the joining transaction has any other transactions waiting on
          its locks. This optimization results in excessive deadlocks when running
          Sysbench with a large number of threads. The function seems to return
          FALSE positives.
          
          rb://250
        ------------------------------------------------------------
        revno: 0.3.1993
        committer: marko
        timestamp: Thu 2010-02-04 11:21:18 +0000
        message:
          branches/zip: Pass the file name and line number of the caller of the
          b-tree cursor functions to the buffer pool requests, in order to make
          the latch diagnostics more accurate.
          
          buf_page_optimistic_get_func(): Renamed to buf_page_optimistic_get().
          
          btr_page_get_father_node_ptr(), btr_insert_on_non_leaf_level(),
          btr_pcur_open(), btr_pcur_open_with_no_init(), btr_pcur_open_on_user_rec(),
          btr_pcur_open_at_rnd_pos(), btr_pcur_restore_position(),
          btr_cur_open_at_index_side(), btr_cur_open_at_rnd_pos():
          Rename the function to _func and add the parameters file, line.
          Define wrapper macros with __FILE__, __LINE__.
          
          btr_cur_search_to_nth_level(): Add the parameters file, line.
        ------------------------------------------------------------
        revno: 0.3.1992
        committer: marko
        timestamp: Wed 2010-02-03 13:01:39 +0000
        message:
          branches/zip: buf_LRU_invalidate_tablespace(): Ensure that prev_bpage
          is not relocated when freeing a compressed block.  This avoids the
          costly rescan of the LRU list.  (Bug #35077, Issue #449)
          
          At most one buffer-fix will be active at a time, affecting two blocks:
          the buf_page_t and the compressed page frame. This should not block
          the memory defragmentation in buf0buddy.c too much.  In fact, it may
          avoid unnecessary copying if also prev_bpage belongs to the tablespace
          that is being invalidated.
          
          rb://240
        ------------------------------------------------------------
        revno: 0.3.1991
        committer: marko
        timestamp: Wed 2010-02-03 12:43:38 +0000
        message:
          branches/zip: Clean up CHECK TABLE error handling. (Issue #220)
          
          ha_innobase::change_active_index(): Clean up code formatting.
          
          ha_innobase::check(): Incorporate the code from
          row_check_table_for_mysql().  Report errors to the client connection
          instead of writing them to the error log.
          
          row_check_table_for_mysql(): Remove.
          
          row_check_index_for_mysql(): Renamed from row_scan_and_check_index().
          Let the caller initialize prebuilt, and assume that the index is usable.
          
          rb://178 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1990
        committer: jyang
        timestamp: Wed 2010-02-03 09:05:24 +0000
        message:
          branches/zip: Relax assertion on the number of index defined
          in InnoDB must be comparable with that of MySQL to tolerate
          possible dictionary inconsistency. Fix Mantis issue #455,
          "UNIV_DEBUG+ assert ha_innodb.cc:3152 ib_num_index >=
          mysql_num_index".
          
          rb://248 Approved by Marko.
           
        ------------------------------------------------------------
        revno: 0.3.1989
        committer: marko
        timestamp: Mon 2010-02-01 09:35:13 +0000
        message:
          branches/zip: ChangeLog: Document the merge of 6471:6538 from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1988
        committer: marko
        timestamp: Mon 2010-02-01 09:31:12 +0000
        message:
          branches/zip: Merge revisions 6471:6538 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
          
            branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
            into a separate test/result files.
            ------------------------------------------------------------------------
            r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines
            Changed paths:
               A /branches/5.1/mysql-test/innodb-autoinc-44030.result
               A /branches/5.1/mysql-test/innodb-autoinc-44030.test
          
            branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
            into a separate test/result files.
            ------------------------------------------------------------------------
            r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc-44030.test
          
            branches/5.1: Add reference to bug#47621 in the comment.
            ------------------------------------------------------------------------
            r6535 | sunny | 2010-01-30 00:08:40 +0200 (Sat, 30 Jan 2010) | 11 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
            if we were unable to initialize the tabe autoinc value. This is required for
            the open to succeed. The only condition we currently treat as a hard error
            is if the autoinc field instance passed in by MySQL is NULL.
          
            Previously if the table autoinc value was 0 and the next value was requested
            we had an assertion that would fail. Change that assertion and treat a value
            of 0 to mean that the autoinc system is unavailable. Generation of next
            value will now return failure.
          
            rb://237
            ------------------------------------------------------------------------
            r6536 | sunny | 2010-01-30 00:13:42 +0200 (Sat, 30 Jan 2010) | 6 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
          
            branches/5.1: Check *first_value everytime against the column max
            value and  set *first_value to next autoinc if it's > col max value.
            ie.  not rely on what is passed in from MySQL.
          
            [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
            rb://236
            ------------------------------------------------------------------------
            r6537 | sunny | 2010-01-30 00:35:00 +0200 (Sat, 30 Jan 2010) | 2 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
          
            branches/5.1: Undo r6536.
            ------------------------------------------------------------------------
            r6538 | sunny | 2010-01-30 00:43:06 +0200 (Sat, 30 Jan 2010) | 6 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
          
            branches/5.1: Check *first_value every time against the column max
            value and  set *first_value to next autoinc if it's > col max value.
            ie.  not rely on what is passed in from MySQL.
          
            [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
            rb://236
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1987
        committer: sunny
        timestamp: Fri 2010-01-29 21:42:49 +0000
        message:
          branches/zip: Two changes to fix the problem:
          
          1. First scan the joining transaction's locks and check if no other
          transaction is waiting for a lock held by the joining transaction.
          If no other transaction is waiting then  no deadlock an occur and
          we avoid doing an exhaustive search.
          
          2. Change the direction of the lock traversal from backward to forward.
          Previously we traversed backward from the lock that has to wait, the function
          to that fetched the previous node was very inefficient resulting in O(n^2)
          access to the rec lock list.
          
          Fix Bug #49047 InnoDB deadlock detection is CPU intensive with many locks on a single row.
          
          rb://218
        ------------------------------------------------------------
        revno: 0.3.1986
        committer: calvin
        timestamp: Fri 2010-01-29 21:31:59 +0000
        message:
          branches/zip: remove duplicated copyright and license info.
        ------------------------------------------------------------
        revno: 0.3.1985
        committer: vasil
        timestamp: Fri 2010-01-29 12:39:48 +0000
        message:
          branches/zip:
          
          Extend the comment about row_mysql_handle_errors().
          
          Suggested by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1984
        committer: jyang
        timestamp: Thu 2010-01-28 16:12:40 +0000
        message:
          branches/zip: Add index translation table to map mysql index
          number to InnoDB index structure directly. Fix Bug #47622:
          "the new index is added before the existing ones in MySQL,
          but after one in SE".
          
          rb://215, approved by Marko
        ------------------------------------------------------------
        revno: 0.3.1983
        committer: marko
        timestamp: Thu 2010-01-28 14:23:15 +0000
        message:
          branches/zip: buf_LRU_invalidate_tablespace(): Do not unnecessarily
          acquire the block_mutex for every block in the LRU list. Only acquire
          it when holding buf_pool_mutex is not sufficient. This should speed up
          the function and considerably reduce traffic on the memory bus and
          caches.
          
          I noticed this deficiency when working on Issue #157.
          This deficiency popped up again in Issue #449 (Bug #35077),
          which this fix does not fully address.
          
          rb://78 revision 1 approved by Heikki Tuuri.
        ------------------------------------------------------------
        revno: 0.3.1982
        committer: marko
        timestamp: Wed 2010-01-27 08:49:01 +0000
        message:
          branches/zip: Drop temporary tables at startup.
          This addresses the third aspect of Bug #41609.
          
          row_mysql_drop_temp_tables(): New function, to drop all temporary
          tables. These can be distinguished by the least significant bit of
          MIX_LEN. However, we will skip ROW_FORMAT=REDUNDANT tables, because in
          the records for those tables, that bit may be garbage.
          
          recv_recovery_from_checkpoint_finish(): Invoke
          row_mysql_drop_temp_tables().  Normally, if the .frm files for the
          temporary tables exist at startup, MySQL will ask InnoDB to drop the
          temporary tables.  However, if the files are deleted, for instance, by
          the boot scripts of the operating system, the tables would remain in
          the InnoDB data dictionary unless someone digs them up by
          innodb_table_monitor and creates .frm files for dropping the tables.
          
          rb://221 approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1981
        committer: marko
        timestamp: Thu 2010-01-21 09:22:52 +0000
        message:
          branches/zip: buf_page_get_gen(): Obey recv_no_ibuf_operations
          and do not call ibuf_merge_or_delete_for_page() in crash recovery,
          before the redo log has been applied.
          This could cure some hard-to-repeat, hard-to-explain bugs
          related to secondary indexes.
          
          A possible recipe to repeat the bug:
          
          1. update a secondary index leaf page on a compressed table
          2. evict the page from the buffer pool while it is still dirty
          3. ibuf_insert() something for the page
          4. crash
          5. crash recovery; ibuf merge would be done too early,
          before applying redo log to the sec index page or the ibuf pages
        ------------------------------------------------------------
        revno: 0.3.1980
        committer: calvin
        timestamp: Fri 2010-01-15 23:58:16 +0000
        message:
          branches/zip: fix bug#49396: innodb.innodb-index test fails in
          embedded mode
          
          This is 2nd part of the fix for bug#49396. The 1st part is
          innodb.test. Tested in both embedded mode and normal server mode.
        ------------------------------------------------------------
        revno: 0.3.1979
        committer: calvin
        timestamp: Fri 2010-01-15 23:53:47 +0000
        message:
          branches/zip: Merge revisions 6425:6471 from branches/5.1
          to pick up the first part fix of bug49396.
          
              ------------------------------------------------------------------------
              r6471 | calvin | 2010-01-15 17:43:27 -0600 (Fri, 15 Jan 2010) | 4 lines
          
              branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
          
              Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
              mode and normal server mode.
              ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1978
        committer: inaam
        timestamp: Thu 2010-01-14 18:46:00 +0000
        message:
          branches/zip rb://226
          
          log_sys->written_to_all_lsn does not accurately represent the LSN
          upto which write and flush has taken place. Under a race condition
          it can fall behind log_sys->flushed_to_disk_lsn which is accurate.
          Besides written_to_all_lsn is redundant as currently InnoDB supports
          only one log group.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1977
        committer: marko
        timestamp: Thu 2010-01-14 13:43:37 +0000
        message:
          branches/zip: page_copy_rec_list_end(), page_copy_rec_list_start():
          Update PAGE_MAX_TRX_ID before attempting to compress the page.  This
          fixes Issue #382 (a debug assertion failure in page_zip_reorganize())
          and reduces the generated redo log.  There was no bug or crash in
          non-debug builds.
        ------------------------------------------------------------
        revno: 0.3.1976
        committer: marko
        timestamp: Wed 2010-01-13 20:38:53 +0000
        message:
          branches/zip: lock_rec_validate_page(): Only validate the record
          queues when the thread is not holding a space->latch.
          
          When UNIV_DEBUG is defined while UNIV_SYNC_DEBUG is not,
          latching order violations will still occur and deadlocks will be possible.
          
          sync_thread_levels_nonempty_gen(): Renamed from
          sync_thread_levels_empty_gen().  Return the violating latch or NULL
          instead of FALSE or TRUE, except that there will be a ut_error before
          the non-NULL return.
          
          sync_thread_levels_empty_gen(): A macro that negates the return value of
          sync_thread_levels_nonempty_gen().
          
          sync_thread_levels_contains(): New function, based on
          sync_thread_levels_nonempty_gen().
          
          This should fix Issue #441.
        ------------------------------------------------------------
        revno: 0.3.1975
        committer: marko
        timestamp: Wed 2010-01-13 15:43:44 +0000
        message:
          branches/zip: row_sel_get_clust_rec_for_mysql(): On the READ UNCOMMITTED
          isolation level, do not attempt to access a clustered index record
          that has been marked for deletion.  This fixes Issue #433.
          
          Approved by Heikki over the IM.
        ------------------------------------------------------------
        revno: 0.3.1974
        committer: marko
        timestamp: Wed 2010-01-13 15:20:10 +0000
        message:
          branches/zip: Treat mem_hash_mutex specially in mutex_free(),
          and explicitly free mem_hash_mutex in mem_close().
          This fixes the breakage of UNIV_MEM_DEBUG that was filed as Issue #434.
        ------------------------------------------------------------
        revno: 0.3.1973
        committer: marko
        timestamp: Wed 2010-01-13 15:15:29 +0000
        message:
          branches/zip: buf_pool_drop_hash_index(): Check block->page.state
          before checking block->is_hashed, because the latter may be uninitialized
          right after server startup.
        ------------------------------------------------------------
        revno: 0.3.1972
        committer: marko
        timestamp: Wed 2010-01-13 11:19:00 +0000
        message:
          branches/zip: dict_sys_tables_get_flags(), dict_create_sys_*_tuple():
          Add some const qualifiers and comments.
        ------------------------------------------------------------
        revno: 0.3.1971
        committer: marko
        timestamp: Tue 2010-01-12 13:36:14 +0000
        message:
          branches/zip: row_sel_sec_rec_is_for_clust_rec(): Document the return value
          more accurately.
        ------------------------------------------------------------
        revno: 0.3.1970
        committer: marko
        timestamp: Tue 2010-01-12 11:47:11 +0000
        message:
          branches/zip: Merge revisions 6350:6424 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6421 | jyang | 2010-01-12 07:59:16 +0200 (Tue, 12 Jan 2010) | 8 lines
            Changed paths:
               M /branches/5.1/row/row0mysql.c
          
            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
            ------------------------------------------------------------------------
            r6422 | marko | 2010-01-12 11:34:27 +0200 (Tue, 12 Jan 2010) | 3 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/handler/ha_innodb.h
          
            branches/5.1: Non-functional change:
            Make innobase_get_int_col_max_value() a static function.
            It does not access any fields of class ha_innobase.
            ------------------------------------------------------------------------
            r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/handler/ha_innodb.h
          
            branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
            the maximum auto-increment value from the table if
            innodb_force_recovery is set to at least 4, so that writes are
            disabled. (Bug #46193)
          
            innobase_get_int_col_max_value(): Move the function definition before
            ha_innobase::innobase_initialize_autoinc(), because that function now
            calls this function.
          
            ha_innobase::innobase_initialize_autoinc(): Change the return type to
            void.  Do not attempt to read the maximum auto-increment value from
            the table if innodb_force_recovery is set to at least 4.  Issue
            ER_AUTOINC_READ_FAILED to the client when the auto-increment value
            cannot be read.
          
            rb://144 by Sunny, revised by Marko
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1969
        committer: marko
        timestamp: Mon 2009-12-28 13:39:19 +0000
        message:
          branches/zip: dict_index_add_to_cache(): Always free the index object,
          also when returning DB_CORRUPTION.
        ------------------------------------------------------------
        revno: 0.3.1968
        committer: marko
        timestamp: Sat 2009-12-26 19:06:31 +0000
        message:
          branches/zip: ibuf_bitmap_get_map_page():
          Define a wrapper macro that passes __FILE__, __LINE__ of the caller
          to buf_page_get_gen().
          This will ease the diagnosis of the likes of Issue #135.
        ------------------------------------------------------------
        revno: 0.3.1967
        committer: marko
        timestamp: Tue 2009-12-22 10:33:01 +0000
        message:
          branches/zip: Merge revisions 6206:6350 from branches/5.1,
          except r6347, r6349, r6350 which were committed separately
          to both branches, and r6310, which was backported from zip to 5.1.
          
            ------------------------------------------------------------------------
            r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 3 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1: Non-functional change, fix formatting.
            ------------------------------------------------------------------------
            r6230 | sunny | 2009-11-24 23:52:43 +0200 (Tue, 24 Nov 2009) | 3 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
          
            branches/5.1: Fix autoinc failing test results.
            (this should be skipped when merging 5.1 into zip)
            ------------------------------------------------------------------------
            r6231 | sunny | 2009-11-25 10:26:27 +0200 (Wed, 25 Nov 2009) | 7 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
               M /branches/5.1/row/row0sel.c
          
            branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.
          
            We use the appropriate function to read the column value for non-integer
            autoinc column types, namely float and double.
          
            rb://208. Approved by Marko.
            ------------------------------------------------------------------------
            r6232 | sunny | 2009-11-25 10:27:39 +0200 (Wed, 25 Nov 2009) | 2 lines
            Changed paths:
               M /branches/5.1/row/row0sel.c
          
            branches/5.1: This is an interim fix, fix white space errors.
            ------------------------------------------------------------------------
            r6233 | sunny | 2009-11-25 10:28:35 +0200 (Wed, 25 Nov 2009) | 2 lines
            Changed paths:
               M /branches/5.1/include/mach0data.h
               M /branches/5.1/include/mach0data.ic
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
               M /branches/5.1/row/row0sel.c
          
            branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
            ------------------------------------------------------------------------
            r6234 | sunny | 2009-11-25 10:29:03 +0200 (Wed, 25 Nov 2009) | 2 lines
            Changed paths:
               M /branches/5.1/row/row0sel.c
          
            branches/5.1: This is an interim fix, fix whitepsace issues.
            ------------------------------------------------------------------------
            r6235 | sunny | 2009-11-26 01:14:42 +0200 (Thu, 26 Nov 2009) | 9 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
          
            branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.
          
            This bug is similiar to the negative autoinc filter patch from earlier,
            with the additional handling of filtering out the negative column values
            set explicitly by the user.
          
            rb://184
            Approved by Heikki.
            ------------------------------------------------------------------------
            r6242 | vasil | 2009-11-27 22:07:12 +0200 (Fri, 27 Nov 2009) | 4 lines
            Changed paths:
               M /branches/5.1/export.sh
          
            branches/5.1:
          
            Minor changes to support plugin snapshots.
            ------------------------------------------------------------------------
            r6306 | calvin | 2009-12-14 15:12:46 +0200 (Mon, 14 Dec 2009) | 5 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
          
            branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
            because of different case mode
          
            There is no change to the InnoDB code, only to fix test case by
            changing "T1" to "t1".
            ------------------------------------------------------------------------
            r6324 | jyang | 2009-12-17 06:54:24 +0200 (Thu, 17 Dec 2009) | 8 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/lock0lock.h
               M /branches/5.1/include/srv0srv.h
               M /branches/5.1/lock/lock0lock.c
               M /branches/5.1/log/log0log.c
               M /branches/5.1/srv/srv0srv.c
               M /branches/5.1/srv/srv0start.c
          
            branches/5.1: Fix bug #47814 - Diagnostics are frequently not
            printed after a long lock wait in InnoDB. Separate out the
            lock wait timeout check thread from monitor information
            printing thread.
          
            rb://200 Approved by Marko.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1966
        committer: marko
        timestamp: Tue 2009-12-22 09:11:18 +0000
        message:
          branches/zip: Remove an obsolete declaration of LOCK_thread_count.
        ------------------------------------------------------------
        revno: 0.3.1965
        committer: marko
        timestamp: Tue 2009-12-22 09:04:34 +0000
        message:
          branches/zip: Merge a change from MySQL:
          ------------------------------------------------------------
          revno: 3236
          committer: Satya B <satya.bn@sun.com>
          branch nick: mysql-5.1-bugteam
          timestamp: Tue 2009-12-01 17:48:57 +0530
          message:
            merge to mysql-5.1-bugteam
              ------------------------------------------------------------
              revno: 3234.1.1
              committer: Gleb Shchepa <gshchepa@mysql.com>
              branch nick: mysql-5.1-bugteam
              timestamp: Tue 2009-12-01 14:38:40 +0400
              message:
                Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
          
                manual merge 5.0-->5.1, updating InnoDB plugin.
              ------------------------------------------------------------
              revno: 1810.3968.13
              committer: Gleb Shchepa <gshchepa@mysql.com>
              branch nick: mysql-5.0-bugteam
              timestamp: Tue 2009-12-01 14:24:44 +0400
              message:
                Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
          
                The bug 38816 changed the lock that protects THD::query from
                LOCK_thread_count to LOCK_thd_data, but didn't update the associated
                InnoDB functions.
          
                1. The innobase_mysql_prepare_print_arbitrary_thd and the
                innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
                removed, since now we have a per-thread mutex: now we don't need to wrap
                several inter-thread access tries to THD::query with a single global
                LOCK_thread_count lock, so we can simplify the code.
          
                2. The innobase_mysql_print_thd function has been modified to lock
                LOCK_thd_data in direct way.
        ------------------------------------------------------------
        revno: 0.3.1964
        committer: marko
        timestamp: Mon 2009-12-21 10:03:25 +0000
        message:
          branches/zip: recv_recovery_from_checkpoint_finish():
          Revert a change that was accidentally committed in r6345.
        ------------------------------------------------------------
        revno: 0.3.1963
        committer: marko
        timestamp: Mon 2009-12-21 08:46:14 +0000
        message:
          branches/zip: recv_scan_log_recs(): Non-functional change: Replace a
          debug assertion ut_ad(len > 0) with ut_ad(len >= OS_FILE_LOG_BLOCK_SIZE).
          
          This change is only for readability, for Issue #428.  Another
          assertion on len being an integer multiple of OS_FILE_LOG_BLOCK_SIZE
          already ensured together with the old ut_ad(len > 0) that actually len
          must be at least OS_FILE_LOG_BLOCK_SIZE.
        ------------------------------------------------------------
        revno: 0.3.1962
        committer: marko
        timestamp: Wed 2009-12-16 14:16:33 +0000
        message:
          branches/zip: row_merge_drop_temp_indexes(): Revert a hack to
          transaction isolation level that was made unnecessary by r5826 (Issue #337).
          When this function is called, any active data dictionary transaction
          should have been rolled back.
        ------------------------------------------------------------
        revno: 0.3.1961
        committer: marko
        timestamp: Wed 2009-12-16 08:10:36 +0000
        message:
          branches/zip: fil_close(): Add #ifndef UNIV_HOTBACKUP around a debug
          assertion on mutex.magic_n.  InnoDB Hot Backup is a single-threaded
          program and does not contain mutexes.  This change allows InnoDB Hot
          Backup to be compiled with UNIV_DEBUG.
          
          Suggested by Michael Izioumtchenko.
        ------------------------------------------------------------
        revno: 0.3.1960
        committer: marko
        timestamp: Tue 2009-12-15 12:05:50 +0000
        message:
          branches/zip: lock_rec_insert_check_and_lock(): Avoid casting away constness.
          Use page_rec_get_next_const() instead. This silences a gcc 4.2.4 warning.
          Reported by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1959
        committer: marko
        timestamp: Mon 2009-12-14 11:03:57 +0000
        message:
          branches/zip: row_undo_mod_del_unmark_sec_and_undo_update(): Add a missing
          const qualifier.
        ------------------------------------------------------------
        revno: 0.3.1958
        committer: marko
        timestamp: Wed 2009-12-09 07:51:00 +0000
        message:
          branches/zip: row_upd_copy_columns(): Remove redundant code that was
          accidentally added in r1591, which introduced dfield_t::ext in order
          to make the merge sort of fast index creation support externally
          stored columns.
          
          Initially, I tried to allocate the bit for dfield_t::ext from
          dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
          to something that would fit in it.  Then I decided that it would be
          too risky.  The redundant check was part of the mapping.  The
          condition may have been dfield_is_null() initially.
          
          This is similar to the redundant code in row_sel_fetch_columns() that
          was noticed by Sergey Petrunya on the MySQL internals list and removed
          in r6285.  As far as I can tell, there are no redundant UNIV_SQL_NULL
          assignments remaining after this change.
        ------------------------------------------------------------
        revno: 0.3.1957
        committer: marko
        timestamp: Wed 2009-12-09 07:24:50 +0000
        message:
          branches/zip: row_sel_fetch_columns(): Remove redundant code that was
          accidentally added in r1591, which introduced dfield_t::ext in order
          to make the merge sort of fast index creation support externally
          stored columns,
          
          Initially, I tried to allocate the bit for dfield_t::ext from
          dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
          to something that would fit in it.  Then I decided that it would be
          too risky.  The redundant check was part of the mapping.  The
          condition may have been dfield_is_null() initially.
          
          This redundant code was noticed by Sergey Petrunya on the MySQL
          internals list.
        ------------------------------------------------------------
        revno: 0.3.1956
        committer: marko
        timestamp: Tue 2009-12-08 09:13:36 +0000
        message:
          branches/zip: fsp0fsp.c: Add some missing in/out and const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.1955
        committer: pekka
        timestamp: Thu 2009-12-03 16:32:47 +0000
        message:
          branches/zip: Minor changes which allow build with UNIV_HOTBACKUP
          defined to succeed:
          
          include/trx0sys.h: Allow Hot Backup build to see some
                             TRX_SYS_DOUBLEWRITE_... macros.
          trx/trx0sys.c:     Exclude trx_sys_close() function from Hot Backup build.
          log/log0recv.[ch]: Exclude recv_sys_var_init() function from Hot Backup build.
          
          This change should not affect !UNIV_HOTBACKUP build.
        ------------------------------------------------------------
        revno: 0.3.1954
        committer: marko
        timestamp: Thu 2009-12-03 12:47:12 +0000
        message:
          branches/zip: dict_table_check_for_dup_indexes(): Assert that the
          data dictionary mutex is being held while table->indexes is accessed.
          This is already the case.
          
          Currently, only dict_table_get_next_index() and dict_table_get_first_index()
          are being invoked without holding dict_sys->mutex.
        ------------------------------------------------------------
        revno: 0.3.1953
        committer: marko
        timestamp: Wed 2009-12-02 09:46:05 +0000
        message:
          branches/zip: Revert changes that were accidentally committed in r6271.
        ------------------------------------------------------------
        revno: 0.3.1952
        committer: marko
        timestamp: Wed 2009-12-02 09:43:49 +0000
        message:
          branches/zip: ChangeLog: Document that since r6270, the zlib version number
          will be displayed at start-up.
        ------------------------------------------------------------
        revno: 0.3.1951
        committer: marko
        timestamp: Wed 2009-12-02 09:36:47 +0000
        message:
          branches/zip: innobase_start_or_create_for_mysql(): Log the zlib version.
        ------------------------------------------------------------
        revno: 0.3.1950
        committer: marko
        timestamp: Wed 2009-12-02 09:35:22 +0000
        message:
          branches/zip: innobase_start_or_create_for_mysql(): UNIV_IBUF_DEBUG
          should not break crash recovery, but UNIV_IBUF_COUNT_DEBUG will.
        ------------------------------------------------------------
        revno: 0.3.1949
        committer: vasil
        timestamp: Tue 2009-12-01 14:19:44 +0000
        message:
          branches/zip: Add ChangeLog entry for the release of 1.0.6.
        ------------------------------------------------------------
        revno: 0.3.1948
        committer: vasil
        timestamp: Tue 2009-12-01 12:49:05 +0000
        message:
          branches/zip: Increment version number from 1.0.6 to 1.0.7
          
          1.0.6 has been released
        ------------------------------------------------------------
        revno: 0.3.1947
        committer: marko
        timestamp: Mon 2009-11-30 10:50:11 +0000
        message:
          branches/zip: Suppress errors about non-found temporary tables.
          Write the is_temp flag to SYS_TABLES.MIX_LEN.
          
          dict_table_t::flags: Add a flag for is_temporary, DICT_TF2_TEMPORARY.
          Unlike other flags, this will not be written to the tablespace flags
          or SYS_TABLES.TYPE, but only to SYS_TABLES.MIX_LEN.
          
          dict_build_table_def_step(): Only pass DICT_TF_BITS to tablespaces.
          
          dict_check_tablespaces_and_store_max_id(), dict_load_table():
          Suppress errors about temporary tables not being found.
          
          dict_create_sys_tables_tuple(): Write the DICT_TF2_TEMPORARY flag
          to SYS_TABLES.MIX_LEN.
          
          fil_space_create(), fil_create_new_single_table_tablespace(): Add assertions
          about space->flags.
          
          row_drop_table_for_mysql(): Do not complain about non-found temporary tables.
          
          rb://160 approved by Heikki Tuuri.  This addresses the second part of
          Bug #41609 Crash recovery does not work for InnoDB temporary tables.
        ------------------------------------------------------------
        revno: 0.3.1946
        committer: marko
        timestamp: Mon 2009-11-30 10:19:50 +0000
        message:
          branches/zip: ChangeLog: Document r4922 that was forgotten.
        ------------------------------------------------------------
        revno: 0.3.1945
        committer: vasil
        timestamp: Fri 2009-11-20 21:39:48 +0000
        message:
          branches/zip:
          
          Whitespace fixup.
        ------------------------------------------------------------
        revno: 0.3.1944
        committer: vasil
        timestamp: Fri 2009-11-20 08:49:24 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for c6207.
        ------------------------------------------------------------
        revno: 0.3.1943
        committer: vasil
        timestamp: Fri 2009-11-20 08:19:14 +0000
        message:
          branches/zip: Merge r6198:6206 from branches/5.1:
          
          (r6203 was skipped as it is already in branches/zip)
          
            ------------------------------------------------------------------------
            r6200 | vasil | 2009-11-19 12:14:23 +0200 (Thu, 19 Nov 2009) | 4 lines
            Changed paths:
               M /branches/5.1/btr/btr0btr.c
            
            branches/5.1:
            
            White space fixup - indent under the opening (
            
            ------------------------------------------------------------------------
            r6203 | jyang | 2009-11-19 15:12:22 +0200 (Thu, 19 Nov 2009) | 8 lines
            Changed paths:
               M /branches/5.1/btr/btr0btr.c
            
            branches/5.1: Use btr_free_root() instead of fseg_free() for
            the fix of bug #48469, because fseg_free() is not defined
            in the zip branch. And we could save one mini-trasaction started
            by fseg_free().
            
            Approved by Marko.
            
            
            ------------------------------------------------------------------------
            r6205 | jyang | 2009-11-20 07:55:48 +0200 (Fri, 20 Nov 2009) | 11 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: Add a special case to handle the Duplicated Key error
            and return DB_ERROR instead. This is to avoid a possible SIGSEGV
            by mysql error handling re-entering the storage layer for dup key
            info without proper table handle.
            This is to prevent a server crash when error situation in bug
            #45961 "DDL on partitioned innodb tables leaves data dictionary
            in an inconsistent state" happens.
            
            rb://157 approved by Sunny Bains.
            
            
            ------------------------------------------------------------------------
            r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 5 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: Fix a minor code formating issue for
            the parenthesis iplacement of the if condition in
            rename_table().
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1942
        committer: jyang
        timestamp: Thu 2009-11-19 13:01:00 +0000
        message:
          branches/zip: Function fseg_free() is no longer defined
          in branches/zip. To port fix for bug #48469 to zip,
          we can use btr_free_root() which frees the page,
          and also does not require mini-transaction.
          
          Approved by Marko.
        ------------------------------------------------------------
        revno: 0.3.1941
        committer: marko
        timestamp: Thu 2009-11-19 12:09:11 +0000
        message:
          branches/zip: ha_innobase::add_index(): Clarify the comment
          on orphaned tables when creating a primary key.
        ------------------------------------------------------------
        revno: 0.3.1940
        committer: vasil
        timestamp: Thu 2009-11-19 10:10:12 +0000
        message:
          branches/zip: Merge r6159:6198 from branches/5.1:
          
            ------------------------------------------------------------------------
            r6187 | jyang | 2009-11-18 05:27:30 +0200 (Wed, 18 Nov 2009) | 9 lines
            Changed paths:
               M /branches/5.1/btr/btr0btr.c
            
            branches/5.1: Fix bug #48469 "when innodb tablespace is
            configured too small, crash and corruption!". Function
            btr_create() did not check the return status of fseg_create(),
            and continue the index creation even there is no sufficient
            space.
            
            rb://205 Approved by Marko
            
            
            ------------------------------------------------------------------------
            r6188 | jyang | 2009-11-18 07:14:23 +0200 (Wed, 18 Nov 2009) | 8 lines
            Changed paths:
               M /branches/5.1/data/data0type.c
            
            branches/5.1: Fix bug #48526 "Data type for float and
            double is incorrectly reported in InnoDB table monitor".
            Certain datatypes are not printed correctly in
            dtype_print().
            
            rb://204 Approved by Marko.
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1939
        committer: vasil
        timestamp: Thu 2009-11-19 07:44:31 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r6197.
        ------------------------------------------------------------
        revno: 0.3.1938
        committer: calvin
        timestamp: Thu 2009-11-19 07:32:55 +0000
        message:
          branches/zip: merge the fix of bug#48317 (CMake file)
          
          Due to MySQL changes to the CMake, it is no longer able
          to build InnoDB plugin as a static library on Windows.
          The fix is proposed by Vlad of MySQL.
        ------------------------------------------------------------
        revno: 0.3.1937
        committer: vasil
        timestamp: Thu 2009-11-19 07:24:45 +0000
        message:
          branches/zip:
          
          Increment version number from 1.0.5 to 1.0.6 since 1.0.5 was just released
          by MySQL and we will soon release 1.0.6.
        ------------------------------------------------------------
        revno: 0.3.1936
        committer: marko
        timestamp: Wed 2009-11-18 09:36:18 +0000
        message:
          branches/zip: ha_innobase::add_index(): When creating the primary key
          and the table is being locked by another transaction,
          do not attempt to drop the table. (Bug #48782)
          
          Approved by Sunny Bains over IM
        ------------------------------------------------------------
        revno: 0.3.1935
        committer: vasil
        timestamp: Tue 2009-11-17 14:48:14 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r6185.
        ------------------------------------------------------------
        revno: 0.3.1934
        committer: marko
        timestamp: Tue 2009-11-17 14:44:20 +0000
        message:
          branches/zip: Report duplicate table names
          to the client connection, not to the error log.  This change will allow
          innodb-index.test to be re-enabled.  It was previously disabled, because
          mysql-test-run does not like output in the error log.
          
          row_create_table_for_mysql(): Do not output anything to the error log
          when reporting DB_DUPLICATE_KEY.  Let the caller report the error.
          Add a TODO comment that the dict_table_t object is apparently not freed
          when an error occurs.
          
          create_table_def(): Convert InnoDB table names to the character set
          of the client connection for reporting.  Use my_error(ER_WRONG_COLUMN_NAME)
          for reporting reserved column names.  Report my_error(ER_TABLE_EXISTS_ERROR)
          when row_create_table_for_mysql() returns DB_DUPLICATE_KEY.
          
          rb://206
        ------------------------------------------------------------
        revno: 0.3.1933
        committer: marko
        timestamp: Tue 2009-11-17 11:52:01 +0000
        message:
          branches/zip: innodb-index.test: Restore innodb_file_format_check.
        ------------------------------------------------------------
        revno: 0.3.1932
        committer: marko
        timestamp: Tue 2009-11-17 11:51:16 +0000
        message:
          branches/zip: Prepend loose_ to plugin-only mysql-test options.
        ------------------------------------------------------------
        revno: 0.3.1931
        committer: marko
        timestamp: Tue 2009-11-17 11:49:15 +0000
        message:
          branches/zip: Set svn:eol-style on mysql-test files.
        ------------------------------------------------------------
        revno: 0.3.1930
        committer: vasil
        timestamp: Tue 2009-11-17 10:21:41 +0000
        message:
          branches/zip:
          
          At the end of innodb-index.test: restore the environment as it was before
          the test was started to silence this warning:
          
            MTR's internal check of the test case 'main.innodb-index' 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-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
            mysqltest: Results saved in '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
            mysqltest: Connecting to server localhost:13000 (socket /tmp/autotest.sh-20091117_033000-zip.btyZwu/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-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-11-17 13:10:40.000000000 +0300
            +++ /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-11-17 13:10:54.000000000 +0300
            @@ -84,7 +84,7 @@
             INNODB_DOUBLEWRITE ON
             INNODB_FAST_SHUTDOWN 1
             INNODB_FILE_FORMAT Antelope
            -INNODB_FILE_FORMAT_CHECK Antelope
            +INNODB_FILE_FORMAT_CHECK Barracuda
             INNODB_FILE_PER_TABLE OFF
             INNODB_FLUSH_LOG_AT_TRX_COMMIT 1
             INNODB_FLUSH_METHOD
            
            mysqltest: Result content mismatch
            
            not ok
        ------------------------------------------------------------
        revno: 0.3.1929
        committer: marko
        timestamp: Tue 2009-11-17 08:19:34 +0000
        message:
          branches/zip: ha_innobase::change_active_index(): When the history is
          missing, report it to the client, not to the error log.
        ------------------------------------------------------------
        revno: 0.3.1928
        committer: calvin
        timestamp: Mon 2009-11-16 18:20:38 +0000
        message:
          branches/zip: add an entry to ChangeLog for r6065
        ------------------------------------------------------------
        revno: 0.3.1927
        committer: vasil
        timestamp: Mon 2009-11-16 18:07:39 +0000
        message:
          branches/zip:
          
          Wrap line at 78th char in the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1926
        committer: marko
        timestamp: Thu 2009-11-12 13:49:08 +0000
        message:
          branches/zip: Allow CREATE INDEX to be interrupted.  (Issue #354)
          
          rb://183 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1925
        committer: calvin
        timestamp: Thu 2009-11-12 12:40:43 +0000
        message:
          branches/zip: add test case for bug#46676
          
          This crash is reproducible with InnoDB plugin 1.0.4 + MySQL 5.1.37.
          But no longer reproducible after MySQL 5.1.38 (with plugin 1.0.5).
          Add test case to catch future regression.
        ------------------------------------------------------------
        revno: 0.3.1924
        committer: calvin
        timestamp: Wed 2009-11-11 15:53:20 +0000
        message:
          branches/zip: Exclude thd_binlog_filter_ok() when building
          with older version of MySQL.
          
          thd_binlog_filter_ok() is introduced in MySQL 5.1.41. But the
          plugin can be built with MySQL prior to 5.1.41.
          
          Approved by Heikki (on IM).
        ------------------------------------------------------------
        revno: 0.3.1923
        committer: vasil
        timestamp: Wed 2009-11-11 14:00:12 +0000
        message:
          branches/zip:
          
          Add ChangeLog for r6157.
        ------------------------------------------------------------
        revno: 0.3.1922
        committer: vasil
        timestamp: Wed 2009-11-11 13:36:16 +0000
        message:
          branches/zip:
          
          Add changelog entry for r6160.
        ------------------------------------------------------------
        revno: 0.3.1921
        committer: vasil
        timestamp: Wed 2009-11-11 13:33:49 +0000
        message:
          branches/zip: Merge r6152:6159 from branches/5.1:
          
          (r6158 was skipped as an equivallent change has already been merged from MySQL)
          
            ------------------------------------------------------------------------
            r6154 | calvin | 2009-11-11 02:51:17 +0200 (Wed, 11 Nov 2009) | 17 lines
            Changed paths:
               M /branches/5.1/include/os0file.h
               M /branches/5.1/os/os0file.c
            
            branches/5.1: fix bug#3139: Mysql crashes: 'windows error 995'
            after several selects on a large DB
            
            During stress environment, Windows AIO may fail with error code
            ERROR_OPERATION_ABORTED. InnoDB does not handle the error, rather
            crashes. The cause of the error is unknown, but likely due to
            faulty hardware or driver.
            
            This patch introduces a new error code OS_FILE_OPERATION_ABORTED,
            which maps to Windows ERROR_OPERATION_ABORTED (995). When the error
            is detected during AIO, the InnoDB will issue a synchronous retry
            (read/write).
            
            This patch has been extensively tested by MySQL support.
            
            Approved by: Marko
            rb://196
            ------------------------------------------------------------------------
            r6158 | vasil | 2009-11-11 14:52:14 +0200 (Wed, 11 Nov 2009) | 37 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/handler/ha_innodb.h
            
            branches/5.1:
            
            Merge a change from MySQL:
            (this has been reviewed by Calvin and Marko, and Calvin says Luis has
            incorporated Marko's suggestions)
            
              ------------------------------------------------------------
              revno: 3092.5.1
              committer: Luis Soares <luis.soares@sun.com>
              branch nick: mysql-5.1-bugteam
              timestamp: Thu 2009-09-24 15:52:52 +0100
              message:
                BUG#42829: binlogging enabled for all schemas regardless of
                binlog-db-db / binlog-ignore-db
                      
                InnoDB will return an error if statement based replication is used
                along with transaction isolation level READ-COMMITTED (or weaker),
                even if the statement in question is filtered out according to the
                binlog-do-db rules set. In this case, an error should not be printed.
                      
                This patch addresses this issue by extending the existing check in
                external_lock to take into account the filter rules before deciding to
                print an error. Furthermore, it also changes decide_logging_format to
                take into consideration whether the statement is filtered out from
                binlog before decision is made.
              added:
                mysql-test/suite/binlog/r/binlog_stm_do_db.result
                mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
                mysql-test/suite/binlog/t/binlog_stm_do_db.test
              modified:
                sql/sql_base.cc
                sql/sql_class.cc
                storage/innobase/handler/ha_innodb.cc
                storage/innobase/handler/ha_innodb.h
                storage/innodb_plugin/handler/ha_innodb.cc
                storage/innodb_plugin/handler/ha_innodb.h
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1920
        committer: vasil
        timestamp: Wed 2009-11-11 13:13:01 +0000
        message:
          branches/zip:
          
          Merge a change from MySQL:
          (this has been reviewed by Calvin and Marko, and Calvin says Luis has
          incorporated Marko's suggestions)
          
            ------------------------------------------------------------
            revno: 3092.5.1
            committer: Luis Soares <luis.soares@sun.com>
            branch nick: mysql-5.1-bugteam
            timestamp: Thu 2009-09-24 15:52:52 +0100
            message:
              BUG#42829: binlogging enabled for all schemas regardless of
              binlog-db-db / binlog-ignore-db
                    
              InnoDB will return an error if statement based replication is used
              along with transaction isolation level READ-COMMITTED (or weaker),
              even if the statement in question is filtered out according to the
              binlog-do-db rules set. In this case, an error should not be printed.
                    
              This patch addresses this issue by extending the existing check in
              external_lock to take into account the filter rules before deciding to
              print an error. Furthermore, it also changes decide_logging_format to
              take into consideration whether the statement is filtered out from
              binlog before decision is made.
            added:
              mysql-test/suite/binlog/r/binlog_stm_do_db.result
              mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
              mysql-test/suite/binlog/t/binlog_stm_do_db.test
            modified:
              sql/sql_base.cc
              sql/sql_class.cc
              storage/innobase/handler/ha_innodb.cc
              storage/innobase/handler/ha_innodb.h
              storage/innodb_plugin/handler/ha_innodb.cc
              storage/innodb_plugin/handler/ha_innodb.h
        ------------------------------------------------------------
        revno: 0.3.1919
        committer: jyang
        timestamp: Wed 2009-11-11 12:27:09 +0000
        message:
          branches/zip: Fix an issue that a local variable defined
          in innodb_file_format_check_validate() is being referenced
          across function in innodb_file_format_check_update().
          In addition, fix "set global innodb_file_format_check =
          DEFAULT" call.
          Bug #47167: "set global innodb_file_format_check" cannot
          set value by User-Defined Variable."
          rb://169 approved by Sunny Bains and Marko.
        ------------------------------------------------------------
        revno: 0.3.1918
        committer: vasil
        timestamp: Tue 2009-11-10 13:33:22 +0000
        message:
          branches/zip: Merge r6125:6152 from branches/5.1:
          
          (everything except the last white-space change was skipped as it is already
          in branches/zip)
          
            ------------------------------------------------------------------------
            r6127 | vasil | 2009-10-30 11:18:25 +0200 (Fri, 30 Oct 2009) | 18 lines
            Changed paths:
               M /branches/5.1/Makefile.am
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1:
            
            Backport c6121 from branches/zip:
            
              ------------------------------------------------------------------------
              r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
              Changed paths:
                 M /branches/zip/mysql-test/innodb-autoinc.result
              
              branches/zip: This test has been problematic for sometime now. The underlying
              bug is that the data dictionaries get out of sync. In the AUTOINC code we
              try and apply salve to the symptoms. In the past MySQL made some unrelated
              change and the dictionaries stopped getting out of sync and this test started
              to fail. Now, it seems they have reverted that changed and the test is
              passing again. I suspect this is not he last time that this test will change.
              
              ------------------------------------------------------------------------
            
            ------------------------------------------------------------------------
            r6129 | vasil | 2009-10-30 17:14:22 +0200 (Fri, 30 Oct 2009) | 4 lines
            Changed paths:
               M /branches/5.1/Makefile.am
            
            branches/5.1:
            
            Revert a change to Makefile.am that sneaked unnoticed in c6127.
            
            ------------------------------------------------------------------------
            r6136 | marko | 2009-11-04 12:28:10 +0200 (Wed, 04 Nov 2009) | 15 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/ha_prototypes.h
               M /branches/5.1/ut/ut0ut.c
            
            branches/5.1: Port r6134 from branches/zip:
            
              ------------------------------------------------------------------------
              r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines
            
              branches/zip: innobase_convert_identifier(): Convert table names with
              explain_filename() to address Bug #32430: 'show innodb status'
              causes errors Invalid (old?) table or database name in logs.
            
              rb://134 approved by Sunny Bains
              ------------------------------------------------------------------------
            
            innobase_print_identifier(): Replace with innobase_convert_name().
            
            innobase_convert_identifier(): New function, called by innobase_convert_name().
            ------------------------------------------------------------------------
            r6149 | vasil | 2009-11-09 11:15:01 +0200 (Mon, 09 Nov 2009) | 5 lines
            Changed paths:
               M /branches/5.1/CMakeLists.txt
            
            branches/5.1:
            
            Followup to r5700: Adjust the changes so they are the same as in the BZR
            repository.
            
            ------------------------------------------------------------------------
            r6150 | vasil | 2009-11-09 11:43:31 +0200 (Mon, 09 Nov 2009) | 58 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Merge a part of r2911.5.5 from MySQL:
            (the other part of this was merged in c5700)
            
              ------------------------------------------------------------
              revno: 2911.5.5
              committer: Vladislav Vaintroub <vvaintroub@mysql.com>
              branch nick: 5.1-innodb_plugin
              timestamp: Wed 2009-06-10 10:59:49 +0200
              message:
                Backport WL#3653 to 5.1 to enable bundled innodb plugin.
                Remove custom DLL loader code from innodb plugin code, use
                symbols exported from mysqld.
              removed:
                storage/innodb_plugin/handler/handler0vars.h
                storage/innodb_plugin/handler/win_delay_loader.cc
              added:
                storage/mysql_storage_engine.cmake
                win/create_def_file.js
              modified:
                CMakeLists.txt
                include/m_ctype.h
                include/my_global.h
                include/my_sys.h
                include/mysql/plugin.h
                libmysqld/CMakeLists.txt
                mysql-test/mysql-test-run.pl
                mysql-test/t/plugin.test
                mysql-test/t/plugin_load-master.opt
                mysys/charset.c
                sql/CMakeLists.txt
                sql/handler.h
                sql/mysql_priv.h
                sql/mysqld.cc
                sql/sql_class.cc
                sql/sql_class.h
                sql/sql_list.h
                sql/sql_profile.h
                storage/Makefile.am
                storage/archive/CMakeLists.txt
                storage/blackhole/CMakeLists.txt
                storage/csv/CMakeLists.txt
                storage/example/CMakeLists.txt
                storage/federated/CMakeLists.txt
                storage/heap/CMakeLists.txt
                storage/innobase/CMakeLists.txt
                storage/innobase/handler/ha_innodb.cc
                storage/innodb_plugin/CMakeLists.txt
                storage/innodb_plugin/handler/ha_innodb.cc
                storage/innodb_plugin/handler/handler0alter.cc
                storage/innodb_plugin/handler/i_s.cc
                storage/innodb_plugin/plug.in
                storage/myisam/CMakeLists.txt
                storage/myisammrg/CMakeLists.txt
                win/Makefile.am
                win/configure.js
            
            ------------------------------------------------------------------------
            r6152 | vasil | 2009-11-10 15:30:20 +0200 (Tue, 10 Nov 2009) | 4 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            White space fixup.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1917
        committer: marko
        timestamp: Wed 2009-11-04 13:24:28 +0000
        message:
          branches/zip: dict_index_too_big_for_undo(): Correct a typo.
        ------------------------------------------------------------
        revno: 0.3.1916
        committer: marko
        timestamp: Wed 2009-11-04 07:57:29 +0000
        message:
          branches/zip: innobase_convert_identifier(): Convert table names with
          explain_filename() to address Bug #32430: 'show innodb status'
          causes errors Invalid (old?) table or database name in logs.
          
          rb://134 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1915
        committer: marko
        timestamp: Mon 2009-11-02 09:42:56 +0000
        message:
          branches/zip: Free all resources at shutdown. Set pointers to NULL, so
          that Valgrind will not complain about freed data structures that are
          reachable via pointers.  This addresses Bug #45992 and Bug #46656.
          
          This patch is mostly based on changes copied from branches/embedded-1.0,
          mainly c5432, c3439, c3134, c2994, c2978, but also some other code was
          copied.  Some added cleanup code is specific to MySQL/InnoDB.
          
          rb://199 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1914
        committer: vasil
        timestamp: Fri 2009-10-30 08:36:07 +0000
        message:
          branches/zip: Merge r6112:6125 from branches/5.1:
          
          (skipping r6122 and r6123, Jimmy says these are already present and need
          not be merged):
          
            ------------------------------------------------------------------------
            r6122 | jyang | 2009-10-30 05:18:38 +0200 (Fri, 30 Oct 2009) | 7 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb_bug44369.result
               M /branches/5.1/mysql-test/innodb_bug44369.test
               M /branches/5.1/mysql-test/innodb_bug46000.result
               M /branches/5.1/mysql-test/innodb_bug46000.test
            
            branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
            for push_warning_printf() call in innodb.
            Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
            
            rb://170 approved by Marko.
            
            
            ------------------------------------------------------------------------
            r6123 | jyang | 2009-10-30 05:43:06 +0200 (Fri, 30 Oct 2009) | 8 lines
            Changed paths:
               M /branches/5.1/os/os0proc.c
            
            branches/5.1: In os_mem_alloc_large(), if we fail to attach
            the shared memory, reset memory pointer ptr to NULL, and
            allocate memory from conventional pool. This is a port
            from branches/zip.
            Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
            rb://198  Approved by: Marko
            
            
            ------------------------------------------------------------------------
            r6125 | vasil | 2009-10-30 10:31:23 +0200 (Fri, 30 Oct 2009) | 4 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            White-space fixup.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1913
        committer: jyang
        timestamp: Fri 2009-10-30 08:02:31 +0000
        message:
          branches/zip: Correct the bug number for -r6109 change
          from # 48273 to #48237
        ------------------------------------------------------------
        revno: 0.3.1912
        committer: sunny
        timestamp: Thu 2009-10-29 23:42:11 +0000
        message:
          branches/zip: This test has been problematic for sometime now. The underlying
          bug is that the data dictionaries get out of sync. In the AUTOINC code we
          try and apply salve to the symptoms. In the past MySQL made some unrelated
          change and the dictionaries stopped getting out of sync and this test started
          to fail. Now, it seems they have reverted that changed and the test is
          passing again. I suspect this is not he last time that this test will change.
        ------------------------------------------------------------
        revno: 0.3.1911
        committer: vasil
        timestamp: Thu 2009-10-29 16:43:51 +0000
        message:
          branches/zip:
          
          * Add ChangeLog entries for latest changes
          * Obey alphabetical order in the list of the files
          * White-space fixup
        ------------------------------------------------------------
        revno: 0.3.1910
        committer: vasil
        timestamp: Thu 2009-10-29 16:15:50 +0000
        message:
          branches/zip: Merge r5912:6112 from branches/5.1:
          
          (after this merge the innodb-autoinc test starts to fail, but
          I commit anyway because it would be easier to investigate the
          failure this way)
          
            ------------------------------------------------------------------------
            r5952 | calvin | 2009-09-22 19:45:07 +0300 (Tue, 22 Sep 2009) | 7 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
            
            For embedded server, MySQL may pass in full path, which is
            currently disallowed. It is needed to relax the condition by
            accepting full paths in the embedded case.
            
            Approved by: Heikki (on IM)
            ------------------------------------------------------------------------
            r6032 | vasil | 2009-10-01 15:55:49 +0300 (Thu, 01 Oct 2009) | 8 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Fix Bug#38996 Race condition in ANALYZE TABLE
            
            by serializing ANALYZE TABLE inside InnoDB.
            
            Approved by: Heikki (rb://175)
            
            ------------------------------------------------------------------------
            r6045 | jyang | 2009-10-08 02:27:08 +0300 (Thu, 08 Oct 2009) | 7 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               A /branches/5.1/mysql-test/innodb_bug47777.result
               A /branches/5.1/mysql-test/innodb_bug47777.test
            
            branches/5.1: Fix bug #47777. Treat the Geometry data same as
            Binary BLOB in ha_innobase::store_key_val_for_row(), since the
            Geometry data is stored as Binary BLOB in Innodb.
            
            Review: rb://180 approved by Marko Makela.
            
            
            ------------------------------------------------------------------------
            r6051 | sunny | 2009-10-12 07:05:00 +0300 (Mon, 12 Oct 2009) | 6 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: Ignore negative values supplied by the user when calculating the
            next value to store in dict_table_t. Setting autoincrement columns top negative
            values is undefined behavior and this change should bring the behavior of
            InnoDB closer to what users expect. Added several tests to check.
            rb://162
            
            ------------------------------------------------------------------------
            r6052 | sunny | 2009-10-12 07:09:56 +0300 (Mon, 12 Oct 2009) | 4 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
            the test results too.
            rb://164
            
            ------------------------------------------------------------------------
            r6053 | sunny | 2009-10-12 07:37:49 +0300 (Mon, 12 Oct 2009) | 6 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: Copy the maximum AUTOINC value from the old table to the new
            table when MySQL does a CREATE INDEX ON T. This is required because MySQL
            does a table copy, rename and drops the old table.
            Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
            rb://168
            
            ------------------------------------------------------------------------
            r6076 | vasil | 2009-10-14 19:30:12 +0300 (Wed, 14 Oct 2009) | 4 lines
            Changed paths:
               M /branches/5.1/row/row0mysql.c
            
            branches/5.1:
            
            Fix typo.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1909
        committer: calvin
        timestamp: Thu 2009-10-29 14:21:15 +0000
        message:
          branches/zip: consideration for icc compilers
          
          Proposed by MySQL, and approved by Marko.
        ------------------------------------------------------------
        revno: 0.3.1908
        committer: marko
        timestamp: Thu 2009-10-29 11:04:11 +0000
        message:
          branches/zip: Fix corruption of buf_pool->LRU_old and improve debug assertions.
          This was reported as Issue #381.
          
          buf_page_set_old(): Assert that blocks may only be set old if
          buf_pool->LRU_old is initialized and buf_pool->LRU_old_len is nonzero.
          Assert that buf_pool->LRU_old points to the block at the old/new boundary.
          
          buf_LRU_old_adjust_len(): Invoke buf_page_set_old() after adjusting
          buf_pool->LRU_old and buf_pool->LRU_old_len, in order not to violate
          the added assertions.
          
          buf_LRU_old_init(): Replace buf_page_set_old() with a direct
          assignment to bpage->old, because these loops that initialize all the
          blocks would temporarily violate the assertions about
          buf_pool->LRU_old.
          
          buf_LRU_remove_block(): When setting buf_pool->LRU_old = NULL, also
          clear all bpage->old flags and set buf_pool->LRU_old_len = 0.
          
          buf_LRU_add_block_to_end_low(), buf_LRU_add_block_low(): Move the
          buf_page_set_old() call later in order not to violate the debug
          assertions.  If buf_pool->LRU_old is NULL, set old=FALSE.
          
          buf_LRU_free_block(): Replace the UNIV_LRU_DEBUG assertion with a
          dummy buf_page_set_old() call that performs more thorough checks.
          
          buf_LRU_validate(): Do not tolerate garbage in buf_pool->LRU_old_len
          even if buf_pool->LRU_old is NULL.  Check that bpage->old is monotonic.
          
          buf_relocate(): Make the UNIV_LRU_DEBUG checks stricter.
          
          buf0buf.h: Revise the documentation of buf_page_t::old and
          buf_pool_t::LRU_old_len.
        ------------------------------------------------------------
        revno: 0.3.1907
        committer: marko
        timestamp: Thu 2009-10-29 10:44:57 +0000
        message:
          branches/zip: Makefile.am (INCLUDES): Merge a change from MySQL:
          Use $(srcdir)/include instead of $(top_srcdir)/storage/innobase/include.
        ------------------------------------------------------------
        revno: 0.3.1906
        committer: jyang
        timestamp: Thu 2009-10-29 08:37:32 +0000
        message:
          branches/zip: In os_mem_alloc_large(), if we fail to attach
          the shared memory, reset memory pointer ptr to NULL, and
           allocate memory from conventional pool.
          Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
          rb://198  Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1905
        committer: calvin
        timestamp: Thu 2009-10-29 05:58:04 +0000
        message:
          branches/zip: close file handle when building with UNIV_HOTBACKUP
          
          The change does not affect regular InnoDB engine. Confirmed by
          Marko.
        ------------------------------------------------------------
        revno: 0.3.1904
        committer: marko
        timestamp: Wed 2009-10-28 14:10:34 +0000
        message:
          branches/zip: buf_page_set_old(): Improve UNIV_LRU_DEBUG diagnostics
          in order to catch the buf_pool->LRU_old corruption reported in Issue #381.
          
          buf_LRU_old_init(): Set the property from the tail towards the front
          of the buf_pool->LRU list, in order not to trip the debug check.
        ------------------------------------------------------------
        revno: 0.3.1903
        committer: calvin
        timestamp: Tue 2009-10-27 22:05:52 +0000
        message:
          branches/zip: backport r3848 from 6.0 branch
          
          ----
              branches/6.0: innobase_start_or_create_for_mysql(): Make the 10 MB
              minimum tablespace limit independent of UNIV_PAGE_SIZE. (Bug #41490)
        ------------------------------------------------------------
        revno: 0.3.1902
        committer: marko
        timestamp: Mon 2009-10-26 13:46:18 +0000
        message:
          branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
          DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
          Valgrind warnings about uninitialized data.  (The warnings were
          harmless, because the fields would be initialized at a later stage.)
        ------------------------------------------------------------
        revno: 0.3.1901
        committer: marko
        timestamp: Mon 2009-10-26 07:32:23 +0000
        message:
          branches/zip: row_prebuilt_struct::prebuilts: Unused field, remove.
        ------------------------------------------------------------
        revno: 0.3.1900
        committer: jyang
        timestamp: Fri 2009-10-23 07:45:50 +0000
        message:
          branches/zip: Update test result with the WARN_LEVEL_ERROR
          to WARN_LEVEL_WARN change. This is the same result as
          submitted in rb://172 review, which approved by Sunny Bains
          and Marko.
        ------------------------------------------------------------
        revno: 0.3.1899
        committer: jyang
        timestamp: Thu 2009-10-22 02:51:07 +0000
        message:
          branches/zip: As a request from mysql, WARN_LEVEL_ERROR cannot
          be used for push_warning_* call any more. Switch to
          WARN_LEVEL_WARN. Bug #47233.
          rb://172 approved by Sunny Bains and Marko.
        ------------------------------------------------------------
        revno: 0.3.1898
        committer: jyang
        timestamp: Thu 2009-10-22 01:58:39 +0000
        message:
          branches/zip: Port bug #46000 related changes from 5.1 to zip
          branch. Due to different code path for creating index in zip
          branch comparing to 5.1), the index reserved name check function
          is extended to be used in ha_innobase::add_index().
          rb://190  Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1897
        committer: vasil
        timestamp: Mon 2009-10-19 12:06:09 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r6095.
        ------------------------------------------------------------
        revno: 0.3.1896
        committer: vasil
        timestamp: Mon 2009-10-19 12:04:59 +0000
        message:
          branches/zip:
          
          Fix Bug#47808 innodb_information_schema.test fails when run under valgrind
          
          by using the wait_until_rows_count macro that loops until the number of
          rows becomes 14 instead of sleep 0.1, which is obviously very fragile.
        ------------------------------------------------------------
        revno: 0.3.1895
        committer: vasil
        timestamp: Thu 2009-10-15 04:21:17 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r6080.
        ------------------------------------------------------------
        revno: 0.3.1894
        committer: sunny
        timestamp: Wed 2009-10-14 21:29:01 +0000
        message:
          branches/zip: Change page_mem_alloc_free() to inline.
          Fix Bug #47058 - Failure to compile innodb_plugin on solaris 10u7 + spro cc/CC 5.10
        ------------------------------------------------------------
        revno: 0.3.1893
        committer: inaam
        timestamp: Tue 2009-10-13 16:43:13 +0000
        message:
          branches/zip rb://182
          
          Call fsync() on datafiles after a batch of pages is written to disk
          even when skip_innodb_doublewrite is set.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1892
        committer: calvin
        timestamp: Tue 2009-10-13 14:23:35 +0000
        message:
          branches/zip: non-functional changes
          
          Changes from MySQL to fix build issue.
        ------------------------------------------------------------
        revno: 0.3.1891
        committer: vasil
        timestamp: Fri 2009-10-09 15:05:26 +0000
        message:
          branches/zip:
          
          Fix compilation warning in Hot Backup:
          
          innodb/fil/fil0fil.c: In function 'fil_load_single_table_tablespace':
          innodb/fil/fil0fil.c:3253: warning: format '%lld' expects type 'long long int', but argument 6 has type 'ib_int64_t'
        ------------------------------------------------------------
        revno: 0.3.1890
        committer: vasil
        timestamp: Fri 2009-10-09 04:42:55 +0000
        message:
          branches/zip:
          
          When scanning a directory readdir() is called and stat() after it,
          if a file is deleted between the two calls stat will fail and the
          whole precedure will fail. Change this behavior to continue with the
          next entry if stat() fails because of nonexistent file. This is
          transparent change as it will make it look as if the file was deleted
          before the readdir() call.
          
          This change is needed in order to fix
          https://svn.innodb.com/mantis/view.php?id=174
          in which we need to abort if os_file_readdir_next_file()
          encounters "real" errors.
          
          Approved by: Marko, Pekka (rb://177)
        ------------------------------------------------------------
        revno: 0.3.1889
        committer: pekka
        timestamp: Thu 2009-10-08 08:24:56 +0000
        message:
          branches/zip: Revert r6044 which added os_file_is_same() function
          (issue#186). This functionality is moved to Hot Backup source tree.
        ------------------------------------------------------------
        revno: 0.3.1888
        committer: pekka
        timestamp: Tue 2009-10-06 13:44:54 +0000
        message:
          branches/zip:
          Add os_file_is_same() function for Hot Backup (inside ifdef UNIV_HOTBACKUP).
          This is part of the fix for Issue #186.
          Note! The Windows implementation is incomplete.
        ------------------------------------------------------------
        revno: 0.3.1887
        committer: inaam
        timestamp: Mon 2009-10-05 13:45:35 +0000
        message:
          branches/zip  rb://176
          
          Do not invalidate buffer pool while an LRU batch is active. Added
          code to buf_pool_invalidate() to wait for the running batches to finish.
          
          This patch also resets the state of buf_pool struct at invalidation. This
          addresses the concern where buf_pool->freed_page_clock becomes non-zero
          because we read in a system tablespace page for file format info at
          startup.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1886
        committer: calvin
        timestamp: Thu 2009-10-01 19:19:46 +0000
        message:
          branches/zip: fix a typo in error message
          
          Reported as bug#47763.
        ------------------------------------------------------------
        revno: 0.3.1885
        committer: marko
        timestamp: Thu 2009-10-01 10:24:33 +0000
        message:
          branches/zip: Clean up after a crash during DROP INDEX.
          When InnoDB crashes while dropping an index, ensure that
          the index will be completely dropped during crash recovery.
          
          row_merge_drop_index(): Before dropping an index, rename the index to
          start with TEMP_INDEX_PREFIX_STR and commit the change, so that
          row_merge_drop_temp_indexes() will drop the index after crash
          recovery if the server crashes while dropping the index.
          
          fseg_inode_try_get(): New function, forked from fseg_inode_get().
          Return NULL if the file segment index node is free.
          
          fseg_inode_get(): Assert that the file segment index node is not free.
          
          fseg_free_step(): If the file segment index node is already free,
          print a diagnostic message and return TRUE.
          
          fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
          allocated-and-freed file segment index nodes can be better
          distinguished from uninitialized ones.
          
          This is rb://174, addressing Issue #348.
          
          Tested by restarting mysqld upon the completion of the added
          log_write_up_to() invocation below, during DROP INDEX.  The index was
          dropped after crash recovery, and re-issuing the DROP INDEX did not
          crash the server.
          
            Index: btr/btr0btr.c
            ===================================================================
            --- btr/btr0btr.c (revision 6026)
            +++ btr/btr0btr.c (working copy)
            @@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
             #include "ibuf0ibuf.h"
             #include "trx0trx.h"
            +#include "log0log.h"
             
             /*
             Latching strategy of the InnoDB B-tree
             --------------------------------------
            @@ -873,6 +874,8 @@ leaf_loop:
             
              goto leaf_loop;
              }
            +
            + log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
             top_loop:
              mtr_start(&mtr);
        ------------------------------------------------------------
        revno: 0.3.1884
        committer: calvin
        timestamp: Wed 2009-09-30 19:32:02 +0000
        message:
          branches/zip: non-functional changes
          
          Fix typo.
        ------------------------------------------------------------
        revno: 0.3.1883
        committer: marko
        timestamp: Wed 2009-09-30 12:55:23 +0000
        message:
          branches/zip: recv_no_log_write: New debug flag for tracking down
          Mantis Issue #347.  No modifications should be made to the database
          while recv_apply_hashed_log_recs() is about to complete.
        ------------------------------------------------------------
        revno: 0.3.1882
        committer: marko
        timestamp: Wed 2009-09-30 06:18:24 +0000
        message:
          branches/zip: Add some debug assertions for checking FSEG_MAGIC_N.
        ------------------------------------------------------------
        revno: 0.3.1881
        committer: vasil
        timestamp: Tue 2009-09-29 12:19:59 +0000
        message:
          branches/zip:
          
          Fix the year, should be 2009.
          
          Pointed by: Calvin
        ------------------------------------------------------------
        revno: 0.3.1880
        committer: vasil
        timestamp: Tue 2009-09-29 09:15:25 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for the release of 1.0.4.
        ------------------------------------------------------------
        revno: 0.3.1879
        committer: vasil
        timestamp: Tue 2009-09-29 07:09:52 +0000
        message:
          branches/zip:
          
          ChangeLog: wrap around 78th column, not earlier.
        ------------------------------------------------------------
        revno: 0.3.1878
        committer: marko
        timestamp: Mon 2009-09-28 12:03:58 +0000
        message:
          branches/zip: Remove an assertion failure when the InnoDB data dictionary
          is inconsistent with the MySQL .frm file.
          
          ha_innobase::index_read(): When the index cannot be found,
          return an error.
          
          ha_innobase::change_active_index(): When prebuilt->index == NULL,
          set also prebuilt->index_usable = FALSE.  This is not needed for
          correctness, because prebuilt->index_usable is only checked by
          row_search_for_mysql(), which requires prebuilt->index != NULL.
          
          This addresses Issue #349.  Approved by Heikki Tuuri over IM.
        ------------------------------------------------------------
        revno: 0.3.1877
        committer: marko
        timestamp: Mon 2009-09-28 11:46:02 +0000
        message:
          branches/zip: Address Issue #350 in comments.
          
          lock_rec_queue_validate(), lock_rec_queue_validate(): Note that
          this debug code may violate the latching order and cause deadlocks.
        ------------------------------------------------------------
        revno: 0.3.1876
        committer: marko
        timestamp: Mon 2009-09-28 07:52:25 +0000
        message:
          branches/zip: Do not write to PAGE_INDEX_ID after page creation,
          not even when restoring an uncompressed page after a compression failure.
          
          btr_page_reorganize_low(): On compression failure, do not restore
          those page header fields that should not be affected by the
          reorganization.  Instead, compare the fields.
          
          page_zip_decompress(): Add the parameter ibool all, for copying all
          page header fields.  Pass the parameter all=TRUE on block read
          completion, redo log application, and page_zip_validate(); pass
          all=FALSE in all other cases.
          
          page_zip_reorganize(): Do not restore the uncompressed page on
          failure.  It will be restored (to pre-modification state) by the
          caller anyway.
          
          rb://167, Issue #346
        ------------------------------------------------------------
        revno: 0.3.1875
        committer: marko
        timestamp: Mon 2009-09-28 07:33:59 +0000
        message:
          branches/zip: Try to prevent the reuse of tablespace identifiers after
          InnoDB has crashed during table creation.  Also, refuse to start if
          files with duplicate tablespace identifiers are encountered.
          
          fil_node_create(): Update fil_system->max_assigned_id.  This should
          prevent the reuse of a space->id when InnoDB does a full crash
          recovery and invokes fil_load_single_table_tablespaces().  Normally,
          fil_system->max_assigned_id is initialized from
          SELECT MAX(ID) FROM SYS_TABLES.
          
          fil_open_single_table_tablespace(): Return FALSE when
          fil_space_create() fails.
          
          fil_load_single_table_tablespace(): Exit if fil_space_create() fails
          and innodb_force_recovery=0.
          
          rb://173 approved by Heikki Tuuri.  This addresses Issue #335.
        ------------------------------------------------------------
        revno: 0.3.1874
        committer: vasil
        timestamp: Mon 2009-09-28 06:10:29 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for c5988.
        ------------------------------------------------------------
        revno: 0.3.1873
        committer: calvin
        timestamp: Fri 2009-09-25 18:14:43 +0000
        message:
          branches/zip: fix bug#47055 unconditional exit(1) on ERROR_WORKING_SET_QUOTA
          1453 (0x5AD) for InnoDB backend
          
          When error ERROR_WORKING_SET_QUOTA or ERROR_NO_SYSTEM_RESOURCES
          occurs, yields for 100ms and retries the operation.
          
          Approved by: Heikki (on IM)
        ------------------------------------------------------------
        revno: 0.3.1872
        committer: marko
        timestamp: Thu 2009-09-24 09:16:10 +0000
        message:
          branches/zip: ha_innodb.cc: Define MYSQL_PLUGIN_IMPORT when necessary.
          This preprocessor symbol has been recently introduced in MySQL 5.1.
          The InnoDB Plugin should remain source compatible with MySQL 5.1.24
          and later.
        ------------------------------------------------------------
        revno: 0.3.1871
        committer: marko
        timestamp: Thu 2009-09-24 06:47:56 +0000
        message:
          branches/zip: Fix warnings and errors when UNIV_HOTBACKUP is defined.
        ------------------------------------------------------------
        revno: 0.3.1870
        committer: marko
        timestamp: Wed 2009-09-23 18:53:21 +0000
        message:
          branches/zip: recv_add_to_hash_table():
          Simplify obfuscated pointer arithmetics.
        ------------------------------------------------------------
        revno: 0.3.1869
        committer: marko
        timestamp: Wed 2009-09-23 18:44:52 +0000
        message:
          branches/zip: fil_node_open_file(): In InnoDB Hot Backup,
          determine the page size of single-file tablespaces before computing
          the file node size.  Otherwise, the space->size of compressed tablespaces
          would be computed with UNIV_PAGE_SIZE instead of key_block_size.
          This should fix Issue #313.
        ------------------------------------------------------------
        revno: 0.3.1868
        committer: marko
        timestamp: Wed 2009-09-23 12:03:51 +0000
        message:
          branches/zip: os_file_pwrite(): Make the code compile in InnoDB Hot Backup
          when the pwrite system call is not available.
        ------------------------------------------------------------
        revno: 0.3.1867
        committer: calvin
        timestamp: Tue 2009-09-22 22:30:10 +0000
        message:
          branches/zip: remove handler0vars.h from Makefile.am
          
          Left over from r5950.
        ------------------------------------------------------------
        revno: 0.3.1866
        committer: calvin
        timestamp: Tue 2009-09-22 14:17:01 +0000
        message:
          branches/zip: adjust CMake file to work with old versions of MySQL
          
          Tested with MySQL 5.1.38 and 5.1.30.
        ------------------------------------------------------------
        revno: 0.3.1865
        committer: calvin
        timestamp: Tue 2009-09-22 05:42:46 +0000
        message:
          branches/zip: adjust Windows loading method for 5.1.38
          
          Starting at 5.1.38, MySQL server exports symbols needed
          for dynamic plugin on Windows. There is no need for
          Windows specific loading. Also, the CMake files are
          simplified in 5.1.38.
          
          When WITH_INNOBASE_STORAGE_ENGINE is specified during
          configuration (win\configure.js), InnoDB is built as
          a static library. Otherwise, a dynamic InnoDB will be
          built (ha_innodb.dll).
          
          CMakeLists.txt requires minor changes in order to work
          with MySQL prior to 5.1.38. The changes will be in a
          separate patch.
          
          This patch addresses Mantis issue#286.
        ------------------------------------------------------------
        revno: 0.3.1864
        committer: calvin
        timestamp: Mon 2009-09-21 13:53:22 +0000
        message:
          branches/zip: fix a type in r5935
          
          Should be innodb_open_files, spotted by Michael.
        ------------------------------------------------------------
        revno: 0.3.1863
        committer: vasil
        timestamp: Mon 2009-09-21 04:26:04 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for c5938.
        ------------------------------------------------------------
        revno: 0.3.1862
        committer: calvin
        timestamp: Sat 2009-09-19 06:14:25 +0000
        message:
          branches/zip: Merge revisions 2584:2956 from branches/6.0,
          except c2932.
          
          Bug#37232 and bug#31183 were fixed in the 6.0 branch only.
          They should be fixed in the plugin too, specially MySQL 6.0
          is discontinued at this point.
          
              ------------------------------------------------------------------------
              r2604 | inaam | 2008-08-21 09:37:06 -0500 (Thu, 21 Aug 2008) | 8 lines
          
              branches/6.0     bug#37232
          
              Relax locking behaviour for REPLACE INTO t SELECT ... FROM t1.
              Now SELECT on t1 is performed as a consistent read when the isolation
              level is set to READ COMMITTED.
          
              Reviewed by: Heikki
              ------------------------------------------------------------------------
              r2605 | inaam | 2008-08-21 09:59:33 -0500 (Thu, 21 Aug 2008) | 7 lines
          
              branches/6.0
          
              Added a comment to clarify why distinct calls to read MySQL binary
              log file name and log position do not entail any race condition.
          
              Suggested by: Heikki
              ------------------------------------------------------------------------
              r2956 | inaam | 2008-11-04 04:47:30 -0600 (Tue, 04 Nov 2008) | 11 lines
          
              branches/6.0  bug#31183
          
              If the system tablespace runs out of space because 'autoextend' is
              not specified with innodb_data_file_path there was no error message
              printed to the error log. The client would get 'table full' error.
              This patch prints an appropriate error message to the error log.
          
              rb://43
          
              Approved by: Marko
              ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1861
        committer: calvin
        timestamp: Fri 2009-09-18 20:08:02 +0000
        message:
          branches/zip: fix bug#44338; minor non-functional changes
          
          Bug#44338 innodb has message about non-existing option
          innodb_max_files_open. Change the option to innodb_open_files.
          The fix was committed into 6.0 branch.
        ------------------------------------------------------------
        revno: 0.3.1860
        committer: vasil
        timestamp: Fri 2009-09-18 16:06:46 +0000
        message:
          branches/zip:
          
          Fix typo.
        ------------------------------------------------------------
        revno: 0.3.1859
        committer: vasil
        timestamp: Fri 2009-09-18 03:59:30 +0000
        message:
          branches/zip:
          
          White space and formatting cleanup in the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1858
        committer: marko
        timestamp: Thu 2009-09-17 05:32:08 +0000
        message:
          branches/zip: innodb-zip.test: Make the test work with zlib 1.2.3.3.
          Apparently, the definition of compressBound() has slightly changed.
          
          This has been filed as Mantis Issue #345.
        ------------------------------------------------------------
        revno: 0.3.1857
        committer: vasil
        timestamp: Wed 2009-09-16 17:47:22 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for r5916.
        ------------------------------------------------------------
        revno: 0.3.1856
        committer: vasil
        timestamp: Wed 2009-09-16 17:37:13 +0000
        message:
          branches/zip:
          
          Whitespace cleanup in the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1855
        committer: marko
        timestamp: Wed 2009-09-16 08:56:23 +0000
        message:
          branches/zip: innobase_get_cset_width(): Cache the value of current_thd.
        ------------------------------------------------------------
        revno: 0.3.1854
        committer: marko
        timestamp: Wed 2009-09-16 08:54:43 +0000
        message:
          branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700
          (changes to CMakeLists.txt)
          
            ------------------------------------------------------------------------
            r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
            Changed paths:
               M /branches/5.1/Makefile.am
          
            branches/5.1:
          
            Merge a change from MySQL:
          
              ------------------------------------------------------------
              revno: 2988
              committer: Satya B <satya.bn@sun.com>
              branch nick: mysql-5.1-bugteam
              timestamp: Wed 2009-07-01 11:06:05 +0530
              message:
                Fix build failure after applying Innodb snapshot 5.1-ss5282
          
                After applying Innodb snapshot 5.1-ss5282, build was broken
                because of missing header file.
          
                Adding the header file to Makefile.am after informing the
                innodb developers.
              modified:
                storage/innobase/Makefile.am
            ------------------------------------------------------------------------
            r5740 | jyang | 2009-09-03 06:33:47 +0300 (Thu, 03 Sep 2009) | 5 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/db0err.h
               A /branches/5.1/mysql-test/innodb_bug46000.result
               A /branches/5.1/mysql-test/innodb_bug46000.test
          
            branches/5.1: Disallow creating index with the name of
            "GEN_CLUST_INDEX" which is reserved for the default system
            primary index. (Bug #46000) rb://149 approved by Sunny Bains.
            ------------------------------------------------------------------------
            r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
            Changed paths:
               M /branches/5.1/dict/dict0dict.c
               M /branches/5.1/handler/ha_innodb.cc
               A /branches/5.1/mysql-test/innodb_bug44369.result
               A /branches/5.1/mysql-test/innodb_bug44369.test
               M /branches/5.1/row/row0mysql.c
          
            branches/5.1: Block creating table with column name conflicting
            with Innodb reserved key words. (Bug #44369) rb://151 approved
            by Sunny Bains.
            ------------------------------------------------------------------------
            r5757 | jyang | 2009-09-04 04:26:13 +0300 (Fri, 04 Sep 2009) | 3 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/db0err.h
               D /branches/5.1/mysql-test/innodb_bug46000.result
               D /branches/5.1/mysql-test/innodb_bug46000.test
          
            branches/5.1: Revert change in 5740. Making the fix in a subsequent
            check in.
            ------------------------------------------------------------------------
            r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
            Changed paths:
               M /branches/5.1/dict/dict0dict.c
               M /branches/5.1/handler/ha_innodb.cc
               D /branches/5.1/mysql-test/innodb_bug44369.result
               D /branches/5.1/mysql-test/innodb_bug44369.test
               M /branches/5.1/row/row0mysql.c
          
            branches/5.1: This is to revert change 5741. A return status for
            create_table_def() needs to be fixed.
            ------------------------------------------------------------------------
            r5797 | calvin | 2009-09-09 18:26:29 +0300 (Wed, 09 Sep 2009) | 3 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1: merge change from 5.1.38
          
            HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
            ------------------------------------------------------------------------
            r5799 | calvin | 2009-09-09 20:47:31 +0300 (Wed, 09 Sep 2009) | 10 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1: fix bug#46256
          
            Allow tables to be dropped even if the collation is not found,
            but issue a warning.
          
            Could not find an easy way to add mysql-test since it requires
            changes to charsets and restarting the server. Tests were
            executed manually.
          
            Approved by: Heikki (on IM)
            ------------------------------------------------------------------------
            r5805 | vasil | 2009-09-10 08:41:48 +0300 (Thu, 10 Sep 2009) | 7 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
          
            branches/5.1:
          
            Fix a compilation warning caused by c5799:
          
            handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
            handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
            ------------------------------------------------------------------------
            r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
            Changed paths:
               M /branches/5.1/dict/dict0dict.c
               M /branches/5.1/handler/ha_innodb.cc
               A /branches/5.1/mysql-test/innodb_bug44369.result
               A /branches/5.1/mysql-test/innodb_bug44369.test
               M /branches/5.1/row/row0mysql.c
          
            branches/5.1: Block creating table with column name conflicting
            with Innodb reserved key words. (Bug #44369) rb://151 approved
            by Sunny Bains.
            ------------------------------------------------------------------------
            r5895 | jyang | 2009-09-15 03:39:21 +0300 (Tue, 15 Sep 2009) | 5 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               A /branches/5.1/mysql-test/innodb_bug46000.result
               A /branches/5.1/mysql-test/innodb_bug46000.test
          
            branches/5.1: Disallow creating index with the name of
            "GEN_CLUST_INDEX" which is reserved for the default system
            primary index. (Bug #46000) rb://149 approved by Marko Makela.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1853
        committer: marko
        timestamp: Wed 2009-09-16 07:07:21 +0000
        message:
          branches/zip: Introduce UNIV_LOG_LSN_DEBUG and MLOG_LSN for redo log
          diagnostics.  This was written in order to better track down
          Issue #313 in InnoDB Hot Backup.
          
          MLOG_LSN: A new redo log entry type, for recording the current log
          sequence number (LSN).  This will be checked in an assertion in
          recv_parse_log_rec().
          
          rb://161, discussed with Sunny and Vasil.
        ------------------------------------------------------------
        revno: 0.3.1852
        committer: marko
        timestamp: Tue 2009-09-15 10:26:01 +0000
        message:
          branches/zip: ut0ut.h: Do not #include "os0sync.h" #ifdef UNIV_HOTBACKUP.
          Since r5872, the InnoDB Hot Backup build was broken.
          Fix it by not defining any thread synchronization primitives in ut0ut.h.
          InnoDB Hot Backup is a single-threaded program.
        ------------------------------------------------------------
        revno: 0.3.1851
        committer: marko
        timestamp: Tue 2009-09-15 09:18:50 +0000
        message:
          branches/zip: Add */.dirstamp to svn:ignore,
          for https://svn.innodb.com/svn/hotbackup/branches/3.5
        ------------------------------------------------------------
        revno: 0.3.1850
        committer: marko
        timestamp: Tue 2009-09-15 07:29:00 +0000
        message:
          branches/zip: Avoid bogus messages about latching order violations when
          UNIV_SYNC_DEBUG is defined.
          
          sync_thread_levels_g(): Add the parameter "warn".  Do not print
          anything unless it is set.
          
          sync_thread_add_level(): Pass warn=TRUE to sync_thread_levels_g()
          when the check is within an assertion; FALSE if it is not.
        ------------------------------------------------------------
        revno: 0.3.1849
        committer: inaam
        timestamp: Mon 2009-09-14 14:20:48 +0000
        message:
          branches/zip  rb://159
          
          In case of pages that are not made young the counter is incremented
          only when the page in question is 'old'. In case of pages that are
          made young the counter is incremented in case of all pages. For apple
          to apple comparison this patch changes the 'young-making' counter to
          consider only 'old' blocks.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1848
        committer: vasil
        timestamp: Mon 2009-09-14 08:17:18 +0000
        message:
          branches/zip:
          
          Add missing return statement in the test program that could have
          caused a warning.
        ------------------------------------------------------------
        revno: 0.3.1847
        committer: vasil
        timestamp: Mon 2009-09-14 07:38:45 +0000
        message:
          branches/zip:
          
          Back-merge c5880 and c5881 from branches/embedded-1.0:
          
            ------------------------------------------------------------------------
            r5880 | vasil | 2009-09-12 17:28:44 +0300 (Sat, 12 Sep 2009) | 18 lines
            Changed paths:
               M /branches/embedded-1.0/configure.in
               M /branches/embedded-1.0/include/os0sync.h
               M /branches/embedded-1.0/srv/srv0start.c
            
            branches/embedded-1.0:
            
            Clean up and simplify the code that surrounds the atomic ops:
            
            * Simplify the code that prints what atomics are used:
            Instead of repeating the same conditions on which each atomics are used
            use just one printf that prints a variable defined by the code which
            chooses what atomics to use.
            
            * In os0sync.h pick up each atomic variant only if it has been selected
            by autoconf (based on IB_ATOMIC_MODE_* macros). Define the startup message
            to be printed.
            
            * In configure.in: check what user has chosen and if he has chosen
            something that is not available, emit an error. If nothing has been chosen
            explicitly by the user, auto select an option according to the described
            logic in configure.in.
            
            ------------------------------------------------------------------------
            r5881 | vasil | 2009-09-12 20:08:27 +0300 (Sat, 12 Sep 2009) | 4 lines
            Changed paths:
               M /branches/embedded-1.0/configure.in
            
            branches/embedded-1.0:
            
            Fix syntax error in test program.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1846
        committer: vasil
        timestamp: Sat 2009-09-12 11:11:25 +0000
        message:
          branches/zip:
          
          Remove unnecessary macro.
        ------------------------------------------------------------
        revno: 0.3.1845
        committer: vasil
        timestamp: Sat 2009-09-12 08:35:17 +0000
        message:
          branches/zip:
          
          Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
          INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
        ------------------------------------------------------------
        revno: 0.3.1844
        committer: vasil
        timestamp: Sat 2009-09-12 08:25:44 +0000
        message:
          branches/zip:
          
          Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and
          IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
          all follow the same HAVE_IB_* convention.
        ------------------------------------------------------------
        revno: 0.3.1843
        committer: vasil
        timestamp: Sat 2009-09-12 08:13:44 +0000
        message:
          branches/zip:
          
          Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
          instead of in univ.i. The code expects os_*() macros to be present if
          HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
          them next to defining the os_*() macros.
        ------------------------------------------------------------
        revno: 0.3.1842
        committer: vasil
        timestamp: Sat 2009-09-12 07:33:11 +0000
        message:
          branches/zip:
          
          Include ut0auxconf.h only if none of the macros it would define is defined.
          The check when to include this header was outdated from the time when there
          was only one macro involved.
          
          Move the atomics checks that are in univ.i outside of
          #if windows ... #else ... #endif
          This simplifies the code and removes some duplicates like defining
          HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.
          
          Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
          Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
          HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
        ------------------------------------------------------------
        revno: 0.3.1841
        committer: vasil
        timestamp: Sat 2009-09-12 07:01:17 +0000
        message:
          branches/zip:
          
          Move the check whether to include ut0auxconf.h before everything because
          we are now even checking for GCC atomics, we relied on MySQL to define
          this macro before.
        ------------------------------------------------------------
        revno: 0.3.1840
        committer: vasil
        timestamp: Sat 2009-09-12 06:43:45 +0000
        message:
          branches/zip:
          
          Update comment to reflect reality.
        ------------------------------------------------------------
        revno: 0.3.1839
        committer: vasil
        timestamp: Sat 2009-09-12 06:30:08 +0000
        message:
          branches/zip:
          
          Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
          we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
        ------------------------------------------------------------
        revno: 0.3.1838
        committer: vasil
        timestamp: Sat 2009-09-12 06:26:03 +0000
        message:
          branches/zip:
          
          Simplify the compile time checks by splittig them into 5 independent checks:
          
          * Whether GCC atomics are available
          * Whether pthread_t can be used by GCC atomics
          * Whether Solaris libc atomics are available
          * Whether pthread_t can be used by Solaris libs atomics
          * Checking the size of pthread_t
        ------------------------------------------------------------
        revno: 0.3.1837
        committer: vasil
        timestamp: Sat 2009-09-12 06:22:55 +0000
        message:
          branches/zip:
          
          Include string.h which is needed for memset().
        ------------------------------------------------------------
        revno: 0.3.1836
        committer: vasil
        timestamp: Sat 2009-09-12 06:07:08 +0000
        message:
          branches/zip:
          
          Check that pthread_t can indeed be passed to Solaris atomic functions, instead
          of assuming that it can be passed if 0 can be assigned to it. It could be that:
          * 0 can be assigned, but pthread_t cannot be passed and
          * 0 cannot be assigned but pthread_t can be passed
          
          Better to check what we are interested in, not something else and make
          assumptions.
        ------------------------------------------------------------
        revno: 0.3.1835
        committer: vasil
        timestamp: Fri 2009-09-11 16:46:47 +0000
        message:
          branches/zip:
          
          Fix the indentation of the closing bracket.
        ------------------------------------------------------------
        revno: 0.3.1834
        committer: marko
        timestamp: Thu 2009-09-10 10:29:46 +0000
        message:
          branches/zip: Roll back recovered dictionary transactions before
          dropping incomplete indexes (Issue #337).
          
          trx_rollback_or_clean_recovered(ibool all): New function, split from
          trx_rollback_or_clean_all_recovered().  all==FALSE will only roll back
          dictionary transactions.
          
          recv_recovery_from_checkpoint_finish(): Call
          trx_rollback_or_clean_recovered(FALSE) before
          row_merge_drop_temp_indexes().
          
          rb://158 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1833
        committer: marko
        timestamp: Thu 2009-09-10 09:47:09 +0000
        message:
          branches/zip: Reduce mutex contention that was introduced when
          addressing Bug #45015 (Issue #316), in r5703.
          
          buf_page_set_accessed_make_young(): New auxiliary function, called by
          buf_page_get_zip(), buf_page_get_gen(),
          buf_page_optimistic_get_func(). Call ut_time_ms() outside of
          buf_pool_mutex. Use cached access_time.
          
          buf_page_set_accessed(): Add the parameter time_ms, so that
          ut_time_ms() need not be called while holding buf_pool_mutex.
          
          buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
          buf_page_t::access_time without holding buf_pool_mutex. This should be
          OK, because the field is only used for heuristic purposes.
          
          buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
          FALSE, so that we will not waste time moving blocks in the LRU list in
          the warm-up phase or when the workload fits in the buffer pool.
          
          rb://156 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1832
        committer: marko
        timestamp: Thu 2009-09-10 09:10:20 +0000
        message:
          branches/zip: buf_page_release(): De-stutter the function comment.
        ------------------------------------------------------------
        revno: 0.3.1831
        committer: marko
        timestamp: Thu 2009-09-10 04:29:31 +0000
        message:
          branches/zip: trx_cleanup_at_db_startup(): Fix a typo in comment.
        ------------------------------------------------------------
        revno: 0.3.1830
        committer: calvin
        timestamp: Wed 2009-09-09 14:28:10 +0000
        message:
          branches/zip:
          
          HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
          But the plugin should still work with previous versions
          of MySQL.
        ------------------------------------------------------------
        revno: 0.3.1829
        committer: vasil
        timestamp: Wed 2009-09-09 12:35:58 +0000
        message:
          branches/zip:
          
          Fix a bug in manipulating the variable innodb_old_blocks_pct:
          
          for any value assigned it got that value -1, except for 75. When
          assigned 75, it got 75.
          
            mysql> set global innodb_old_blocks_pct=15;
            Query OK, 0 rows affected (0.00 sec)
            
            mysql> show variables like 'innodb_old_blocks_pct';
            +-----------------------+-------+
            | Variable_name         | Value |
            +-----------------------+-------+
            | innodb_old_blocks_pct | 14    |
            +-----------------------+-------+
            1 row in set (0.00 sec)
            
            mysql> set global innodb_old_blocks_pct=75;
            Query OK, 0 rows affected (0.00 sec)
            
            mysql> show variables like 'innodb_old_blocks_pct';
            +-----------------------+-------+
            | Variable_name         | Value |
            +-----------------------+-------+
            | innodb_old_blocks_pct | 75    |
            +-----------------------+-------+
          
          After the fix it gets exactly what was assigned.
          
          Approved by: Marko (via IM)
        ------------------------------------------------------------
        revno: 0.3.1828
        committer: marko
        timestamp: Wed 2009-09-09 06:25:00 +0000
        message:
          branches/zip: buf_page_is_accessed(): Correct the function comment.
        ------------------------------------------------------------
        revno: 0.3.1827
        committer: marko
        timestamp: Wed 2009-09-09 06:00:59 +0000
        message:
          branches/zip: buf_page_peek_if_too_old(): Silence a compiler warning
          that was introduced in r5779 on 32-bit systems.
        ------------------------------------------------------------
        revno: 0.3.1826
        committer: marko
        timestamp: Wed 2009-09-09 05:50:50 +0000
        message:
          branches/zip: ut_time_ms(): Return ulint, not uint.
        ------------------------------------------------------------
        revno: 0.3.1825
        committer: marko
        timestamp: Wed 2009-09-09 05:17:19 +0000
        message:
          branches/zip: buf_page_peek_if_too_old(): Make the bitmasking work when
          buf_pool->freed_page_clock is wider than 32 bits.
        ------------------------------------------------------------
        revno: 0.3.1824
        committer: marko
        timestamp: Tue 2009-09-08 14:50:25 +0000
        message:
          branches/zip: Remove BUF_LRU_INITIAL_RATIO, which should have been removed
          together with buf_LRU_get_recent_limit().
        ------------------------------------------------------------
        revno: 0.3.1823
        committer: calvin
        timestamp: Mon 2009-09-07 20:15:05 +0000
        message:
          branches/zip: Build InnoDB on Windows with UNIV_HOTBACKUP
          
          The changes are non-functional changes for normal InnoDB,
          but needed for building the Hot Backup on Windows (with
          UNIV_HOTBACKUP defined).
          
          - Define os_aio_use_native_aio for HB.
          - Do not acquire seek mutexes for backup since HB is single threaded.
          - Do not use srv_flush_log_at_trx_commit for HB build
          
          rb://155
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1822
        committer: marko
        timestamp: Thu 2009-09-03 13:55:51 +0000
        message:
          branches/zip: recv_recover_page_func(): Write the log sequence number
          to the compressed page, if there is one.  Previously, the function only
          wrote the LSN to the uncompressed page.
          
          It is not clear why recv_recover_page_func() is updating FIL_PAGE_LSN
          in the buffer pool.  The log sequence number will be stamped on the
          page when it is flushed to disk, in buf_flush_init_for_writing().
          I noticed this inconsistency when analyzing Issue #313, but this patch
          does not fix it.  That is no surprise, since FIL_PAGE_LSN should only
          matter on disk files, not in the buffer pool.
        ------------------------------------------------------------
        revno: 0.3.1821
        committer: marko
        timestamp: Thu 2009-09-03 13:36:15 +0000
        message:
          branches/zip: row_merge(): Remove a bogus debug assertion
          that was triggered when creating an index on an empty table.
          
          row_merge_sort(): Add debug assertions and comments that justify
          the loop termination condition.
          
          The bogus assertion ut_ad(ihalf > 0) was reported by Michael.
        ------------------------------------------------------------
        revno: 0.3.1820
        committer: marko
        timestamp: Thu 2009-09-03 10:05:44 +0000
        message:
          branches/zip: MLOG_MULTI_REC_END: Correct the comment.
        ------------------------------------------------------------
        revno: 0.3.1819
        committer: marko
        timestamp: Thu 2009-09-03 09:46:38 +0000
        message:
          branches/zip: recv_scan_log_recs(): Replace while with do...while,
          because the termination condition will always hold on the first iteration.
        ------------------------------------------------------------
        revno: 0.3.1818
        committer: marko
        timestamp: Thu 2009-09-03 07:55:36 +0000
        message:
          branches/zip: log_reserve_and_write_fast(): Do not cache the log_sys pointer
          in a local variable.
        ------------------------------------------------------------
        revno: 0.3.1817
        committer: marko
        timestamp: Thu 2009-09-03 07:38:22 +0000
        message:
          branches/zip: log_check_log_recs(): Enclose in #ifdef UNIV_LOG_DEBUG.
          Add const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.1816
        committer: marko
        timestamp: Thu 2009-09-03 07:28:35 +0000
        message:
          branches/zip: ut_align(): Make ptr const, like in ut_align_down().
        ------------------------------------------------------------
        revno: 0.3.1815
        committer: marko
        timestamp: Thu 2009-09-03 05:36:12 +0000
        message:
          branches/zip: log_reserve_and_write_fast(): Remove the redundant
          output parameter "success".
          Success is also indicated by a nonzero return value.
        ------------------------------------------------------------
        revno: 0.3.1814
        committer: marko
        timestamp: Wed 2009-09-02 06:53:19 +0000
        message:
          branches/zip: Enclose some timestamp functions in #ifndef UNIV_HOTBACKUP.
        ------------------------------------------------------------
        revno: 0.3.1813
        committer: marko
        timestamp: Wed 2009-09-02 06:43:09 +0000
        message:
          branches/zip: univ.i: Do not undefine PACKAGE or VERSION.
          InnoDB source code does not refer to these macros.
        ------------------------------------------------------------
        revno: 0.3.1812
        committer: sunny
        timestamp: Wed 2009-09-02 06:08:45 +0000
        message:
          branches/zip: Update ChangeLog with r5733 changes.
        ------------------------------------------------------------
        revno: 0.3.1811
        committer: sunny
        timestamp: Wed 2009-09-02 06:05:15 +0000
        message:
          branches/zip: Fix a regression introduced by the fix for bug#26316. We check
          whether a transaction holds any AUTOINC locks before we acquire the kernel
          mutex and release those locks.
          
          Fix for rb://153. Approved by Marko.
        ------------------------------------------------------------
        revno: 0.3.1810
        committer: vasil
        timestamp: Mon 2009-08-31 06:47:49 +0000
        message:
          branches/zip:
          
          Fix Bug#46718 InnoDB plugin incompatible with gcc 4.1 (at least: on PPC): "Undefined symbol"
          
          by implementing our own check in plug.in instead of using the result from
          the check from MySQL because it is insufficient.
          
          Approved by: Marko (rb://154)
        ------------------------------------------------------------
        revno: 0.3.1809
        committer: marko
        timestamp: Mon 2009-08-31 05:10:10 +0000
        message:
          branches/zip: buf_chunk_not_freed(): Do not acquire block->mutex unless
          block->page.state == BUF_BLOCK_FILE_PAGE.  Check that block->page.state
          makes sense.
          
          Approved by Sunny Bains over the IM.
        ------------------------------------------------------------
        revno: 0.3.1808
        committer: inaam
        timestamp: Fri 2009-08-28 05:22:46 +0000
        message:
          branches/zip rb://152
          
          Disable display of deprecated parameter innodb_file_io_threads in
          'show variables'.
        ------------------------------------------------------------
        revno: 0.3.1807
        committer: inaam
        timestamp: Thu 2009-08-27 21:43:32 +0000
        message:
          branches/zip
          
          Remove redundant TRUE : FALSE from the return statement
        ------------------------------------------------------------
        revno: 0.3.1806
        committer: inaam
        timestamp: Thu 2009-08-27 15:20:35 +0000
        message:
          branches/zip
          
          Remove unused macros as we erased the random readahead code in r5703.
          Also fixed some comments.
        ------------------------------------------------------------
        revno: 0.3.1805
        committer: inaam
        timestamp: Thu 2009-08-27 15:00:27 +0000
        message:
          branches/zip rb://147
          
          Done away with following two status variables:
          
          innodb_buffer_pool_read_ahead_rnd
          innodb_buffer_pool_read_ahead_seq
          
          Introduced two new status variables:
          innodb_buffer_pool_read_ahead = number of pages read as part of
          readahead since server startup
          innodb_buffer_pool_read_ahead_evicted = number of pages that are read
          in as readahead but were evicted before ever being accessed since
          server startup i.e.: a measure of how badly our readahead is
          performing
          
          SHOW INNODB STATUS will show two extra numbers in buffer pool section:
          pages read ahead/sec and pages evicted without access/sec
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1804
        committer: marko
        timestamp: Thu 2009-08-27 10:56:24 +0000
        message:
          branches/zip: dict_index_find_cols(): On column name lookup failure,
          return DB_CORRUPTION (HA_ERR_CRASHED) instead of abnormally
          terminating the server.  Also, disable the previously added diagnostic
          output to the error log, because mysql-test-run does not like extra
          output in the error log.  (Bug #44571)
          
          dict_index_add_to_cache(): Handle errors from dict_index_find_cols().
          
          mysql-test/innodb_bug44571.test: A test case for triggering the bug.
          
          rb://135 approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1803
        committer: marko
        timestamp: Thu 2009-08-27 07:31:17 +0000
        message:
          branches/zip: Fix a critical bug in fast index creation that could
          corrupt the created indexes.
          
          row_merge(): Make "half" an in/out parameter. Determine the offset of
          half the output file. Copy the last blocks record-by-record instead of
          block-by-block, so that the records can be counted. Check that the
          input and output have matching n_rec.
          
          row_merge_sort(): Do not assume that two blocks of size N are merged
          into a block of size 2*N. The output block can be shorter than the
          input if the last page of each input block is almost empty. Use an
          accurate termination condition, based on the "half" computed by
          row_merge().
          
          row_merge_read(), row_merge_write(), row_merge_blocks(): Add debug output.
          
          merge_file_t, row_merge_file_create(): Add n_rec, the number of records
          in the merge file.
          
          row_merge_read_clustered_index(): Update n_rec.
          
          row_merge_blocks(): Update and check n_rec.
          
          row_merge_blocks_copy(): New function, for copying the last blocks in
          row_merge().  Update and check n_rec.
          
          This bug was discovered with a user-supplied test case that creates an
          index where the initial temporary file is 249 one-megabyte blocks and
          the merged files become smaller. In the test, possible merge record
          sizes are 10, 18, and 26 bytes.
          
          rb://150 approved by Sunny Bains.  This addresses Issue #320.
        ------------------------------------------------------------
        revno: 0.3.1802
        committer: marko
        timestamp: Thu 2009-08-27 06:25:00 +0000
        message:
          branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
          size with the settable global variable innodb_old_blocks_pct. The
          minimum and maximum values are 5 and 95 per cent, respectively. The
          default is 100*3/8, in line with the old behavior.
          
          ut_time_ms(): New utility function, to return the current time in
          milliseconds. TODO: Is there a more efficient timestamp function, such
          as rdtsc divided by a power of two?
          
          buf_LRU_old_threshold_ms: New variable, corresponding to
          innodb_old_blocks_time. The value 0 is the default behaviour: no
          timeout before making blocks 'new'.
          
          bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
          
          bpage->access_time: New field, replacing bpage->accessed. Protected by
          buf_pool_mutex instead of bpage->mutex. Updated when a page is created
          or accessed the first time in the buffer pool.
          
          buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
          corresponding to innodb_old_blocks_pct
          
          buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
          functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
          
          buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
          if buf_LRU_old_threshold_ms && bpage->old.  Else observe
          buf_LRU_old_ratio and bpage->freed_page_clock.
          
          buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
          n_pages_made_young_old, n_pages_not_made_young, for statistics.
          
          buf_print(): Display buf_pool->n_pages_made_young,
          buf_pool->n_pages_not_made_young.  This function is only for crash
          diagnostics.
          
          buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
          from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
          This function is invoked by SHOW ENGINE INNODB STATUS.
          
          rb://129 approved by Heikki Tuuri.  This addresses Bug #45015.
        ------------------------------------------------------------
        revno: 0.3.1801
        committer: marko
        timestamp: Thu 2009-08-27 06:03:15 +0000
        message:
          branches/zip: Document also the files affected by r5698 in the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1800
        committer: marko
        timestamp: Thu 2009-08-27 06:01:42 +0000
        message:
          branches/zip: Document r5698 in the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1799
        committer: inaam
        timestamp: Wed 2009-08-26 13:34:35 +0000
        message:
          branches/zip  bug#42885  rb://148
          
          The call to put IO threads to sleep was most probably meant for Windows
          only as the comment in buf0rea.c suggests. However it was enabled on
          all platforms. This patch restricts the sleep call to windows. This
          approach of not putting threads to sleep makes even more sense because
          now we have multiple threads working in the background and it probably
          is not a good idea to put all of them to sleep because a user thread
          wants to post a batch for readahead.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1798
        committer: vasil
        timestamp: Wed 2009-08-26 12:44:40 +0000
        message:
          branches/zip:
          
          Fix typo.
        ------------------------------------------------------------
        revno: 0.3.1797
        committer: vasil
        timestamp: Wed 2009-08-26 12:15:59 +0000
        message:
          branches/zip:
          
          Merge a change from MySQL:
          
           http://lists.mysql.com/commits/80832
          
           2968 Jonathan Perkin 2009-08-14
                Build fixes for Windows, AIX, HP/UX and Sun Studio11, from Timothy Smith.
                modified:
                  CMakeLists.txt
                  cmd-line-utils/readline/util.c
                  storage/innodb_plugin/handler/i_s.cc
                  storage/innodb_plugin/include/univ.i
        ------------------------------------------------------------
        revno: 0.3.1796
        committer: marko
        timestamp: Wed 2009-08-26 12:14:59 +0000
        message:
          branches/zip: UNIV_DEBUG_LOCK_VALIDATE: Move the definition to univ.i.
        ------------------------------------------------------------
        revno: 0.3.1795
        committer: marko
        timestamp: Wed 2009-08-26 10:25:26 +0000
        message:
          branches/zip: buf_page_t: Clarify that bpage->list may contain garbage.
          This comment was provoked by Inaam.
        ------------------------------------------------------------
        revno: 0.3.1794
        committer: vasil
        timestamp: Thu 2009-08-20 08:20:22 +0000
        message:
          branches/zip:
          
          ChangeLog:
          Follow the convention from the rest of the ChangeLog: for bugfixes from
          bugs.mysql.com only the bug number and title goes in the ChangeLog. Detailed
          explanation on what is the problem and how it was fixed is present in
          the bugs database.
        ------------------------------------------------------------
        revno: 0.3.1793
        committer: vasil
        timestamp: Thu 2009-08-20 08:15:05 +0000
        message:
          branches/zip:
          
          White-space fixup.
        ------------------------------------------------------------
        revno: 0.3.1792
        committer: sunny
        timestamp: Thu 2009-08-20 07:18:29 +0000
        message:
          branches/zip: Update the ChangeLog with r5684 change.
        ------------------------------------------------------------
        revno: 0.3.1791
        committer: sunny
        timestamp: Thu 2009-08-20 07:05:30 +0000
        message:
          branches/zip: Fix bug# 46650:  Innodb assertion autoinc_lock == lock in lock_table_remove_low on INSERT SELECT
          
          We only store the autoinc locks that are granted in the transaction's autoinc
          lock vector. A transacton, that has been rolled back due to a deadlock because
          of an AUTOINC lock attempt, will not have added that lock to the vector. We
          need to check for that when we remove that lock.
          
          rb://145
          Approved by Marko.
        ------------------------------------------------------------
        revno: 0.3.1790
        committer: sunny
        timestamp: Fri 2009-08-14 05:16:24 +0000
        message:
          branches/zip: When building HotBackup srv_use_sys_malloc is #ifdef out. We
          move access to the this variable within a !UNIV_HOTBACKUP block.
        ------------------------------------------------------------
        revno: 0.3.1789
        committer: marko
        timestamp: Thu 2009-08-13 07:46:33 +0000
        message:
          branches/zip: ha_innobase::add_index(): Fix Bug #46557:
          after a successful operation, read innodb_table->flags from
          the newly created table object, not from the old one that was just freed.
          
          Approved by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1788
        committer: marko
        timestamp: Wed 2009-08-12 12:16:37 +0000
        message:
          branches/zip: trx_undo_rec_copy(): Add const qualifier to undo_rec.
          This is a non-functional change.
        ------------------------------------------------------------
        revno: 0.3.1787
        committer: marko
        timestamp: Tue 2009-08-11 10:42:37 +0000
        message:
          branches/zip: trx_general_rollback_for_mysql(): Remove the redundant
          parameter partial. If savept==NULL, partial==FALSE.
        ------------------------------------------------------------
        revno: 0.3.1786
        committer: marko
        timestamp: Tue 2009-08-11 08:54:16 +0000
        message:
          branches/zip: Bump the version number to 1.0.5 after releasing 1.0.4.
        ------------------------------------------------------------
        revno: 0.3.1785
        committer: calvin
        timestamp: Thu 2009-08-06 22:04:03 +0000
        message:
          branches/zip: remove duplicate "the" in comments.
        ------------------------------------------------------------
        revno: 0.3.1784
        committer: marko
        timestamp: Thu 2009-08-06 09:39:34 +0000
        message:
          branches/zip: mem_heap_block_free(): If innodb_use_sys_malloc is set,
          do not tell Valgrind that the memory is free, to avoid
          a bogus warning in Valgrind's built-in free() hook.
        ------------------------------------------------------------
        revno: 0.3.1783
        committer: marko
        timestamp: Wed 2009-08-05 11:27:30 +0000
        message:
          branches/zip: lock_rec_validate_page(): Add the parameter zip_size.
          This should help track down Mantis Issue #289.
        ------------------------------------------------------------
        revno: 0.3.1782
        committer: marko
        timestamp: Wed 2009-08-05 10:06:55 +0000
        message:
          branches/zip: Replace <number> with NUMBER in some comments,
          to avoid problems with Doxygen XML output.
        ------------------------------------------------------------
        revno: 0.3.1781
        committer: marko
        timestamp: Tue 2009-08-04 10:42:44 +0000
        message:
          branches/zip: mysql-test: Pass MTR's internal checks.
        ------------------------------------------------------------
        revno: 0.3.1780
        committer: vasil
        timestamp: Tue 2009-08-04 04:53:31 +0000
        message:
          branches/zip:
          
          Revert the dummy change from c5625.
        ------------------------------------------------------------
        revno: 0.3.1779
        committer: vasil
        timestamp: Tue 2009-08-04 04:52:48 +0000
        message:
          branches/zip: Merge 5518:5622 from branches/5.1, resolving conflict in r5622
          (after resolving the conflict Makefile.am was not changed so I have made
          a dummy change so I can commit and thus record that branches/5.1 has been
          merged in branches/zip up to 5622):
          
            ------------------------------------------------------------------------
            r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
            Changed paths:
               M /branches/5.1/Makefile.am
            
            branches/5.1:
            
            Merge a change from MySQL:
            
              ------------------------------------------------------------
              revno: 2988
              committer: Satya B <satya.bn@sun.com>
              branch nick: mysql-5.1-bugteam
              timestamp: Wed 2009-07-01 11:06:05 +0530
              message:
                Fix build failure after applying Innodb snapshot 5.1-ss5282
                
                After applying Innodb snapshot 5.1-ss5282, build was broken
                because of missing header file.
                
                Adding the header file to Makefile.am after informing the
                innodb developers.
              modified:
                storage/innobase/Makefile.am
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1778
        committer: vasil
        timestamp: Fri 2009-07-31 14:09:07 +0000
        message:
          branches/zip:
          
          Add fsp0types.h to the list of noinst_HEADERS
          
          Suggested by: Sergey Vojtovich <svoj@sun.com>
        ------------------------------------------------------------
        revno: 0.3.1777
        committer: vasil
        timestamp: Tue 2009-07-21 09:28:27 +0000
        message:
          branches/zip:
          
          Add a test program to check whether the PAUSE instruction is available.
        ------------------------------------------------------------
        revno: 0.3.1776
        committer: vasil
        timestamp: Tue 2009-07-21 08:31:26 +0000
        message:
          branches/zip:
          
          Fixups in ChangeLog: sort filenames alphabetically and wrap to 78 chars per
          line.
        ------------------------------------------------------------
        revno: 0.3.1775
        committer: sunny
        timestamp: Mon 2009-07-20 20:56:30 +0000
        message:
          branches/zip: For HotBackup builds we don't want to hide the symbols.
        ------------------------------------------------------------
        revno: 0.3.1774
        committer: calvin
        timestamp: Mon 2009-07-20 16:14:30 +0000
        message:
          branches/zip: add ChangeLog entry for r5524.
        ------------------------------------------------------------
        revno: 0.3.1773
        committer: inaam
        timestamp: Mon 2009-07-20 15:23:15 +0000
        message:
          branches/zip
          
          Change the read ahead parameter name to innodb_read_ahead_threshold.
          Change the meaning of this parameter to signify the number of pages
          that must be sequentially accessed for InnoDB to trigger a readahead
          request.
          
          Suggested by: Ken
        ------------------------------------------------------------
        revno: 0.3.1772
        committer: vasil
        timestamp: Mon 2009-07-20 07:51:47 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for r5498 and r5519.
        ------------------------------------------------------------
        revno: 0.3.1771
        committer: vasil
        timestamp: Mon 2009-07-20 07:45:18 +0000
        message:
          branches/zip: Merge r5497:5518 from branches/5.1:
          
            ------------------------------------------------------------------------
            r5518 | vasil | 2009-07-20 11:29:47 +0300 (Mon, 20 Jul 2009) | 22 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Merge a change from MySQL:
            
              ------------------------------------------------------------
              revno: 2874.2.1
              committer: Anurag Shekhar <anurag.shekhar@sun.com>
              branch nick: mysql-5.1-bugteam-windows-warning
              timestamp: Wed 2009-05-13 15:41:24 +0530
              message:
                Bug #39802 On Windows, 32-bit time_t should be enforced
                
                This patch fixes compilation warning, "conversion from 'time_t' to 'ulong',
                possible loss of data".
                The fix is to typecast time_t to ulong before assigning it to ulong.
                Backported this from 6.0-bugteam tree.
              modified:
                storage/archive/ha_archive.cc
                storage/federated/ha_federated.cc
                storage/innobase/handler/ha_innodb.cc
                storage/myisam/ha_myisam.cc
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1770
        committer: sunny
        timestamp: Mon 2009-07-20 06:55:11 +0000
        message:
          Add /* UNIV_HOTBACK */
        ------------------------------------------------------------
        revno: 0.3.1769
        committer: sunny
        timestamp: Mon 2009-07-20 06:46:05 +0000
        message:
          branches/zip: Make this file usable from within HotBackup. A new file has
          been introduced called hb_univ.i. This file should have all the HotBackup
          specific configuration.
        ------------------------------------------------------------
        revno: 0.3.1768
        committer: sunny
        timestamp: Mon 2009-07-20 06:29:14 +0000
        message:
          branches/zip: The dict_table_t::autoinc_mutex field is not used in HotBackup.
        ------------------------------------------------------------
        revno: 0.3.1767
        committer: sunny
        timestamp: Sun 2009-07-19 23:08:49 +0000
        message:
          branches/zip: Only use my_bool when UNIV_HOTBACKUP is not defined.
        ------------------------------------------------------------
        revno: 0.3.1766
        committer: sunny
        timestamp: Sun 2009-07-19 22:58:43 +0000
        message:
          branches/zip: Undo r5512
        ------------------------------------------------------------
        revno: 0.3.1765
        committer: sunny
        timestamp: Sun 2009-07-19 22:52:48 +0000
        message:
          branches/zip: Remove unused extern ref to timed_mutexes.
        ------------------------------------------------------------
        revno: 0.3.1764
        committer: calvin
        timestamp: Thu 2009-07-16 12:45:28 +0000
        message:
          branches/zip: add ChangeLog entry for r5508.
        ------------------------------------------------------------
        revno: 0.3.1763
        committer: calvin
        timestamp: Thu 2009-07-16 12:40:47 +0000
        message:
          branches/zip: Support inlining of functions and prefetch with
          Sun Studio
          
          Those changes are contributed by Sun/MySQL. Two sets of changes
          in this patch when Sun Studio is used:
          - Explicit inlining of functions
          - Prefetch Support
          
          This patch has been tested by Sunny with the plugin statically
          built in. Since we've never built the plugin as a dynamically
          loaded module on Solaris, it is a separate task to change
          plug.in.
          
          rb://142
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1762
        committer: calvin
        timestamp: Wed 2009-07-15 07:58:44 +0000
        message:
          branches/zip: fix compile errors on Win64
          
          Both srv_read_ahead_factor and srv_io_capacity should
          be defined as ulong.
          
          Approved by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1761
        committer: vasil
        timestamp: Tue 2009-07-14 17:16:11 +0000
        message:
          branches/zip:
          
          Non-functional change:
          put files in noinst_HEADERS and libinnobase_a_SOURCES one per line and sort
          alphabetically, so it is easier to find if a file is there or not and
          also diffs show exactly the added or removed file instead of surrounding
          lines too.
        ------------------------------------------------------------
        revno: 0.3.1760
        committer: vasil
        timestamp: Tue 2009-07-14 16:59:59 +0000
        message:
          branches/zip:
          
          Add include/ut0auxconf.h to noinst_HEADERS
        ------------------------------------------------------------
        revno: 0.3.1759
        committer: vasil
        timestamp: Tue 2009-07-14 16:58:15 +0000
        message:
          branches/zip:
          
          Add @ZLIB_INCLUDES@ so that the InnoDB Plugin picks up the same zlib.h
          header file that is eventually used by mysqld.
        ------------------------------------------------------------
        revno: 0.3.1758
        committer: calvin
        timestamp: Tue 2009-07-14 16:03:26 +0000
        message:
          branches/zip: minor change
          
          Remove an extra "with".
        ------------------------------------------------------------
        revno: 0.3.1757
        committer: calvin
        timestamp: Tue 2009-07-14 15:55:10 +0000
        message:
          branches/zip: add a missing file in Makefile.am
          
          This change was suggested by MySQL.
        ------------------------------------------------------------
        revno: 0.3.1756
        committer: vasil
        timestamp: Tue 2009-07-14 06:16:18 +0000
        message:
          branches/zip: Merge r5341:5497 from branches/5.1, skipping:
          c5419 because it is merge from branches/zip into branches/5.1
          c5466 because the source code has been adjusted to match the MySQL
            behavior and the innodb-autoinc test does not fail in branches/zip,
            if c5466 is merged, then innodb-autoinc starts failing, Sunny suggested
            not to merge c5466.
          and resolving conflicts in c5410, c5440, c5488:
          
            ------------------------------------------------------------------------
            r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines
            Changed paths:
               M /branches/5.1/include/trx0sys.ic
               M /branches/5.1/trx/trx0purge.c
               M /branches/5.1/trx/trx0sys.c
               M /branches/5.1/trx/trx0undo.c
            
            branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
            when compiling with -DUNIV_MUST_NOT_INLINE.
            ------------------------------------------------------------------------
            r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb_bug42101-nonzero.result
               M /branches/5.1/mysql-test/innodb_bug42101-nonzero.test
               M /branches/5.1/mysql-test/innodb_bug42101.result
               M /branches/5.1/mysql-test/innodb_bug42101.test
            
            branches/5.1: Merge r5418 from branches/zip:
            
              ------------------------------------------------------------------------
              r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
              Changed paths:
                 M /branches/zip/ChangeLog
                 M /branches/zip/handler/ha_innodb.cc
                 M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
                 M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
                 M /branches/zip/mysql-test/innodb_bug42101.result
                 M /branches/zip/mysql-test/innodb_bug42101.test
              
              branches/zip: Fix a race condition caused by
              SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
              When innodb_commit_concurrency is initially set nonzero,
              DEFAULT would change it back to 0, triggering Bug #42101.
              rb://139 approved by Heikki Tuuri.
              ------------------------------------------------------------------------
            ------------------------------------------------------------------------
            r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines
            Changed paths:
               M /branches/5.1/fil/fil0fil.c
            
            branches/5.1:
            
            Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
            
            by changing the URL from
            http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
            http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
            
            ------------------------------------------------------------------------
            r5466 | vasil | 2009-07-02 10:46:45 +0300 (Thu, 02 Jul 2009) | 6 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1:
            
            Adjust the failing innodb-autoinc test to conform to the latest behavior
            of the MySQL code. The idea and the comment in innodb-autoinc.test come
            from Sunny.
            
            ------------------------------------------------------------------------
            r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               A /branches/5.1/mysql-test/innodb_bug21704.result
               A /branches/5.1/mysql-test/innodb_bug21704.test
            
            branches/5.1:
            
            Fix Bug#21704 Renaming column does not update FK definition
            
            by checking whether a column that participates in a FK definition is being
            renamed and denying the ALTER in this case.
            
            The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
            http://lists.mysql.com/commits/77714
            and was later adjusted to conform to InnoDB coding style by me (Vasil),
            I also added some more comments and moved the bug specific mysql-test to
            a separate file to make it more manageable and flexible.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1755
        committer: calvin
        timestamp: Mon 2009-07-13 18:01:00 +0000
        message:
          branches/zip: fix run-time symbols clash on Solaris.
          
          This patch is from Sergey Vojtovich of Sun Microsystems,
          to fix run-time symbols clash on Solaris with older C++
          compiler:
          - when finding out a way to hide symbols, make decision basing
            on compiler, not operating system.
          - Sun Studio supports __hidden declaration specifier for this
            purpose.
        ------------------------------------------------------------
        revno: 0.3.1754
        committer: inaam
        timestamp: Mon 2009-07-13 17:04:57 +0000
        message:
          branches/zip
          
          Fixed warnings on windows where ulint != ib_uint64_t
        ------------------------------------------------------------
        revno: 0.3.1753
        committer: inaam
        timestamp: Mon 2009-07-13 14:48:45 +0000
        message:
          branches/zip rb://138 (REVERT)
          
          Revert the flush neighbors patch as it shows regression in
          the benchmarks run by Michael.
        ------------------------------------------------------------
        revno: 0.3.1752
        committer: vasil
        timestamp: Mon 2009-07-13 06:37:35 +0000
        message:
          branches/zip:
          
          Restore the original value of innodb_sync_spin_loops at the end, previously
          the test assumed that setting it to 20 will do this, but now the default is
          30 and MTR's internal check failed.
        ------------------------------------------------------------
        revno: 0.3.1751
        committer: calvin
        timestamp: Fri 2009-07-10 20:47:34 +0000
        message:
          branches/zip: add ChangeLog entries for r5484-r5486.
        ------------------------------------------------------------
        revno: 0.3.1750
        committer: calvin
        timestamp: Fri 2009-07-10 15:19:17 +0000
        message:
          branches/zip: add copyright info to files related to PAUSE
          instruction patch, contributed by Sun Microsystems.
        ------------------------------------------------------------
        revno: 0.3.1749
        committer: vasil
        timestamp: Fri 2009-07-10 08:04:20 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for 5489.
        ------------------------------------------------------------
        revno: 0.3.1748
        committer: vasil
        timestamp: Fri 2009-07-10 08:02:22 +0000
        message:
          branches/zip:
          
          Change the defaults for
          innodb_sync_spin_loops: 20 -> 30
          innodb_spin_wait_delay: 5 -> 6
          
          This change was proposed by Sun/MySQL based on their performance testing,
          see https://svn.innodb.com/innobase/Release_tasks_for_InnoDB_Plugin_V1.0.4
        ------------------------------------------------------------
        revno: 0.3.1747
        committer: calvin
        timestamp: Wed 2009-07-08 15:42:28 +0000
        message:
          branches/zip: fix PAUSE instruction patch on Windows
          
          The original PAUSE instruction patch (r5470) does not
          compile on Windows. Also, there is an elegant way of
          doing it on Windows - YieldProcessor().
          
          Approved by: Heikki (on IM)
        ------------------------------------------------------------
        revno: 0.3.1746
        committer: inaam
        timestamp: Wed 2009-07-08 15:11:40 +0000
        message:
          branches/zip  rb://133
          
          This patch introduces heuristics based flushing rate of dirty pages to
          avoid IO bursts at checkpoint.
          
          1) log_capacity / log_generated per second gives us number of seconds
          in which ALL dirty pages need to be flushed. Based on this rough
          assumption we can say that
          n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate
          
          2) We use weighted averages (hard coded to 20 seconds) of
          log_generation_rate to avoid resonance.
          
          3) From the desired_flush_rate we subtract the number of pages that have
          been flushed due to LRU flushing. That gives us pages that we should
          flush as part of flush_list cleanup. And that is the number (capped by
          maximum io_capacity) that we try to flush from the master thread.
          
          Knobs:
          ======
          
          innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
          Since this heuristic is very experimental and has the potential to
          dramatically change the IO pattern I think it is a good idea to leave a
          knob to turn it off.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1745
        committer: inaam
        timestamp: Tue 2009-07-07 22:00:49 +0000
        message:
          branches/zip  rb://138
          
          The current implementation is to try to flush the neighbors of every
          page that we flush. This patch makes the following distinction:
          
          1) If the flush is from flush_list AND
          2) If the flush is intended to move the oldest_modification LSN ahead
          (this happens when a user thread sees little space in the log file and
          attempts to flush pages from the buffer pool so that a checkpoint can
          be made)
          
          THEN
          
          Do not try to flush the neighbors. Just focus on flushing dirty pages at
          the end of flush_list
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1744
        committer: inaam
        timestamp: Tue 2009-07-07 21:57:14 +0000
        message:
          branches/zip  rb://126
          
          Based on contribution from Google Inc.
          This patch introduces a new parameter innodb_io_capacity to control the
          rate at which master threads performs various tasks. The default value
          is 200 and higher values imply more aggressive flushing and ibuf merges
          from within the master thread.
          This patch also changes the ibuf merge from synchronous to asynchronous.
          Another minor change is not to force the master thread to wait for a
          log flush to complete every second.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1743
        committer: calvin
        timestamp: Tue 2009-07-07 08:36:43 +0000
        message:
          branches/zip: add IB_HAVE_PAUSE_INSTRUCTION to CMake.
          
          Windows will support PAUSE instruction by default.
        ------------------------------------------------------------
        revno: 0.3.1742
        committer: calvin
        timestamp: Mon 2009-07-06 21:36:35 +0000
        message:
          branches/zip: add COPYING files for Percona and Sun Micro.
          
          1.0.4 contains patches based on contributions from Percona
          and Sun Microsystems.
        ------------------------------------------------------------
        revno: 0.3.1741
        committer: vasil
        timestamp: Mon 2009-07-06 16:16:32 +0000
        message:
          branches/zip:
          
          Remove unnecessary quotes and simplify plug.in.
        ------------------------------------------------------------
        revno: 0.3.1740
        committer: vasil
        timestamp: Thu 2009-07-02 12:12:36 +0000
        message:
          branches/zip:
          
          Use PAUSE instruction inside spinloop if it is available.
          
          The patch was originally developed by Mikael Ronstrom <mikael@mysql.com>
          and can be found here:
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2768
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2771
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2772
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2774
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2777
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2799
          http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2800
          
          Approved by: Heikki (rb://137)
        ------------------------------------------------------------
        revno: 0.3.1739
        committer: inaam
        timestamp: Tue 2009-06-30 17:21:09 +0000
        message:
          branches/zip
          
          Non functional change. s/Percona/Percona Inc./
        ------------------------------------------------------------
        revno: 0.3.1738
        committer: marko
        timestamp: Tue 2009-06-30 11:42:52 +0000
        message:
          branches/zip: Replace a non-ASCII character
          (ISO 8859-1 encoded U+00AD SOFT HYPHEN) with a cheap ASCII substitute.
        ------------------------------------------------------------
        revno: 0.3.1737
        committer: marko
        timestamp: Tue 2009-06-30 11:14:01 +0000
        message:
          branches/zip: os_process_set_priority_boost(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1736
        committer: marko
        timestamp: Tue 2009-06-30 11:10:26 +0000
        message:
          branches/zip: os_file_close_no_error_handling(): Restore,
          as this function is used within InnoDB Hot Backup.
        ------------------------------------------------------------
        revno: 0.3.1735
        committer: marko
        timestamp: Tue 2009-06-30 11:09:49 +0000
        message:
          branches/zip: page_set_max_trx_id(): Make the code compile
          with UNIV_HOTBACKUP.
        ------------------------------------------------------------
        revno: 0.3.1734
        committer: marko
        timestamp: Tue 2009-06-30 11:02:20 +0000
        message:
          branches/zip: os_file_close_no_error_handling(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1733
        committer: marko
        timestamp: Tue 2009-06-30 11:00:50 +0000
        message:
          branches/zip: innobase_start_or_create_for_mysql():
          Invoke os_get_os_version() at most once.
        ------------------------------------------------------------
        revno: 0.3.1732
        committer: marko
        timestamp: Tue 2009-06-30 10:56:36 +0000
        message:
          branches/zip: mem_heap_cat(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1731
        committer: marko
        timestamp: Tue 2009-06-30 10:37:58 +0000
        message:
          branches/zip: srv_que_task_queue_check(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1730
        committer: marko
        timestamp: Tue 2009-06-30 10:35:45 +0000
        message:
          branches/zip: srv_que_round_robin(), srv_que_task_enqueue(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1729
        committer: marko
        timestamp: Tue 2009-06-30 10:28:11 +0000
        message:
          branches/zip: row_build_row_ref_from_row(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1728
        committer: marko
        timestamp: Tue 2009-06-30 10:19:49 +0000
        message:
          branches/zip: que_graph_try_free(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1727
        committer: marko
        timestamp: Tue 2009-06-30 10:03:00 +0000
        message:
          branches/zip: os_event_create_auto(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1726
        committer: marko
        timestamp: Tue 2009-06-30 09:45:41 +0000
        message:
          branches/zip: lock_is_on_table(), lock_table_unlock(): Unused, remove.
        ------------------------------------------------------------
        revno: 0.3.1725
        committer: marko
        timestamp: Tue 2009-06-30 09:30:14 +0000
        message:
          branches/zip: ha_delete(): Remove this unused function that was
          very similar to ha_search_and_delete_if_found().
        ------------------------------------------------------------
        revno: 0.3.1724
        committer: marko
        timestamp: Tue 2009-06-30 08:15:22 +0000
        message:
          branches/zip: fseg_validate(): Enclose in #ifdef UNIV_DEBUG.
          This function is unused, but it could turn out to be a useful debugging aid.
        ------------------------------------------------------------
        revno: 0.3.1723
        committer: marko
        timestamp: Tue 2009-06-30 08:10:32 +0000
        message:
          branches/zip: fseg_free(): Remove this unused function.
        ------------------------------------------------------------
        revno: 0.3.1722
        committer: marko
        timestamp: Tue 2009-06-30 08:10:01 +0000
        message:
          branches/zip: ibuf_dummy_index_free(): Beautify the comment.
        ------------------------------------------------------------
        revno: 0.3.1721
        committer: marko
        timestamp: Mon 2009-06-29 12:58:40 +0000
        message:
          branches/zip: Revert an accidentally made change in r5430 to univ.i.
        ------------------------------------------------------------
        revno: 0.3.1720
        committer: marko
        timestamp: Mon 2009-06-29 12:58:07 +0000
        message:
          branches/zip: lock_rec_validate_page(): Add another assertion
          to track down Issue #289.
        ------------------------------------------------------------
        revno: 0.3.1719
        committer: marko
        timestamp: Mon 2009-06-29 12:49:54 +0000
        message:
          branches/zip: Do not crash on SET GLOBAL innodb_file_format=DEFAULT
          or SET GLOBAL innodb_file_format_check=DEFAULT.
          
          innodb_file_format.test: New test for innodb_file_format and
          innodb_file_format_check.
          
          innodb_file_format_name_validate(): Store the string in *save.
          innodb_file_format_name_update(): Check the string again.
          
          innodb_file_format_check_validate(): Store the string in *save.
          innodb_file_format_check_update(): Check the string again.
          
          Issue #282, rb://140 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1718
        committer: marko
        timestamp: Mon 2009-06-29 10:06:29 +0000
        message:
          branches/zip: row_sel_store_mysql_rec(): Add missing pointer cast.
          Do not do arithmetics on void pointers.
        ------------------------------------------------------------
        revno: 0.3.1717
        committer: marko
        timestamp: Mon 2009-06-29 08:54:53 +0000
        message:
          branches/zip: lock_print_info_all_transactions(), buf_read_recv_pages():
          Tolerate missing tablespaces (zip_size==ULINT_UNDEFINED).
          buf_page_get_gen(): Add ut_ad(ut_is_2pow(zip_size)).
          
          Issue #289, rb://136 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1716
        committer: marko
        timestamp: Mon 2009-06-29 08:24:27 +0000
        message:
          branches/zip: buf_page_get_gen(): Fix a race condition when reading
          buf_fix_count.  This could explain Issue #156.
          Tested by Michael.
        ------------------------------------------------------------
        revno: 0.3.1715
        committer: marko
        timestamp: Mon 2009-06-29 07:52:30 +0000
        message:
          branches/zip: ha_innobase::add_index(), ha_innobase::final_drop_index():
          Start prebuilt->trx before locking the table.  This should fix Issue #293
          and could fix Issue #229.
          Approved by Sunny (over IM).
        ------------------------------------------------------------
        revno: 0.3.1714
        committer: calvin
        timestamp: Fri 2009-06-26 19:52:52 +0000
        message:
          branches/zip: Fix typos.
        ------------------------------------------------------------
        revno: 0.3.1713
        committer: marko
        timestamp: Thu 2009-06-25 11:55:52 +0000
        message:
          branches/zip: Fix a race condition caused by
          SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
          When innodb_commit_concurrency is initially set nonzero,
          DEFAULT would change it back to 0, triggering Bug #42101.
          rb://139 approved by Heikki Tuuri.
        ------------------------------------------------------------
        revno: 0.3.1712
        committer: marko
        timestamp: Thu 2009-06-25 11:20:56 +0000
        message:
          branches/zip: ha_innodb.cc: Move the misplaced Doxygen @file comment.
        ------------------------------------------------------------
        revno: 0.3.1711
        committer: marko
        timestamp: Thu 2009-06-25 09:45:57 +0000
        message:
          branches/zip: dict_index_find_cols(): Print diagnostic on name mismatch.
          This addresses Bug #44571 but does not fix it.
          rb://135 approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1710
        committer: marko
        timestamp: Thu 2009-06-25 09:27:08 +0000
        message:
          branches/zip: Replace a DBUG_ASSERT with ut_a to track down Issue #290.
        ------------------------------------------------------------
        revno: 0.3.1709
        committer: calvin
        timestamp: Wed 2009-06-24 12:51:08 +0000
        message:
          branches/zip: remove relative path of header files.
          
          Suggested by Marko.
        ------------------------------------------------------------
        revno: 0.3.1708
        committer: calvin
        timestamp: Tue 2009-06-23 19:59:42 +0000
        message:
          branches/zip: change the header file path.
          
          Change the header file path from ../storage/innobase/include/
          to ../include/. In the planned 5.1 + plugin release, the source
          directory of the plugin will not be in storage/innobase.
          
          Approved by: Heikki (IM)
        ------------------------------------------------------------
        revno: 0.3.1707
        committer: pekka
        timestamp: Mon 2009-06-22 12:46:34 +0000
        message:
          branches/zip: Add functions for checking the format of tablespaces
          for Hot Backup build (UNIV_HOTBACKUP defined).
          This change should not affect !UNIV_HOTBACKUP build.
        ------------------------------------------------------------
        revno: 0.3.1706
        committer: pekka
        timestamp: Mon 2009-06-22 12:27:55 +0000
        message:
          branches/zip: Minor changes for Hot Backup to build correctly. (The
          code bracketed between #ifdef UNIV_HOTBACKUP and #endif /* UNIV_HOTBACKUP */).
          This change should not affect !UNIV_HOTBACKUP build.
        ------------------------------------------------------------
        revno: 0.3.1705
        committer: marko
        timestamp: Mon 2009-06-22 10:58:20 +0000
        message:
          branches/zip: ha_innobase::check_if_incompatible_data(): When
          ROW_FORMAT=DEFAULT, do not compare to get_row_type().
          Without this change, fast index creation will be disabled
          in recent versions of MySQL 5.1.
        ------------------------------------------------------------
        revno: 0.3.1704
        committer: marko
        timestamp: Mon 2009-06-22 08:31:35 +0000
        message:
          branches/zip: buf_page_get_zip(): Fix a bogus warning about
          block_mutex being possibly uninitialized.
        ------------------------------------------------------------
        revno: 0.3.1703
        committer: marko
        timestamp: Wed 2009-06-17 12:03:45 +0000
        message:
          branches/zip: row_merge_read_rec(): Fix a UNIV_DEBUG bug (Bug #45426)
        ------------------------------------------------------------
        revno: 0.3.1702
        committer: vasil
        timestamp: Wed 2009-06-17 11:56:12 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r5342.
        ------------------------------------------------------------
        revno: 0.3.1701
        committer: marko
        timestamp: Wed 2009-06-17 09:15:32 +0000
        message:
          branches/zip: Merge revisions 5233:5341 from branches/5.1:
          
            ------------------------------------------------------------------------
            r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines
          
            branches/5.1: Merge the test case from r5232 from branches/5.0:
              ------------------------------------------------------------------------
              r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
          
              branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
              (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
          
              Also, add a test case for Bug #40565.
          
              rb://128 approved by Heikki Tuuri
              ------------------------------------------------------------------------
            ------------------------------------------------------------------------
            r5243 | sunny | 2009-06-04 03:17:14 +0300 (Thu, 04 Jun 2009) | 14 lines
          
            branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
            the bug fix we would assert on missing autoinc columns. With this fix we allow
            MySQL to open the table but set the next autoinc value for the column to the
            MAX value. This effectively disables the next value generation. INSERTs will
            fail with a generic AUTOINC failure. However, the user should be able to
            read/dump the table, set the column values explicitly, use ALTER TABLE to
            set the next autoinc value and/or sync the two data dictionaries to resume
            normal operations.
          
            Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
            index (PRIMARY)
          
            rb://118
            ------------------------------------------------------------------------
            r5252 | sunny | 2009-06-04 10:16:24 +0300 (Thu, 04 Jun 2009) | 2 lines
          
            branches/5.1: The version of the result file checked in was broken in r5243.
            ------------------------------------------------------------------------
            r5259 | vasil | 2009-06-05 10:29:16 +0300 (Fri, 05 Jun 2009) | 7 lines
          
            branches/5.1:
          
            Remove the word "Error" from the printout because the mysqltest suite
            interprets it as an error and thus the innodb-autoinc test fails.
          
            Approved by: Sunny (via IM)
            ------------------------------------------------------------------------
            r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines
          
            branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
            with -DUNIV_MUST_NOT_INLINE.
          
            (null merge; this had already been committed in branches/zip)
            ------------------------------------------------------------------------
            r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines
          
            branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
            refuse to unlock the record.
            (Bug #45357, caused by the fix of Bug #39320).
            rb://132 approved by Sunny Bains.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1700
        committer: marko
        timestamp: Tue 2009-06-16 12:23:10 +0000
        message:
          branches/zip: innodb.test: Adjust the tolerance of
          innodb_buffer_pool_pages_total for r5320.
        ------------------------------------------------------------
        revno: 0.3.1699
        committer: marko
        timestamp: Tue 2009-06-16 08:27:46 +0000
        message:
          branches/zip: buf_page_io_query(): Remove unused function.
        ------------------------------------------------------------
        revno: 0.3.1698
        committer: vasil
        timestamp: Tue 2009-06-16 08:03:27 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for r5283 and r5320.
        ------------------------------------------------------------
        revno: 0.3.1697
        committer: marko
        timestamp: Tue 2009-06-16 08:00:48 +0000
        message:
          branches/zip: buf_page_get_zip(): Eliminate a buf_page_get_mutex() call.
          The function must switch on the block state anyway.
        ------------------------------------------------------------
        revno: 0.3.1696
        committer: marko
        timestamp: Tue 2009-06-16 07:08:59 +0000
        message:
          branches/zip: buf_page_get_gen(): Reduce mutex holding time by adjusting
          buf_pool->n_pend_unzip while only holding buf_pool_mutex.
        ------------------------------------------------------------
        revno: 0.3.1695
        committer: inaam
        timestamp: Thu 2009-06-11 12:15:41 +0000
        message:
          branches/zip rb://131
          
          This patch changes the following defaults:
          
          max_dirty_pages_pct: default from 90 to 75. max allowed from 100 to 99
          additional_mem_pool_size: default from 1 to 8 MB
          buffer_pool_size: default from 8 to 128 MB
          log_buffer_size: default from 1 to 8 MB
          read_io_threads/write_io_threads: default from 1 to 4
          
          The log file sizes are untouched because of upgrade issues
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1694
        committer: marko
        timestamp: Thu 2009-06-11 07:40:33 +0000
        message:
          branches/zip: Declare os_thread_id_t as unsigned long,
          because ulint is wrong on Win64.
          Pointed out by Vladislav Vaintroub <wlad@sun.com>.
        ------------------------------------------------------------
        revno: 0.3.1693
        committer: inaam
        timestamp: Tue 2009-06-09 16:46:29 +0000
        message:
          branches/zip
          
          rb://130
          
          Enable Group Commit functionality that was broken in 5.0 when
          distributed transactions were introduced.
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1692
        committer: inaam
        timestamp: Mon 2009-06-08 15:18:21 +0000
        message:
          branches/zip
          
          Non functional change:
          
          Added legal notices acknowledging percona contribution to the multiple
          IO helper threads patch i.e.: r5262
        ------------------------------------------------------------
        revno: 0.3.1691
        committer: vasil
        timestamp: Fri 2009-06-05 15:34:11 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r5262.
        ------------------------------------------------------------
        revno: 0.3.1690
        committer: vasil
        timestamp: Fri 2009-06-05 15:26:58 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r5261.
        ------------------------------------------------------------
        revno: 0.3.1689
        committer: vasil
        timestamp: Fri 2009-06-05 15:19:37 +0000
        message:
          branches/zip:
          
          Whitespace cleanup.
        ------------------------------------------------------------
        revno: 0.3.1688
        committer: vasil
        timestamp: Fri 2009-06-05 15:04:25 +0000
        message:
          branches/zip:
          
          Enable functionality to have multiple background io helper threads.
          This patch is based on percona contributions.
          
          More details about this patch will be written at:
          https://svn.innodb.com/innobase/MultipleBackgroundThreads
          
          The patch essentially does the following:
          
          expose following knobs:
          innodb_read_io_threads = [1 - 64] default 1
          innodb_write_io_threads = [1 - 64] default 1
          
          deprecate innodb_file_io_threads (this parameter was relevant only on windows)
          
          Internally it allows multiple segments for read and write IO request arrays
          where one thread works on one segement.
          
          Submitted by: Inaam (rb://124)
          Approved by: Heikki (rb://124)
        ------------------------------------------------------------
        revno: 0.3.1687
        committer: vasil
        timestamp: Fri 2009-06-05 14:13:31 +0000
        message:
          branches/zip:
          
          Fix Mantis Issue#244 fix bug in linear read ahead (no check on access pattern)
          
          The changes are:
          
          1) Take into account access pattern when deciding whether or not to do linear
            read ahead.
          2) Expose a knob innodb_read_ahead_factor = [0-64] default (8), dynamic,
            global to control linear read ahead behvior
          3) Disable random read ahead. Keep the code for now.
          
          Submitted by: Inaam (rb://122)
          Approved by: Heikki (rb://122)
        ------------------------------------------------------------
        revno: 0.3.1686
        committer: marko
        timestamp: Thu 2009-06-04 09:37:35 +0000
        message:
          branches/zip: Add missing Doxygen comments for page0zip.
        ------------------------------------------------------------
        revno: 0.3.1685
        committer: marko
        timestamp: Thu 2009-06-04 05:59:51 +0000
        message:
          branches/zip: Replace <= in a function comment.
        ------------------------------------------------------------
        revno: 0.3.1684
        committer: marko
        timestamp: Thu 2009-06-04 05:58:23 +0000
        message:
          branches/zip: Add Doxygen comments to the rest of buf0*.
        ------------------------------------------------------------
        revno: 0.3.1683
        committer: marko
        timestamp: Wed 2009-06-03 11:26:41 +0000
        message:
          branches/zip: Merge revisions 5148:5233 from branches/5.1:
          
            ------------------------------------------------------------------------
            r5150 | vasil | 2009-05-27 18:56:03 +0300 (Wed, 27 May 2009) | 4 lines
          
            branches/5.1:
          
            Whitespace fixup.
            ------------------------------------------------------------------------
            r5191 | vasil | 2009-05-30 17:46:05 +0300 (Sat, 30 May 2009) | 19 lines
          
            branches/5.1:
          
            Merge a change from MySQL (this fixes the failing innodb_mysql test):
          
              ------------------------------------------------------------
              revno: 1810.3894.10
              committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
              branch nick: mysql-5.0-bugteam
              timestamp: Tue 2009-05-19 11:32:21 +0500
              message:
                Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value
                Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
                Suggested fix is to add '\'' symbol check for quotation condition
                (dict_strip_comments() function).
              modified:
                innobase/dict/dict0dict.c
                mysql-test/r/innodb_mysql.result
                mysql-test/t/innodb_mysql.test
            ------------------------------------------------------------------------
            r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines
          
            branches/5.1: Merge the test case from r5232 from branches/5.0:
              ------------------------------------------------------------------------
              r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
          
              branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
              (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
          
              Also, add a test case for Bug #40565.
          
              rb://128 approved by Heikki Tuuri
              ------------------------------------------------------------------------
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1682
        committer: marko
        timestamp: Mon 2009-06-01 09:35:25 +0000
        message:
          branches/zip: Clean up some comments.
          Make the rec parameter of mlog_open_and_write_index() const.
        ------------------------------------------------------------
        revno: 0.3.1681
        committer: marko
        timestamp: Thu 2009-05-28 10:14:02 +0000
        message:
          branches/zip: Correct a debug assertion that was added in r5125.
        ------------------------------------------------------------
        revno: 0.3.1680
        committer: marko
        timestamp: Thu 2009-05-28 06:21:55 +0000
        message:
          branches/zip: mtr0mtr.h: Add Doxygen comments for the redo log entry types.
        ------------------------------------------------------------
        revno: 0.3.1679
        committer: marko
        timestamp: Wed 2009-05-27 10:46:42 +0000
        message:
          branches/zip: Merge revisions 4994:5148 from branches/5.1:
          
            ------------------------------------------------------------------------
            r5126 | vasil | 2009-05-26 16:57:12 +0300 (Tue, 26 May 2009) | 9 lines
          
            branches/5.1:
          
            Preparation for the fix of
            Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
          
            Non-functional change: move FSP_* macros from fsp0fsp.h to a new file
            fsp0types.h. This is needed in order to be able to use FSP_EXTENT_SIZE
            in mtr0log.ic.
            ------------------------------------------------------------------------
            r5127 | vasil | 2009-05-26 17:05:43 +0300 (Tue, 26 May 2009) | 9 lines
          
            branches/5.1:
          
            Preparation for the fix of
            Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
          
            Do not include unnecessary headers mtr0log.h and fut0lst.h in trx0sys.h
            and include fsp0fsp.h just before it is needed. This is needed in order
            to be able to use TRX_SYS_SPACE in mtr0log.ic.
            ------------------------------------------------------------------------
            r5128 | vasil | 2009-05-26 17:26:37 +0300 (Tue, 26 May 2009) | 7 lines
          
            branches/5.1:
          
            Fix Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
          
            Do not write redo log for the pages in the doublewrite buffer. Also, do not
            make a dummy change to the page because this is not needed.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1678
        committer: marko
        timestamp: Wed 2009-05-27 09:55:14 +0000
        message:
          branches/zip: ibuf0ibuf.c: Improve a comment.
        ------------------------------------------------------------
        revno: 0.3.1677
        committer: marko
        timestamp: Wed 2009-05-27 06:57:25 +0000
        message:
          branches/zip: buf0buf.h, Doxyfile: Fix the Doxygen translation.
          @defgroup is for source code modules, not for field groups.
          Tell Doxygen to expand the UT_LIST declarations.
        ------------------------------------------------------------
        revno: 0.3.1676
        committer: marko
        timestamp: Wed 2009-05-27 06:01:40 +0000
        message:
          branches/zip: Add Doxyfile.
        ------------------------------------------------------------
        revno: 0.3.1675
        committer: marko
        timestamp: Wed 2009-05-27 05:08:43 +0000
        message:
          branches/zip: Add some Doxygen @return comments.
        ------------------------------------------------------------
        revno: 0.3.1674
        committer: marko
        timestamp: Tue 2009-05-26 12:28:49 +0000
        message:
          branches/zip: Add some Doxygen comments for many structs, typedefs,
          #defines and global variables.  Many are still missing.
        ------------------------------------------------------------
        revno: 0.3.1673
        committer: marko
        timestamp: Mon 2009-05-25 20:32:35 +0000
        message:
          branches/zip: lexyy.c: Remove the inadvertently added @file directive.
          There is nothing for Doxygen to see in this file, move along.
        ------------------------------------------------------------
        revno: 0.3.1672
        committer: marko
        timestamp: Mon 2009-05-25 12:09:24 +0000
        message:
          branches/zip: Add some Doxygen comments, mainly to structs, typedefs,
          macros and global variables.  Many more to go.
        ------------------------------------------------------------
        revno: 0.3.1671
        committer: marko
        timestamp: Mon 2009-05-25 10:52:20 +0000
        message:
          branches/zip: Enclose some #error checks inside #ifndef DOXYGEN
          to prevent bogus Doxygen errors.
        ------------------------------------------------------------
        revno: 0.3.1670
        committer: marko
        timestamp: Mon 2009-05-25 10:39:07 +0000
        message:
          branches/zip: Revert ut0auxconf_* to r5102,
          that is, make Doxygen ignore these test programs.
        ------------------------------------------------------------
        revno: 0.3.1669
        committer: marko
        timestamp: Mon 2009-05-25 09:52:29 +0000
        message:
          branches/zip: Add @file comments, and convert decorative
          /*********************************
          comments to Doxygen /** style like this:
          /*****************************//**
          
          This conversion was performed by the following command:
          
          perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) {
          s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2}
          print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i
        ------------------------------------------------------------
        revno: 0.3.1668
        committer: marko
        timestamp: Mon 2009-05-25 09:47:14 +0000
        message:
          branches/zip: Add missing file comments.
        ------------------------------------------------------------
        revno: 0.3.1667
        committer: marko
        timestamp: Mon 2009-05-25 08:42:47 +0000
        message:
          branches/zip: Introduce the macro TEMP_INDEX_PREFIX_STR.
          This is to avoid triggering an error in Doxygen.
        ------------------------------------------------------------
        revno: 0.3.1666
        committer: marko
        timestamp: Mon 2009-05-25 08:09:45 +0000
        message:
          branches/zip: Split some long lines that were introduced in r5091.
        ------------------------------------------------------------
        revno: 0.3.1665
        committer: marko
        timestamp: Mon 2009-05-25 05:54:17 +0000
        message:
          branches/zip: Adjust some function comments after r5091.
        ------------------------------------------------------------
        revno: 0.3.1664
        committer: marko
        timestamp: Mon 2009-05-25 05:30:14 +0000
        message:
          branches/zip: Convert the function comments to Doxygen format.
          
          This patch was created by running the following commands:
          
          for i in */*[ch]; do doxygenify.pl $i; done
          perl -i -pe 's#\*{3} \*/$#****/#' */*[ch]
          
          where doxygenify.pl is
          https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510
          
          Verified the consistency as follows:
          
          (0) not too many /* in: */ or /* out: */ comments left in the code:
          grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch]
          
          (1) no difference when ignoring blank lines, after stripping all
          C90-style /* comments */, including multi-line ones, before and after
          applying this patch:
          
          perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch]
          diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2
          
          (2) after stripping @return comments and !<, generated a diff and omitted
          the hunks where /* out: */ function return comments were removed:
          
          perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\
           */*[ch]
          svn diff|
          perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print'
          
          Some unintended changes were left.  These will be removed in a
          subsequent patch.
        ------------------------------------------------------------
        revno: 0.3.1663
        committer: vasil
        timestamp: Thu 2009-05-21 04:27:00 +0000
        message:
          branches/zip:
          
          Whitespace fixup.
        ------------------------------------------------------------
        revno: 0.3.1662
        committer: marko
        timestamp: Wed 2009-05-20 20:51:23 +0000
        message:
          branches/zip: Fix some function comments.
        ------------------------------------------------------------
        revno: 0.3.1661
        committer: marko
        timestamp: Wed 2009-05-20 19:17:43 +0000
        message:
          branches/zip: ha_innodb.cc: Add some missing function comments.
        ------------------------------------------------------------
        revno: 0.3.1660
        committer: marko
        timestamp: Wed 2009-05-20 12:17:26 +0000
        message:
          branches/zip: innobase_end(), innobase_flush_logs():
          Document the function parameters.
        ------------------------------------------------------------
        revno: 0.3.1659
        committer: marko
        timestamp: Wed 2009-05-20 12:10:17 +0000
        message:
          branches/zip: ut_dulint_sort(): Write proper comments.
        ------------------------------------------------------------
        revno: 0.3.1658
        committer: marko
        timestamp: Wed 2009-05-20 10:45:03 +0000
        message:
          branches/zip: ha_innodb.cc: Clean up some comments.
        ------------------------------------------------------------
        revno: 0.3.1657
        committer: marko
        timestamp: Wed 2009-05-20 10:07:49 +0000
        message:
          branches/zip: innodb_export_status(): Remove the return(0),
          now that the function was declared void in r5060.
        ------------------------------------------------------------
        revno: 0.3.1656
        committer: marko
        timestamp: Wed 2009-05-20 10:06:59 +0000
        message:
          branches/zip: Clean up some comments.
        ------------------------------------------------------------
        revno: 0.3.1655
        committer: marko
        timestamp: Wed 2009-05-20 09:06:03 +0000
        message:
          branches/zip: Clean up some function comments.
        ------------------------------------------------------------
        revno: 0.3.1654
        committer: marko
        timestamp: Wed 2009-05-20 08:45:17 +0000
        message:
          branches/zip: Remove bogus in: comments from struct members.
        ------------------------------------------------------------
        revno: 0.3.1653
        committer: marko
        timestamp: Wed 2009-05-20 08:35:33 +0000
        message:
          branches/zip: page_cur_lcg_prng(): Add missing parameter list.
        ------------------------------------------------------------
        revno: 0.3.1652
        committer: marko
        timestamp: Wed 2009-05-20 08:32:37 +0000
        message:
          branches/zip: ib_vector_is_empty(): Fix the function comment.
        ------------------------------------------------------------
        revno: 0.3.1651
        committer: marko
        timestamp: Wed 2009-05-20 08:28:44 +0000
        message:
          branches/zip: inno_bcmp(): Remove this memcmp replacement.
          srv0start.c does not (any longer) call memcmp.
          srv_parse_megabytes(): Add a function comment.
        ------------------------------------------------------------
        revno: 0.3.1650
        committer: marko
        timestamp: Wed 2009-05-20 08:26:49 +0000
        message:
          branches/zip: ut_snprintf(): Fix the function comments.
        ------------------------------------------------------------
        revno: 0.3.1649
        committer: marko
        timestamp: Wed 2009-05-20 08:19:40 +0000
        message:
          branches/zip: Fix some function comments.
        ------------------------------------------------------------
        revno: 0.3.1648
        committer: marko
        timestamp: Wed 2009-05-20 07:37:08 +0000
        message:
          branches/zip: fil0fil.c: Correct some comments.
        ------------------------------------------------------------
        revno: 0.3.1647
        committer: marko
        timestamp: Wed 2009-05-20 07:11:58 +0000
        message:
          branches/zip: mlog_parse_index(): Correct a parameter comment
          and add a const qualifier that was missing.
        ------------------------------------------------------------
        revno: 0.3.1646
        committer: marko
        timestamp: Wed 2009-05-20 04:46:01 +0000
        message:
          branches/zip: sync0rw.ic: Remove an extra ; that was added in r5041.
        ------------------------------------------------------------
        revno: 0.3.1645
        committer: marko
        timestamp: Wed 2009-05-20 04:42:12 +0000
        message:
          branches/zip: Add missing function comments.
        ------------------------------------------------------------
        revno: 0.3.1644
        committer: marko
        timestamp: Tue 2009-05-19 19:13:12 +0000
        message:
          branches/zip: ib_wqueue_wait(): Add decorative comment.
        ------------------------------------------------------------
        revno: 0.3.1643
        committer: marko
        timestamp: Tue 2009-05-19 18:59:07 +0000
        message:
          branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
          transactions that are started before the rollback of incomplete
          transactions has finished may have an inconsistent view of the
          secondary indexes.
          
          dict_index_is_sec_or_ibuf(): Auxiliary function for controlling
          updates and checks of PAGE_MAX_TRX_ID: check whether an index is a
          secondary index or the insert buffer tree.
          
          page_set_max_trx_id(), page_update_max_trx_id(),
          lock_rec_insert_check_and_lock(),
          lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(),
          btr_cur_upd_lock_and_undo(): Add the parameter mtr.
          
          page_set_max_trx_id(): Allow mtr to be NULL.  When mtr==NULL, do not
          attempt to write to the redo log.  This only occurs when creating a
          page or reorganizing a compressed page.  In these cases, the
          PAGE_MAX_TRX_ID will be set correctly during the application of redo
          log records, even though there is no explicit log record about it.
          
          btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID.  This
          function should be unreachable, though.
          
          btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID.
          
          Add some assertions for checking that PAGE_MAX_TRX_ID is set on all
          secondary index leaf pages.
          
          rb://115 tested by Michael, fixes Issue #211
        ------------------------------------------------------------
        revno: 0.3.1642
        committer: marko
        timestamp: Tue 2009-05-19 09:08:16 +0000
        message:
          branches/zip: Fix a typo that was introduced in r5036.
        ------------------------------------------------------------
        revno: 0.3.1641
        committer: marko
        timestamp: Tue 2009-05-19 09:05:50 +0000
        message:
          branches/zip: Add proper comments to some file page accessors.
        ------------------------------------------------------------
        revno: 0.3.1640
        committer: marko
        timestamp: Tue 2009-05-19 09:04:58 +0000
        message:
          branches/zip: ut0auxconf_have_solaris_atomics.c: Get the
          function declarations from <atomic.h>.
          Call the functions with proper arguments.
        ------------------------------------------------------------
        revno: 0.3.1639
        committer: marko
        timestamp: Tue 2009-05-19 08:41:32 +0000
        message:
          branches/zip: row_update_prebuilt_trx(): Correct bogus comment.
        ------------------------------------------------------------
        revno: 0.3.1638
        committer: marko
        timestamp: Tue 2009-05-19 07:00:51 +0000
        message:
          branches/zip: Remove bogus out: comments of functions returning void.
        ------------------------------------------------------------
        revno: 0.3.1637
        committer: marko
        timestamp: Tue 2009-05-19 06:30:02 +0000
        message:
          branches/zip: Add missing out: comments to nullary functions.
        ------------------------------------------------------------
        revno: 0.3.1636
        committer: marko
        timestamp: Tue 2009-05-19 06:04:04 +0000
        message:
          branches/zip: os_thread_get_curr_id(), os_thread_get_curr():
          Add missing out: comments.
        ------------------------------------------------------------
        revno: 0.3.1635
        committer: marko
        timestamp: Mon 2009-05-18 12:40:07 +0000
        message:
          branches/zip: When executing an optimistic update by delete-and-insert,
          correctly estimate the free space on the compressed page by
          page_zip_available(..., create=TRUE). This was reported as Issue #231.
          
          btr_cur_update_alloc_zip(): Add the parameter ibool create and pass it
          to page_zip_available(). The parameter was previously passed as 0.
          
          btr_cur_optimistic_update(): Pass create=TRUE to btr_cur_update_alloc_zip().
          
          rb://120 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1634
        committer: marko
        timestamp: Mon 2009-05-18 12:36:10 +0000
        message:
          branches/zip: Add some missing out: comments to buf0buf.h, buf0buf.c.
        ------------------------------------------------------------
        revno: 0.3.1633
        committer: marko
        timestamp: Mon 2009-05-18 12:29:51 +0000
        message:
          branches/zip: buf_validate(): Add missing out: comment.
        ------------------------------------------------------------
        revno: 0.3.1632
        committer: vasil
        timestamp: Thu 2009-05-14 16:13:41 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r4994.
        ------------------------------------------------------------
        revno: 0.3.1631
        committer: marko
        timestamp: Thu 2009-05-14 11:31:43 +0000
        message:
          branches/zip: Merge revisions 4976:4994 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4994 | marko | 2009-05-14 15:04:55 +0300 (Thu, 14 May 2009) | 18 lines
          
            branches/5.1: Prevent a race condition in innobase_commit() by ensuring
            that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
          
            srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
          
            innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
            is not changed from or to 0 at run time.  This is needed, because
            innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
            Without this limitation, the checks for innodb_commit_concurrency>0
            in innobase_commit() should be removed and that function would have to
            acquire and release commit_cond_m at least twice per invocation.
            Normally, innodb_commit_concurrency=0, and introducing the mutex operations
            would mean significant overhead.
          
            innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
          
            rb://123 approved by Heikki Tuuri
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1630
        committer: vasil
        timestamp: Wed 2009-05-13 12:21:55 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r4977.
        ------------------------------------------------------------
        revno: 0.3.1629
        committer: marko
        timestamp: Wed 2009-05-13 11:49:38 +0000
        message:
          branches/zip: Merge revisions 4746:4976 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4976 | marko | 2009-05-13 15:44:54 +0300 (Wed, 13 May 2009) | 6 lines
          
            branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
            innodb_table_monitor output.  It was accidentally omitted due to an
            off-by-one loop condition.  (Bug #44320)
          
            rb://116 approved by Heikki Tuuri
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1628
        committer: marko
        timestamp: Wed 2009-04-29 19:23:27 +0000
        message:
          branches/zip: Distinguish temporary tables in MLOG_FILE_CREATE.
          This addresses Mantis Issue #23 in InnoDB Hot Backup and some
          of MySQL Bug #41609.
          
          In MLOG_FILE_CREATE, we need to distinguish temporary tables, so that
          InnoDB Hot Backup can work correctly.  It turns out that we can do this
          easily, by using a bit of the previously unused parameter for page number.
          (The page number parameter of MLOG_FILE_CREATE has been written as 0
          ever since MySQL 4.1, which introduced MLOG_FILE_CREATE.)
          
          MLOG_FILE_FLAG_TEMP: A flag for indicating a temporary table in
          the page number parameter of MLOG_FILE_ operations.
          
          fil_op_write_log(): Add the parameter log_flags.
          
          fil_op_log_parse_or_replay(): Add the parameter log_flags.
          Do not replay MLOG_FILE_CREATE when MLOG_FILE_FLAG_TEMP is set in log_flags.
          This only affects ibbackup --apply-log.  InnoDB itself never replays file
          operations.
          
          rb://117 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1627
        committer: marko
        timestamp: Wed 2009-04-29 07:51:25 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): Remove a redundant condition.
          The insert buffer tree is a clustered index.
        ------------------------------------------------------------
        revno: 0.3.1626
        committer: marko
        timestamp: Mon 2009-04-27 09:40:20 +0000
        message:
          branches/zip: row_scan_and_check_index(): Add some comments on
          prebuilt->index_usable, as suggested by Michael.
        ------------------------------------------------------------
        revno: 0.3.1625
        committer: marko
        timestamp: Thu 2009-04-23 11:15:07 +0000
        message:
          branches/zip: Correct a misleading comment.  PAGE_MAX_TRX_ID
          will be updated in ibuf_insert_low() and updated from the
          insert buffer tree page to the secondary index tree page
          during the insert buffer merge.
        ------------------------------------------------------------
        revno: 0.3.1624
        committer: marko
        timestamp: Thu 2009-04-23 06:40:34 +0000
        message:
          branches/zip: row_scan_and_check_index(): Check
          row_merge_is_index_usable() earlier, to make the logic clearer.
        ------------------------------------------------------------
        revno: 0.3.1623
        committer: marko
        timestamp: Thu 2009-04-23 06:37:40 +0000
        message:
          branches/zip: row_scan_and_check_index(): Improve the diagnostics, by reporting
          errors from row_search_for_mysql() in the error log.
          The errors will still be ignored by CHECK TABLE.
          This is somewhat related to Issue #211.
        ------------------------------------------------------------
        revno: 0.3.1622
        committer: marko
        timestamp: Thu 2009-04-23 06:22:06 +0000
        message:
          branches/zip: ChangeLog: Add the missing include/ to two files.
        ------------------------------------------------------------
        revno: 0.3.1621
        committer: marko
        timestamp: Thu 2009-04-23 06:21:07 +0000
        message:
          branches/zip: ChangeLog: Document r4893.
        ------------------------------------------------------------
        revno: 0.3.1620
        committer: marko
        timestamp: Thu 2009-04-23 05:32:36 +0000
        message:
          branches/zip: Introduce the logical type names trx_id_t, roll_ptr_t,
          and undo_no_t. Each type is still defined as dulint.
          
          This is an initial step towards replacing dulint with a 64-bit data type.
          Because modern compilers have no trouble supporting 64-bit arithmetics
          even on 32-bit targets, the dulint struct is a relic that should go.
          
          The last remaining major use of dulint is dictionary IDs
          (table, index, and row ids).
          
          rb://114 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1619
        committer: marko
        timestamp: Mon 2009-04-20 12:11:38 +0000
        message:
          branches/zip: Cosmetic fixes.
          
          row_unlock_for_mysql(): Add a const qualifier to read-only rec_t*.
          Use dict_index_is_clust().
          
          CMakeLists.txt: svn propset svn:eol-style native.
        ------------------------------------------------------------
        revno: 0.3.1618
        committer: vasil
        timestamp: Fri 2009-04-17 22:40:47 +0000
        message:
          branches/zip:
          
          Add aux config programs to emulate the newly added checks in plug.in
          (from r4678).
        ------------------------------------------------------------
        revno: 0.3.1617
        committer: vasil
        timestamp: Fri 2009-04-17 22:22:33 +0000
        message:
          branches/zip:
          
          Add comment and copyright notice to the aux config program.
        ------------------------------------------------------------
        revno: 0.3.1616
        committer: vasil
        timestamp: Fri 2009-04-17 22:19:03 +0000
        message:
          branches/zip:
          
          Rename the aux config program and give it a more specific name because
          more are coming.
        ------------------------------------------------------------
        revno: 0.3.1615
        committer: vasil
        timestamp: Fri 2009-04-17 21:31:34 +0000
        message:
          branches/zip:
          
          Silence a compiler warning.
        ------------------------------------------------------------
        revno: 0.3.1614
        committer: vasil
        timestamp: Fri 2009-04-17 21:30:37 +0000
        message:
          branches/zip:
          
          Include the needed header for memset().
        ------------------------------------------------------------
        revno: 0.3.1613
        committer: vasil
        timestamp: Fri 2009-04-17 21:29:16 +0000
        message:
          branches/zip:
          
          Silence warning about unused variables.
        ------------------------------------------------------------
        revno: 0.3.1612
        committer: vasil
        timestamp: Fri 2009-04-17 20:58:08 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for t4748.
        ------------------------------------------------------------
        revno: 0.3.1611
        committer: vasil
        timestamp: Fri 2009-04-17 20:50:09 +0000
        message:
          branches/zip: Merge revisions 4710:4746 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4746 | vasil | 2009-04-18 00:32:08 +0300 (Sat, 18 Apr 2009) | 110 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/pars0pars.h
            
            branches/5.1:
            
            Merge a change from MySQL:
            
              ------------------------------------------------------------
              revno: 2728.10.2
              committer: Ignacio Galarza <iggy@mysql.com>
              branch nick: mysql-5.1-bugteam-bug29125
              timestamp: Fri 2009-02-13 11:41:47 -0500
              message:
                Bug#29125 Windows Server X64: so many compiler warnings
                - Remove bothersome warning messages.  This change focuses on the warnings
                that are covered by the ignore file: support-files/compiler_warnings.supp.
                - Strings are guaranteed to be max uint in length
              modified:
                client/mysql_upgrade.c
                client/mysqladmin.cc
                client/mysqlbinlog.cc
                client/mysqlcheck.c
                client/mysqldump.c
                client/mysqlslap.c
                client/mysqltest.cc
                client/sql_string.cc
                extra/comp_err.c
                extra/yassl/src/buffer.cpp
                extra/yassl/taocrypt/include/block.hpp
                extra/yassl/taocrypt/src/algebra.cpp
                extra/yassl/taocrypt/src/asn.cpp
                include/config-win.h
                libmysql/libmysql.c
                mysys/array.c
                mysys/base64.c
                mysys/charset.c
                mysys/checksum.c
                mysys/default.c
                mysys/default_modify.c
                mysys/hash.c
                mysys/mf_keycache.c
                mysys/mf_tempdir.c
                mysys/my_append.c
                mysys/my_compress.c
                mysys/my_conio.c
                mysys/my_copy.c
                mysys/my_getwd.c
                mysys/my_pread.c
                mysys/my_quick.c
                mysys/my_read.c
                mysys/safemalloc.c
                mysys/string.c
                server-tools/instance-manager/buffer.cc
                server-tools/instance-manager/instance.cc
                server-tools/instance-manager/options.cc
                server-tools/instance-manager/parse.h
                sql-common/client.c
                sql-common/my_user.c
                sql/event_data_objects.cc
                sql/event_parse_data.cc
                sql/events.cc
                sql/gen_lex_hash.cc
                sql/item.h
                sql/item_func.cc
                sql/item_strfunc.cc
                sql/item_timefunc.cc
                sql/lock.cc
                sql/log_event.cc
                sql/log_event.h
                sql/log_event_old.cc
                sql/net_serv.cc
                sql/sp_head.h
                sql/spatial.h
                sql/sql_class.h
                sql/sql_connect.cc
                sql/sql_crypt.cc
                sql/sql_error.cc
                sql/sql_insert.cc
                sql/sql_lex.cc
                sql/sql_lex.h
                sql/sql_load.cc
                sql/sql_prepare.cc
                sql/sql_profile.cc
                sql/sql_repl.cc
                sql/sql_servers.cc
                sql/sql_string.cc
                sql/sql_table.cc
                sql/sql_trigger.cc
                sql/sql_udf.cc
                sql/sql_view.cc
                sql/udf_example.c
                sql/uniques.cc
                storage/archive/azio.c
                storage/archive/azlib.h
                storage/csv/ha_tina.cc
                storage/csv/ha_tina.h
                storage/csv/transparent_file.h
                storage/federated/ha_federated.cc
                storage/federated/ha_federated.h
                storage/heap/hp_write.c
                storage/innobase/handler/ha_innodb.cc
                storage/innobase/include/pars0pars.h
                storage/myisam/ha_myisam.cc
                storage/myisam/mi_check.c
                storage/myisam/mi_packrec.c
                storage/myisam/mi_search.c
                storage/myisam/rt_index.c
                storage/myisammrg/ha_myisammrg.cc
                strings/ctype.c
                strings/my_vsnprintf.c
                tests/bug25714.c
                tests/mysql_client_test.c
        ------------------------------------------------------------
        revno: 0.3.1610
        committer: calvin
        timestamp: Fri 2009-04-17 04:13:20 +0000
        message:
          branches/zip: minor changes to CMakeLists.txt
          
          All are non-functional changes:
          - should check for long (not int), spotted by Sunny
          - comment out the project definition, avoiding to generate another
            .sln file.
        ------------------------------------------------------------
        revno: 0.3.1609
        committer: marko
        timestamp: Thu 2009-04-16 12:02:27 +0000
        message:
          branches/zip: univ.i: Define REFMAN as the base URL of the
          MySQL Reference Manual and use it in every string.
          This fixes Issue #221.
        ------------------------------------------------------------
        revno: 0.3.1608
        committer: marko
        timestamp: Thu 2009-04-16 06:32:09 +0000
        message:
          branches/zip: row_scan_and_check_index(): Initialize prebuilt->index_usable.
          This should have been done in r4631.  Spotted by Michael.
        ------------------------------------------------------------
        revno: 0.3.1607
        committer: vasil
        timestamp: Thu 2009-04-16 05:44:48 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r4717.
        ------------------------------------------------------------
        revno: 0.3.1606
        committer: calvin
        timestamp: Wed 2009-04-15 21:22:35 +0000
        message:
          branches/zip: Use the Windows Interlocked functions for atomic memory
          access
          
          Mapping the atomic operations to Windows Interlocked functions:
          
          os_compare_and_swap_* to InterlockedCompareExchange(64)
          os_atomic_increment_* to InterlockedExchangeAdd(64)
          os_atomic_test_and_set_byte to InterlockedExchange
          
          In this patch, the legacy code under UNIV_CAN_USE_X86_ASSEMBLER is
          removed all together, and add HAVE_WINDOWS_ATOMICS and
          INNODB_RW_LOCKS_USE_ATOMICS to CMakeLists.txt
          
          This is to address mantis issue#194.
          
          rb://113
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1605
        committer: vasil
        timestamp: Wed 2009-04-15 17:36:06 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r4543.
        ------------------------------------------------------------
        revno: 0.3.1604
        committer: vasil
        timestamp: Wed 2009-04-15 08:39:04 +0000
        message:
          branches/zip:
          
          Whitespace cleanup in ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1603
        committer: vasil
        timestamp: Wed 2009-04-15 08:36:57 +0000
        message:
          branches/zip:
          
          Fix typo in the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1602
        committer: vasil
        timestamp: Wed 2009-04-15 08:36:16 +0000
        message:
          branches/zip:
          
          Add missing ChangeLog entries
        ------------------------------------------------------------
        revno: 0.3.1601
        committer: vasil
        timestamp: Wed 2009-04-15 08:26:32 +0000
        message:
          branches/zip: Merge revisions 4481:4710 from branches/5.1:
          
          (resolving conflict in r4574, r4575 and skipping r4699 and r4705 because
          analogous changes to r4699 and r4705 were already made to branches/zip)
          
            ------------------------------------------------------------------------
            r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb.test
            
            branches/5.1:
            
            Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
            
            ------------------------------------------------------------------------
            r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
            Changed paths:
               M /branches/5.1/Makefile.am
               M /branches/5.1/mysql-test/innodb.test
            
            branches/5.1:
            
            Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
            
              TEST                                      RESULT   TIME (ms)
              ------------------------------------------------------------
              
              worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
              main.innodb                              [ pass ]   8803
              
              MTR's internal check of the test case 'main.innodb' failed.
              This means that the test case does not preserve the state that existed
              before the test case was executed.  Most likely the test case did not
              do a proper clean-up.
              This is the diff of the states of the servers before and after the
              test case was executed:
              mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
              mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
              mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
              mysqltest: ... Connected.
              mysqltest: Start processing test commands from './include/check-testcase.test' ...
              mysqltest: ... Done processing test commands.
              --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-03-30 14:12:31.000000000 +0300
              +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-03-30 14:12:41.000000000 +0300
              @@ -99,7 +99,7 @@
               INNODB_SUPPORT_XA ON
               INNODB_SYNC_SPIN_LOOPS 20
               INNODB_TABLE_LOCKS ON
              -INNODB_THREAD_CONCURRENCY 8
              +INNODB_THREAD_CONCURRENCY 16
               INNODB_THREAD_SLEEP_DELAY 10000
               INSERT_ID 0
               INTERACTIVE_TIMEOUT 28800
              
              mysqltest: Result content mismatch
              
              not ok
            
            ------------------------------------------------------------------------
            r4575 | vasil | 2009-03-30 15:55:31 +0300 (Mon, 30 Mar 2009) | 8 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb.result
               M /branches/5.1/mysql-test/innodb.test
            
            branches/5.1:
            
            Fix Bug#43309 Test main.innodb can't be run twice
            
            Make the innodb mysql-test more flexible by inspecting how much a
            variable of interest has changed since the start of the test. Do not
            assume the variables have zero values at the start of the test.
            
            ------------------------------------------------------------------------
            r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
            Changed paths:
               M /branches/5.1/Makefile.am
            
            branches/5.1:
            
            Revert a change to Makefile.am that I committed accidentally in c4574.
            
            ------------------------------------------------------------------------
            r4659 | vasil | 2009-04-06 15:34:51 +0300 (Mon, 06 Apr 2009) | 6 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb.test
            
            branches/5.1:
            
            Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
            
            Add an explanatory comment, as suggested by Patrick Crews in the bug report.
            
            ------------------------------------------------------------------------
            r4699 | vasil | 2009-04-09 14:01:52 +0300 (Thu, 09 Apr 2009) | 15 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/srv0srv.h
               M /branches/5.1/page/page0cur.c
               M /branches/5.1/srv/srv0srv.c
            
            branches/5.1:
            
            Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for indexes
            of InnoDB table
            
            by replacing the PRNG that is used to pick random pages with a better
            one.
            
            This is based on r4670 but also adds a new configuration option and
            enables the fix only if this option is changed. Please skip the present
            revision when merging.
            
            Approved by: Heikki (via email)
            
            
            ------------------------------------------------------------------------
            r4705 | vasil | 2009-04-14 14:30:13 +0300 (Tue, 14 Apr 2009) | 5 lines
            Changed paths:
               M /branches/5.1/page/page0cur.c
            
            branches/5.1:
            
            When using the random function, first take the modulus by the number of pages
            and then typecast to ulint.
            
            ------------------------------------------------------------------------
            r4710 | vasil | 2009-04-15 11:55:18 +0300 (Wed, 15 Apr 2009) | 25 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Merge a change from MySQL (looks like this is against 5.0 but they later
            merged it to 5.1):
            
              ------------------------------------------------------------
              revno: 1810.3846.1
              committer: Alexey Botchkov <holyfoot@mysql.com>
              branch nick: 31435
              timestamp: Tue 2008-11-11 14:42:32 +0400
              message:
                Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                    I think we don't need to issue an error statement in the convert_search_mode_to_innobase().
                    Returning the PAGE_CUR_UNSUPP value is enough as allows to handle this
                    case depending on the requirements.
                
                per-file comments:
                  sql/ha_innodb.cc
                Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                     no error issued in convert_search_mode_to_innobase.
                     ha_innobase::records_in_range() returns HA_POS_ERROR if search mode isn't supported.
              modified:
                sql/ha_innodb.cc
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1600
        committer: calvin
        timestamp: Tue 2009-04-14 13:47:31 +0000
        message:
          branches/zip: remove statically linked libraries from mysql
          
          To make zlib and strings dynamically linked; mysqld will export
          additional functions required by InnoDB.
          
          Since the symbols will be resolved dynamically during runtime,
          wdl_load_mapfile() is no longer able to make any function calls
          to ones in mysqld. As the result, strtoull() (from strings.lib)
          is replaced with _strtoui64().
          
          rb://111
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1599
        committer: vasil
        timestamp: Tue 2009-04-14 10:32:11 +0000
        message:
          branches/zip:
          
          When using the random function, first take the modulus by the number of pages
          and then typecast to ulint.
        ------------------------------------------------------------
        revno: 0.3.1598
        committer: calvin
        timestamp: Mon 2009-04-13 14:20:45 +0000
        message:
          branches/zip: new CMakeLists.txt
          
          CMakeLists.txt is completely rewritten with enhancements:
          - Print out useful information, such as
            system name, directory, generator used,
            win64, Microsoft compiler, etc.
          - Remove one workaround for mysqld.lib location.
            User does not need to specify a build type
            when invoking MSVC generator.
        ------------------------------------------------------------
        revno: 0.3.1597
        committer: calvin
        timestamp: Mon 2009-04-13 14:16:44 +0000
        message:
          branches/zip: delete the original CMakeLists.txt
          
          A new version will be committed, suggested by Ken.
        ------------------------------------------------------------
        revno: 0.3.1596
        committer: calvin
        timestamp: Fri 2009-04-10 20:37:10 +0000
        message:
          branches/zip: Rewrite CMakeLists.txt
          
          CMakeLists.txt is completely rewritten:
          - To replace the one written by mysql
          - Print out some useful information, such as
            system name, directory, generator used,
            win64, Microsoft compiler, etc.
          - Remove one workaround for mysqld.lib location.
            User does not need to specify a build type
        ------------------------------------------------------------
        revno: 0.3.1595
        committer: marko
        timestamp: Wed 2009-04-08 10:24:49 +0000
        message:
          branches/zip: Hide unnecessarily visible globals.
          dict_ind_redundant, dict_ind_compact: Declare these UNIV_INTERN.
          innodb_hton_ptr: Declare static.  We do not attempt to access the
          built-in InnoDB any more.
          trx_roll_savepoints_free(): Declare UNIV_INTERN.
        ------------------------------------------------------------
        revno: 0.3.1594
        committer: vasil
        timestamp: Wed 2009-04-08 09:11:15 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r4678.
        ------------------------------------------------------------
        revno: 0.3.1593
        committer: vasil
        timestamp: Wed 2009-04-08 09:08:59 +0000
        message:
          branches/zip:
          
          Whitespace fixup in the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1592
        committer: inaam
        timestamp: Tue 2009-04-07 14:45:37 +0000
        message:
          branches/zip
          
          Enable atomics on solaris (using the libc functions as defined in
          atomic.h) if GCC atomic builtins are not present.
          
          There still remains some work to be done (by Vasil?). This patch
          makes changes to plug.in to check pthread_t size and presence of
          atomic functions when running on solaris. The same has to become
          a part of the generated Makefile.in when we bake our source.
          
          Reviewed by: Heikki rb://106
        ------------------------------------------------------------
        revno: 0.3.1591
        committer: marko
        timestamp: Tue 2009-04-07 12:19:31 +0000
        message:
          branches/zip: Adjust r4673 as in the merge to branches/6.0 -r4676.
        ------------------------------------------------------------
        revno: 0.3.1590
        committer: marko
        timestamp: Tue 2009-04-07 11:45:28 +0000
        message:
          branches/zip: Allow in-place updates of UTF-8 CHAR columns
          from or to NULL in ROW_FORMAT=REDUNDANT. (Bug #44032)
          
          rb://107 approved by Heikki Tuuri.
        ------------------------------------------------------------
        revno: 0.3.1589
        committer: vasil
        timestamp: Tue 2009-04-07 05:37:31 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for r4670.
        ------------------------------------------------------------
        revno: 0.3.1588
        committer: vasil
        timestamp: Tue 2009-04-07 05:35:23 +0000
        message:
          branches/zip:
          
          Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for
          indexes of InnoDB table
          
          by replacing the pseudo random number generator with a better one (LCG).
          
          This also fixes Mantis Issue#212.
          
          Approved by: Heikki (rb://110)
        ------------------------------------------------------------
        revno: 0.3.1587
        committer: marko
        timestamp: Mon 2009-04-06 12:17:30 +0000
        message:
          branches/zip: Initialize innodb_change_buffering from the configuration file.
          
          So far, the parameter innodb_change_buffering was only settable by the
          SET GLOBAL command. Any change specified in the configuration file or
          on the mysqld command line was ignored. This was reported as Issue #217.
          
          rb://109 approved by Heikki Tuuri.
        ------------------------------------------------------------
        revno: 0.3.1586
        committer: marko
        timestamp: Mon 2009-04-06 11:13:45 +0000
        message:
          branches/zip: Remove the bogus failure reported in Issue #219.
        ------------------------------------------------------------
        revno: 0.3.1585
        committer: vasil
        timestamp: Mon 2009-04-06 06:07:26 +0000
        message:
          branches/zip:
          
          Fix formatting in ChangeLog to be consistent.
        ------------------------------------------------------------
        revno: 0.3.1584
        committer: vasil
        timestamp: Mon 2009-04-06 06:05:25 +0000
        message:
          branches/zip:
          
          Add changelog entry for c4630.
        ------------------------------------------------------------
        revno: 0.3.1583
        committer: marko
        timestamp: Thu 2009-04-02 12:23:12 +0000
        message:
          branches/zip: Refuse to use newly created indexes that may lack
          history.  This addresses Mantis issue #116.
          
          dict_index_t: Enable the storage of trx_id.
          
          row_prebuilt_t: Make many fields bit-fields to reduce the memory
          footprint. Add index_usable.
          
          ha_innobase::change_active_index(): Check if the index is usable and
          set prebuilt->index_usable accordingly. Unfortunately, the return
          status of this function is ignored by MySQL, and the actual refusal to
          use the index must be made in row_search_for_mysql().
          
          row_search_for_mysql(): Return DB_MISSING_HISTORY if
          !prebuilt->index_usable.
          
          convert_error_code_to_mysql(): Map DB_MISSING_HISTORY to
          HA_ERR_TABLE_DEF_CHANGED.
          
          innodb-index.test: Add a test case where access to a newly created
          secondary index must be blocked for old transactions.
          
          rb://100 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1582
        committer: calvin
        timestamp: Thu 2009-04-02 11:46:47 +0000
        message:
          branches/zip: Mantis issue #197 - Make srv_spin_wait_delay configurable
          
          New parameter innodb_spin_wait_delay to set the maximum delay between
          polling for a spin lock. 5 is the default.
          
          Approved by: Marko (on IM)
        ------------------------------------------------------------
        revno: 0.3.1581
        committer: marko
        timestamp: Tue 2009-03-31 06:40:58 +0000
        message:
          branches/zip: struct read_view_struct: Add clarifying comments about
          low_limit_id and up_limit_id.
        ------------------------------------------------------------
        revno: 0.3.1580
        committer: inaam
        timestamp: Wed 2009-03-25 17:18:33 +0000
        message:
          branches/zip
          
          SHOW ENGINE INNODB MUTEX shows all mutexes and rw_locks. This can
          be overwhelming particularly when the buffer pool is very large
          (note that each block in buffer pool has at least one mutex, one
          rw_lock and an additional mutex if rw_lock does not use atomics).
          With this patch status of following mutexes and rw-locks is not shown:
          
          1) block->mutex
          2) block->lock
          3) block->lock->mutex (if applicable)
          4) All other mutexes and rw-locks for which number of os-waits are zero
          
          Addresses issue# 179 rb://99
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1579
        committer: calvin
        timestamp: Tue 2009-03-24 15:59:45 +0000
        message:
          branches/zip: Mantis issue #201 - remove innodb_plugin_init() due to
          new option --ignore_builtin_innodb
          
          Starting 5.1.33, MySQL has a new option --ignore_builtin_innodb
          for using the dynamic plugin. It is required to remove
          innodb_plugin_init() in the plugin.
          
          This patch removes innodb_plugin_init() as well as functions,
          variables used by innodb_plugin_init().
          
          rb://98
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1578
        committer: marko
        timestamp: Tue 2009-03-24 13:46:12 +0000
        message:
          branches/zip: Note that buf_page_t::list and buf_page_t::in_flush_list
          are only protected by buf_pool_mutex, not by the block mutex.
          
          buf_page_release(): Remove the assertion on in_flush_list.
          The function is only holding block->mutex, not buf_pool_mutex.
          This was reported by Sunny.  This was the only piece of code
          that accessed in_flush_list while not holding buf_pool_mutex.
        ------------------------------------------------------------
        revno: 0.3.1577
        committer: marko
        timestamp: Tue 2009-03-24 12:02:29 +0000
        message:
          branches/zip: Remove references to UNIV_HOTBACKUP from files that are
          not used when building InnoDB Hot Backup.  Declare
          innobase_invalidate_query_cache() in ha_prototypes.h.
        ------------------------------------------------------------
        revno: 0.3.1576
        committer: calvin
        timestamp: Mon 2009-03-23 21:15:33 +0000
        message:
          branches/zip: adjust build files on Windows
          
          Adjust the patch positions based on the latest MySQL source.
          Also add the patches to the .bat files for vs9.
        ------------------------------------------------------------
        revno: 0.3.1575
        committer: marko
        timestamp: Mon 2009-03-23 14:21:34 +0000
        message:
          branches/zip: Remove unneeded definitions and dependencies
          from UNIV_HOTBACKUP builds.
        ------------------------------------------------------------
        revno: 0.3.1574
        committer: marko
        timestamp: Mon 2009-03-23 12:57:45 +0000
        message:
          branches/zip: recv_parse_or_apply_log_rec_body(): Add debug assertions
          ensuring that FIL_PAGE_TYPE makes sense when applying log records.
        ------------------------------------------------------------
        revno: 0.3.1573
        committer: marko
        timestamp: Mon 2009-03-23 12:05:18 +0000
        message:
          branches/zip: Enclose recv_recovery_from_backup_on and
          recv_recovery_from_backup_is_on() in #ifdef UNIV_LOG_ARCHIVE.
        ------------------------------------------------------------
        revno: 0.3.1572
        committer: marko
        timestamp: Mon 2009-03-23 11:00:43 +0000
        message:
          branches/zip: Remove the remaining references to hash_table_t::adapive
          from UNIV_HOTBACKUP builds.  This should have been done in r4515.
        ------------------------------------------------------------
        revno: 0.3.1571
        committer: marko
        timestamp: Mon 2009-03-23 10:20:50 +0000
        message:
          branches/zip: Exclude some operating system interface code
          from UNIV_HOTBACKUP builds.
        ------------------------------------------------------------
        revno: 0.3.1570
        committer: marko
        timestamp: Mon 2009-03-23 10:05:47 +0000
        message:
          branches/zip: buf_page_print(): Clean up the code #ifdef UNIV_HOTBACKUP.
        ------------------------------------------------------------
        revno: 0.3.1569
        committer: marko
        timestamp: Mon 2009-03-23 09:07:20 +0000
        message:
          branches/zip: Define and use PAGE_ZIP_MATCH.
          In UNIV_HOTBACKUP builds, assume fixed allocation.
        ------------------------------------------------------------
        revno: 0.3.1568
        committer: marko
        timestamp: Mon 2009-03-23 08:57:16 +0000
        message:
          branches/zip: Define and use ASSERT_HASH_MUTEX_OWN.
          Make it a no-op in UNIV_HOTBACKUP builds.
        ------------------------------------------------------------
        revno: 0.3.1567
        committer: marko
        timestamp: Mon 2009-03-23 08:49:53 +0000
        message:
          branches/zip: hash_table_t: adaptive: Remove from UNIV_HOTBACKUP builds.
        ------------------------------------------------------------
        revno: 0.3.1566
        committer: vasil
        timestamp: Fri 2009-03-20 14:50:41 +0000
        message:
          branches/zip:
          
          Add any entry about the release of 1.0.3 in the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1565
        committer: marko
        timestamp: Fri 2009-03-20 13:47:17 +0000
        message:
          branches/zip: fil_init(): Add the parameter hash_size.
        ------------------------------------------------------------
        revno: 0.3.1564
        committer: marko
        timestamp: Fri 2009-03-20 13:10:25 +0000
        message:
          branches/zip: recv_scan_log_recs(): Remove a compile-time constant parameter.
        ------------------------------------------------------------
        revno: 0.3.1563
        committer: marko
        timestamp: Fri 2009-03-20 13:08:05 +0000
        message:
          branches/zip: Non-functional change: Add const qualifiers.
          
          log_block_checksum_is_ok_or_old_format(), recv_sys_add_to_parsing_buf():
          The log block is read-only.  Make it const.
        ------------------------------------------------------------
        revno: 0.3.1562
        committer: marko
        timestamp: Fri 2009-03-20 12:56:19 +0000
        message:
          branches/zip: recv_sys_init(): Remove a compile-time constant parameter.
        ------------------------------------------------------------
        revno: 0.3.1561
        committer: marko
        timestamp: Fri 2009-03-20 12:48:26 +0000
        message:
          branches/zip: recv_recover_page(): Remove compile-time constant parameters.
        ------------------------------------------------------------
        revno: 0.3.1560
        committer: marko
        timestamp: Fri 2009-03-20 12:15:52 +0000
        message:
          branches/zip: innobase_get_at_most_n_mbchars(): Declare in ha_prototypes.h.
        ------------------------------------------------------------
        revno: 0.3.1559
        committer: marko
        timestamp: Fri 2009-03-20 11:51:35 +0000
        message:
          branches/zip: fil0fil.c: Refer to fil_system directly, not via local vars.
          This eliminates some "unused variable" warnings when building
          InnoDB Hot Backup in such a way that all mutex operations are no-ops.
        ------------------------------------------------------------
        revno: 0.3.1558
        committer: marko
        timestamp: Fri 2009-03-20 11:24:06 +0000
        message:
          branches/zip: Replace fil_get_space_for_id_low() with fil_space_get_by_id().
        ------------------------------------------------------------
        revno: 0.3.1557
        committer: marko
        timestamp: Fri 2009-03-20 10:52:14 +0000
        message:
          branches/zip: page_validate(): Always report the space id and the
          name of the index.
          
          In Hot Backup, do not invoke comparison functions, as MySQL collations
          will be unavailable.
        ------------------------------------------------------------
        revno: 0.3.1556
        committer: marko
        timestamp: Fri 2009-03-20 10:45:18 +0000
        message:
          branches/zip: Add const qualifiers or in/out comments to some function
          parameters in log0log.
        ------------------------------------------------------------
        revno: 0.3.1555
        committer: marko
        timestamp: Fri 2009-03-20 10:33:33 +0000
        message:
          branches/zip: Non-functional change for reducing dependencies in InnoDB Hot Backup:
          
          Replace srv_sys->dummy_ind1 and srv_sys->dummy_ind2 with
          dict_ind_redundant and dict_ind_compact, initialized in dict_init().
        ------------------------------------------------------------
        revno: 0.3.1554
        committer: marko
        timestamp: Thu 2009-03-19 13:23:32 +0000
        message:
          branches/zip: Merge revisions 4400:4481 from branches/5.1:
          
            ------------------------------------------------------------------------
            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
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1553
        committer: marko
        timestamp: Wed 2009-03-18 12:32:13 +0000
        message:
          branches/zip: buf_buddy_free_low(): Correct the function comment.
        ------------------------------------------------------------
        revno: 0.3.1552
        committer: marko
        timestamp: Wed 2009-03-18 10:43:54 +0000
        message:
          branches/zip: buf_LRU_block_remove_hashed_page(): Add some debug assertions.
        ------------------------------------------------------------
        revno: 0.3.1551
        committer: vasil
        timestamp: Wed 2009-03-18 09:53:53 +0000
        message:
          branches/zip:
          
          Remove mysql-test/patches/bug41893.diff because that bug has been fixed
          in the MySQL repository, see http://bugs.mysql.com/41893.
        ------------------------------------------------------------
        revno: 0.3.1550
        committer: vasil
        timestamp: Tue 2009-03-17 13:50:30 +0000
        message:
          branches/zip:
          
          Increment the InnoDB Plugin version from 1.0.3 to 1.0.4 now that
          1.0.3 has been released.
        ------------------------------------------------------------
        revno: 0.3.1549
        committer: marko
        timestamp: Tue 2009-03-17 10:34:19 +0000
        message:
          branches/zip: buf0buddy.c: Add and adjust some debug assertions.
        ------------------------------------------------------------
        revno: 0.3.1548
        committer: vasil
        timestamp: Tue 2009-03-17 07:38:19 +0000
        message:
          branches/zip:
          
          Remove mysql-test/patches/bug32625.diff because that bug was fixed in
          the mysql repository (1 year and 4 months after sending them the simple
          patch!). See http://bugs.mysql.com/32625
        ------------------------------------------------------------
        revno: 0.3.1547
        committer: marko
        timestamp: Mon 2009-03-16 12:12:02 +0000
        message:
          branches/zip: sync_thread_add_level(): Make the assertions about
          level == SYNC_BUF_BLOCK more readable.
        ------------------------------------------------------------
        revno: 0.3.1546
        committer: marko
        timestamp: Mon 2009-03-16 10:59:25 +0000
        message:
          branches/zip: UT_LIST_VALIDATE(): Assert that the link is non-NULL
          before dereferencing it.  In this way, ut_list_node_313 will be
          pointing to the last non-NULL list item at the time of the assertion
          failure.  (gcc-4.3.2 -O3 seems to optimize the common subexpressions
          and make the variable NULL, though.)
        ------------------------------------------------------------
        revno: 0.3.1545
        committer: marko
        timestamp: Mon 2009-03-16 09:43:34 +0000
        message:
          branches/zip: UT_LIST_VALIDATE(): Add the parameter ASSERTION and
          adjust all callers.
        ------------------------------------------------------------
        revno: 0.3.1544
        committer: marko
        timestamp: Thu 2009-03-12 08:26:40 +0000
        message:
          branches/zip: Merge revisions 4359:4400 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 2 lines
          
            branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
            also for unlock_row().  (Bug #39320)
            ------------------------------------------------------------------------
            r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 5 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.
            ------------------------------------------------------------------------
          
          These were submitted as rb://94 and rb://96 and approved by Heikki Tuuri.
        ------------------------------------------------------------
        revno: 0.3.1543
        committer: marko
        timestamp: Thu 2009-03-12 07:26:11 +0000
        message:
          branches/zip: trx_sys_create_doublewrite_buf(): As the dummy change,
          initialize FIL_PAGE_TYPE.  This will make it easier to write the debug
          assertions for ibbackup --apply-log.
        ------------------------------------------------------------
        revno: 0.3.1542
        committer: marko
        timestamp: Thu 2009-03-12 07:22:27 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(): Initialize FIL_PAGE_TYPE
          in a separate redo log entry.  This will make ibbackup --apply-log
          debugging easier.
        ------------------------------------------------------------
        revno: 0.3.1541
        committer: calvin
        timestamp: Mon 2009-03-09 08:10:17 +0000
        message:
          branches/zip: remove compile flag MYSQL_SERVER for dynamic plugin
          
          The dynamic plugin on Windows used to be built with MYSQL_SERVER
          compile flag, while it is not the case for other platforms.
          r3797 assumed MYSQL_SERVER was not defined for dynamic plugin,
          which introduced the engine crash during dropping a database.
        ------------------------------------------------------------
        revno: 0.3.1540
        committer: vasil
        timestamp: Thu 2009-03-05 20:31:37 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for the bugfix in c4360.
        ------------------------------------------------------------
        revno: 0.3.1539
        committer: vasil
        timestamp: Thu 2009-03-05 20:29:07 +0000
        message:
          branches/zip: Merge revision 4359 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4359 | vasil | 2009-03-05 21:42:01 +0200 (Thu, 05 Mar 2009) | 14 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Merge a change from MySQL:
            
              ------------------------------------------------------------
              revno: 2747
              committer: Timothy Smith <timothy.smith@sun.com>
              branch nick: 51
              timestamp: Fri 2009-01-16 17:49:07 +0100
              message:
                Add another cast to ignore int/ulong difference in error types, silence warning on Win64
              modified:
                storage/innobase/handler/ha_innodb.cc
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1538
        committer: vasil
        timestamp: Thu 2009-03-05 20:27:54 +0000
        message:
          branches/zip: Merge revision 4358 from branches/5.1 (resolving a conflict):
          
            ------------------------------------------------------------------------
            r4358 | vasil | 2009-03-05 21:21:10 +0200 (Thu, 05 Mar 2009) | 21 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Merge a change from MySQL:
            
              ------------------------------------------------------------
              revno: 2728.19.1
              committer: Alfranio Correia <alfranio.correia@sun.com>
              branch nick: mysql-5.1-bugteam
              timestamp: Tue 2009-02-03 11:36:46 +0000
              message:
                BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
                      
                There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
                (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
                of type 'ulint' while mysql uses an 'int'.
                      
                To fix the problem the function manipulates an error variable of
                type 'ulint' and only casts it into 'int' when needs to return the value.
              modified:
                storage/innobase/handler/ha_innodb.cc
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1537
        committer: vasil
        timestamp: Thu 2009-03-05 20:23:17 +0000
        message:
          branches/zip: Merge revisions 4287:4357 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
            It was not a SIGSEGV but an assertion failure. The assertion was checking
            the invariant that *first_value passed in by MySQL doesn't contain a value
            that is greater than the max value for that type. The assertion has been
            changed to a check and if the value is greater than the max we report a
            generic AUTOINC failure.
            
            rb://93
            Approved by Heikki
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1536
        committer: vasil
        timestamp: Thu 2009-03-05 14:38:59 +0000
        message:
          branches/zip:
          
          Implement a check whether pthread_t objects can be used by GCC atomic
          builtin functions. This check is implemented in plug.in and defines the
          macro HAVE_ATOMIC_PTHREAD_T. This macro is checked in univ.i and the
          relevant part of the code enabled (the one that uses GCC atomics against
          pthread_t objects).
          
          In addition to this, the same program that is compiled as part of the
          plug.in check is added in ut/ut0auxconf.c. In the InnoDB Plugin source
          archives that are shipped to the users, a generated Makefile.in is added.
          That Makefile.in will be modified to compile ut/ut0auxconf.c and define
          the macro HAVE_ATOMIC_PTHREAD_T if the compilation succeeds. I.e.
          Makefile.in will emulate the work that is done by plug.in. This is done in
          order to make the check happen and HAVE_ATOMIC_PTHREAD_T eventually
          defined without regenerating MySQL's ./configure from
          ./storage/innobase/plug.in. The point is not to ask users to install the
          autotools and regenerate ./configure.
          
          rb://95
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1535
        committer: vasil
        timestamp: Thu 2009-03-05 11:49:51 +0000
        message:
          branches/zip:
          
          Fix typo made in r4353.
        ------------------------------------------------------------
        revno: 0.3.1534
        committer: vasil
        timestamp: Thu 2009-03-05 07:27:29 +0000
        message:
          branches/zip:
          
          As suggested by Ken, print a message that says that the Google SMP patch
          (GCC atomics) is disabled if it is. Also extend the message when the patch
          is partially enabled to make it clear that it is partially enabled.
        ------------------------------------------------------------
        revno: 0.3.1533
        committer: vasil
        timestamp: Fri 2009-02-27 11:27:18 +0000
        message:
          branches/zip:
          
          Add FreeBSD to the list of the operating systems that have
          sizeof(pthread_t) == sizeof(void*) (i.e. word size).
          
          On FreeBSD pthread_t is defined like:
          
            /usr/include/sys/_pthreadtypes.h:
          
            typedef struct  pthread                 *pthread_t;
          
          I did the following tests (per Inaam's recommendation):
          
          a) appropriate version of GCC is available on that platform (4.1.2 or
          higher for atomics to be available)
          
            On FreeBSD 6.x the default compiler is 3.4.6, on FreeBSD 7.x the default
            one is 4.2.1. One can always install the version of choice from the ports
            collection. If gcc 3.x is used then HAVE_GCC_ATOMIC_BUILTINS will not be
            defined and thus the change I am committing will make no difference.
          
          b) find out if sizeof(pthread_t) == sizeof(long)
          
            On 32 bit both are 4 bytes, on 64 bit both are 8 bytes.
          
          c) find out the compiler generated platform define (e.g.: __aix, __sunos__
          etc.)
          
            The macro is __FreeBSD__.
          
          d) patch univ.i with the appropriate platform define
          e) build the mysql
          f) ensure it is using atomic builtins (look at the err.log message at
          system startup. It should say we are using atomics for both mutexes and
          rw-locks)
          g) do sanity testing (keeping in view the smp changes)
          
            I ran the mysql-test suite. All tests pass.
        ------------------------------------------------------------
        revno: 0.3.1532
        committer: inaam
        timestamp: Fri 2009-02-27 00:16:46 +0000
        message:
          branches/zip
          
          This is a fix for issue#178. Instead of using UNIV_LINUX which is
          defined through CFLAGS we use compiler generated define __linux__
          that is effective for both .c and .cc files.
        ------------------------------------------------------------
        revno: 0.3.1531
        committer: inaam
        timestamp: Fri 2009-02-27 00:13:19 +0000
        message:
          branches/zip
          
          This is to revert the changes made to the plug.in (r4251) as a fix for
          issue# 178. Changes to plug.in will not propogate to a plugin
          installation unless autotools are rerun which is unacceptable.
          
          A fix for issue# 178 will be committed in a separate commit.
        ------------------------------------------------------------
        revno: 0.3.1530
        committer: marko
        timestamp: Thu 2009-02-26 21:27:51 +0000
        message:
          branches/zip: btr_check_blob_fil_page_type(): Do not report
          FIL_PAGE_TYPE mismatch even when purging a BLOB.
          Heavy users may have large data files created with MySQL 5.0 or earlier,
          and they don not want to have the error log flooded with such messages.
          
          This fixes Issue #182.
        ------------------------------------------------------------
        revno: 0.3.1529
        committer: vasil
        timestamp: Thu 2009-02-26 07:21:20 +0000
        message:
          branches/zip:
          
          Apply any necessary patches to the mysql tree at the end of setup.sh
          This step was previously done manually (and sometimes forgotten).
        ------------------------------------------------------------
        revno: 0.3.1528
        committer: vasil
        timestamp: Wed 2009-02-25 19:33:32 +0000
        message:
          branches/zip:
          
          Do not output the commands that restore the environment because they depend
          on the state of the environment before the test starts executing.
        ------------------------------------------------------------
        revno: 0.3.1527
        committer: vasil
        timestamp: Wed 2009-02-25 15:19:19 +0000
        message:
          branches/zip:
          
          White-space cleanup in the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1526
        committer: marko
        timestamp: Wed 2009-02-25 10:09:15 +0000
        message:
          branches/zip: Correct the initialization of the memory subsystem once
          again, to finally put Issue #181 to rest.
          
          Revert some parts of r4274.  It is best not to call ut_malloc() before
          srv_general_init().
          
          mem_init(): Do not call ut_mem_init().
          
          srv_general_init(): Initialize the memory subsystem in two phases:
          first ut_mem_init(), then mem_init().  This is because os_sync_init()
          and sync_init() depend on ut_mem_init() and mem_init() depends on
          os_sync_init() or sync_init().
          
          srv_parse_data_file_paths_and_sizes(),
          srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
          to the global variables directly.  Allocate memory with malloc()
          instead of ut_malloc(), because these functions will be called before
          srv_general_init().
          
          srv_free_paths_and_sizes(): New function, for cleaning up after
          srv_parse_data_file_paths_and_sizes() and
          srv_parse_log_group_home_dirs().
          
          rb://92 approved by Sunny Bains
        ------------------------------------------------------------
        revno: 0.3.1525
        committer: vasil
        timestamp: Wed 2009-02-25 09:08:32 +0000
        message:
          branches/zip:
          
          Fix Bug synopsis and remove explanation
        ------------------------------------------------------------
        revno: 0.3.1524
        committer: vasil
        timestamp: Wed 2009-02-25 09:05:44 +0000
        message:
          branches/zip:
          
          Make ChangeLog entries for bugs in bugs.mysql.com in the form:
          Fix Bug#12345 bug title
          (for bugs after 1.0.2 was released and the ChangeLog published)
          
          There is no need to bloat the ChangeLog with information that is available
          via bugs.mysql.com.
          
          Discussed with: Marko
        ------------------------------------------------------------
        revno: 0.3.1523
        committer: vasil
        timestamp: Wed 2009-02-25 08:53:51 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for the fix in r4288.
        ------------------------------------------------------------
        revno: 0.3.1522
        committer: vasil
        timestamp: Wed 2009-02-25 08:48:07 +0000
        message:
          branches/zip: Merge revisions 4261:4287 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
            changes to the autoinc handling.
            
            1. To fix the immediate problem from the bug report, we must ensure that the
               value written to the table is always less than the max value stored in
               dict_table_t.
            
            2. The second related change is that according to MySQL documentation when
               the offset is greater than the increment, we should ignore the offset.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1521
        committer: marko
        timestamp: Tue 2009-02-24 21:26:38 +0000
        message:
          branches/zip: mem0mem.c: Remove unnecessary #include "mach0data.h".
        ------------------------------------------------------------
        revno: 0.3.1520
        committer: marko
        timestamp: Tue 2009-02-24 21:06:56 +0000
        message:
          branches/zip: srv0start.c: Remove unnecessary #include "mem0pool.h".
        ------------------------------------------------------------
        revno: 0.3.1519
        committer: marko
        timestamp: Tue 2009-02-24 14:02:48 +0000
        message:
          branches/zip: Remove the unused function dict_index_get_type().
        ------------------------------------------------------------
        revno: 0.3.1518
        committer: marko
        timestamp: Tue 2009-02-24 13:14:59 +0000
        message:
          branches/zip: Remove unused function os_mem_alloc_nocache().
        ------------------------------------------------------------
        revno: 0.3.1517
        committer: marko
        timestamp: Mon 2009-02-23 22:14:38 +0000
        message:
          branches/zip: Fix bugs in the fix of Issue #181.  Tested inside and
          outside Valgrind, with innodb_use_sys_malloc set to 0 and 1.
          
          mem_init(): Invoke ut_mem_init() before mem_pool_create(), because
          the latter one will invoke ut_malloc().
          
          srv_general_init(): Do not initialize the memory subsystem (mem_init()).
          
          innobase_init(): Initialize the memory subsystem (mem_init()) before
          calling srv_parse_data_file_paths_and_sizes(), which needs ut_malloc().
          Call ut_free_all_mem() in error handling to clean up after the mem_init().
        ------------------------------------------------------------
        revno: 0.3.1516
        committer: marko
        timestamp: Mon 2009-02-23 22:11:11 +0000
        message:
          branches/zip: ut_mem_init(): Add the assertion !ut_mem_block_list_inited.
        ------------------------------------------------------------
        revno: 0.3.1515
        committer: marko
        timestamp: Mon 2009-02-23 21:10:18 +0000
        message:
          branches/zip: Adjust the fix of Issue #182 in r4269 per Inaam's suggestion.
          
          btr_check_blob_fil_page_type(): Replace the parameter
          const char* op
          with
          ibool read.  Do not print anything about page type mismatch
          when reading a BLOB page in Antelope format.
          Print space id before page number.
        ------------------------------------------------------------
        revno: 0.3.1514
        committer: marko
        timestamp: Mon 2009-02-23 13:09:49 +0000
        message:
          branches/zip: When freeing an uncompressed BLOB page, tolerate garbage in
          FIL_PAGE_TYPE.  (Bug #43043, Issue #182)
          
          btr_check_blob_fil_page_type(): New function.
          
          btr_free_externally_stored_field(), btr_copy_blob_prefix():
          Call btr_check_blob_fil_page_type() to check FIL_PAGE_TYPE.
        ------------------------------------------------------------
        revno: 0.3.1513
        committer: marko
        timestamp: Mon 2009-02-23 10:43:51 +0000
        message:
          branches/zip: Initialize ut_list_mutex at startup.  Without this fix,
          ut_list_mutex would be used uninitialized when innodb_use_sys_malloc=1.
          This fix addresses Issue #181.
          
          ut_mem_block_list_init(): Rename to ut_mem_init() and make public.
          
          ut_malloc_low(), ut_free_all_mem(): Add ut_a(ut_mem_block_list_inited).
          
          mem_init(): Call ut_mem_init().
        ------------------------------------------------------------
        revno: 0.3.1512
        committer: vasil
        timestamp: Fri 2009-02-20 21:29:32 +0000
        message:
          branches/zip:
          
          Add a sentence at the top of COPYING.Google to clarify that this license
          does not apply to the whole InnoDB.
          
          Suggested by: Ken
        ------------------------------------------------------------
        revno: 0.3.1511
        committer: marko
        timestamp: Fri 2009-02-20 20:31:03 +0000
        message:
          branches/zip: Make innodb_use_sys_malloc=ON the default.
          Replace srv_use_sys_malloc with UNIV_LIKELY(srv_use_sys_malloc)
          to improve branch prediction in the default case.
          
          Approved by Ken over the IM.
        ------------------------------------------------------------
        revno: 0.3.1510
        committer: vasil
        timestamp: Fri 2009-02-20 13:00:46 +0000
        message:
          branches/zip:
          
          Add a ChangeLog entry for a change in r4262.
        ------------------------------------------------------------
        revno: 0.3.1509
        committer: vasil
        timestamp: Fri 2009-02-20 12:56:59 +0000
        message:
          branches/zip:
          
          Merge revisions 4035:4261 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
            is only defined for integer columns. This caused an assertion failure when
            we checked for the maximum value of a column type. We now calculate the
            max value for floating-point autoinc columns too.
            
            Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
            rb://84 and Mantis issue://162
            
            ------------------------------------------------------------------------
            r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: Add the ULL suffix otherwise there is an overflow.
            
            ------------------------------------------------------------------------
            r4128 | vasil | 2009-02-08 21:36:45 +0200 (Sun, 08 Feb 2009) | 18 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1:
            
            Merge a change from MySQL:
            
              ------------------------------------------------------------
              revno: 2709.20.31
              committer: Timothy Smith <timothy.smith@sun.com>
              branch nick: 51
              timestamp: Fri 2008-12-19 01:28:51 +0100
              message:
                Disable part of innodb-autoinc.test, because the MySQL server asserts when
                compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
                increment > 1".  This change should be reverted when that bug is fixed (and a
                a few other minor changes to the test as described in comments).
              modified:
                mysql-test/r/innodb-autoinc.result
                mysql-test/t/innodb-autoinc.test
            
            ------------------------------------------------------------------------
            r4129 | vasil | 2009-02-08 21:54:25 +0200 (Sun, 08 Feb 2009) | 310 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1:
            
            Merge a change from MySQL:
            
            [looks like the changes to innodb-autoinc.test were made as part of
            the following huge merge, but we are merging only changes to that file]
            
              ------------------------------------------------------------
              revno: 2546.47.1
              committer: Luis Soares <luis.soares@sun.com>
              branch nick: 5.1-rpl
              timestamp: Fri 2009-01-23 13:22:05 +0100
              message:
                merge: 5.1 -> 5.1-rpl
                conflicts:
                  Text conflict in client/mysqltest.cc
                  Text conflict in mysql-test/include/wait_until_connected_again.inc
                  Text conflict in mysql-test/lib/mtr_report.pm
                  Text conflict in mysql-test/mysql-test-run.pl
                  Text conflict in mysql-test/r/events_bugs.result
                  Text conflict in mysql-test/r/log_state.result
                  Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
                  Text conflict in mysql-test/r/mysqlcheck.result
                  Text conflict in mysql-test/r/query_cache.result
                  Text conflict in mysql-test/r/status.result
                  Text conflict in mysql-test/suite/binlog/r/binlog_index.result
                  Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
                  Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
                  Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
                  Text conflict in mysql-test/t/disabled.def
                  Text conflict in mysql-test/t/events_bugs.test
                  Text conflict in mysql-test/t/log_state.test
                  Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
                  Text conflict in mysql-test/t/mysqlcheck.test
                  Text conflict in mysql-test/t/query_cache.test
                  Text conflict in mysql-test/t/rpl_init_slave_func.test
                  Text conflict in mysql-test/t/status.test
              removed:
                mysql-test/suite/parts/r/partition_bit_ndb.result
                mysql-test/suite/parts/t/partition_bit_ndb.test
                mysql-test/suite/parts/t/partition_sessions.test
                mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
                mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
                mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
                mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
                mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
                mysql-test/t/log_bin_trust_function_creators_func-master.opt
                mysql-test/t/rpl_init_slave_func-slave.opt
              added:
                mysql-test/include/check_events_off.inc
                mysql-test/include/cleanup_fake_relay_log.inc
                mysql-test/include/have_simple_parser.inc
                mysql-test/include/no_running_event_scheduler.inc
                mysql-test/include/no_running_events.inc
                mysql-test/include/running_event_scheduler.inc
                mysql-test/include/setup_fake_relay_log.inc
                mysql-test/include/wait_condition_sp.inc
                mysql-test/r/fulltext_plugin.result
                mysql-test/r/have_simple_parser.require
                mysql-test/r/innodb_bug38231.result
                mysql-test/r/innodb_bug39438.result
                mysql-test/r/innodb_mysql_rbk.result
                mysql-test/r/partition_innodb_semi_consistent.result
                mysql-test/r/query_cache_28249.result
                mysql-test/r/status2.result
                mysql-test/std_data/bug40482-bin.000001
                mysql-test/suite/binlog/r/binlog_innodb_row.result
                mysql-test/suite/binlog/t/binlog_innodb_row.test
                mysql-test/suite/rpl/r/rpl_binlog_corruption.result
                mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
                mysql-test/suite/rpl/t/rpl_binlog_corruption.test
                mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
                mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
                mysql-test/t/fulltext_plugin-master.opt
                mysql-test/t/fulltext_plugin.test
                mysql-test/t/innodb_bug38231.test
                mysql-test/t/innodb_bug39438-master.opt
                mysql-test/t/innodb_bug39438.test
                mysql-test/t/innodb_mysql_rbk-master.opt
                mysql-test/t/innodb_mysql_rbk.test
                mysql-test/t/partition_innodb_semi_consistent-master.opt
                mysql-test/t/partition_innodb_semi_consistent.test
                mysql-test/t/query_cache_28249.test
                mysql-test/t/status2.test
              renamed:
                mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
                mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
              modified:
                .bzr-mysql/default.conf
                CMakeLists.txt
                client/mysql.cc
                client/mysql_upgrade.c
                client/mysqlcheck.c
                client/mysqltest.cc
                configure.in
                extra/resolve_stack_dump.c
                extra/yassl/include/openssl/ssl.h
                include/config-win.h
                include/m_ctype.h
                include/my_global.h
                mysql-test/extra/binlog_tests/database.test
                mysql-test/extra/rpl_tests/rpl_auto_increment.test
                mysql-test/include/commit.inc
                mysql-test/include/have_32bit.inc
                mysql-test/include/have_64bit.inc
                mysql-test/include/index_merge1.inc
                mysql-test/include/linux_sys_vars.inc
                mysql-test/include/windows_sys_vars.inc
                mysql-test/lib/mtr_report.pm
                mysql-test/mysql-test-run.pl
                mysql-test/r/alter_table.result
                mysql-test/r/commit_1innodb.result
                mysql-test/r/create.result
                mysql-test/r/csv.result
                mysql-test/r/ctype_ucs.result
                mysql-test/r/date_formats.result
                mysql-test/r/events_bugs.result
                mysql-test/r/events_scheduling.result
                mysql-test/r/fulltext.result
                mysql-test/r/func_if.result
                mysql-test/r/func_in.result
                mysql-test/r/func_str.result
                mysql-test/r/func_time.result
                mysql-test/r/grant.result
                mysql-test/r/index_merge_myisam.result
                mysql-test/r/information_schema.result
                mysql-test/r/innodb-autoinc.result
                mysql-test/r/innodb.result
                mysql-test/r/innodb_mysql.result
                mysql-test/r/log_bin_trust_function_creators_func.result
                mysql-test/r/log_state.result
                mysql-test/r/myisampack.result
                mysql-test/r/mysql.result
                mysql-test/r/mysqlcheck.result
                mysql-test/r/partition_datatype.result
                mysql-test/r/partition_mgm.result
                mysql-test/r/partition_pruning.result
                mysql-test/r/query_cache.result
                mysql-test/r/read_buffer_size_basic.result
                mysql-test/r/read_rnd_buffer_size_basic.result
                mysql-test/r/rpl_init_slave_func.result
                mysql-test/r/select.result
                mysql-test/r/status.result
                mysql-test/r/strict.result
                mysql-test/r/temp_table.result
                mysql-test/r/type_bit.result
                mysql-test/r/type_date.result
                mysql-test/r/type_float.result
                mysql-test/r/warnings_engine_disabled.result
                mysql-test/r/xml.result
                mysql-test/suite/binlog/r/binlog_database.result
                mysql-test/suite/binlog/r/binlog_index.result
                mysql-test/suite/binlog/r/binlog_innodb.result
                mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
                mysql-test/suite/binlog/t/binlog_innodb.test
                mysql-test/suite/funcs_1/r/is_columns_is.result
                mysql-test/suite/funcs_1/r/is_engines.result
                mysql-test/suite/funcs_1/r/storedproc.result
                mysql-test/suite/funcs_1/storedproc/param_check.inc
                mysql-test/suite/funcs_2/t/disabled.def
                mysql-test/suite/ndb/t/disabled.def
                mysql-test/suite/parts/r/partition_bit_innodb.result
                mysql-test/suite/parts/r/partition_bit_myisam.result
                mysql-test/suite/parts/r/partition_special_innodb.result
                mysql-test/suite/parts/t/disabled.def
                mysql-test/suite/parts/t/partition_special_innodb.test
                mysql-test/suite/parts/t/partition_value_innodb.test
                mysql-test/suite/parts/t/partition_value_myisam.test
                mysql-test/suite/parts/t/partition_value_ndb.test
                mysql-test/suite/rpl/r/rpl_auto_increment.result
                mysql-test/suite/rpl/r/rpl_packet.result
                mysql-test/suite/rpl/r/rpl_row_create_table.result
                mysql-test/suite/rpl/r/rpl_slave_skip.result
                mysql-test/suite/rpl/r/rpl_trigger.result
                mysql-test/suite/rpl/t/disabled.def
                mysql-test/suite/rpl/t/rpl_packet.test
                mysql-test/suite/rpl/t/rpl_row_create_table.test
                mysql-test/suite/rpl/t/rpl_slave_skip.test
                mysql-test/suite/rpl/t/rpl_trigger.test
                mysql-test/suite/rpl_ndb/t/disabled.def
                mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
                mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
                mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
                mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
                mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
                mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
                mysql-test/t/alter_table.test
                mysql-test/t/create.test
                mysql-test/t/csv.test
                mysql-test/t/ctype_ucs.test
                mysql-test/t/date_formats.test
                mysql-test/t/disabled.def
                mysql-test/t/events_bugs.test
                mysql-test/t/events_scheduling.test
                mysql-test/t/fulltext.test
                mysql-test/t/func_if.test
                mysql-test/t/func_in.test
                mysql-test/t/func_str.test
                mysql-test/t/func_time.test
                mysql-test/t/grant.test
                mysql-test/t/information_schema.test
                mysql-test/t/innodb-autoinc.test
                mysql-test/t/innodb.test
                mysql-test/t/innodb_mysql.test
                mysql-test/t/log_bin_trust_function_creators_func.test
                mysql-test/t/log_state.test
                mysql-test/t/myisam_data_pointer_size_func.test
                mysql-test/t/myisampack.test
                mysql-test/t/mysql.test
                mysql-test/t/mysqlcheck.test
                mysql-test/t/partition_innodb_stmt.test
                mysql-test/t/partition_mgm.test
                mysql-test/t/partition_pruning.test
                mysql-test/t/query_cache.test
                mysql-test/t/rpl_init_slave_func.test
                mysql-test/t/select.test
                mysql-test/t/status.test
                mysql-test/t/strict.test
                mysql-test/t/temp_table.test
                mysql-test/t/type_bit.test
                mysql-test/t/type_date.test
                mysql-test/t/type_float.test
                mysql-test/t/warnings_engine_disabled.test
                mysql-test/t/xml.test
                mysys/my_getopt.c
                mysys/my_init.c
                scripts/mysql_install_db.sh
                sql-common/my_time.c
                sql/field.cc
                sql/field.h
                sql/filesort.cc
                sql/ha_partition.cc
                sql/ha_partition.h
                sql/item.cc
                sql/item_cmpfunc.cc
                sql/item_func.h
                sql/item_strfunc.cc
                sql/item_sum.cc
                sql/item_timefunc.cc
                sql/item_timefunc.h
                sql/log.cc
                sql/log.h
                sql/log_event.cc
                sql/log_event.h
                sql/mysql_priv.h
                sql/mysqld.cc
                sql/opt_range.cc
                sql/partition_info.cc
                sql/repl_failsafe.cc
                sql/rpl_constants.h
                sql/set_var.cc
                sql/slave.cc
                sql/spatial.h
                sql/sql_acl.cc
                sql/sql_base.cc
                sql/sql_binlog.cc
                sql/sql_class.h
                sql/sql_cursor.cc
                sql/sql_delete.cc
                sql/sql_lex.cc
                sql/sql_lex.h
                sql/sql_locale.cc
                sql/sql_parse.cc
                sql/sql_partition.cc
                sql/sql_plugin.cc
                sql/sql_plugin.h
                sql/sql_profile.cc
                sql/sql_repl.cc
                sql/sql_select.cc
                sql/sql_select.h
                sql/sql_show.cc
                sql/sql_table.cc
                sql/sql_trigger.cc
                sql/sql_trigger.h
                sql/table.cc
                sql/table.h
                sql/unireg.cc
                storage/csv/ha_tina.cc
                storage/federated/ha_federated.cc
                storage/heap/ha_heap.cc
                storage/innobase/Makefile.am
                storage/innobase/btr/btr0sea.c
                storage/innobase/buf/buf0lru.c
                storage/innobase/dict/dict0dict.c
                storage/innobase/dict/dict0mem.c
                storage/innobase/handler/ha_innodb.cc
                storage/innobase/handler/ha_innodb.h
                storage/innobase/include/btr0sea.h
                storage/innobase/include/dict0dict.h
                storage/innobase/include/dict0mem.h
                storage/innobase/include/ha_prototypes.h
                storage/innobase/include/lock0lock.h
                storage/innobase/include/row0mysql.h
                storage/innobase/include/sync0sync.ic
                storage/innobase/include/ut0ut.h
                storage/innobase/lock/lock0lock.c
                storage/innobase/os/os0file.c
                storage/innobase/plug.in
                storage/innobase/row/row0mysql.c
                storage/innobase/row/row0sel.c
                storage/innobase/srv/srv0srv.c
                storage/innobase/srv/srv0start.c
                storage/innobase/ut/ut0ut.c
                storage/myisam/ft_boolean_search.c
                strings/ctype.c
                strings/xml.c
                tests/mysql_client_test.c
                win/configure.js
                mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
            
            ------------------------------------------------------------------------
            r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: minor non-functional changes.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1508
        committer: vasil
        timestamp: Fri 2009-02-20 09:59:42 +0000
        message:
          branches/zip:
          
          ChangeLog: Remove include/os0sync.ic from the entry about the google patch,
          this file was modified later to not include Google's code.
        ------------------------------------------------------------
        revno: 0.3.1507
        committer: vasil
        timestamp: Fri 2009-02-20 09:52:19 +0000
        message:
          branches/zip:
          
          Cleanup in ChangeLog:
          * Wrap lines at 78 characters
          * Changed files are listed alphabetically
          * White-space cleanup
        ------------------------------------------------------------
        revno: 0.3.1506
        committer: inaam
        timestamp: Thu 2009-02-19 13:46:27 +0000
        message:
          branches/zip: Issue #178 rb://91
          
          Change plug.in to have same CXXFLAGS as CFLAGS. This is to ensure that
          both .c and .cc files get compiled with same flags. To fix the issue
          where UNIV_LINUX was defined only in .c files.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1505
        committer: marko
        timestamp: Thu 2009-02-19 09:52:39 +0000
        message:
          branches/zip: page_zip_set_size(): Fix a g++ 4.3.2 warning
          about an empty body in a "for" statement.  This closes Issue #176.
        ------------------------------------------------------------
        revno: 0.3.1504
        committer: marko
        timestamp: Wed 2009-02-18 15:25:45 +0000
        message:
          branches/zip: Protect ut_total_allocated_memory with ut_list_mutex.
          Unprotected updates to ut_total_allocated_memory in
          os_mem_alloc_large() and os_mem_free_large(), called during
          fast index creation, may corrupt the variable and cause assertion failures.
          
          Also, add UNIV_MEM_ALLOC() and UNIV_MEM_FREE() instrumentation around
          os_mem_alloc_large() and os_mem_free_large(), so that Valgrind can
          detect more errors.
          
          rb://90 approved by Heikki Tuuri.  This addresses Issue #177.
        ------------------------------------------------------------
        revno: 0.3.1503
        committer: marko
        timestamp: Wed 2009-02-18 15:04:03 +0000
        message:
          branches/zip: buf_buddy_get_slot(): Fix a gcc 4.3.2 warning
          about an empty body of a "for" statement.
          This fixes part of Issue #176.
        ------------------------------------------------------------
        revno: 0.3.1502
        committer: marko
        timestamp: Wed 2009-02-18 15:01:09 +0000
        message:
          branches/zip: UT_DBG_STOP: Use do{} while(0) to silence a g++-4.3.2 warning
          about a while(0); statement.  This should fix (part of) Issue #176.
        ------------------------------------------------------------
        revno: 0.3.1501
        committer: marko
        timestamp: Tue 2009-02-17 12:59:54 +0000
        message:
          branches/zip: When assigning lock->recursive = FALSE, also flag
          lock->writer_thread invalid, so that Valgrind will catch more errors.
          This is related to Issue #175.
        ------------------------------------------------------------
        revno: 0.3.1500
        committer: marko
        timestamp: Tue 2009-02-17 12:26:53 +0000
        message:
          Minor cleanup of the Google SMP patch.
          
          sync_array_object_signalled(): Add a (void) cast to eliminate a gcc warning
          about the return value of os_atomic_increment() being ignored.
          
          rw_lock_create_func(): Properly indent the preprocessor directives.
          
          rw_lock_x_lock_low(), rw_lock_x_lock_func_nowait(): Split lines correctly.
          
          rw_lock_set_writer_id_and_recursion_flag(): Silence a Valgrind warning.
          Do not mix statements and variable declarations.
        ------------------------------------------------------------
        revno: 0.3.1499
        committer: vasil
        timestamp: Tue 2009-02-17 10:30:55 +0000
        message:
          branches/zip:
          
          Add the copyright notice to the non C files.
        ------------------------------------------------------------
        revno: 0.3.1498
        committer: vasil
        timestamp: Tue 2009-02-17 10:14:04 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 28/28]
        ------------------------------------------------------------
        revno: 0.3.1497
        committer: vasil
        timestamp: Tue 2009-02-17 10:12:56 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 27/28]
        ------------------------------------------------------------
        revno: 0.3.1496
        committer: vasil
        timestamp: Tue 2009-02-17 10:09:16 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 26/28]
        ------------------------------------------------------------
        revno: 0.3.1495
        committer: vasil
        timestamp: Tue 2009-02-17 10:05:45 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 25/28]
        ------------------------------------------------------------
        revno: 0.3.1494
        committer: vasil
        timestamp: Tue 2009-02-17 10:01:41 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 24/28]
        ------------------------------------------------------------
        revno: 0.3.1493
        committer: vasil
        timestamp: Tue 2009-02-17 09:53:58 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 23/28]
        ------------------------------------------------------------
        revno: 0.3.1492
        committer: vasil
        timestamp: Tue 2009-02-17 09:50:12 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 22/28]
        ------------------------------------------------------------
        revno: 0.3.1491
        committer: vasil
        timestamp: Tue 2009-02-17 09:46:52 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 21/28]
        ------------------------------------------------------------
        revno: 0.3.1490
        committer: vasil
        timestamp: Tue 2009-02-17 09:43:50 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 20/28]
        ------------------------------------------------------------
        revno: 0.3.1489
        committer: vasil
        timestamp: Tue 2009-02-17 09:41:24 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 19/28]
        ------------------------------------------------------------
        revno: 0.3.1488
        committer: vasil
        timestamp: Tue 2009-02-17 09:39:11 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 18/28]
        ------------------------------------------------------------
        revno: 0.3.1487
        committer: vasil
        timestamp: Tue 2009-02-17 09:36:44 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 17/28]
        ------------------------------------------------------------
        revno: 0.3.1486
        committer: vasil
        timestamp: Tue 2009-02-17 09:33:38 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 16/28]
        ------------------------------------------------------------
        revno: 0.3.1485
        committer: vasil
        timestamp: Tue 2009-02-17 09:29:55 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 15/28]
        ------------------------------------------------------------
        revno: 0.3.1484
        committer: vasil
        timestamp: Tue 2009-02-17 09:27:31 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 13/28]
        ------------------------------------------------------------
        revno: 0.3.1483
        committer: vasil
        timestamp: Tue 2009-02-17 09:24:40 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 13/28]
        ------------------------------------------------------------
        revno: 0.3.1482
        committer: vasil
        timestamp: Tue 2009-02-17 09:18:35 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 12/28]
        ------------------------------------------------------------
        revno: 0.3.1481
        committer: vasil
        timestamp: Tue 2009-02-17 09:14:40 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 11/28]
        ------------------------------------------------------------
        revno: 0.3.1480
        committer: vasil
        timestamp: Tue 2009-02-17 09:12:41 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 10/28]
        ------------------------------------------------------------
        revno: 0.3.1479
        committer: vasil
        timestamp: Tue 2009-02-17 09:10:18 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 9/28]
        ------------------------------------------------------------
        revno: 0.3.1478
        committer: vasil
        timestamp: Tue 2009-02-17 09:06:49 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 8/28]
        ------------------------------------------------------------
        revno: 0.3.1477
        committer: vasil
        timestamp: Tue 2009-02-17 09:04:28 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 7/28]
        ------------------------------------------------------------
        revno: 0.3.1476
        committer: vasil
        timestamp: Tue 2009-02-17 09:02:27 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 6/28]
        ------------------------------------------------------------
        revno: 0.3.1475
        committer: vasil
        timestamp: Tue 2009-02-17 08:59:22 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 5/28]
        ------------------------------------------------------------
        revno: 0.3.1474
        committer: vasil
        timestamp: Tue 2009-02-17 08:55:41 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 4/28]
        ------------------------------------------------------------
        revno: 0.3.1473
        committer: vasil
        timestamp: Tue 2009-02-17 08:25:45 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 3/28]
        ------------------------------------------------------------
        revno: 0.3.1472
        committer: vasil
        timestamp: Tue 2009-02-17 08:15:06 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 2/28]
        ------------------------------------------------------------
        revno: 0.3.1471
        committer: vasil
        timestamp: Tue 2009-02-17 08:12:02 +0000
        message:
          branches/zip:
          
          * Remove old Innobase copyright lines from C source files
          * Add a reference to the GPLv2 license as recommended by the lawyers
          at Oracle Legal
          
          [Step 1/28]
        ------------------------------------------------------------
        revno: 0.3.1470
        committer: vasil
        timestamp: Tue 2009-02-17 07:56:33 +0000
        message:
          branches/zip:
          
          To the files touched by the Google patch from c4144 (excluding
          include/os0sync.ic because later we removed Google code from that file):
          
          * Remove the Google license
          * Remove old Innobase copyright lines
          * Add a reference to the Google license and to the GPLv2 license at the top,
          as recommended by the lawyers at Oracle Legal.
        ------------------------------------------------------------
        revno: 0.3.1469
        committer: vasil
        timestamp: Tue 2009-02-17 07:11:58 +0000
        message:
          branches/zip:
          
          Add Google's license into COPYING.Google.
        ------------------------------------------------------------
        revno: 0.3.1468
        committer: vasil
        timestamp: Tue 2009-02-17 07:06:07 +0000
        message:
          branches/zip:
          
          Add the full text of the GPLv2 license into the root directory of the
          plugin. In previous releases this file was copied from an external source
          (https://svn.innodb.com/svn/plugin/trunk/support/COPYING) "manually" when
          creating the source and binary archives. It is less confusing to have this
          present in the root directory of the SVN branch.
        ------------------------------------------------------------
        revno: 0.3.1467
        committer: vasil
        timestamp: Fri 2009-02-13 08:06:31 +0000
        message:
          branches/zip:
          
          Fix the failing mysql-test partition_innodb, which failed only if run after
          innodb_trx_weight (or other test that would leave LATEST DEADLOCK ERROR into
          the output of SHOW ENGINE INNODB STATUS). Find further explanation for the
          failure at the top of the added patch partition_innodb.diff.
        ------------------------------------------------------------
        revno: 0.3.1466
        committer: vasil
        timestamp: Thu 2009-02-12 15:38:27 +0000
        message:
          branches/zip:
          
          Fix pathname of the file to patch.
        ------------------------------------------------------------
        revno: 0.3.1465
        committer: calvin
        timestamp: Thu 2009-02-12 08:37:10 +0000
        message:
          branches/zip: Adjust the result file of innodb_thread_concurrency_basic
          test. The default value of innodb_thread_concurrency is changed to 0
          (from 8) via r4163.
        ------------------------------------------------------------
        revno: 0.3.1464
        committer: marko
        timestamp: Wed 2009-02-11 22:14:19 +0000
        message:
          branches/zip: Make innodb_thread_concurrency=0 the default.
          The old default was 8.
        ------------------------------------------------------------
        revno: 0.3.1463
        committer: vasil
        timestamp: Tue 2009-02-10 20:58:17 +0000
        message:
          branches/zip:
          
          (followup to r4145) Non-functional change:
          
          Change the os_atomic_increment() and os_compare_and_swap() functions
          to macros to avoid artificial limitations on the types of those
          functions' arguments. As a consequence typecasts from the source
          code can be removed.
          
          Also remove Google's copyright from os0sync.ic because that file no longer
          contains code from Google.
          
          Approved by: Marko (rb://88), also ok from Inaam via IM
        ------------------------------------------------------------
        revno: 0.3.1462
        committer: marko
        timestamp: Tue 2009-02-10 10:52:27 +0000
        message:
          branches/zip: When innodb_use_sys_malloc is set, ignore
          innodb_additional_mem_pool_size, because nothing will
          be allocated from mem_comm_pool.
          
          mem_pool_create(): Remove the assertion about size.  The function will
          work with any size.  However, an assertion would fail in ut_malloc_low()
          when size==0.
          
          mem_init(): When srv_use_sys_malloc is set, pass size=1 to mem_pool_create().
          
          mem0mem.c: Add #include "srv0srv.h" that is needed by mem0dbg.c.
        ------------------------------------------------------------
        revno: 0.3.1461
        committer: marko
        timestamp: Tue 2009-02-10 09:51:43 +0000
        message:
          branches/zip: get_share(), free_share(): Make table locking case sensitive.
          If lower_case_table_names=1, MySQL will pass the table names in lower case.
          Thus, we can use a binary comparison (strcmp) in the hash table.
          
          rb://87 approved by Heikki Tuuri, to address Bug #41676 and Issue #167.
        ------------------------------------------------------------
        revno: 0.3.1460
        committer: marko
        timestamp: Tue 2009-02-10 09:09:15 +0000
        message:
          branches/zip: ChangeLog: Document recent changes.
        ------------------------------------------------------------
        revno: 0.3.1459
        committer: marko
        timestamp: Tue 2009-02-10 08:38:41 +0000
        message:
          branches/zip: Map ut_malloc(), ut_realloc(), ut_free() to
          malloc(), realloc(), free() when innodb_use_sys_malloc is set.
          
          ut_free_all_mem(): If innodb_use_sys_malloc is set, do nothing,
          because then ut_mem_block_list_inited will never be set.
          
          log_init(): Use mem_alloc() instead of ut_malloc(), so that the
          memory will be freed.  (Tested with Valgrind, although it is not
          clear why the memory would be freed.)
          
          rb://86 approved by Heikki Tuuri and Ken Jacobs.  This addresses Issue #168.
        ------------------------------------------------------------
        revno: 0.3.1458
        committer: vasil
        timestamp: Tue 2009-02-10 05:34:43 +0000
        message:
          branches/zip:
          
          Non-functional change: Fix a compilation warning introduced in r4144:
          
          gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I../../storage/innobase/include -I../../sql -I.   -Werror -Wall -g   -MT libinnobase_a-sync0arr.o -MD -MP -MF .deps/libinnobase_a-sync0arr.Tpo -c -o libinnobase_a-sync0arr.o `test -f 'sync/sync0arr.c' || echo './'`sync/sync0arr.c
          cc1: warnings being treated as errors
          sync/sync0arr.c: In function 'sync_array_object_signalled':
          sync/sync0arr.c:869: warning: pointer targets in passing argument 1 of 'os_atomic_increment' differ in signedness
        ------------------------------------------------------------
        revno: 0.3.1457
        committer: inaam
        timestamp: Mon 2009-02-09 23:36:25 +0000
        message:
          branches/zip rb://30
          
          This patch changes the innodb mutexes and rw_locks implementation.
          On supported platforms it uses GCC builtin atomics. These changes
          are based on the patch sent by Mark Callaghan of Google under BSD
          license. More technical discussion can be found at rb://30
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1456
        committer: marko
        timestamp: Mon 2009-02-09 13:35:50 +0000
        message:
          branches/zip: fil_write_lsn_and_arch_no_to_file(): Plug a memory leak.
        ------------------------------------------------------------
        revno: 0.3.1455
        committer: vasil
        timestamp: Mon 2009-02-09 11:47:16 +0000
        message:
          branches/zip:
          
          Remove mysql-test/patches/bug35261.diff because that bug has been fixed
          in the MySQL repository.
        ------------------------------------------------------------
        revno: 0.3.1454
        committer: marko
        timestamp: Wed 2009-02-04 14:09:24 +0000
        message:
          branches/zip: buf_block_align(): Fix a bogus debug assertion
          that was introduced in r4036, to address Issue #161.
        ------------------------------------------------------------
        revno: 0.3.1453
        committer: marko
        timestamp: Tue 2009-02-03 07:52:45 +0000
        message:
          branches/zip: mem_area_free(): Correct a bug that was introduced in r4088.
          free() is not the same as ut_free().  ut_free() pairs with ut_malloc(),
          not malloc().  free() pairs with malloc() and some other functions.
        ------------------------------------------------------------
        revno: 0.3.1452
        committer: calvin
        timestamp: Tue 2009-02-03 00:35:56 +0000
        message:
          branches/zip: fix a compiler error and a warning
          
          Both are minor changes:
          1) Compiler error introduced in r4072: double ';' at the end.
          2) Warning introduced in r3613: \mem\mem0pool.c(481) :
          warning C4098: 'mem_area_free' : 'void' function returning a value
          
          Approved by: Sunny (IM)
        ------------------------------------------------------------
        revno: 0.3.1451
        committer: vasil
        timestamp: Mon 2009-02-02 16:33:20 +0000
        message:
          branches/zip:
          
          Fix the failing innodb-zip test to restore the environment as it was before
          the test execution because a newly added feature in the mysql-test framework
          does check for this.
        ------------------------------------------------------------
        revno: 0.3.1450
        committer: vasil
        timestamp: Mon 2009-02-02 16:24:08 +0000
        message:
          branches/zip:
          
          Fix a mysql-test failure in innodb-zip:
          
          main.innodb-zip                          [ fail ]
                  Test ended at 2009-02-02 18:13:25
          
          CURRENT_TEST: main.innodb-zip
          mysqltest: At line 160: Found line beginning with --  that didn't contain a valid mysqltest command, check your syntax or use # if you intended to write a comment
        ------------------------------------------------------------
        revno: 0.3.1449
        committer: marko
        timestamp: Mon 2009-02-02 12:28:17 +0000
        message:
          branches/zip: Enclose some backup functions in #ifdef UNIV_HOTBACKUP.
          
          recv_read_cp_info_for_backup(), recv_scan_log_seg_for_backup():
          These functions are only called by InnoDB Hot Backup.
        ------------------------------------------------------------
        revno: 0.3.1448
        committer: marko
        timestamp: Mon 2009-02-02 08:48:05 +0000
        message:
          branches/zip: innobase_start_or_create_for_mysql(): Remove a factual error
          in the function comment.  Parameters are not read from a file "srv_init".
        ------------------------------------------------------------
        revno: 0.3.1447
        committer: vasil
        timestamp: Mon 2009-02-02 07:32:04 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for the change in r4072.
        ------------------------------------------------------------
        revno: 0.3.1446
        committer: vasil
        timestamp: Sat 2009-01-31 06:05:24 +0000
        message:
          branches/zip:
          
          Adjust the failing patch patches/information_schema.diff.
        ------------------------------------------------------------
        revno: 0.3.1445
        committer: marko
        timestamp: Fri 2009-01-30 21:30:29 +0000
        message:
          branches/zip: Make innodb_adaptive_hash_index settable.
          
          btr_search_disabled: Rename to btr_search_enabled and change the type
          to char, so that it can be directly linked to the MySQL parameters.
          Note that the variable is protected by btr_search_latch and
          btr_search_enabled_mutex, a new mutex introduced in this patch.
          
          btr_search_enabled_mutex: A new mutex, to protect btr_search_enabled
          together with btr_search_latch.
          
          buf_pool_drop_hash_index(): New function, to be called from
          btr_search_disable().
          
          btr_search_disable(), btr_search_enable(): Fix bugs.  These functions
          were previously unused.
          
          btr_search_guess_on_hash(), btr_search_build_page_hash_index():
          Check btr_search_enabled once more, while holding btr_search_latch.
          
          btr_cur_search_to_nth_level(): Note that the reads of btr_search_enabled
          may be dirty and explain why it should not be a problem.
          
          innobase_adaptive_hash_index: Remove. The variable btr_search_enabled will be used directly instead.
          
          innodb_adaptive_hash_index_update(): New function, an update callback for
          innodb_adaptive_hash_index.  This will call either btr_search_disable()
          or btr_search_enable() when the value is assigned.  The functions will
          be called even if the value does not appear to be changed, e.g., when
          setting from TRUE to TRUE or FALSE to FALSE.
          
          rb://85 approved by Heikki Tuuri.  This addresses Issue #163.
        ------------------------------------------------------------
        revno: 0.3.1444
        committer: marko
        timestamp: Fri 2009-01-30 10:58:56 +0000
        message:
          branches/zip: ibuf_use_t: Add the constant IBUF_USE_COUNT, to eliminate
          a gcc warning about an assertion that trivially holds.
          The warning was introduced in r4061, in the merge of
          branches/innodb+ -r4053.
          
          ibuf_insert(): Let an assertion fail if ibuf_use is unknown.
        ------------------------------------------------------------
        revno: 0.3.1443
        committer: marko
        timestamp: Thu 2009-01-29 09:27:09 +0000
        message:
          branches/zip: Port the applicable parts of r4053 from branches/innodb+:
          
          Implement the global variable innodb_change_buffering, with the
          following values:
          
          none - buffer nothing
          inserts - buffer inserts (the default)
          
          Approved by Ken Jacobs.
        ------------------------------------------------------------
        revno: 0.3.1442
        committer: marko
        timestamp: Thu 2009-01-29 07:39:04 +0000
        message:
          branches/zip: btr0sea.c: Revert the inadvertent change made in r4056.
        ------------------------------------------------------------
        revno: 0.3.1441
        committer: calvin
        timestamp: Thu 2009-01-29 01:06:41 +0000
        message:
          branches/zip: Merge revisions 4032:4035 from branches/5.1
          
          All InnoDB related tests passed on Windows, except
          known failure in partition_innodb_semi_consistent.
          
          The inadvertent change to btr0sea.c in this commit is reverted in r4060.
          
            ------------------------------------------------------------------------
            r4035 | vasil | 2009-01-26 09:26:25 -0600 (Mon, 26 Jan 2009) | 23 lines
          
            branches/5.1:
          
            Merge a change from MySQL:
          
              ------------------------------------------------------------
              revno: 2646.161.4
              committer: Tatiana A. Nurnberg <azundris@mysql.com>
              branch nick: 51-31177v2
              timestamp: Mon 2009-01-12 06:32:49 +0100
              message:
                Bug#31177: Server variables can't be set to their current values
          
                Bounds-checks and blocksize corrections were applied to user-input,
                but constants in the server were trusted implicitly. If these values
                did not actually meet the requirements, the user could not set change
                a variable, then set it back to the (wonky) factory default or maximum
                by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
          
                Now checks also apply to the server's presets. Wonky values and maxima
                get corrected at startup. Consequently all non-offsetted values the user
                sees are valid, and users can set the variable to that exact value if
                they so desire.
        ------------------------------------------------------------
        revno: 0.3.1440
        committer: marko
        timestamp: Wed 2009-01-28 13:21:45 +0000
        message:
          branches/zip: Enclose some functions inside #ifdef UNIV_HOTBACKUP:
          
          ut_sprintf_timestamp_without_extra_chars(), ut_get_year_month_day(),
          log_reset_first_header_and_checkpoint(): These functions are only used
          in InnoDB Hot Backup.
        ------------------------------------------------------------
        revno: 0.3.1439
        committer: marko
        timestamp: Wed 2009-01-28 12:35:49 +0000
        message:
          branches/zip: trx0sys.ic: Remove unnecessary #include <data0type.h>.
        ------------------------------------------------------------
        revno: 0.3.1438
        committer: vasil
        timestamp: Wed 2009-01-28 06:21:44 +0000
        message:
          branches/zip:
          
          Adjust the paths in innodb_lock_wait_timeout.diff with a recent rename of
          the test/result files in the MySQL tree.
        ------------------------------------------------------------
        revno: 0.3.1437
        committer: marko
        timestamp: Tue 2009-01-27 22:46:13 +0000
        message:
          branches/zip: btr_search_validate(): Fix an assertion failure that was
          introduced in r4036.
          Do not call buf_block_get_space(), buf_block_get_page_no()
          unless the block state is BUF_BLOCK_FILE_PAGE.
          
          This bug was reported by Michael.
        ------------------------------------------------------------
        revno: 0.3.1436
        committer: marko
        timestamp: Tue 2009-01-27 22:33:20 +0000
        message:
          branches/zip: Revert the change to univ.i that was accidentally
          committed in r4045.
        ------------------------------------------------------------
        revno: 0.3.1435
        committer: marko
        timestamp: Tue 2009-01-27 22:31:17 +0000
        message:
          branches/zip: btr_search_validate(): Fix a bogus UNIV_DEBUG
          assertion failure that was accidentally introduced in r4036.
          Instead of calling buf_block_get_frame(), which asserts that the
          block must be buffer-fixed, access block->frame directly.  That
          is safe, because changes of block->page.state are protected by
          the buffer pool mutex, which we are holding.
          
          This bug was reported by Michael.
        ------------------------------------------------------------
        revno: 0.3.1434
        committer: marko
        timestamp: Tue 2009-01-27 08:05:24 +0000
        message:
          branches/zip: buf_LRU_invalidate_tablespace(): Fix a race condition:
          read zip_size while still holding block_mutex.
        ------------------------------------------------------------
        revno: 0.3.1433
        committer: vasil
        timestamp: Tue 2009-01-27 06:04:17 +0000
        message:
          branches/zip:
          
          Adjust the paths in innodb_file_per_table.diff with a recent rename of
          the test/result files in the MySQL tree.
        ------------------------------------------------------------
        revno: 0.3.1432
        committer: marko
        timestamp: Mon 2009-01-26 20:33:20 +0000
        message:
          branches/zip: In r988, the function buf_block_align() was enclosed
          within UNIV_DEBUG. The two remaining callers in non-debug builds,
          btr_search_guess_on_hash() and btr_search_validate(), were rewritten
          to call buf_page_hash_get().
          
          To implement support for a resizeable buffer pool, the function
          buf_block_align() had been rewritten to perform a page hash lookup in
          the buffer pool. The caller was also made responsible for holding the
          buffer pool mutex.
          
          Because the page hash lookup is expensive and it has to be done while
          holding the buffer pool mutex, implement buf_block_align() by pointer
          arithmetics again, and make btr_search_guess_on_hash() call it. Note
          that this will have to be adjusted if the interface to the resizeable
          buffer pool is actually implemented.
          
          rb://83 approved by Heikki Tuuri, to address Issue #161.
          
          As a deviation from the approved patch, this patch also makes
          btr_search_validate() (invoked by CHECK TABLE) check that
          buf_pool->page_hash is consistent with buf_block_align().
        ------------------------------------------------------------
        revno: 0.3.1431
        committer: marko
        timestamp: Mon 2009-01-26 14:16:39 +0000
        message:
          branches/zip: buf_page_get_gen(): Fix a "possibly uninitialized" warning
          that was introduced in r4030.
        ------------------------------------------------------------
        revno: 0.3.1430
        committer: marko
        timestamp: Fri 2009-01-23 13:49:04 +0000
        message:
          branches/zip: Merge revisions 4005:4032 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4032 | marko | 2009-01-23 15:43:51 +0200 (Fri, 23 Jan 2009) | 10 lines
          
            branches/5.1: Merge r4031 from branches/5.0:
          
            btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
            returns NULL.  The page may have been evicted from the buffer pool
            between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
            because the buffer pool mutex will be released between these two calls.
            (Bug #42279, Issue #160)
          
            rb://82 approved by Heikki Tuuri
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1429
        committer: marko
        timestamp: Fri 2009-01-23 13:31:36 +0000
        message:
          branches/zip: buf_page_get_gen(): Remove the unused mode BUF_GET_NOWAIT.
          This was noticed while investigating Issue #160.
        ------------------------------------------------------------
        revno: 0.3.1428
        committer: marko
        timestamp: Fri 2009-01-23 12:07:38 +0000
        message:
          branches/zip: Remove some redundant #include directives.
        ------------------------------------------------------------
        revno: 0.3.1427
        committer: marko
        timestamp: Fri 2009-01-23 09:26:10 +0000
        message:
          branches/zip: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE.
          This will help trim the dependencies of InnoDB Hot Backup.
          
          recv_recovery_from_checkpoint_start(): Rename to
          recv_recovery_from_checkpoint_start_func(), and remove the two first
          parameters unless UNIV_LOG_ARCHIVE is defined.  Define and use
          the auxiliary macros TYPE_CHECKPOINT and LIMIT_LSN in the function.
          
          struct recv_sys_struct: Remove archive_group unless UNIV_LOG_ARCHIVE
          is defined.
          
          Do not define LOG_ARCHIVE unless UNIV_LOG_ARCHIVE is defined.
        ------------------------------------------------------------
        revno: 0.3.1426
        committer: marko
        timestamp: Fri 2009-01-23 09:04:49 +0000
        message:
          branches/zip: Remove some redundant #include statements.
        ------------------------------------------------------------
        revno: 0.3.1425
        committer: vasil
        timestamp: Tue 2009-01-20 15:01:08 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for the bugfixes in r4004 and r4005.
        ------------------------------------------------------------
        revno: 0.3.1424
        committer: marko
        timestamp: Tue 2009-01-20 14:29:22 +0000
        message:
          branches/zip: Merge revisions 3930:4005 from branches/5.1:
          
            ------------------------------------------------------------------------
            r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines
          
            branches/5.1: Merge r4003 from branches/5.0:
          
            rec_set_nth_field(): When the field already is SQL null,
            do nothing when it is being changed to SQL null. (Bug #41571)
          
            Normally, MySQL does not pass "do-nothing" updates to the storage engine.
            When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
            is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
            without this fix.
          
            rb://81 approved by Heikki Tuuri
            ------------------------------------------------------------------------
            r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines
          
            branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
            accessing table->locks and release kernel_mutex before returning from
            the function.  This fixes a portential race condition in the
            "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
            and OPTIMIZE TABLE. (Bug #42152)
          
            rb://80 approved by Heikki Tuuri
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1423
        committer: marko
        timestamp: Fri 2009-01-16 12:53:40 +0000
        message:
          branches/zip: Add assertions that the kernel_mutex is being held
          while accessing table->locks or un_member.tab_lock.locks.
          This is related to Issue #158.  According to static analysis,
          the added debug assertions should always hold.
          
          lock_table_has_to_wait_in_queue(), lock_queue_iterator_reset(),
          lock_queue_iterator_get_prev(), add_trx_relevant_locks_to_cache(),
          fetch_data_into_cache(): Add ut_ad(mutex_own(&kernel_mutex)).
        ------------------------------------------------------------
        revno: 0.3.1422
        committer: vasil
        timestamp: Thu 2009-01-15 19:15:00 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for the bug fixes in r3911 and r3930.
        ------------------------------------------------------------
        revno: 0.3.1421
        committer: marko
        timestamp: Thu 2009-01-15 08:37:51 +0000
        message:
          branches/zip: buf0lru.c: Improve debug assertions.
          
          buf_LRU_block_free_non_file_page(): ut_ad(block) before dereferencing block.
          
          buf_LRU_block_remove_hashed_page(): Forbid buf_pool_mutex_exit() while
          calling buf_buddy_free().  Callers of buf_LRU_block_remove_hashed_page()
          assume that the buffer pool mutex will not be released and reacquired.
        ------------------------------------------------------------
        revno: 0.3.1420
        committer: marko
        timestamp: Thu 2009-01-15 08:28:23 +0000
        message:
          branches/zip: buf_LRU_invalidate_tablespace(), buf_LRU_free_block():
          Add comments and assertions that buf_LRU_block_remove_hashed_page()
          will release block_mutex when it returns BUF_BLOCK_ZIP_FREE.
        ------------------------------------------------------------
        revno: 0.3.1419
        committer: marko
        timestamp: Wed 2009-01-14 14:06:22 +0000
        message:
          branches/zip: Merge revisions 3601:3930 from branches/5.1:
          
            ------------------------------------------------------------------------
            r3911 | sunny | 2009-01-13 14:15:24 +0200 (Tue, 13 Jan 2009) | 13 lines
          
            branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
            InnoDB previously treated savepoints as a stack e.g.,
              SAVEPOINT a;
              SAVEPOINT b;
              SAVEPOINT c;
              SAVEPOINT b; <- This would delete b and c.
          
            This fix changes the behavior to:
              SAVEPOINT a;
              SAVEPOINT b;
              SAVEPOINT c;
              SAVEPOINT b; <- Does not delete savepoint c
            ------------------------------------------------------------------------
            r3930 | marko | 2009-01-14 15:51:30 +0200 (Wed, 14 Jan 2009) | 4 lines
          
            branches/5.1: dict_load_table(): If dict_load_indexes() fails,
            invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
            so that the data dictionary will not point to freed data.
            (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1418
        committer: marko
        timestamp: Tue 2009-01-13 19:46:22 +0000
        message:
          branches/zip: In hash table lookups, assert that the traversed items
          satisfy some conditions when UNIV_DEBUG is defined.
          
          HASH_SEARCH(): New parameter: ASSERTION. All users will pass an appropriate
          ut_ad() or nothing.
          
          dict_table_add_to_columns(): Assert that the table being added to the data
          dictionary cache is not already being pointed to by the name_hash and
          id_hash tables.
          
          HASH_SEARCH_ALL(): New macro, for use in dict_table_add_to_columns().
          
          dict_mem_table_free(): Set ut_d(table->cached = FALSE), so that we can
          check ut_ad(table->cached) when traversing the hash tables, as in
          HASH_SEARCH(name_hash, dict_sys->table_hash, ...) and
          HASH_SEARCH(id_hash, dict_sys->table_id_hash, ...).
          
          dict_table_get_low(), dict_table_get_on_id_low(): Assert
          ut_ad(!table || table->cached).
          
          fil_space_get_by_id(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
          in HASH_SEARCH(hash, fil_system->spaces, ...).
          
          fil_space_get_by_name(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
          in HASH_SEARCH(name_hash, fil_system->name_hash, ...).
          
          buf_buddy_block_free(): Check that the blocks are in valid state in
          HASH_SEARCH(hash, buf_pool->zip_hash, ...).
          
          buf_page_hash_get(): Check that the blocks are in valid state in
          HASH_SEARCH(hash, buf_pool->page_hash, ...).
          
          get_share(), free_share(): Check ut_ad(share->use_count > 0) in
          HASH_SEARCH(table_name_hash, innobase_open_tables, ...).
          
          This was posted as rb://75 for tracking down errors similar to Issue #153.
        ------------------------------------------------------------
        revno: 0.3.1417
        committer: marko
        timestamp: Tue 2009-01-13 10:34:32 +0000
        message:
          branches/zip: Enable HASH_ASSERT_OWNED independently of UNIV_SYNC_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.1416
        committer: marko
        timestamp: Tue 2009-01-13 09:54:01 +0000
        message:
          branches/zip: row_merge_create_temporary_table(): On error,
          row_create_table_for_mysql() already frees new_table.
          Do not attempt to free it again.
        ------------------------------------------------------------
        revno: 0.3.1415
        committer: marko
        timestamp: Tue 2009-01-13 08:32:24 +0000
        message:
          branches/zip: Fix some comments to say buf_pool_mutex.
        ------------------------------------------------------------
        revno: 0.3.1414
        committer: marko
        timestamp: Tue 2009-01-13 07:30:26 +0000
        message:
          branches/zip: buf_flush_try_neighbors(): Fix a bug
          that was introduced in r3879 (rb://73).
        ------------------------------------------------------------
        revno: 0.3.1413
        committer: marko
        timestamp: Mon 2009-01-12 16:56:11 +0000
        message:
          branches/zip: Non-functional change: Add some debug assertions and comments.
          
          buf_page_t: Note that the LRU fields are protected by buf_pool_mutex
          only, not block->mutex or buf_pool_zip_mutex.
          
          buf_page_get_freed_page_clock(): Note that this is sometimes invoked
          without mutex protection.
          
          buf_pool_get_oldest_modification(): Note that the result may be out of
          date.
          
          buf_page_get_LRU_position(), buf_page_is_old(): Assert that the buffer
          pool mutex is being held.
          
          buf_page_release(): Assert that dirty blocks are in the flush list.
        ------------------------------------------------------------
        revno: 0.3.1412
        committer: marko
        timestamp: Mon 2009-01-12 12:48:59 +0000
        message:
          branches/zip: Non-functional change: Use ut_d when assigning to mtr->state.
        ------------------------------------------------------------
        revno: 0.3.1411
        committer: marko
        timestamp: Mon 2009-01-12 12:40:08 +0000
        message:
          branches/zip: struct mtr_struct: Remove the unused field magic_n
          unless UNIV_DEBUG is defined.  mtr->magic_n is only assigned to
          and checked in UNIV_DEBUG builds.
        ------------------------------------------------------------
        revno: 0.3.1410
        committer: marko
        timestamp: Mon 2009-01-12 12:25:22 +0000
        message:
          branches/zip: buf_page_get_newest_modification(): Use the block mutex
          instead of the buffer pool mutex.  This is related to Issue #157.
        ------------------------------------------------------------
        revno: 0.3.1409
        committer: marko
        timestamp: Mon 2009-01-12 11:24:37 +0000
        message:
          branches/zip: buf_flush_page(): Fix a comment that should have been fixed
          in r3879.  Spotted by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1408
        committer: marko
        timestamp: Mon 2009-01-12 10:46:44 +0000
        message:
          branches/zip: Simplify the flushing of dirty pages from the buffer pool.
          
          buf_flush_try_page(): Rename to buf_flush_page(), and change the
          return type to void.  Replace the parameters space, offset with bpage,
          and remove the second page hash lookup.  Note and assert that both
          buf_pool_mutex and block_mutex must now be held upon entering the
          function.  They will still be released by this function.
          
          buf_flush_try_neighbors(): Replace buf_flush_try_page() with
          buf_flush_page().  Make the logic easier to follow by not negating the
          precondition of buf_flush_page().
          
          rb://73 approved by Sunny Bains.  This is related to Issue #157.
        ------------------------------------------------------------
        revno: 0.3.1407
        committer: marko
        timestamp: Fri 2009-01-09 21:15:12 +0000
        message:
          branches/zip: Non-functional change: Tighten debug assertions and
          remove dead code.
          
          buf_flush_ready_for_flush(), buf_flush_try_page(): Assert that
          flush_type is one of BUF_FLUSH_LRU or BUF_FLUSH_LIST.  The flush_type
          comes from buf_flush_batch(), which already asserts this.  The
          assertion holds for all calls in the source code.
          
          buf_flush_try_page(): Remove the dead case BUF_FLUSH_SINGLE_PAGE
          of switch (flush_type).
        ------------------------------------------------------------
        revno: 0.3.1406
        committer: marko
        timestamp: Fri 2009-01-09 21:09:06 +0000
        message:
          branches/zip: Add comments related to Issue #155.
          
          buf_flush_try_page(): Note why it is safe to access bpage without
          holding buf_pool_mutex or block_mutex.
        ------------------------------------------------------------
        revno: 0.3.1405
        committer: marko
        timestamp: Fri 2009-01-09 20:27:40 +0000
        message:
          branches/zip: Some non-functional changes related to Issue #155.
          
          buf_page_struct: Note that space and offset are also protected by
          buf_pool_mutex.  They are only assigned to by
          buf_block_set_file_page().  Thus, it suffices for buf_flush_batch() to
          hold just buf_pool_mutex when checking these fields.
          
          buf_flush_try_page(): Rename "locked" to "is_s_latched", per Heikki's request.
          
          buf_flush_batch(): Move the common statement mutex_exit(block_mutex)
          from all if-else if-else branches before the if block.  Remove the
          redundant test (buf_pool->init_flush[flush_type] == FALSE) that was
          apparently copied from buf_flush_write_complete().
          
          buf_flush_write_block_low(): Note why it is safe not to hold buf_pool_mutex
          or block_mutex.  Enumerate the assumptions in debug assertions.
        ------------------------------------------------------------
        revno: 0.3.1404
        committer: marko
        timestamp: Fri 2009-01-09 13:40:11 +0000
        message:
          branches/zip: buf_flush_insert_into_flush_list(),
          buf_flush_insert_sorted_into_flush_list(): Remove unused code.
          Change the parameter to buf_block_t* block and assert that
          block->state == BUF_BLOCK_FILE_PAGE.  This is part of Issue #155.
        ------------------------------------------------------------
        revno: 0.3.1403
        committer: marko
        timestamp: Fri 2009-01-09 13:13:14 +0000
        message:
          branches/zip: buf_flush_try_page(): Introduce the variable is_compressed
          for caching the result of buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE.
        ------------------------------------------------------------
        revno: 0.3.1402
        committer: marko
        timestamp: Fri 2009-01-09 13:09:51 +0000
        message:
          branches/zip: buf_flush_try_page(): Move some common code from each
          switch case before the switch block.
        ------------------------------------------------------------
        revno: 0.3.1401
        committer: vasil
        timestamp: Thu 2009-01-08 20:10:10 +0000
        message:
          branches/zip:
          
          Add ChangeLog entries for r3795 r3796 r3797 r3798.
        ------------------------------------------------------------
        revno: 0.3.1400
        committer: marko
        timestamp: Wed 2009-01-07 14:42:42 +0000
        message:
          branches/zip: row_merge_drop_temp_indexes(): Do not lock the rows of
          SYS_INDEXES when looking for partially created indexes.  Use the
          transaction isolation level READ UNCOMMITTED to avoid interfering with
          locks held by incomplete transactions that will be rolled back in a
          subsequent step in the recovery.  (Issue #152)
          
          Approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1399
        committer: marko
        timestamp: Wed 2009-01-07 14:22:18 +0000
        message:
          branches/zip: Do not call trx_allocate_for_mysql() directly, but use
          helper functions that initialize some members of the transaction struct.
          (Bug #41680)
          
          innobase_trx_init(): New function: initialize some fields of a
          transaction struct from a MySQL THD object.
          
          innobase_trx_allocate(): New function: allocate and initialize a
          transaction struct.
          
          check_trx_exists(): Use the above two functions.
          
          ha_innobase::delete_table(), ha_innobase::rename_table(),
          ha_innobase::add_index(), ha_innobase::final_drop_index():
          Use innobase_trx_allocate().
          
          innobase_drop_database(): In the Windows plugin, initialize the trx_t
          specially, because the THD is not available.  Otherwise, use
          innobase_trx_allocate().
          
          rb://69 accepted by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1398
        committer: marko
        timestamp: Wed 2009-01-07 14:19:32 +0000
        message:
          branches/zip: Add the tests that were forgotten from r3795.
        ------------------------------------------------------------
        revno: 0.3.1397
        committer: marko
        timestamp: Wed 2009-01-07 14:17:47 +0000
        message:
          branches/zip: row_merge_tuple_cmp(): Do not report a duplicate key value
          if any of the fields are NULL.  While the tuples are equal in the
          sorting order, SQL NULL is defined to be logically inequal to
          anything else. (Bug #41904)
          
          rb://70 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1396
        committer: vasil
        timestamp: Tue 2009-01-06 07:56:32 +0000
        message:
          branches/zip:
          
          Add patch to fix the failing main.variables mysql-test. It started failing
          after the variable innodb_use_sys_malloc was added because it matches
          '%alloc%' and the test is badly written and expects that no new variables
          like that will ever be added.
        ------------------------------------------------------------
        revno: 0.3.1395
        committer: marko
        timestamp: Mon 2009-01-05 10:54:53 +0000
        message:
          branches/zip: Merge revisions 3598:3601 from branches/5.1:
          
            ------------------------------------------------------------------------
            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 COMMITTED mode.
            (Bug #41671, Issue #146)
          
            rb://67 approved by Heikki Tuuri
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1394
        committer: marko
        timestamp: Fri 2009-01-02 22:23:30 +0000
        message:
          branches/zip: srv_suspend_mysql_thread(): Add some clarifying comments.
        ------------------------------------------------------------
        revno: 0.3.1393
        committer: marko
        timestamp: Fri 2009-01-02 13:57:51 +0000
        message:
          branches/zip: ChangeLog: Clarify the impact of r3608.
        ------------------------------------------------------------
        revno: 0.3.1392
        committer: marko
        timestamp: Fri 2009-01-02 13:55:12 +0000
        message:
          branches/zip: ChangeLog: Document r3608 and r3613.
        ------------------------------------------------------------
        revno: 0.3.1391
        committer: inaam
        timestamp: Fri 2009-01-02 13:10:50 +0000
        message:
          branches/zip: Implement the parameter innodb_use_sys_malloc
          (false by default), for disabling InnoDB's internal memory allocator
          and using system malloc/free instead.
          
          rb://62 approved by Marko
        ------------------------------------------------------------
        revno: 0.3.1390
        committer: marko
        timestamp: Fri 2009-01-02 09:02:44 +0000
        message:
          branches/zip: Merge c2998 from branches/6.0, so that the same InnoDB Plugin
          source tree will work both under 5.1 and 6.0.  Do not add the test case
          innodb_ctype_ldml.test, because it would not work under MySQL 5.1.
          
          Refuse to create tables whose columns contain collation IDs above 255.
          This removes an assertion failure that was introduced in WL#4164
          (Two-byte collation IDs).
          
          create_table_def(): Do not fail an assertion if a column contains a
          charset-collation ID greater than 256. Instead, issue an error and
          refuse to create the table.
          
          The original change (branches/6.0 r2998) was rb://51 approved by Calvin Sun.
        ------------------------------------------------------------
        revno: 0.3.1389
        committer: marko
        timestamp: Tue 2008-12-30 20:45:04 +0000
        message:
          branches/zip: When setting the PAGE_LEVEL of a compressed B-tree page
          from or to 0, compress the page at the same time.  This is necessary,
          because the column information stored on the compressed page will
          differ between leaf and non-leaf pages.  Leaf pages are identified by
          PAGE_LEVEL=0.  This bug was reported as Issue #150.
          
          Document the similarity between btr_page_create() and
          btr_page_empty().  Make the function signature of btr_page_empty()
          identical with btr_page_create().  (This will add the parameter "level".)
          
          btr_root_raise_and_insert(): Replace some code with a call to
          btr_page_empty().
          
          btr_attach_half_pages(): Assert that the page level has already been
          set on both block and new_block.  Do not set it again.
          
          btr_discard_only_page_on_level(): Document that this function is
          probably never called.  Make it work on any height tree.  (Tested on
          2-high tree by disabling btr_lift_page_up().)
          
          rb://68
        ------------------------------------------------------------
        revno: 0.3.1388
        committer: marko
        timestamp: Tue 2008-12-30 20:33:31 +0000
        message:
          branches/zip: Remove the dependency on the MySQL HASH table implementation.
          Use the InnoDB hash table for keeping track of INNOBASE_SHARE objects.
          
          struct st_innobase_share: Make table_name const uchar*.  Add the member
          table_name_hash.
          
          innobase_open_tables: Change the type from HASH to hash_table_t*.
          
          innobase_get_key(): Remove.
          
          innobase_fold_name(): New function, for computing the fold value for the
          InnoDB hash table.
          
          get_share(), free_share(): Use the InnoDB hash functions.
          
          innobase_end(): Free innobase_open_tables before shutting down InnoDB.
          Shutting down InnoDB will invalidate all memory allocated via InnoDB.
          
          rb://65 approved by Heikki Tuuri.  This addresses Issue #104.
        ------------------------------------------------------------
        revno: 0.3.1387
        committer: marko
        timestamp: Mon 2008-12-22 14:40:17 +0000
        message:
          branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf from
          the free list, zero out the node pointer field of the deleted record if
          the new record would not overwrite it.  This fixes a harmless content
          mismatch reported by page_zip_validate() that was reported as Issue #147.
          
          rb://66 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1386
        committer: marko
        timestamp: Mon 2008-12-22 13:41:47 +0000
        message:
          branches/zip: Merge revisions 3479:3598 from branches/5.1:
          
            ------------------------------------------------------------------------
            r3588 | inaam | 2008-12-18 14:26:54 +0200 (Thu, 18 Dec 2008) | 8 lines
          
            branches/5.1
          
            It is a bug in unused code. If we don't calculate the hash value when
            calculating the mutex number then two pages which map to same hash
            value can get two different mutex numbers.
          
            Approved by: Marko
            ------------------------------------------------------------------------
            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
            ------------------------------------------------------------------------
            r3598 | marko | 2008-12-22 15:28:03 +0200 (Mon, 22 Dec 2008) | 6 lines
          
            branches/5.1: ibuf_delete_rec(): When the record cannot be found and
            the tablespace has been dropped, commit the mini-transaction, so that
            InnoDB will not hold the insert buffer tree latch in exclusive mode,
            causing a potential deadlock.  This bug was introduced in the fix of
            Bug #27276 in r2924.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1385
        committer: marko
        timestamp: Mon 2008-12-22 10:27:16 +0000
        message:
          branches/zip: Pass the caller's file name and line number to
          row_mysql_lock_data_dictionary(), row_mysql_freeze_data_dictionary(),
          to better track down locking issues that involve dict_operation_lock.
        ------------------------------------------------------------
        revno: 0.3.1384
        committer: marko
        timestamp: Fri 2008-12-19 11:58:13 +0000
        message:
          branches/zip: HASH_INSERT, HASH_DELETE: Add explicit type conversions,
          so that the macros will expand to valid C++.  Unlike C++, C allows
          implicit type conversions from void* to other pointer types.
        ------------------------------------------------------------
        revno: 0.3.1383
        committer: marko
        timestamp: Thu 2008-12-18 13:24:44 +0000
        message:
          branches/zip: ha_innodb.cc: Do not include some unnecessary MySQL header files.
        ------------------------------------------------------------
        revno: 0.3.1382
        committer: marko
        timestamp: Wed 2008-12-17 20:40:38 +0000
        message:
          branches/zip: row_sel_try_search_shortcut(), row_sel(): Adjust two
          debug assertions that should have been adjusted in r3575.
        ------------------------------------------------------------
        revno: 0.3.1381
        committer: vasil
        timestamp: Wed 2008-12-17 12:58:26 +0000
        message:
          branches/zip:
          
          Remove 2 entries from the ChangeLog about changes not big enough.
          
          Discussed with: Marko
        ------------------------------------------------------------
        revno: 0.3.1380
        committer: marko
        timestamp: Wed 2008-12-17 12:40:59 +0000
        message:
          branches/zip: Remove update-in-place-in-select from the internal SQL
          interpreter.  It was only used for updating the InnoDB internal data
          dictionary when renaming or dropping tables.  It could have caused
          deadlocks after acquiring latches on insert buffer bitmap pages.
          This and r3544 should fix Issue #135.
          
          Furthermore, the update-in-place-in-select does not account for
          compression failure.  That was not a problem yet, since the InnoDB SQL
          interpreter has so far assumed ROW_FORMAT=REDUNDANT.
          
          rb://63 approved by Heikki Tuuri
        ------------------------------------------------------------
        revno: 0.3.1379
        committer: marko
        timestamp: Wed 2008-12-17 10:44:31 +0000
        message:
          branches/zip: ChangeLog: Document recent changes that were not included in
          InnoDB Plugin 1.0.2, except changes to source code comments.
        ------------------------------------------------------------
        revno: 0.3.1378
        committer: marko
        timestamp: Wed 2008-12-17 09:19:56 +0000
        message:
          branches/zip: Introduce UNIV_AHI_DEBUG for debugging the adaptive hash
          index without enabling UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.1377
        committer: marko
        timestamp: Tue 2008-12-16 13:52:36 +0000
        message:
          branches/zip: Do not update the free bits in the insert buffer bitmap
          when inserting or deleting from the insert buffer B-tree.  Assert that
          records in the insert buffer B-tree are never updated.  This could cure
          Issue #135.
          
          btr_cur_optimistic_insert(): Do not update the insert buffer bitmap
          when inserting to the insert buffer tree.
          
          btr_cur_optimistic_delete(): Do not update the insert buffer bitmap
          when deleting from the insert buffer tree.  This could be the cause
          of the assertion failure that was reported in Issue #135.
          
          btr_cur_update_alloc_zip(): Assert that the index is not the insert
          buffer.  The insert buffer will never be stored in compressed format.
          
          btr_cur_update_in_place(), btr_cur_optimistic_update(),
          btr_cur_pessimistic_update(): Assert that these functions are never
          invoked on the insert buffer tree.  The insert buffer only supports
          the insertion and deletion of records.
        ------------------------------------------------------------
        revno: 0.3.1376
        committer: marko
        timestamp: Tue 2008-12-16 10:14:58 +0000
        message:
          branches/zip: btr_cur_optimistic_delete(): Note that no further pages
          must be latched before calling mtr_commit(mtr) if the function returns TRUE.
        ------------------------------------------------------------
        revno: 0.3.1375
        committer: marko
        timestamp: Tue 2008-12-16 10:13:31 +0000
        message:
          branches/zip: buf_page_init_for_read(): Use common code for error exit.
        ------------------------------------------------------------
        revno: 0.3.1374
        committer: marko
        timestamp: Tue 2008-12-16 08:24:03 +0000
        message:
          branches/zip: sync_thread_add_level(): Add a comment explaining the
          assertion about SYNC_BUF_POOL and SYNC_BUF_BLOCK.
        ------------------------------------------------------------
        revno: 0.3.1373
        committer: marko
        timestamp: Fri 2008-12-12 14:08:23 +0000
        message:
          branches/zip: Clean up the insert buffer subsystem.
          
          Originally, there were provisions in InnoDB for multiple insert buffer
          B-trees, apparently one for each tablespace.
          
          When Heikki implemented innodb_file_per_table (multiple InnoDB
          tablespaces) in MySQL 4.1, he made the insert buffer live only in the
          system tablespace (space 0) but left the provisions in the code.
          
          When Osku Salerma implemented delete buffering, he also cleaned up the
          insert buffer subsystem so that only one insert buffer B-tree exists.
          This patch applies the clean-up to the InnoDB Plugin.
          
          Having a separate patch of the insert buffer clean-up should help us
          better compare the essential changes of the InnoDB Plugin and InnoDB+
          and to track down bugs that are specific to InnoDB+.
          
          IBUF_SPACE_ID: New constant, defined as 0.
          
          ibuf_data_t: Remove.
          
          ibuf_t: Add the applicable fields from ibuf_data_t.  There is only one
          insert buffer tree from now on.
          
          ibuf_page_low(), ibuf_page(): Merge to a single function ibuf_page().
          
          fil_space_t: Remove ibuf_data.
          
          fil_space_get_ibuf_data(): Remove.  There is only one ibuf_data, for
          space IBUF_SPACE_ID.
          
          fil_ibuf_init_at_db_start(): Remove.
          
          ibuf_init_at_db_start(): Fuse with ibuf_data_init_for_space().
          
          ibuf_validate_low(): Remove.  There is only one ibuf tree.
          
          ibuf_free_excess_pages(), ibuf_header_page_get(),
          ibuf_free_excess_pages(): Remove the parameter space, which was always
          0.
          
          ibuf_tree_root_get(): Remove the parameters space and data.  There is
          only one ibuf tree, for space IBUF_SPACE_ID.
          
          ibuf_data_sizes_update(): Rename to ibuf_size_update(), and remove the
          parameter data.  There is only one ibuf data struct.
          
          ibuf_build_entry_pre_4_1_x(): New function, refactored from
          ibuf_build_entry_from_ibuf_rec().
          
          ibuf_data_enough_free_for_insert(), ibuf_data_too_much_free(): Remove
          the parameter data.  There is only one insert buffer tree.
          
          ibuf_add_free_page(), ibuf_remove_free_page(): Remove the parameters
          space and data.  There is only one insert buffer tree.
          
          ibuf_get_merge_page_nos(): Add parenthesis, to reduce diffs to
          branches/innodb+.
          
          ibuf_contract_ext(): Do not pick an insert buffer tree at random.
          There is only one.
          
          ibuf_print(): Print the single insert buffer tree.
          
          rb://19 approved by Heikki on IM
        ------------------------------------------------------------
        revno: 0.3.1372
        committer: marko
        timestamp: Fri 2008-12-12 12:22:34 +0000
        message:
          branches/zip: Improve code locality in btr_cur_search_to_nth_level().
          
          Make the variables rw_latch and buf_mode local in the for loop.
          Initialize them at the beginning of each for loop round to reduce
          register spilling on register-starved platforms such as the x86.  Move
          the assignment of rw_latch and buf_mode from the end of the loop to
          the beginning of the loop.  These parameters will only be needed in
          the buf_page_get_gen() call at the start of the loop.
          
          Remove the second (redundant) call to ibuf_should_try().
          
          ibuf_should_try(): Now that the successful calls to this function will
          be halved, halve the magic constant that ibuf_flush_count will be
          compared to, accordingly.
          
          rb://61 approved by Heikki over IM.
        ------------------------------------------------------------
        revno: 0.3.1371
        committer: marko
        timestamp: Fri 2008-12-12 11:39:40 +0000
        message:
          branches/zip: btr_cur_search_to_nth_level(): Remove a duplicate check
          for (rw_latch != RW_NO_LATCH) around debug code.
        ------------------------------------------------------------
        revno: 0.3.1370
        committer: marko
        timestamp: Thu 2008-12-11 15:08:14 +0000
        message:
          branches/zip: ibuf_merge_or_delete_for_page(): Restore the seemingly
          redundant checks for ibuf_fixed_addr_page() || fsp_descr_page() that
          were removed in r3432, and add a comment explaining why.
          
          Thanks to Michael for reporting this bug.
        ------------------------------------------------------------
        revno: 0.3.1369
        committer: calvin
        timestamp: Wed 2008-12-10 22:19:07 +0000
        message:
          branches/zip: fix Mantis issue #138 InnoDB fails if
          innodb_buffer_pool_size >= 4096M on x64 Windows
          
          All three srv_buf_pool related variables are defined as ulong, which is
          32-bit on 64-bit Windows. They are changed to 64-bit ulint. Also
          system_info.dwPageSize appears to be 32-bit only. Casting to 64-bit
          is required.
          
          Approved by: Marko (on IM)
        ------------------------------------------------------------
        revno: 0.3.1368
        committer: calvin
        timestamp: Wed 2008-12-10 22:01:20 +0000
        message:
          branches/zip: change diff and result files eol-style to LF
          
          The patch utility takes LF style diff, and mysql-test-run
          also only takes LF style, even on Windows.
        ------------------------------------------------------------
        revno: 0.3.1367
        committer: calvin
        timestamp: Wed 2008-12-10 21:56:00 +0000
        message:
          branches/zip: Merge r3458:3479 from branches/5.1:
          
            ------------------------------------------------------------------------
            r3479 | calvin | 2008-12-10 15:30:05 -0600 (Wed, 10 Dec 2008) | 4 lines
            
            branches/5.1: change .result file eol-style to LF
            
            mysql-test-run only takes LF style even on Windows.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1366
        committer: vasil
        timestamp: Tue 2008-12-09 09:49:03 +0000
        message:
          branches/zip:
          
          Merge 2929:3458 from branches/5.1 (resolving conflict in c3257,
          note also that r3363 reverted r2933 so there are not changes in
          mysql-test/innodb-autoinc.result with the current merge):
          
            ------------------------------------------------------------------------
            r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
            
            branches/5.1: correct the result file innodb-autoinc.result
            
            Change the followings:
              auto_increment_increment
              auto_increment_offset
            
            to
              auto-increment-increment
              auto-increment-offset
            
            ------------------------------------------------------------------------
            r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines
            Changed paths:
               M /branches/5.1/row/row0mysql.c
            
            branches/5.0: 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
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            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)
            ------------------------------------------------------------------------
            r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/srv/srv0srv.c
               M /branches/5.1/trx/trx0trx.c
            
            branches/5.1 bug#40760
            
            The config param innodb_thread_concurrency is dynamically set and is
            read when a thread enters/exits innodb. If the value is changed between
            the enter and exit time the behaviour becomes erratic.
            The fix is not to use srv_thread_concurrency when exiting, instead use
            the flag trx->declared_to_be_inside_innodb.
            
            rb://57
            
            Approved by: Marko
            
            
            ------------------------------------------------------------------------
            r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-autoinc.result
            
            branches/5.1: revert the changes in r2933
            
            The changes in r2933 causes test failure on Linux.
            More investigation is needed for Windows.
            
            Change the followings in innodb-autoinc.result:
              auto-increment-increment
              auto-increment-offset
            
            back to:
              auto_increment_increment
              auto_increment_offset
            
            ------------------------------------------------------------------------
            r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
            Changed paths:
               M /branches/5.1/trx/trx0undo.c
            
            branches/5.1:
            
            Add the traditional 2 spaces after the timestamp so the message does
            not look like:
            
            070223 13:26:01InnoDB: Warning: canno....
            
            ------------------------------------------------------------------------
            r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb_bug34300.test
            
            branches/5.1:
            
            Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
            
              main.innodb_bug34300           [ fail ]
              
              mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
              
              Aborting: main.innodb_bug34300 failed in default mode.
            
            The changeset is this:
            
              ------------------------------------------------------------
              revno: 2709.1.10
              committer: Staale Smedseng <staale.smedseng@sun.com>
              branch nick: b22891-51-bugteam
              timestamp: Thu 2008-11-20 08:51:48 +0100
              message:
                A fix for Bug#22891 "session level max_allowed_packet can be
                set but is ignored".
              
                This patch makes @@session.max_allowed_packed and
                @@session.net_buffer_length read-only as suggested in the bug
                report. The user will have to use SET GLOBAL (and reconnect)
                to alter the session values of these variables.
              
                The error string ER_VARIABLE_IS_READONLY is introduced.
              
                Tests are modified accordingly.
              modified:
                mysql-test/r/func_compress.result
                mysql-test/r/max_allowed_packet_basic.result
                mysql-test/r/max_allowed_packet_func.result
                mysql-test/r/net_buffer_length_basic.result
                mysql-test/r/packet.result
                mysql-test/r/union.result
                mysql-test/r/variables.result
                mysql-test/t/func_compress.test
                mysql-test/t/innodb_bug34300.test
                mysql-test/t/max_allowed_packet_basic.test
                mysql-test/t/max_allowed_packet_func.test
                mysql-test/t/net_buffer_length_basic.test
                mysql-test/t/packet.test
                mysql-test/t/union.test
                mysql-test/t/variables.test
                sql/set_var.cc
                sql/set_var.h
                sql/share/errmsg.txt
              ------------------------------------------------------------
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1365
        committer: marko
        timestamp: Tue 2008-12-09 08:31:26 +0000
        message:
          branches/zip: row_purge_remove_sec_if_poss_low(): Allocate mtr_vers
          from the stack, not with mem_alloc().
        ------------------------------------------------------------
        revno: 0.3.1364
        committer: marko
        timestamp: Mon 2008-12-08 12:14:01 +0000
        message:
          branches/zip: ibuf_merge_or_delete_for_page(): Remove the redundant
          checks for ibuf_fixed_addr_page() || fsp_descr_page().  The one at
          the beginning of the function is enough.
        ------------------------------------------------------------
        revno: 0.3.1363
        committer: marko
        timestamp: Fri 2008-12-05 08:02:54 +0000
        message:
          branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Do not
          complain if the record is not found.  Explain that this is possible
          when a deadlock occurs during an update.  Heikki investigated this
          in Issue #134.
        ------------------------------------------------------------
        revno: 0.3.1362
        committer: vasil
        timestamp: Thu 2008-12-04 16:49:24 +0000
        message:
          branches/zip:
          
          Revert our temporary fix for Bug#40360 Binlog related errors with binlog off
          
          This bug was fixed in MySQL code.
          
          Our fix went into r2944 and r2947, but this patch does not entirely revert
          those revisions because we want to leave the test case that was introduced
          and also r2944 itself reverted r2935 and r2936. So if we completely revert
          r2944 and r2947 then we would loose the test and will restore r2935 and
          r2936.
          
          This resolves Issue#108 We should remove ib_bin_log_is_engaged() once mysql
          add an equivallent, see Bug#40360
        ------------------------------------------------------------
        revno: 0.3.1361
        committer: vasil
        timestamp: Thu 2008-12-04 16:10:08 +0000
        message:
          branches/zip:
          
          Fix Mantis issue#103 mysql_addons.c depends on THD internals - please remove it
          
          Use MySQL's thd_get_thread_id() instead of our own ib_thd_get_thread_id()
          since MySQL implemented the former, see http://bugs.mysql.com/30930.
          
          Approved by: Marko (https://svn.innodb.com/rb/r/40, rb://40)
        ------------------------------------------------------------
        revno: 0.3.1360
        committer: vasil
        timestamp: Tue 2008-12-02 11:34:36 +0000
        message:
          branches/zip:
          
          Resurrect a ChangeLog entry that I removed in c3331 with a fake date
          so it does not appear that it has been included in 1.0.2.
        ------------------------------------------------------------
        revno: 0.3.1359
        committer: vasil
        timestamp: Tue 2008-12-02 10:11:54 +0000
        message:
          branches/zip:
          
          Now that 1.0.2 is out, the current tree is version 1.0.3.
        ------------------------------------------------------------
        revno: 0.3.1358
        committer: vasil
        timestamp: Tue 2008-12-02 10:09:20 +0000
        message:
          branches/zip:
          
          Remove an entry from the ChnageLog for a change that was made before
          the release of 1.0.2 but was not included in that release.
        ------------------------------------------------------------
        revno: 0.3.1357
        committer: vasil
        timestamp: Tue 2008-12-02 10:03:17 +0000
        message:
          branches/zip:
          
          Add entry in the ChangeLog for the release of 1.0.2.
        ------------------------------------------------------------
        revno: 0.3.1356
        committer: marko
        timestamp: Tue 2008-12-02 08:16:05 +0000
        message:
          branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf
          from the free list, zero out the DB_TRX_ID and DB_ROLL_PTR of the
          deleted record if the new record would not overwrite these
          fields. This fixes a harmless content mismatch reported by
          page_zip_validate() that was reported as Issue #111.
          rb://55 approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1355
        committer: marko
        timestamp: Fri 2008-11-28 14:18:43 +0000
        message:
          branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Complain if
          the secondary index entry cannot be found, and this is not an incomplete
          transaction that is being rolled back in crash recovery.  The source code
          comments were suggested by Heikki.
        ------------------------------------------------------------
        revno: 0.3.1354
        committer: vasil
        timestamp: Thu 2008-11-27 21:33:48 +0000
        message:
          branches/zip:
          
          Non-functional change in win-plugin/win-plugin.diff: fix the file name
          before the diff, this is irrelevant but it is nice to be the same as
          the file name on the following line.
        ------------------------------------------------------------
        revno: 0.3.1353
        committer: vasil
        timestamp: Thu 2008-11-27 21:31:18 +0000
        message:
          branches/zip:
          
          * Remove a change from win-plugin/win-plugin.diff about time_t because
            MySQL has used VS2005 for building 5.1.30.
          
          * Adjust the line numbers so the patch applies cleanly without fuzz and
            offset messages.
          
          Submitted by: Calvin
        ------------------------------------------------------------
        revno: 0.3.1352
        committer: vasil
        timestamp: Thu 2008-11-27 21:26:39 +0000
        message:
          branches/zip:
          
          Fix Mantis issue#130 wdl: does not handle 64-bit address
          
          - Change the call from strtoul() to strtoull()
          - Change "%16X" to "%16llx" when scanning preferred load address
          
          rb://58
          
          Submitted by: Calvin
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1351
        committer: marko
        timestamp: Wed 2008-11-26 08:00:28 +0000
        message:
          branches/zip: row_merge_drop_temp_indexes(): Replace the WHILE 1 with
          WHILE 1=1 in the SQL procedure, so that the loop will actually be
          entered and temporary indexes be dropped during crash recovery.
          Thanks to Sunny Bains for pointing this out.
          
          Tested as follows:
          
          Set a breakpoint in row_merge_rename_indexes.
          
          CREATE TABLE t(a INT)ENGINE=InnoDB;
          CREATE INDEX a ON t(a);
          
          -- The breakpoint will be reached.  Kill and restart mysqld.
          SHOW CREATE TABLE t;
          -- This shows the MySQL .frm file, without and index.
          CREATE TABLE innodb_table_monitor(a INT)ENGINE=InnoDB;
          -- This will dump the InnoDB dictionary to the error log, without the index.
        ------------------------------------------------------------
        revno: 0.3.1350
        committer: marko
        timestamp: Mon 2008-11-24 16:01:42 +0000
        message:
          branches/zip: Note that it is legitimate for a secondary index record not
          to be found during purge.  This tries to address Issue #129.  The comments
          were supplied by Heikki.
        ------------------------------------------------------------
        revno: 0.3.1349
        committer: marko
        timestamp: Fri 2008-11-21 14:36:18 +0000
        message:
          branches/zip: buf_LRU_free_block(): Do not assert on ibuf_count until after
          it has been determined that the block is not being I/O-fixed.
          This corrects the mistake that was made in r3177.
        ------------------------------------------------------------
        revno: 0.3.1348
        committer: marko
        timestamp: Fri 2008-11-21 14:24:31 +0000
        message:
          branches/zip: buf_LRU_free_block(), buf_page_try_get_func(): Assert that
          there is nothing in the insert buffer for the page.  This is for
          tracking down Issue #128.
        ------------------------------------------------------------
        revno: 0.3.1347
        committer: marko
        timestamp: Fri 2008-11-21 08:11:18 +0000
        message:
          branches/zip: dtuple_print(): Dump each field in a separate line,
          so that the dumps can be read and compared more easily.
          This is related to the change to rec_print_old() and rec_print_comp()
          in r3148.
        ------------------------------------------------------------
        revno: 0.3.1346
        committer: marko
        timestamp: Thu 2008-11-20 11:27:27 +0000
        message:
          branches/zip: rec_print_old(), rec_print_comp(): Dump each field in a
          separate line, so that the dumps can be read and compared more easily.
        ------------------------------------------------------------
        revno: 0.3.1345
        committer: marko
        timestamp: Thu 2008-11-20 10:22:40 +0000
        message:
          branches/zip: Always check for "row too large" when executing SQL to create
          an index or table.  We have to skip this check when loading table definitions
          from the data dictionary, because we could otherwise refuse to load old
          tables (even uncompressed ones).  This addresses Issue #119.
          
          The first "row too large" check was implemented in MySQL 5.0.3
          to address MySQL Bug #5682.  In the InnoDB Plugin 1.0.2, a more
          accurate check was implemented in innodb_strict_mode.  We now
          make the check unconditional.
          
          dict_create_index_step(): Pass strict=TRUE to dict_index_add_to_cache().
          
          trx_is_strict(), thd_is_strict(): Remove.
          
          innodb-zip.test: Test in innodb_strict_mode=OFF.
          
          innodb_bug36169.test: Ensure that none of the tables can be created.
          
          rb://56 approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1344
        committer: marko
        timestamp: Thu 2008-11-20 09:39:49 +0000
        message:
          branches/zip: rec_get_nth_field_offs_old(): Add UNIV_UNLIKELY hints
          to assertion-like tests.
        ------------------------------------------------------------
        revno: 0.3.1343
        committer: marko
        timestamp: Wed 2008-11-19 14:39:55 +0000
        message:
          branches/zip: buf_LRU_free_block(): Clarify the function comment.
        ------------------------------------------------------------
        revno: 0.3.1342
        committer: michael
        timestamp: Mon 2008-11-17 14:02:01 +0000
        message:
          branches/zip: rb://53
          
          Final version of rb://53, fixes the styling of a comment, makes
          the definition and the declaration of thd_supports_xa() identical commentwise.
        ------------------------------------------------------------
        revno: 0.3.1341
        committer: michael
        timestamp: Mon 2008-11-17 12:56:56 +0000
        message:
          branches/zip:
          
          rb://53
          
          Improve innodb_supports_xa system variable handling and
          reduces the number of retrievals of the value from MySQL.
          
          Approved by: Marko, over IM
        ------------------------------------------------------------
        revno: 0.3.1340
        committer: marko
        timestamp: Wed 2008-11-12 11:52:57 +0000
        message:
          branches/zip: row_vers_impl_x_locked_off_kernel(): Remove compilation
          warnings about prev_trx_id and vers_del being possibly uninitialized,
          by handling the case prev_version == NULL in a single if block.
          
          rb://45 approved by Inaam Rana.
        ------------------------------------------------------------
        revno: 0.3.1339
        committer: marko
        timestamp: Wed 2008-11-12 10:34:30 +0000
        message:
          branches/zip: dtuple_validate(): When UNIV_DEBUG_VALGRIND is defined,
          rely solely on the UNIV_MEM_ASSERT_RW() check and disable the for loop
          that would only cause additional noise.
        ------------------------------------------------------------
        revno: 0.3.1338
        committer: marko
        timestamp: Tue 2008-11-11 07:28:37 +0000
        message:
          branches/zip: ha_innobase::create(): Remove the dependences on
          DICT_TF_ZSSIZE_MAX, so that the code can be compiled with a different
          uncompressed page size by redefining UNIV_PAGE_SIZE_SHIFT in univ.i.
          Currently, the allowed values are 12, 13, or 14 (4k, 8k, 16k).
          
          Make the default compressed page size half the uncompressed page size.
          The previous default was 8 kilobytes, which is the same when compiling
          with the default 16k uncompressed page size.
          
          rb://50 approved by Pekka Lampio and Sunny Bains.
        ------------------------------------------------------------
        revno: 0.3.1337
        committer: calvin
        timestamp: Tue 2008-11-04 10:43:14 +0000
        message:
          branches/zip: windows plugin - fix references to array variables.
          
          This problem surfaced when running new test innodb_bug40360.test. Both
          tx_isolation_names and binlog_format_names are name arrays, and
          should be defined as wdl_tx_isolation_names and wdl_binlog_format_names,
          not *wdl_tx_isolation_names and *wdl_binlog_format_names.
          
          Another array variable is all_charsets, which is already correctly
          defined.
          
          Approved by: Marko (on IM)
        ------------------------------------------------------------
        revno: 0.3.1336
        committer: calvin
        timestamp: Tue 2008-11-04 07:15:26 +0000
        message:
          branches/zip: ignore the failure when builtin_innobase_plugin is not
          available.
          
          External variable builtin_innobase_plugin is not available when mysqld
          does not have a builtin InnoDB. The init of the Windows plugin should
          not fail in this case.
          
          Approved by: Marko (on IM)
        ------------------------------------------------------------
        revno: 0.3.1335
        committer: marko
        timestamp: Fri 2008-10-31 12:21:43 +0000
        message:
          branches/zip: scripts/install_innodb_plugins_win.sql: New script,
          for installing the InnoDB plugins in Windows.  Copied from
          scripts/install_innodb_plugins.sql.
        ------------------------------------------------------------
        revno: 0.3.1334
        committer: vasil
        timestamp: Fri 2008-10-31 09:47:56 +0000
        message:
          branches/zip:
          
          White-space cleanup in ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1333
        committer: vasil
        timestamp: Fri 2008-10-31 09:39:07 +0000
        message:
          branches/zip:
          
          Fix Mantis issue#106 plugin init error:InnoDB: stats_on_metadata in static
          InnoDB (flags=0x2401) differs from stats_on_metadata in dynamic InnoDB (fl
          
          Ignore the NOSYSVAR flag in addition to ignoring the READONLY flag.
          
          Approved by: Marko (https://svn.innodb.com/rb/r/42/)
        ------------------------------------------------------------
        revno: 0.3.1332
        committer: calvin
        timestamp: Fri 2008-10-31 08:38:26 +0000
        message:
          branches/zip: Windows plugin part of r2944
          
          r2944 has reference to mysql_bin_log.is_open(), which is new in InnoDB.
          Add two new entries and remove one duplicate in mysqld.def &
          mysqld_x64.def.
        ------------------------------------------------------------
        revno: 0.3.1331
        committer: marko
        timestamp: Fri 2008-10-31 08:18:47 +0000
        message:
          branches/zip: Revert the unintended change to univ.i that was made in r2943.
        ------------------------------------------------------------
        revno: 0.3.1330
        committer: sunny
        timestamp: Fri 2008-10-31 07:44:45 +0000
        message:
          branches/zip: Update ChangeLog with r2943 info.
        ------------------------------------------------------------
        revno: 0.3.1329
        committer: vasil
        timestamp: Fri 2008-10-31 07:44:16 +0000
        message:
          branches/zip:
          
          Revert our temporary fix for "Bug#40360 Binlog related errors with binlog off"
          (r2935, r2936) and deploy MySQL's one, but put the function
          mysql_bin_log_is_engaged() inside mysql_addons.cc instead of in mysql's log.cc
          and use a different name for it so there is no collision when MySQL adds this
          function in log.cc.
          
          [note from the future: the windows part of this patch went into r2947]
          
          Approved by: Marko (https://svn.innodb.com/rb/r/41/)
        ------------------------------------------------------------
        revno: 0.3.1328
        committer: sunny
        timestamp: Fri 2008-10-31 07:40:29 +0000
        message:
          branches/zip:
            1. We add a vector of locks to trx_t. This array contains the autoinc
            locks granted to a transaction. There is one per table.
          
            2. We enforce releasing of these locks in the reverse order from the
            one in which they are acquired. The assumption is that since the
            AUTOINC locks are statement level locks. Nested statements introduced
            by triggers are stacked it should hold.
          
          There was some cleanup done to the vector code too by adding const and
          some new functions. Rename dict_table_t::auto_inc_lock to autoinc_lock.
          
          Fix Bug#26316 Triggers create duplicate entries on auto-increment columns
          rb://22
        ------------------------------------------------------------
        revno: 0.3.1327
        committer: vasil
        timestamp: Thu 2008-10-30 17:34:27 +0000
        message:
          branches/zip:
          
          Increment the InnoDB Plugin version from 1.0.1 to 1.0.2.
        ------------------------------------------------------------
        revno: 0.3.1326
        committer: marko
        timestamp: Thu 2008-10-30 10:46:21 +0000
        message:
          branches/zip: ChangeLog, ha_innodb.def: Set svn:eol-style native
        ------------------------------------------------------------
        revno: 0.3.1325
        committer: marko
        timestamp: Thu 2008-10-30 10:38:18 +0000
        message:
          branches/zip: Set svn:eol-style native on some recently added text files.
        ------------------------------------------------------------
        revno: 0.3.1324
        committer: vasil
        timestamp: Thu 2008-10-30 10:33:28 +0000
        message:
          branches/zip:
          
          Non-functional change: convert handler/handler0vars.h and
          handler/win_delay_loader.cc from \r\n (dos) to \n (unix) line terminators.
        ------------------------------------------------------------
        revno: 0.3.1323
        committer: vasil
        timestamp: Thu 2008-10-30 10:28:47 +0000
        message:
          branches/zip:
          
          Add ChangeLog entry for Bug#40360 Binlog related errors with binlog off
        ------------------------------------------------------------
        revno: 0.3.1322
        committer: vasil
        timestamp: Thu 2008-10-30 10:24:09 +0000
        message:
          branches/zip:
          
          Followup to r2935: add the Windows Delay Loader stuff for the MySQL
          variable that we are accessing. If someday we have another solution for
          Bug#40360 Binlog related errors with binlog off
          then this should also be reverted.
        ------------------------------------------------------------
        revno: 0.3.1321
        committer: vasil
        timestamp: Thu 2008-10-30 10:17:23 +0000
        message:
          branches/zip:
          
          Fix "Bug#40360 Binlog related errors with binlog off" in InnoDB code in order
          to have a Bug#40360-free InnoDB Plugin 1.0.2.
          
          The fix does check whether binary logging is enabled in MySQL by accessing the
          opt_bin_log global variable that is defined in sql/mysqld.cc.
          
          In case MySQL does develop another solution to this via Bug#40360 then we can
          revert this patch (except the mysql-tests).
          
          The windows-plugin part of this fix will be committed as a separate commit to
          ease eventual merge into branches/5.1 [note from the future: the separate
          commit went into r2936].
          
          Approved by: Marko (https://svn.innodb.com/rb/r/39)
        ------------------------------------------------------------
        revno: 0.3.1320
        committer: vasil
        timestamp: Wed 2008-10-29 20:10:40 +0000
        message:
          branches/zip:
          
          Add 2 ChangeLog entries for the 2 bugfixes that were merged from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1319
        committer: marko
        timestamp: Wed 2008-10-29 19:39:24 +0000
        message:
          branches/zip: Merge revisions 2854:2929 from branches/5.1,
          except r2924, which was merged from branches/zip r2866 to branches/5.1
          and except r2879 which was merged separately by Calvin:
          
            ------------------------------------------------------------------------
            r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
          
            branches/5.1:
          
            Fix Bug#38189 innodb_stats_on_metadata missing
          
            Make the variable innodb_stats_on_metadata visible to the users and
            also settable at runtime. Previously it was only "visible" as a command
            line startup option to mysqld.
          
            Approved by:    Marko (https://svn.innodb.com/rb/r/36)
            ------------------------------------------------------------------------
            r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
          
            branches/5.1: dtype_get_sql_null_size(): return the correct storage
            size of a SQL NULL column. (Bug #40369)
          
            When MySQL Bug #20877 was fixed in r834, this function was
            accidentally modified to return 0 or 1. Apparently, the only impact of
            this bug is that fixed-length columns cannot be updated in-place from
            or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
            fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
            storage size as they should, no matter if NULL or non-NULL.  The bug
            caused fixed-length NULL columns to occupy 1 byte.
          
            rb://37 approved by Heikki over IM.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1318
        committer: michael
        timestamp: Wed 2008-10-29 17:20:10 +0000
        message:
          Remove unnecessary assert
          
          Approved by: Heikki, over IM
        ------------------------------------------------------------
        revno: 0.3.1317
        committer: marko
        timestamp: Wed 2008-10-29 09:43:23 +0000
        message:
          branches/zip: ha_innodb.cc: Make some functions static, so that they will
          not be compiled as weak global symbols.  These functions must not be
          redirected to the built-in InnoDB.
        ------------------------------------------------------------
        revno: 0.3.1316
        committer: calvin
        timestamp: Wed 2008-10-29 08:09:41 +0000
        message:
          branches/zip: change function names in sql/mysqld.def in order
          to work with 5.1.29-rc.
          
          In 5.1.29, the following function names are changed:
            _hash_init
            hash_free
            hash_search
            hash_delete
          
          changed to
            _my_hash_init
            my_hash_free
            my_hash_search
            my_hash_delete
          
          Approved by: Marko (on IM)
        ------------------------------------------------------------
        revno: 0.3.1315
        committer: marko
        timestamp: Wed 2008-10-29 07:52:30 +0000
        message:
          branches/zip: ChangeLog: Mention Bug #27276.
        ------------------------------------------------------------
        revno: 0.3.1314
        committer: calvin
        timestamp: Wed 2008-10-29 06:29:01 +0000
        message:
          branches/zip: fix issue #102 - Windows plugin: resolve dbug functions
          during run-time.
          
          Implement wrapper functions in the plugin. The plugin will get the
          function entries from mysqld.exe during the init, and invoke the
          corresponding functions (in mysqld.exe). The list of functions are:
          
           _db_pargs_
           _db_doprnt_
           _db_enter_
           _db_return_
           _db_dump_
          
          rb://38
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1313
        committer: calvin
        timestamp: Tue 2008-10-28 22:08:11 +0000
        message:
          branches/zip: fix a problem introduced in r2917 - dyn is not
          initialized. Move the check into for().
        ------------------------------------------------------------
        revno: 0.3.1312
        committer: marko
        timestamp: Tue 2008-10-28 21:53:23 +0000
        message:
          branches/zip: innodb_plugin_init(): Do not copy session variables,
          even when the variable is a global variable in the built-in InnoDB.
        ------------------------------------------------------------
        revno: 0.3.1311
        committer: vasil
        timestamp: Tue 2008-10-28 06:40:45 +0000
        message:
          branches/zip:
          
          ChangeLog:
          
          add entry for the Windows plugin.
        ------------------------------------------------------------
        revno: 0.3.1310
        committer: marko
        timestamp: Tue 2008-10-28 06:36:39 +0000
        message:
          branches/zip: dict_str_starts_with_keyword(): Removed this unused function.
          
          Spotted by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1309
        committer: calvin
        timestamp: Mon 2008-10-27 23:51:49 +0000
        message:
          branches/zip: for building dynamic plugin on Windows, ha_innodb.dll,
          when INNODB_DYNAMIC_PLUGIN is specified.
          
          The changes are:
          
          CMakeLists.txt: add project ha_innodb for dynamic plugin on Windows.
          ha_innodb depends on project mysqld.
          
          ha_innodb.def: a new file with standard exports for a dynamic plugin.
          
          Two new files will be added:
           * sql/mysqld.def: .def file for 32-bit compiler
           * sql/mysqld_x64.def: .def file for x64 compiler
          
          It is also required to apply a patch to the MySQL source tree. The
          patch is described in win-plugin/README:
          
          win-plugin/win-plugin.diff - a patch to be applied to MySQL source
          tree. When applied, the following files will be modified:
           * CMakeLists.txt: add INNODB_DYNAMIC_PLUGIN and _USE_32BIT_TIME_T
           * sql/CMakeLists.txt: add mysqld.def or mysqld_x64.def for mysqld
           * win/configure.js: add INNODB_DYNAMIC_PLUGIN
           * win/build-vs71.bat: provide an option to specify CMAKE_BUILD_TYPE
           * win/build-vs8.bat: provide an option to specify CMAKE_BUILD_TYPE
           * win/build-vs8_x64.bat: provide an option to specify CMAKE_BUILD_TYPE
        ------------------------------------------------------------
        revno: 0.3.1308
        committer: calvin
        timestamp: Mon 2008-10-27 20:48:29 +0000
        message:
          branches/zip: implement the delayloading of externals for the plugin
          on Windows, which includes:
          
           * Load mysqld.map and insert all symbol/address pairs into hash for
             quick access
           * Resolves all external data variables. The delayloading mechanism
             in MSVC does not support automatic imports of data variables.
             A workaround is to explicitly handle the data import using the delay
             loader during the initialization of the plugin.
           * Resolves all external functions during run-time, by implementing
             the delayed loading helper function delayLoadHelper2, which is
             called by run-time as well as HrLoadAllImportsForDll.
          
          The delay loader reuses the hash implementation in InnoDB. The normal
          hash_create (in hash0hash.c) creates hash tables in buffer pool. But
          the delay loader is invoked before the engine is initialized, and
          buffer pools are not ready yet. Instead, the delay loader has its own
          implementation of hash_create() and hash_table_free(), called
          wdl_hash_create() and wdl_hash_table_free().
          
          This patch should be used with other two patches in order to build
          a dynamically linked plugin on Windows:
           * patch for tmpfile functions (r2886)
           * patch for "build" files (to be committed)
           
          The list of file changed:
          
          handler/handler0vars.h: new file, defines a list of external data
          variables (no external functions).
          
          handler/win_delay_loader.cc: new file, the implementation of the delay
          loader for Windows plugin.
          
          handler/ha_innodb.cc: add a header file, and changes for copying the
          system variables.
          
          handler/handler0alter.cc: add a header file
          
          handler/i_s.cc: add a header file
          
          rb://27
          
          Reviewed by: Sunny, Marko
          Approved by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1307
        committer: calvin
        timestamp: Mon 2008-10-27 20:39:11 +0000
        message:
          branches/zip: This patch is to solve the issue that file handles can
          not cross DLL/EXE boundaries on Windows. In builtin InnoDB, it makes
          call to MySQL server for creating tmp files. innobase_mysql_tmpfile
          is now rewritten for the plugin.
          
          rb://5
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1306
        committer: vasil
        timestamp: Mon 2008-10-27 09:48:46 +0000
        message:
          branches/zip:
          
          ChangeLog:
          
          Add entry for the fix of Bug#19424 InnoDB: Possibly a memory overrun of
          the buffer being freed (64-bit Visual C)
        ------------------------------------------------------------
        revno: 0.3.1305
        committer: calvin
        timestamp: Mon 2008-10-27 09:05:42 +0000
        message:
          branches/zip: port the fix of Bug#19424 - InnoDB: Possibly a memory
          overrun of the buffer being freed with 64-bit Microsoft Visual C++.
          
          The changed file:
          
          CMakeLists.txt: Removing Win64 compiler optimizations for all
          innodb/mem/* files.
        ------------------------------------------------------------
        revno: 0.3.1304
        committer: vasil
        timestamp: Fri 2008-10-24 09:48:38 +0000
        message:
          branches/zip:
          
          Adjust mysql-test/patches/innodb-index.diff after the change to
          mysql-test/innodb-index.(test|result) in r2870.
        ------------------------------------------------------------
        revno: 0.3.1303
        committer: vasil
        timestamp: Fri 2008-10-24 09:36:14 +0000
        message:
          branches/zip:
          
          Remove a statement that causes the innodb-index test to fail.
          
          The change in behavior was introduced in MySQL BZR-r2738.
          
          Suggested by: Marko
        ------------------------------------------------------------
        revno: 0.3.1302
        committer: vasil
        timestamp: Fri 2008-10-24 07:14:16 +0000
        message:
          branches/zip:
          
          White space cleanup in ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1301
        committer: marko
        timestamp: Fri 2008-10-24 06:24:17 +0000
        message:
          branches/zip: ChangeLog: Document r2763, r2794, r2683, r2799, r2809, r2866.
        ------------------------------------------------------------
        revno: 0.3.1300
        committer: marko
        timestamp: Thu 2008-10-23 19:25:43 +0000
        message:
          branches/zip: ibuf_delete_rec(): When the cursor to the insert buffer record
          cannot be restored, do not complain if the tablespace does not exist.
          This fixes Issue #88.
        ------------------------------------------------------------
        revno: 0.3.1299
        committer: marko
        timestamp: Thu 2008-10-23 08:37:42 +0000
        message:
          branches/zip: Non-functional changes:
          
          ibuf_get_volume_buffered(): Declare with static linkage.
          This function is private to ibuf0ibuf.c.
          
          btr_cur_pessimistic_delete(): Use the cached result of
          btr_cur_get_index(cursor).
        ------------------------------------------------------------
        revno: 0.3.1298
        committer: marko
        timestamp: Thu 2008-10-23 08:27:15 +0000
        message:
          branches/zip: Clean up the file format stamping.
          
          trx_sys_file_format_max_upgrade(): Rename from
          trx_sys_file_format_max_update().  Improve the documentation.  Add a
          const qualifier to the parameter "name".  Replace the parameter
          "flags" with "format_id", because this function should deal with file
          format identifiers, not with table flags.
          
          trx_sys_file_format_max_write(), trx_sys_file_format_max_set(): Add a
          const qualifier to the parameter "name".
          
          ha_innodb.cc: Correct the spelling in some comments: "side effect".
          Remove redundant prototypes for some static callback functions.
          
          innodb_file_format_name_update(), innodb_file_format_check_update():
          Correct the function signature.  Use appropriate pointer type conversions.
          
          MYSQL_SYSVAR_STR(file_format), MYSQL_SYSVAR_STR(file_format_check):
          Remove the type conversions from the callback function pointers.  When
          the function signatures match, no type conversion is needed.  The type
          conversions would only prevent compilation warnings for any mismatch.
          
          Approved by Sunny in rb://25.
        ------------------------------------------------------------
        revno: 0.3.1297
        committer: vasil
        timestamp: Thu 2008-10-23 07:33:43 +0000
        message:
          branches/zip:
          
          Update the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1296
        committer: sunny
        timestamp: Thu 2008-10-23 06:24:33 +0000
        message:
          branches/zip:
          
          Merge revisions 2852:2854 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2854 | sunny | 2008-10-23 08:30:32 +0300 (Thu, 23 Oct 2008) | 13 lines
            Changed paths:
               M /branches/5.1/dict/dict0dict.c
               M /branches/5.1/dict/dict0mem.c
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/handler/ha_innodb.h
               M /branches/5.1/include/dict0dict.h
               M /branches/5.1/include/dict0mem.h
               M /branches/5.1/row/row0mysql.c
            
            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.
            
            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
            rb://16
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1295
        committer: sunny
        timestamp: Thu 2008-10-23 06:07:05 +0000
        message:
          Reverting test file changes from r2855
        ------------------------------------------------------------
        revno: 0.3.1294
        committer: sunny
        timestamp: Thu 2008-10-23 05:29:46 +0000
        message:
          branches/zip:
          
          Merge revisions 2837:2852 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2849 | sunny | 2008-10-22 12:01:18 +0300 (Wed, 22 Oct 2008) | 8 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/row0mysql.h
               M /branches/5.1/row/row0mysql.c
            
            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
            
            Bug#40224 New AUTOINC changes mask reporting of deadlock/timeout errors
            
            ------------------------------------------------------------------------
            r2852 | sunny | 2008-10-23 01:42:24 +0300 (Thu, 23 Oct 2008) | 9 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/handler/ha_innodb.h
            
            branches/5.1: Backport r2724 from branches/zip
            
            Check column value against the col max value before updating the table's
            global autoinc counter value. This is part of simplifying the AUTOINC
            sub-system. We extract the type info from MySQL data structures at runtime.
            
            This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1293
        committer: sunny
        timestamp: Wed 2008-10-22 21:52:09 +0000
        message:
          branches/zip: Add missing UNIV_INTERN.
        ------------------------------------------------------------
        revno: 0.3.1292
        committer: marko
        timestamp: Wed 2008-10-22 09:52:12 +0000
        message:
          branches/zip: ibuf_insert_to_index_page(): Discard the local variable block.
          page_cur is always positioned on block, the function parameter.
        ------------------------------------------------------------
        revno: 0.3.1291
        committer: marko
        timestamp: Wed 2008-10-22 06:07:37 +0000
        message:
          branches/zip: page_zip_rec_needs_ext(): Fix a bug that was introduced
          in the fix of Mantis issue #73.  With key_block_size=16, we will also
          have to check the available space on the uncompressed page.
          Otherwise, the clustered index record can be almost 16 kilobytes in
          size, and the undo log record will not fit.
        ------------------------------------------------------------
        revno: 0.3.1290
        committer: vasil
        timestamp: Tue 2008-10-21 08:49:27 +0000
        message:
          branches/zip:
          
          Merge 2744:2837 from branches/5.1 (skipping r2782 and r2826):
          
            ------------------------------------------------------------------------
            r2832 | vasil | 2008-10-21 10:08:30 +0300 (Tue, 21 Oct 2008) | 10 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            In ha_innobase::info():
            
            Replace sql_print_warning() which prints to mysqld error log with
            push_warning_printf() which sends the error message to the client.
            
            Suggested by: Marko, Sunny, Michael
            Objected by: Inaam
            
            ------------------------------------------------------------------------
            r2837 | vasil | 2008-10-21 12:07:44 +0300 (Tue, 21 Oct 2008) | 32 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb-semi-consistent.result
               M /branches/5.1/mysql-test/innodb-semi-consistent.test
               M /branches/5.1/mysql-test/innodb.result
               M /branches/5.1/mysql-test/innodb.test
            
            branches/5.1:
            
            Merge a change from MySQL (this fixes the failing innodb and
            innodb-semi-consistent tests):
            
              revno: 2757
              committer: Georgi Kodinov <kgeorge@mysql.com>
              branch nick: B39812-5.1-5.1.29-rc
              timestamp: Fri 2008-10-03 15:24:19 +0300
              message:
                Bug #39812: Make statement replication default for 5.1 (to match 5.0)
                
                Make STMT replication default for 5.1.
                Add a default of MIXED into the config files
                Fix the tests that needed MIXED replication mode.
              modified:
                mysql-test/include/mix1.inc
                mysql-test/r/innodb-semi-consistent.result
                mysql-test/r/innodb.result
                mysql-test/r/innodb_mysql.result
                mysql-test/r/tx_isolation_func.result
                mysql-test/t/innodb-semi-consistent.test
                mysql-test/t/innodb.test
                mysql-test/t/tx_isolation_func.test
                sql/mysqld.cc
                support-files/my-huge.cnf.sh
                support-files/my-innodb-heavy-4G.cnf.sh
                support-files/my-large.cnf.sh
                support-files/my-medium.cnf.sh
                support-files/my-small.cnf.sh
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1289
        committer: marko
        timestamp: Tue 2008-10-21 07:04:06 +0000
        message:
          branches/zip: ibuf_insert_low(): Simplify a comparison.
        ------------------------------------------------------------
        revno: 0.3.1288
        committer: marko
        timestamp: Tue 2008-10-21 06:18:57 +0000
        message:
          branches/zip: ibuf_delete_rec(): Add debug assertions suggested by Heikki.
        ------------------------------------------------------------
        revno: 0.3.1287
        committer: marko
        timestamp: Tue 2008-10-21 06:16:45 +0000
        message:
          branches/zip: ibuf_insert_low(): Avoid unnecessarily
          acquiring and releasing ibuf_mutex.
        ------------------------------------------------------------
        revno: 0.3.1286
        committer: vasil
        timestamp: Mon 2008-10-20 09:41:04 +0000
        message:
          branches/zip:
          
          Print the table name via ut_print_name() and add two spaces before InnoDB.
          
          Suggested by: Marko
        ------------------------------------------------------------
        revno: 0.3.1285
        committer: marko
        timestamp: Mon 2008-10-20 05:58:01 +0000
        message:
          branches/zip: rec_convert_dtuple_to_rec_comp(): Relax a too tight assertion.
          Spotted by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1284
        committer: vasil
        timestamp: Thu 2008-10-16 15:57:58 +0000
        message:
          branches/zip:
          
          Fix Mantis issue#61:
          
          In row_undo_ins_parse_undo_rec(): if we find that a table has no indexes
          (dict_table_get_first_index() returns NULL) do not try to call
          trx_undo_rec_get_row_ref() with a NULL pointer because that would lead to
          a crash. Instead, print a warning and set node->table to NULL just like
          it is done if the .ibd file is missing.
          
          Approved by: Heikki (via IM)
        ------------------------------------------------------------
        revno: 0.3.1283
        committer: marko
        timestamp: Thu 2008-10-16 05:41:13 +0000
        message:
          branches/zip: Skip the undo log size check on REDUNDANT and COMPACT tables.
          
          In ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED, column prefix indexes
          require that prefixes of externally stored columns be written to the
          undo log. This may make the undo log record bigger than the record on
          the B-tree page.  The maximum size of an undo log record is the page
          size.  That must be checked for, in dict_index_add_to_cache().
          
          dict_index_add_to_cache(): Skip the undo log size check for REDUNDANT
          and COMPACT tables. These tables store prefixes of externally stored
          columns locally within the clustered index record.  There are no special
          considerations for the undo log record size.
          
          innodb-index.test: Ensure that the check exists for ROW_FORMAT=DYNAMIC,
          but not for ROW_FORMAT=COMPACT.
          
          This fixes issue #99.  rb://28 approved by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1282
        committer: marko
        timestamp: Wed 2008-10-15 10:27:42 +0000
        message:
          branches/zip: When the server crashes while freeing an externally stored
          column of a compressed table, the BTR_EXTERN_LEN field in the BLOB pointer
          will be written as 0.  Tolerate this in the functions that deal with
          externally stored columns.  This fixes Issue #80 and was posted at rb://26.
          
          Note that the clustered index record is always deleted or purged last,
          after any secondary index records referring to it have been deleted.
          
          btr_free_externally_stored_field(): On an uncompressed table, zero out
          the BTR_EXTERN_LEN, so that half-deleted BLOBs can be detected after
          crash recovery.
          
          btr_copy_externally_stored_field_prefix(): Return 0 if the BLOB has been
          half-deleted.
          
          row_upd_ext_fetch(): Assert that the externally stored column exists.
          
          row_ext_cache_fill(): Allow btr_copy_externally_stored_field_prefix()
          to return 0.
          
          row_sel_sec_rec_is_for_blob(): Return FALSE if the BLOB has been half-deleted.
          This is correct, because the clustered index record would have been deleted
          or purged last, after any secondary index records referring to it had been
          deleted.
        ------------------------------------------------------------
        revno: 0.3.1281
        committer: marko
        timestamp: Wed 2008-10-15 09:21:54 +0000
        message:
          branches/zip: Introduce UNIV_ZIP_COPY for invoking page_zip_copy_recs()
          more often in B-tree operations.
        ------------------------------------------------------------
        revno: 0.3.1280
        committer: marko
        timestamp: Wed 2008-10-15 06:32:40 +0000
        message:
          branches/zip: When invoking page_zip_copy_recs(), update the lock table
          and the adaptive hash index.  This should fix Issue #95 and Issue #87.
          
          page_zip_copy_recs(): Copy PAGE_MAX_TRX_ID as well, to have similar behavior
          to page_copy_rec_list_start() and page_copy_rec_list_end().
          
          btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_lift_page_up():
          Update the lock table and the adaptive hash index.
        ------------------------------------------------------------
        revno: 0.3.1279
        committer: marko
        timestamp: Wed 2008-10-15 06:00:06 +0000
        message:
          branches/zip: row_create_table_for_mysql(), row_create_index_for_mysql():
          Note that the dictionary object will be freed.
        ------------------------------------------------------------
        revno: 0.3.1278
        committer: calvin
        timestamp: Tue 2008-10-14 15:19:41 +0000
        message:
          branches/zip: fix compiler warning
          
          Change the definition of add_on from ulint to ullint, to eliminate
          the warning in .\btr\btr0cur.c:
          conversion from 'ullint' to 'ulint', possible loss of data
          
          Approved by: Heikki (on IM)
        ------------------------------------------------------------
        revno: 0.3.1277
        committer: calvin
        timestamp: Tue 2008-10-14 15:14:47 +0000
        message:
          branches/zip: fix Mantis issue #96 Problem compiling ha_innodb.cc
          on 64-bit Windows
          
          Change the definition of srv_replication_delay from ulint to ulong.
          ulint is 64-bit on Win64.
          
          Approved by: Heikki (on IM)
        ------------------------------------------------------------
        revno: 0.3.1276
        committer: marko
        timestamp: Mon 2008-10-13 18:29:12 +0000
        message:
          branches/zip: page_cur_delete_rec(): Remove the bogus page_zip_validate_low()
          assertion that was added in r2781 and explain why it was bogus.
        ------------------------------------------------------------
        revno: 0.3.1275
        committer: marko
        timestamp: Mon 2008-10-13 17:35:30 +0000
        message:
          branches/zip: Add missing NULL check to the assertion added in r2781.
        ------------------------------------------------------------
        revno: 0.3.1274
        committer: vasil
        timestamp: Mon 2008-10-13 14:34:34 +0000
        message:
          branches/zip:
          
          Remove mysql-test/patches/bug37312.diff because MySQL "fixed"
          Bug#37312 by removing the test.
          
          http://bugs.mysql.com/37312
          http://lists.mysql.com/commits/54462
        ------------------------------------------------------------
        revno: 0.3.1273
        committer: marko
        timestamp: Mon 2008-10-13 09:40:57 +0000
        message:
          branches/zip: page_cur_delete_rec(): Call page_zip_validate_low().
        ------------------------------------------------------------
        revno: 0.3.1272
        committer: marko
        timestamp: Sat 2008-10-11 18:58:47 +0000
        message:
          branches/zip: row_merge_rename_indexes(): Add a missing semicolon that
          was forgotten when splitting a ut_ad() assertion in r2763.
        ------------------------------------------------------------
        revno: 0.3.1271
        committer: vasil
        timestamp: Sat 2008-10-11 18:19:04 +0000
        message:
          branches/zip:
          
          Remove mysql-test/patches/bug31231.diff since this patch hit the
          MySQL repository.
        ------------------------------------------------------------
        revno: 0.3.1270
        committer: marko
        timestamp: Fri 2008-10-10 11:44:27 +0000
        message:
          branches/zip: Fix some locking issues, mainly in fast index creation.
          This should hopefully address Issue #85.
          
          ha_innobase::add_index(): Lock the data dictionary before invoking
          row_merge_rename_indexes() or row_merge_drop_indexes(), because neither
          function will commit the transaction.
          
          ha_innobase::final_drop_index(): Commit the transactions before
          unlocking the data dictionary.
          
          row_merge_drop_index(), row_merge_drop_indexes(), row_merge_rename_tables(),
          row_merge_rename_indexes(): Note and assert that the data dictionary must
          have been exclusively locked by the caller, because the transaction will
          not be committed.
          
          row_drop_database_for_mysql(): Commit the transaction immediately after
          dropping each table.  When MySQL is holding open handles to some tables,
          it can otherwise occur than the data dictionary is unlocked while the
          transaction has not been committed.  This bug was introduced in r2739,
          which changed the semantics of row_drop_table_for_mysql().
          
          row_drop_database_for_mysql(): Postpone mem_free(table_name), so that
          an error printout will not dereference freed memory.
        ------------------------------------------------------------
        revno: 0.3.1269
        committer: marko
        timestamp: Thu 2008-10-09 08:48:58 +0000
        message:
          branches/zip: Merge revisions 2722:2744 from branches/5.1:
            ------------------------------------------------------------------------
            r2742 | inaam | 2008-10-08 22:02:15 +0300 (Wed, 08 Oct 2008) | 11 lines
          
            branches/5.1:
          
            Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in
            buf_LRU_invalidate_tablespace()
          
            Improve implementation of buf_LRU_invalidate_tablespace by attempting
            hash index drop in batches instead of doing it one by one.
          
            Reviewed by: Heikki, Sunny, Marko
            Approved by: Heikki
            ------------------------------------------------------------------------
            r2744 | marko | 2008-10-09 10:53:09 +0300 (Thu, 09 Oct 2008) | 5 lines
          
            branches/5.1: ha_innobase::delete_all_rows(): In response to a user asking
            <http://forums.innodb.com/read.php?4,215,215> why DELETE FROM t is not
            mapped to TRUNCATE TABLE t as it is in MyISAM, note in a comment that
            DELETE is transactional while TRUNCATE is not.
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1268
        committer: marko
        timestamp: Wed 2008-10-08 10:39:45 +0000
        message:
          branches/zip: mysql-test/patches/innodb_file_per_table.diff:
          @@GLOBAL.innodb_file_per_table can be 0 or 1, while
          SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
          WHERE VARIABLE_NAME='innodb_file_per_table'
          can be 'OFF' or 'ON'.  For some reason, MySQL evaluates
          (0 = 'OFF') to 1 and (1 = 'ON') to 0.  Thus, the test would
          fail if innodb_file_per_table is set.
        ------------------------------------------------------------
        revno: 0.3.1267
        committer: marko
        timestamp: Wed 2008-10-08 09:55:48 +0000
        message:
          branches/zip: page_copy_rec_list_end(): Remove the call
          page_zip_validate_low(new_page_zip, new_page, TRUE) because it would
          cause bogus failures in btr_compress(), as noted in Issue #79.
        ------------------------------------------------------------
        revno: 0.3.1266
        committer: marko
        timestamp: Wed 2008-10-08 08:54:16 +0000
        message:
          branches/zip: Do not release the data dictionary latch while holding locks
          to the data dictionary records.  This should fix Issue #83.
          
          row_drop_table_for_mysql_no_commit(): Rename back to
          row_drop_table_for_mysql().  Commit the transaction if the data
          dictionary was not locked when the function was called.  Otherwise,
          neither commit the transaction nor unlock the data dictionary.
          
          row_merge_drop_table(): Let row_drop_table_for_mysql() take care of
          locking the data dictionary.
          
          dict_create_or_check_foreign_constraint_tables(),
          trx_rollback_active(), row_create_table_for_mysql(),
          row_create_index_for_mysql(), row_table_add_foreign_constraints():
          Explicitly commit the transaction, because row_drop_table_for_mysql()
          would no longer commit it, given that the data dictionary will be
          locked during the calls.
          
          Approved by Sunny (over IM). rb://23
        ------------------------------------------------------------
        revno: 0.3.1265
        committer: marko
        timestamp: Tue 2008-10-07 12:51:32 +0000
        message:
          branches/zip: Improve page_zip_validate() instrumentation.
          
          btr_lift_page_up(): Invoke page_zip_validate() on every page whose level
          is adjusted.
          
          btr_compress(): Invoke page_zip_validate() on merge_page at the end.
          
          page_zip_copy_recs(): Relax the page_zip_validate(...) to
          page_zip_validate_low(..., sloppy = TRUE) to avoid bogus assertion failures.
          
          page_copy_rec_list_end(), page_delete_rec_list_start():
          Invoke page_zip_validate_low(sloppy = TRUE).
        ------------------------------------------------------------
        revno: 0.3.1264
        committer: marko
        timestamp: Tue 2008-10-07 10:28:45 +0000
        message:
          branches/zip: mysql-test/patches/information_schema.diff:
          Add patches to other mysql-test results that fail because of the added
          INFORMATION_SCHEMA tables: information_schema_db.result, mysqlshow.result.
        ------------------------------------------------------------
        revno: 0.3.1263
        committer: vasil
        timestamp: Tue 2008-10-07 08:41:42 +0000
        message:
          branches/zip:
          
          Rename type_bit_innodb.diff to bug32625.diff since an equivalent patch has
          been submitted to MySQL as Bug#32625 Make test type_bit_innodb more robust.
        ------------------------------------------------------------
        revno: 0.3.1262
        committer: marko
        timestamp: Tue 2008-10-07 08:06:17 +0000
        message:
          branches/zip: Add some more patches to mysql-test.
          
          type_bit_innodb.diff: Ignore the reported duplicate value.  The reported
          value depends on the internal workings of the merge sort in
          fast index creation.  In the built-in InnoDB of MySQL 5.1, the records
          are copied to a new temporary table in the order they were selected from
          the original table.
          
          information_schema.diff: Account for the INFORMATION_SCHEMA tables that
          were added in the InnoDB plugin.
          
          innodb_file_per_table.diff: In the InnoDB plugin, innodb_file_per_table
          is a settable global variable.
        ------------------------------------------------------------
        revno: 0.3.1261
        committer: marko
        timestamp: Tue 2008-10-07 07:24:33 +0000
        message:
          branches/zip: Patch the mysql-test suite, so that it will not fail
          because innodb_lock_wait_timeout is a settable session variable as of r2716.
          
          mysql-test/patches/innodb_lock_wait_timeout.diff: New file.
        ------------------------------------------------------------
        revno: 0.3.1260
        committer: calvin
        timestamp: Tue 2008-10-07 06:16:39 +0000
        message:
          Delete the recently added files from MySQL source tree, for
          Windows plugin. Instead, we will commit diff only.
        ------------------------------------------------------------
        revno: 0.3.1259
        committer: marko
        timestamp: Mon 2008-10-06 12:26:27 +0000
        message:
          branches/zip: Improve the diagnostics of issue #79.
          
          page_zip_fail_func(): Display the timestamp.
          
          page_zip_validate_low(): Display information about ignored min_rec_flag
          differences.
        ------------------------------------------------------------
        revno: 0.3.1258
        committer: marko
        timestamp: Mon 2008-10-06 07:13:52 +0000
        message:
          branches/zip: Relax the page_zip_validate() check during crash recovery:
          ignore intermittent differences in the "predefined minimum record" flag.
          
          page_zip_validate_low(): Renamed from page_zip_validate(), with an
          additional parameter: ibool sloppy.  Ignore REC_INFO_MIN_REC_FLAG when
          sloppy == TRUE.
          
          page_zip_validate(): Wrapper for page_zip_validate_low().  Pass
          sloppy = recv_recovery_is_on().
          
          recv_recover_page(): After applying the changes from the redo log to a
          compressed B-tree page, invoke page_zip_validate_low() in strict mode.
        ------------------------------------------------------------
        revno: 0.3.1257
        committer: vasil
        timestamp: Mon 2008-10-06 07:00:19 +0000
        message:
          branches/zip:
          
          Add more ChangeLog entries from the merge
          of 2702:2722 from branches/5.1 (r2723).
        ------------------------------------------------------------
        revno: 0.3.1256
        committer: vasil
        timestamp: Mon 2008-10-06 06:52:37 +0000
        message:
          branches/zip:
          
          Add entry for Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
          in the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1255
        committer: vasil
        timestamp: Mon 2008-10-06 06:14:04 +0000
        message:
          branches/zip:
          
          Add entry for Bug#39830 Table autoinc value not updated on first insert
          in the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1254
        committer: sunny
        timestamp: Sun 2008-10-05 23:44:30 +0000
        message:
          branches/zip: Check for autoinc next value overflow explicitly when offset
          is > 1. This is safer and easier to understand.
        ------------------------------------------------------------
        revno: 0.3.1253
        committer: sunny
        timestamp: Sat 2008-10-04 06:34:54 +0000
        message:
          branches/zip: Fix the handler class method return type. Change ulong to ulint
          so that it conforms to InnoDB's internal error/return code type.
        ------------------------------------------------------------
        revno: 0.3.1252
        committer: sunny
        timestamp: Sat 2008-10-04 06:24:56 +0000
        message:
          branches/zip: 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.
          
          This also fixes Bug#39830 Table autoinc value not updated on first insert.
          rb://16
        ------------------------------------------------------------
        revno: 0.3.1251
        committer: sunny
        timestamp: Sat 2008-10-04 03:47:18 +0000
        message:
          branches/zip: Check column value against the col max value before updating
          the table's global autoinc counter value. This is part of simplifying the
          AUTOINC sub-system. We extract the type info from MySQL data structures at
          runtime.
          
          This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
        ------------------------------------------------------------
        revno: 0.3.1250
        committer: sunny
        timestamp: Sat 2008-10-04 03:22:36 +0000
        message:
          branches/zip: Merge revisions 2702:2722 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2702 | sunny | 2008-09-30 11:41:56 +0300 (Tue, 30 Sep 2008) | 13 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: Since handler::get_auto_increment() doesn't allow us
            to return the cause of failure we have to inform MySQL using the
            sql_print_warning() function to return the cause for autoinc failure.
            Previously we simply printed the error code, this patch prints the
            text string representing the following two error codes:
            
            DB_LOCK_WAIT_TIMEOUT
            DB_DEADLOCK.
            
            Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
            
            Approved by Marko.
            
            ------------------------------------------------------------------------
            r2709 | vasil | 2008-10-01 10:13:13 +0300 (Wed, 01 Oct 2008) | 10 lines
            Changed paths:
               M /branches/5.1/include/lock0lock.h
               M /branches/5.1/lock/lock0lock.c
               A /branches/5.1/mysql-test/innodb_bug38231.result
               A /branches/5.1/mysql-test/innodb_bug38231.test
               M /branches/5.1/row/row0mysql.c
            
            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)
            
            ------------------------------------------------------------------------
            r2710 | vasil | 2008-10-01 14:13:58 +0300 (Wed, 01 Oct 2008) | 6 lines
            Changed paths:
               M /branches/5.1/include/sync0sync.ic
            
            branches/5.1:
            
            Silence a compilation warning in UNIV_DEBUG.
            
            Approved by: Marko (via IM)
            
            ------------------------------------------------------------------------
            r2719 | vasil | 2008-10-03 18:17:28 +0300 (Fri, 03 Oct 2008) | 49 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               A /branches/5.1/mysql-test/innodb_bug39438-master.opt
               A /branches/5.1/mysql-test/innodb_bug39438.result
               A /branches/5.1/mysql-test/innodb_bug39438.test
            
            branches/5.1:
            
            Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
            
            In ha_innobase::info() - do not try to get the free space for a tablespace
            which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the
            .ibd file is missing for some other reason.
            
            ibd_file_missing and tablespace_discarded are manipulated only in
            row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql()
            and the manipulation is protected/surrounded by
            row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we
            do the same in ha_innobase::info() when checking the values of those members
            to avoid race conditions. I have tested the code-path with UNIV_DEBUG and
            UNIV_SYNC_DEBUG.
            
            Looks like it is not possible to avoid mysqld printing warnings in the
            mysql-test case and thus this test innodb_bug39438 must be added to the
            list of exceptional test cases that are allowed to print warnings. For this,
            the following patch must be applied to the mysql source tree:
            
              --- cut ---
              === modified file 'mysql-test/lib/mtr_report.pl'
              --- mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +0000
              +++ mysql-test/lib/mtr_report.pl 2008-10-01 11:57:41 +0000
              @@ -412,7 +412,10 @@
               
                               # When trying to set lower_case_table_names = 2
                               # on a case sensitive file system. Bug#37402.
              -                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./
              +                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./ or
              +
              +                # this test is expected to print warnings
              +                ($testname eq 'main.innodb_bug39438')
                )
                           {
                             next;                       # Skip these lines
              
              --- cut ---
            
            The mysql-test is currently somewhat disabled (see inside
            innodb_bug39438.test), after the above patch has been applied to the mysql
            source tree, the test can be enabled.
            
            rb://20
            
            Reviewed by: Inaam, Calvin
            Approved by: Heikki
            
            ------------------------------------------------------------------------
            r2720 | vasil | 2008-10-03 19:52:39 +0300 (Fri, 03 Oct 2008) | 8 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Print a warning if an attempt is made to get the free space for a table
            whose .ibd file is missing or the tablespace has been discarded. This is a
            followup to r2719.
            
            Suggested by: Inaam
            
            ------------------------------------------------------------------------
            r2721 | sunny | 2008-10-04 02:08:23 +0300 (Sat, 04 Oct 2008) | 6 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1: We need to send the messages to the client because
            handler::get_auto_increment() doesn't allow a way to return the
            specific error for why it failed.
            
            rb://18
            
            ------------------------------------------------------------------------
            r2722 | sunny | 2008-10-04 02:48:04 +0300 (Sat, 04 Oct 2008) | 18 lines
            Changed paths:
               M /branches/5.1/dict/dict0mem.c
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/dict0mem.h
               M /branches/5.1/include/row0mysql.h
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
               M /branches/5.1/row/row0mysql.c
            
            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
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1249
        committer: vasil
        timestamp: Fri 2008-10-03 10:31:53 +0000
        message:
          branches/zip:
          
          ChangeLog:
          Use "Fix Bug#NNNNN bug summary text" for bugfixes, as for other entries
          in the file.
        ------------------------------------------------------------
        revno: 0.3.1248
        committer: marko
        timestamp: Fri 2008-10-03 09:43:35 +0000
        message:
          branches/zip: innodb-index.test: Make the pattern for temporary table names
          more generic.  The previous pattern could fail if other test cases were run
          before this one.  Since r2716, the MySQL server is not restarted for this test.
        ------------------------------------------------------------
        revno: 0.3.1247
        committer: marko
        timestamp: Fri 2008-10-03 09:24:23 +0000
        message:
          branches/zip: Make innodb_lock_wait_timeout a settable session variable
          (Bug #36285, rb://9).
          
          innodb-index.test, innodb-index.result: Set innodb_lock_wait_timeout as
          a session variable instead of relying on the global value.
          
          innodb-index-master.opt: Remove.
          
          innodb-timeout.test: Test that setting the innodb_lock_wait_timeout
          works as advertised.
          
          thd_lock_wait_timeout(): New function, to retrieve the lock wait timeout
          for a given MySQL client connection (thd), or the global value (thd==NULL).
          
          srv_lock_wait_timeout, innobase_lock_wait_timeout: Remove.
          
          Replace MYSQL_SYSVAR_LONG(lock_wait_timeout)
          with MYSQL_THDVAR_ULONG(lock_wait_timeout).  
        ------------------------------------------------------------
        revno: 0.3.1246
        committer: marko
        timestamp: Wed 2008-10-01 19:04:44 +0000
        message:
          branches/zip: page_mem_free(): Remove the obsolete remark that there
          should be space left in the modification log of the compressed page.
          Record deletion does not require any space in the modification log.
        ------------------------------------------------------------
        revno: 0.3.1245
        committer: marko
        timestamp: Wed 2008-10-01 19:03:45 +0000
        message:
          branches/zip: page_zip_validate(): On page header mismatch,
          dump the data structures.  This was forgotten in r2698.
        ------------------------------------------------------------
        revno: 0.3.1244
        committer: marko
        timestamp: Wed 2008-10-01 05:37:35 +0000
        message:
          branches/zip: Merge revisions 2630:2702 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2702 | sunny | 2008-09-30 11:41:56 +0300 (Tue, 30 Sep 2008) | 13 lines
          
            branches/5.1: Since handler::get_auto_increment() doesn't allow us
            to return the cause of failure we have to inform MySQL using the
            sql_print_warning() function to return the cause for autoinc failure.
            Previously we simply printed the error code, this patch prints the
            text string representing the following two error codes:
          
            DB_LOCK_WAIT_TIMEOUT
            DB_DEADLOCK.
          
            Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
          
            Approved by Marko.
            ------------------------------------------------------------------------
            rb://18
        ------------------------------------------------------------
        revno: 0.3.1243
        committer: vasil
        timestamp: Tue 2008-09-30 15:26:38 +0000
        message:
          branches/zip:
          
          Change the patch to fix the failing mysql-test index_merge_innodb.
          
          The previous variant is inappropriate because myisam results are different
          (2 instead of 4) and then the index_merge_myisam test fails.
        ------------------------------------------------------------
        revno: 0.3.1242
        committer: marko
        timestamp: Mon 2008-09-29 10:26:41 +0000
        message:
          branches/zip: page_zip_validate(): Explain how the v-bits can be viewed.
        ------------------------------------------------------------
        revno: 0.3.1241
        committer: marko
        timestamp: Mon 2008-09-29 08:26:42 +0000
        message:
          branches/zip: page_zip_validate(): On failure, dump all data structures.
          
          page_zip_hexdump_func(): New function, to dump a block of data.
          ut_print_buf() would dump everything on a single line, which is hard
          to read.
          
          page_zip_hexdump(): Wrapper macro for page_zip_hexdump_func().
          
          page_zip_validate(): dump page_zip, page_zip->data, page, temp_page if !valid.
        ------------------------------------------------------------
        revno: 0.3.1240
        committer: marko
        timestamp: Mon 2008-09-29 07:40:02 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): Correct an error that was made
          in r2631.  Include the node pointer field in the size calculation.
          
          rec_get_converted_size_comp_prefix(): New function, to compute the storage
          size of the prefix of an ordinary record in COMPACT format.
          
          rec_get_converted_size_comp(): Use rec_get_converted_size_comp_prefix().
        ------------------------------------------------------------
        revno: 0.3.1239
        committer: vasil
        timestamp: Fri 2008-09-26 10:50:05 +0000
        message:
          branches/zip:
          
          Add a patch to fix the failing mysql-test index_merge_innodb. The test
          started failing after an optimization, made in r2625, which results in
          a different number of rows being returned by EXPLAIN.
        ------------------------------------------------------------
        revno: 0.3.1238
        committer: vasil
        timestamp: Fri 2008-09-26 09:40:30 +0000
        message:
          branches/zip:
          
          Fix typos in mysql-test/patches/README.
        ------------------------------------------------------------
        revno: 0.3.1237
        committer: marko
        timestamp: Fri 2008-09-26 09:09:43 +0000
        message:
          branches/zip: fsp0fsp.c: Revert r2681 in a sense, by turning the
          ut_a() assertions into ut_ad() assertions.
        ------------------------------------------------------------
        revno: 0.3.1236
        committer: calvin
        timestamp: Fri 2008-09-26 06:42:48 +0000
        message:
          branches/zip: add MySQL files that will be changed for Windows plugin.
          
          The following files are from MySQL source tree without any changes.
          They will be changed for building Windows plugin. The original files
          will be used as the base for diff purpose.
          
          * CMakeLists.txt
          * sql/CMakeLists.txt
          * win/configure.js
        ------------------------------------------------------------
        revno: 0.3.1235
        committer: marko
        timestamp: Thu 2008-09-25 12:17:52 +0000
        message:
          branches/zip: Non-functional change:
          
          page_zip_copy_recs(): Rename from page_zip_copy().
          Update the function comment.
        ------------------------------------------------------------
        revno: 0.3.1234
        committer: marko
        timestamp: Thu 2008-09-25 09:14:27 +0000
        message:
          branches/zip: thd_is_strict(): Add missing UNIV_INTERN qualifier as well.
        ------------------------------------------------------------
        revno: 0.3.1233
        committer: marko
        timestamp: Thu 2008-09-25 08:15:18 +0000
        message:
          branches/zip: thd_is_strict(): Add missing extern "C" qualifier.
        ------------------------------------------------------------
        revno: 0.3.1232
        committer: marko
        timestamp: Thu 2008-09-25 06:29:08 +0000
        message:
          branches/zip: page_zip_copy(): Skip PAGE_MAX_TRX_ID, because
          page_copy_rec_list_end(), page_copy_rec_list_start() and friends do
          not copy it either.
        ------------------------------------------------------------
        revno: 0.3.1231
        committer: marko
        timestamp: Thu 2008-09-25 06:15:36 +0000
        message:
          branches/zip: page_zip_copy(): Copy only those B-tree page header
          fields that are related to the records stored in the page.
          
          page_zip_copy() is a fall-back method in certain B-tree operations
          (tree compression, splitting or merging nodes).  The contents of a
          page may fit in the compressed page frame when it has been modified in
          a certain sequence, but not when the page is recompressed.  Sometimes,
          copying all or part of the records to an empty page could fail because
          of compression overflow.  In such cases, we copy the compressed and
          uncompressed pages bit for bit and delete any unwanted records from
          the copy.  (Deletion is guaranteed to succeed.)  The method
          page_zip_copy() is invoked very rarely.
          
          In one case, page_zip_copy() was called in btr_lift_page_up() to move
          the records to the root page of the B-tree.  Because page_zip_copy()
          copied all B-tree page header fields, it overwrote the file segment
          header fields PAGE_BTR_SEG_LEAF and PAGE_BTR_SEG_TOP.  This is the
          probable cause of the corruption that was reported as Mantis issue #63
          and others.
        ------------------------------------------------------------
        revno: 0.3.1230
        committer: marko
        timestamp: Wed 2008-09-24 18:29:19 +0000
        message:
          branches/zip: fsp0fsp.c: Turn some ut_ad() assertions to ut_a() and
          add some ut_a() assertions to track down file space header corruption
          that is the probable cause of Mantis issue #63.
        ------------------------------------------------------------
        revno: 0.3.1229
        committer: marko
        timestamp: Wed 2008-09-24 10:47:45 +0000
        message:
          branches/zip: row_undo_mod_del_unmark_sec_and_undo_update():
          Return earlier when this function is called on an index that
          is being created.  Luckily, mtr_start() does not allocate any
          resources.  Thus, there was no memory leak.
        ------------------------------------------------------------
        revno: 0.3.1228
        committer: marko
        timestamp: Wed 2008-09-24 09:39:48 +0000
        message:
          branches/zip: row_purge_remove_sec_if_poss_low(): Add a const qualifier.
        ------------------------------------------------------------
        revno: 0.3.1227
        committer: marko
        timestamp: Wed 2008-09-24 09:30:32 +0000
        message:
          branches/zip: ibuf_merge_or_delete_for_page(): Check that the changes would
          be merged to a leaf page.
        ------------------------------------------------------------
        revno: 0.3.1226
        committer: marko
        timestamp: Wed 2008-09-24 08:31:29 +0000
        message:
          branches/zip: Do not invoke btr_root_fseg_validate() on the insert buffer
          B-tree, because there are no file segment headers in the insert buffer B-tree
          root page.  The function was introduced in r2627.
        ------------------------------------------------------------
        revno: 0.3.1225
        committer: calvin
        timestamp: Mon 2008-09-22 08:14:01 +0000
        message:
          branches/zip: Update the ChangeLog with the fix of
          memory leak on Windows.
        ------------------------------------------------------------
        revno: 0.3.1224
        committer: marko
        timestamp: Mon 2008-09-22 06:59:58 +0000
        message:
          branches/zip: Non-functional change:
          
          buf_block_dbg_add_level(block, level): Define as an empty macro when
          UNIV_SYNC_DEBUG is not defined.  Remove #ifdef UNIV_SYNC_DEBUG around
          all invocations.
        ------------------------------------------------------------
        revno: 0.3.1223
        committer: marko
        timestamp: Mon 2008-09-22 06:43:28 +0000
        message:
          branches/zip: fil_io(): Simplify an "else if" condition by reordering
          conditions.
        ------------------------------------------------------------
        revno: 0.3.1222
        committer: marko
        timestamp: Mon 2008-09-22 06:41:03 +0000
        message:
          branches/zip: fil_io(): Remove an unnecessary #ifdef UNIV_SYNC_DEBUG
          around a debug assertion.
        ------------------------------------------------------------
        revno: 0.3.1221
        committer: calvin
        timestamp: Fri 2008-09-19 14:46:46 +0000
        message:
          branches/zip: fix Mantis issue #74 Memory leak on Windows
          
          The memory leak was due to wrong parameters passed into VirtualFree()
          call. So, the call fails with Windows error 87. MEM_DECOMMIT can NOT be
          used along with MEM_RELEASE. And if the parameter is MEM_RELEASE, the
          size parameter must be 0. The function frees the entire region that is
          reserved in the initial allocation call to VirtualAlloc.
          
          This issue was introduced by r984.
          
          Approved by: Heikki (on IM)
        ------------------------------------------------------------
        revno: 0.3.1220
        committer: marko
        timestamp: Thu 2008-09-18 13:14:29 +0000
        message:
          branches/zip: Map current_thd to NULL in the Windows plugin, and use
          ha_thd() whenever possible.
          
          EQ_CURRENT_THD(thd): New predicate, for use in assertions.
          
          innobase_drop_database(): Tolerate current_thd == NULL, so that the
          Windows plugin will work.  In the Windows plugin, it will be
          impossible to skip foreign key checks in this function.  However,
          DROP DATABASE will drop each table (that MySQL knows about) individually
          before calling this function.  Thus, the foreign key checks can be disabled
          also in the Windows plugin, unless some .frm files are missing.
        ------------------------------------------------------------
        revno: 0.3.1219
        committer: marko
        timestamp: Thu 2008-09-18 12:31:17 +0000
        message:
          branches/zip: When creating an index in innodb_strict_mode, check that
          the maximum record size will never exceed the B-tree page size limit.
          For uncompressed tables, there should always be enough space for two
          records in an empty B-tree page.  For compressed tables, there should
          be enough space for storing two node pointer records or one data
          record in an empty page in uncompressed format.
          
          dict_build_table_def_step(): Remove the inaccurate check for table row
          size.
          
          dict_index_too_big_for_tree(): New function: check if the index
          records would be too big for a B-tree page.
          
          dict_index_add_to_cache(): Add the parameter "strict".  Invoke
          dict_index_too_big_for_tree() if it is set.
          
          trx_is_strict(), thd_is_strict(): New functions, for determining if
          innodb_strict_mode is enabled for the current transaction.
          
          dict_create_index_step(): Pass the new parameter strict of
          dict_index_add_to_cache() as trx_is_strict(trx).  All other callers
          pass it as FALSE.
          
          innodb.test: Enable innodb_strict_mode before attempting to create a
          table with a too big record size.
          
          innodb-zip.test: Remove the test of inserting random data.  Add tests
          for checking that the maximum record lengths are enforced at table
          creation time.
        ------------------------------------------------------------
        revno: 0.3.1218
        committer: marko
        timestamp: Thu 2008-09-18 06:10:49 +0000
        message:
          branches/zip: btr_cur_del_unmark_for_ibuf(): Correct the function comment.
        ------------------------------------------------------------
        revno: 0.3.1217
        committer: marko
        timestamp: Thu 2008-09-18 06:10:12 +0000
        message:
          branches/zip: Apply some white-space changes from branches/innodb+.
        ------------------------------------------------------------
        revno: 0.3.1216
        committer: marko
        timestamp: Thu 2008-09-18 06:07:42 +0000
        message:
          branches/zip: ChangeLog: Remove reference to Mantis.  This file is for the
          general public, and Mantis is for our internal use only.
          
          Thanks to Vasil for pointing this out.
        ------------------------------------------------------------
        revno: 0.3.1215
        committer: marko
        timestamp: Wed 2008-09-17 10:54:28 +0000
        message:
          branches/zip: Merge r2617:r2630 from branches/5.1:
          
          bug#39483 InnoDB hang on adaptive hash because of out of order ::open()
          call by MySQL
          
          Forward port of r2629
          
          Under some conditions MySQL calls ::open with search_latch leading
          to a deadlock as we try to acquire dict_sys->mutex inside ::open
          breaking the latching order. The fix is to release search_latch.
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1214
        committer: marko
        timestamp: Wed 2008-09-17 10:07:36 +0000
        message:
          branches/zip: innobase_convert_from_id(), innobase_convert_from_table_id():
          Add the parameter struct charset_info_st* cs, so that the call
          thd_charset(current_thd) can be avoided.  The macro current_thd has no
          defined value in the Windows plugin.
        ------------------------------------------------------------
        revno: 0.3.1213
        committer: marko
        timestamp: Wed 2008-09-17 10:03:43 +0000
        message:
          branches/zip: Non-functional change: Move the declarations of the
          functions innobase_convert_from_table_id(), innobase_convert_from_id(),
          innobase_casedn_str(), and innobase_get_charset() to ha_prototypes.h.
        ------------------------------------------------------------
        revno: 0.3.1212
        committer: marko
        timestamp: Wed 2008-09-17 09:50:28 +0000
        message:
          branches/zip: HASH_INSERT: Add a type conversion that is needed to keep
          the Microsoft Visual C compiler happy.  This fix was from Calvin.
        ------------------------------------------------------------
        revno: 0.3.1211
        committer: marko
        timestamp: Wed 2008-09-17 08:48:32 +0000
        message:
          branches/zip: Add the ChangeLog entry for r2631.
        ------------------------------------------------------------
        revno: 0.3.1210
        committer: marko
        timestamp: Wed 2008-09-17 08:12:03 +0000
        message:
          branches/zip: Add some tests for innodb_strict_mode.
          
          ha_innodb.cc: Declare strict_mode as PLUGIN_VAR_OPCMDARG, because we
          do want to be able to disable innodb_strict_mode.  This is a non-functional
          change, because PLUGIN_VAR_NOCMDARG seems to accept an argument as well.
          
          innodb-zip.test: Do not store innodb_strict_mode.  It is a session variable.
          Add a test case for innodb_strict_mode=off.
        ------------------------------------------------------------
        revno: 0.3.1209
        committer: marko
        timestamp: Wed 2008-09-17 06:23:52 +0000
        message:
          branches/zip: Prevent infinite B-tree page splits by ensuring that
          there will always be enough space for two node pointer records in an
          empty B-tree page.  This was reported as Mantis issue #73.
          
          page_zip_rec_needs_ext(): Add the parameter n_fields, for accurate
          estimation of the compressed size of the data dictionary information.
          Given that this function is only invoked for records on leaf pages,
          require that there be enough space for one record in the compressed
          page.  We check elsewhere that there will be enough room for two node
          pointer records on higher-level pages.
          
          btr_cur_optimistic_insert(): Ensure that there will be enough room for
          two node pointer records on an empty non-leaf page.  The rule for
          leaf-page records will be enforced by the callers of
          page_zip_rec_needs_ext().
          
          btr_cur_pessimistic_insert(): Remove the insufficient check that the
          leaf page record should be compressible by itself.  Instead, now we
          require that two node pointer records fit on a non-leaf page, and one
          record will fit in uncompressed form on the leaf page.
          
          page_zip_write_header(), page_zip_write_rec(): Re-enable the debug
          assertions that were violated by the insufficient check in
          btr_cur_pessimistic_insert().
          
          innodb_bug36172.test: Use a larger compressed page size.
        ------------------------------------------------------------
        revno: 0.3.1208
        committer: marko
        timestamp: Tue 2008-09-16 13:16:36 +0000
        message:
          branches/zip: Minor cleanup.
          
          btr_search_drop_page_hash_index(): Add const qualifiers to the local
          variables page, rec, and index, to ensure that they are not modified
          by this function.
          
          page_get_infimum_offset(), page_get_supremum_offset(): New functions.
          
          page_get_infimum_rec(), page_get_supremum_rec(): Replaced by
          const-preserving macros that invoke the accessor functions.
        ------------------------------------------------------------
        revno: 0.3.1207
        committer: marko
        timestamp: Tue 2008-09-16 13:12:52 +0000
        message:
          branches/zip: btr0btr.c: Add more UNIV_BTR_DEBUG checks.  This should
          help in tracking down issue #63 (memory corruption).  UNIV_BTR_DEBUG
          is currently enabled in univ.i.
          
          btr_root_fseg_validate(): New function, for validating a file segment
          header on a B-tree root page.
          
          btr_root_block_get(), btr_free_but_not_root(),
          btr_root_raise_and_insert(), btr_discard_only_page_on_level():
          Check PAGE_BTR_SEG_LEAF and PAGE_BTR_SEG_TOP on the root page with
          btr_root_fseg_validate().
          
          btr_root_raise_and_insert(): Move the assertion
          dict_index_get_page(index) == page_get_page_no(root)
          inside UNIV_BTR_DEBUG.  It was previously enabled by UNIV_DEBUG.
          
          btr_free_root(): Check PAGE_BTR_SEG_TOP on the root page with
          btr_root_fseg_validate().
        ------------------------------------------------------------
        revno: 0.3.1206
        committer: vasil
        timestamp: Mon 2008-09-15 10:40:44 +0000
        message:
          branches/zip:
          
          Add a test case to check that mysqld does not crash when running ANALYZE TABLE
          with different values for innodb_stats_sample_pages.
          
          Suggested by: Marko
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1205
        committer: vasil
        timestamp: Mon 2008-09-15 10:39:13 +0000
        message:
          branches/zip:
          
          Limit the number of the pages that are sampled so it is never greater
          than the total number of pages in the index.
          
          The parameter that specifies the number of pages to test is global for
          all tables. By limiting it this way we allow the user to set it "high"
          to suit "large" tables and to avoid unnecessary work for "small" tables
          (e.g. doing 100 dives in a table that has 5 pages, obviously testing
          some pages more than once).
          
          Suggested by: Ken
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1204
        committer: inaam
        timestamp: Sat 2008-09-13 11:44:14 +0000
        message:
          branches/zip
          
          Add missing semicolon. Introduced in r2602 which was obviously not
          compiled with UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.1203
        committer: vasil
        timestamp: Fri 2008-09-12 12:02:03 +0000
        message:
          branches/zip:
          
          Update the ChangeLog which has not been updated for a long time, phew!
        ------------------------------------------------------------
        revno: 0.3.1202
        committer: marko
        timestamp: Wed 2008-09-10 08:04:33 +0000
        message:
          branches/zip: btr_cur_insert_if_possible(): Correct the function comment.
        ------------------------------------------------------------
        revno: 0.3.1201
        committer: vasil
        timestamp: Tue 2008-09-09 12:00:34 +0000
        message:
          branches/zip:
          
          Merge 2605:2617 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2609 | sunny | 2008-08-24 01:19:05 +0300 (Sun, 24 Aug 2008) | 12 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/mysql-test/innodb-autoinc.result
               M /branches/5.1/mysql-test/innodb-autoinc.test
            
            branches/5.1: Fix for MySQL Bug#38839. Reset the statement level last
            value field in prebuilt. This field tracks the last value in an autoincrement
            interval. We use this value to check whether we need to update a table's
            AUTOINC counter, if the value written to a table is less than this value
            then we avoid updating the table's AUTOINC value in order to reduce
            mutex contention. If it's not reset (e.g., after a DELETE statement) then
            there is the possibility of missing updates to the table's AUTOINC counter
            resulting in a subsequent duplicate row error message under certain
            conditions (see the test case for details).
            
            Bug #38839 - auto increment does not work properly with InnoDB after update
            
            ------------------------------------------------------------------------
            r2617 | vasil | 2008-09-09 15:46:17 +0300 (Tue, 09 Sep 2008) | 47 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb.result
            
            branches/5.1:
            
            Merge a change from MySQL (fix the failing innodb test):
            
              ------------------------------------------------------------
              revno: 2646.12.1
              committer: Mattias Jonsson <mattiasj@mysql.com>
              branch nick: wl4176_2-51-bugteam
              timestamp: Mon 2008-08-11 20:02:03 +0200
              message:
                Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
                partition is corrupt
                
                The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
                PARTITION took another code path (over mysql_alter_table instead of
                mysql_admin_table) which differs in two ways:
                1) alter table opens the tables in a different way than admin tables do
                   resulting in returning with error before it tried the command
                2) alter table does not start to send any diagnostic rows to the client
                   which the lower admin functions continue to use -> resulting in
                   assertion crash
                
                The fix:
                Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
                the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
                Adding check in mysql_admin_table to setup the partition list for
                which partitions that should be used.
                
                
                Partitioned tables will still not work with
                REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
                to tables, REPAIR TABLE t USE_FRM, and check that the data still
                fulfills the partitioning function and then move the table back to
                being a partition.
                
                NOTE: I have removed the following functions from the handler
                interface:
                analyze_partitions, check_partitions, optimize_partitions,
                repair_partitions
                Since they are not longer needed.
                THIS ALTERS THE STORAGE ENGINE API
            
            I have verified that OPTIMIZE TABLE actually rebuilds the table
            and calls ANALYZE.
            
            Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1200
        committer: marko
        timestamp: Tue 2008-09-09 11:05:56 +0000
        message:
          branches/zip: ha_innobase::prepare_drop_index(): When there is a
          foreign key constraint, find a truly equivalent index for it.
          If none is available, refuse to drop the index.  MySQL can drop
          an index when creating a "stronger" index.
          
          This was reported as Mantis issue #70 and MySQL Bug #38786.
          
          innodb-index.test: Add a test case.
          
          dict_foreign_find_equiv_index(): New function, to replace the
          incorrectly written function dict_table_find_equivalent_index().
          
          dict_table_replace_index_in_foreign_list(): Simplify the implementation.
        ------------------------------------------------------------
        revno: 0.3.1199
        committer: marko
        timestamp: Thu 2008-09-04 07:47:49 +0000
        message:
          branches/zip: Write clarifying comments about the insert buffer and the
          "free" bits in the insert buffer bitmap in particular.
        ------------------------------------------------------------
        revno: 0.3.1198
        committer: marko
        timestamp: Fri 2008-08-29 09:13:16 +0000
        message:
          branches/zip: Clean up: do not assign index->id as a special case
          in fast index creation.  In r1399, we wrote undo log records about
          creating indexes.  The special undo log records were deemed
          unnecessary later, but this special handling was not removed then.
          
          row_merge_create_index(): Do not assign index->id.
          
          dict_build_index_def_step(): Unconditionally assign index->id.
        ------------------------------------------------------------
        revno: 0.3.1197
        committer: marko
        timestamp: Wed 2008-08-27 06:23:59 +0000
        message:
          branches/zip: page_zip_reorganize(): Compressed pages are always in compact
          format.  Replace dict_table_is_comp(index->table) with TRUE.
        ------------------------------------------------------------
        revno: 0.3.1196
        committer: marko
        timestamp: Fri 2008-08-22 17:30:42 +0000
        message:
          branches/zip: buf_LRU_get_free_block(): Add missing spaces to and
          correct the grammar of the warning message.
        ------------------------------------------------------------
        revno: 0.3.1195
        committer: marko
        timestamp: Thu 2008-08-21 14:59:44 +0000
        message:
          branches/zip: thd_is_select(): Add the missing UNIV_INTERN to the definition.
          This function was introduced in r2606, when merging r2603 from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1194
        committer: vasil
        timestamp: Thu 2008-08-21 14:23:46 +0000
        message:
          branches/zip:
          
          Merge 2537:2605 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2545 | vasil | 2008-07-25 17:24:23 +0300 (Fri, 25 Jul 2008) | 37 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
            
            branches/5.1:
            
            Fix Bug#38185 ha_innobase::info can hold locks even when called with HA_STATUS_NO_LOCK
            
            The fix is to call fsp_get_available_space_in_free_extents() from
            ha_innobase::info() only if HA_STATUS_NO_LOCK is not present in the flag
            *AND*
            change get_schema_tables_record() in MySQL's sql/sql_show.cc to call
            ::info() *without* HA_STATUS_NO_LOCK whenever a user issues SELECT FROM
            information_schema.tables;
            
            Without the change to sql/sql_show.cc this patch would lead to Bug#32440
            resurfacing. I.e. delete_length would never be updated in ::info() and
            will remain 0 forever, resulting in the free space not being shown
            anywhere.
            
            This is the change to sql/sql_show.cc for reference, it needs to be
            committed to the MySQL repo before or at the same time with this change
            to ha_innodb.cc:
            
             --- patch begins here ---
             --- sql/sql_show.cc.orig 2008-07-23 09:32:14.000000000 +0300
             +++ sql/sql_show.cc 2008-07-23 09:32:19.000000000 +0300
             @@ -3549,8 +3549,7 @@ static int get_schema_tables_record(THD
              
                  if(file)
                  {
             -      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO |
             -                 HA_STATUS_NO_LOCK);
             +      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO);
                    enum row_type row_type = file->get_row_type();
                    switch (row_type) {
                    case ROW_TYPE_NOT_USED:
             --- patch ends here ---
            
            Approved by: Heikki
            
            ------------------------------------------------------------------------
            r2603 | marko | 2008-08-21 16:25:05 +0300 (Thu, 21 Aug 2008) | 10 lines
            Changed paths:
               M /branches/5.1/handler/ha_innodb.cc
               M /branches/5.1/include/ha_prototypes.h
               M /branches/5.1/row/row0sel.c
            
            branches/5.1: Identify SELECT statements by thd_sql_command() == SQLCOM_SELECT
            instead of parsing the query string.  This fixes MySQL Bug #37885 without
            us having to implement lexical analysis of SQL comments in yet another place.
            
            thd_is_select(): A new predicate.
            
            row_search_for_mysql(): Use thd_is_select().
            
            Approved by Heikki.
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1193
        committer: marko
        timestamp: Thu 2008-08-21 10:56:01 +0000
        message:
          branches/zip: Minor cleanup.
          
          dict_table_get_referenced_constraint(), dict_table_get_foreign_constraint():
          Simplify the iteration loop.
          
          dict_table_find_equivalent_index(): Correct the function comment.
        ------------------------------------------------------------
        revno: 0.3.1192
        committer: marko
        timestamp: Wed 2008-08-20 11:53:11 +0000
        message:
          branches/zip: Cleanup: make dict_scan_to() a static function.
        ------------------------------------------------------------
        revno: 0.3.1191
        committer: marko
        timestamp: Mon 2008-08-18 18:28:20 +0000
        message:
          branches/zip: Introduce UNIV_LRU_DEBUG for debugging the LRU buffer pool
          cache, especially buf_pool->LRU_old and bpage->old.
          
          buf_LRU_old_adjust_len(), buf_LRU_remove_block(): Check that blocks in
          buf_pool->LRU_old have the "old" flag set and the blocks preceding
          buf_pool->LRU_old have the "old" flag clear.
          
          buf_LRU_add_block_low(), buf_relocate(): Check that buf_pool->LRU_old
          is the first block in the LRU list whose "old" flag is set.
          
          buf_LRU_free_block(): When replacing a control block in the LRU list
          with a control block for a compressed page, assert that the "old"
          flags in the neighboring LRU list entries grow monotonically.
          
          buf_page_set_old(): Assert that the "old" flags in the neighboring LRU
          list entries grow monotonically.
        ------------------------------------------------------------
        revno: 0.3.1190
        committer: marko
        timestamp: Mon 2008-08-18 18:06:33 +0000
        message:
          branches/zip: buf_page_set_old(): Add the assertion ut_ad(bpage->in_LRU_list).
          Adjust the callers where necessary:
          buf_LRU_add_block_to_end_low() and buf_LRU_add_block_low().
        ------------------------------------------------------------
        revno: 0.3.1189
        committer: marko
        timestamp: Mon 2008-08-18 06:56:52 +0000
        message:
          branches/zip: flst_write_addr(), flst_read_addr(): Assert that no
          file list link is written or read below FIL_PAGE_DATA.  This has
          helped diagnose issue#63.
        ------------------------------------------------------------
        revno: 0.3.1188
        committer: sunny
        timestamp: Sat 2008-08-09 00:53:28 +0000
        message:
          branches/zip: Fix typo in comment.
        ------------------------------------------------------------
        revno: 0.3.1187
        committer: marko
        timestamp: Fri 2008-08-08 13:01:02 +0000
        message:
          branches/zip: buf_LRU_free_block(): When buf_page_is_old(b), we incremented
          buf_pool->LRU_old_len.  However, we forgot to check if buf_pool->LRU_old
          happens to point to b's successor in the LRU list.  If it does, we must
          assign buf_pool->LRU_old = b.  The following invariants hold:
          
          In the LRU list, the "old" flag should grow monotonically, i.e., it is 0
          for the first few items and 1 from thereafter.
          
          If buf_pool->LRU_old != NULL, it must point to the first item with old=1
          in the LRU list, and there must be buf_pool->LRU_old_len old items in the list.
          
          This should fix Mantis issue#50 and issue#68.
        ------------------------------------------------------------
        revno: 0.3.1186
        committer: vasil
        timestamp: Thu 2008-08-07 13:47:44 +0000
        message:
          branches/zip:
          
          The cardinality of every index (the number of different key values) is
          calculated when the table is opened, at SHOW TABLE STATUS,
          ANALYZE TABLE and on other circumstances (like when the table has
          changed too much). Note that if the mysql client is running with the
          auto-rehash setting turned on (default) this causes all tables to be
          opened when it starts.
          
          Previously InnoDB sampled 8 random pages from the index to get an
          estimate of the cardinality. Now the number of sampled pages can be
          changed via the global parameter innodb_stats_sample_pages which can
          be tuned at runtime. The default value for this parameter is 8.
          
          If the value of this parameter is changed, there may be serious problems:
          
          - small values (say, 1) can cause an error in table stats;
          - values much larger than 8 (say, 100), can cause a big slowdown in
            table opening time, SHOW TABLE status, etc.
          - query plans may be different from the old ones.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1185
        committer: vasil
        timestamp: Thu 2008-08-07 10:59:49 +0000
        message:
          branches/zip:
          
          Fix Mantis issue#66.
          
          Do not try to dereference the MySQL thread object if it is NULL.
          
          Approved by: Sunny (via IM)
        ------------------------------------------------------------
        revno: 0.3.1184
        committer: marko
        timestamp: Wed 2008-08-06 12:45:35 +0000
        message:
          branches/zip: Correct some typos in comments.
        ------------------------------------------------------------
        revno: 0.3.1183
        committer: marko
        timestamp: Wed 2008-08-06 08:59:28 +0000
        message:
          branches/zip: Fix terminology that was introduced in r2569:
          replace rbmode and "rollback mode"
          with rb_ctx and "rollback context".
          Suggested by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1182
        committer: marko
        timestamp: Wed 2008-08-06 08:48:34 +0000
        message:
          branches/zip: In the rollback of incomplete transactions after crash
          recovery, tolerate clustered index records whose externally stored
          columns have not been written.  This should remove the assertion failures
          that were reported as Mantis issue#58, issue#62, issue#64.
          
          trx_is_recv(): New function: TRUE if this transaction is rolling back
          an incomplete transaction in crash recovery.
          
          enum trx_rbmode: Rollback modes: no rollback, normal rollback, crash recovery.
          
          btr_cur_pessimistic_delete(), btr_free_externally_stored_field(),
          btr_rec_free_externally_stored_fields():
          Replace the ibool parameter with enum trx_rbmode.
          
          btr_free_externally_stored_field(): If field_ref is zero, return
          but assert ut_a(rbmode == RB_RECOVERY).  Unless InnoDB has crashed
          while inserting a clustered index record, field_ref should not be zero.
          
          btr_rec_free_updated_extern_fields(): Add the parameter enum trx_rbmode.
          
          btr_cur_pessimistic_update(): Pass the rbmode parameter to
          btr_rec_free_updated_extern_fields().
          
          row_undo_ins(), row_undo_mod_upd_del_sec(): If row_build_index_entry()
          fails, assert trx_is_recv() and skip this secondary index.
          
          row_undo_mod_upd_del_sec(): Empty the heap at the end of each loop
          iteration in order to conserve memory and to reduce the number of
          low-level memory allocations.
        ------------------------------------------------------------
        revno: 0.3.1181
        committer: marko
        timestamp: Wed 2008-08-06 08:44:17 +0000
        message:
          branches/zip: Improve the diagnostics for tracking down issue#63 and issue#65.
          
          buf_flush_init_for_writing(), buf_LRU_block_remove_hashed_page():
          Dump the page frame featuring the incorrect FIL_PAGE_TYPE along with the
          page_zip->data that might contain an earlier version of the page.
        ------------------------------------------------------------
        revno: 0.3.1180
        committer: marko
        timestamp: Wed 2008-08-06 08:10:21 +0000
        message:
          branches/zip: Always display a newline after ut_print_buf(stderr, ...).
        ------------------------------------------------------------
        revno: 0.3.1179
        committer: marko
        timestamp: Wed 2008-08-06 06:20:05 +0000
        message:
          branches/zip: Disable two debug assertions that attempt to call
          buf_block_align() on a non-file page frame that was created in
          btr_cur_pessimistic_insert(), to see if a record fits on a compressed
          page by itself.  These assertions caused an assertion failure in
          buf_block_align() in innodb_bug36172.test.
          
          page_zip_write_rec(), page_zip_write_header(): Remove the assertion
          that calls buf_frame_get_page_zip().
        ------------------------------------------------------------
        revno: 0.3.1178
        committer: marko
        timestamp: Mon 2008-08-04 13:17:15 +0000
        message:
          branches/zip: Simplify the interface to mem0pool.c.
          
          mem_heap_create_block(): Compute len and call mem_area_alloc() only once.
          
          mem_heap_block_free(): Call mem_area_free() only once.
          
          Approved by Heikki.
        ------------------------------------------------------------
        revno: 0.3.1177
        committer: marko
        timestamp: Mon 2008-08-04 08:52:09 +0000
        message:
          branches/zip: Dump the compressed page when fil_page_get_type() returns
          an incorrect value.  This is to track down Mantis issue#63 and issue#65.
          
          buf_LRU_block_remove_hashed_page(),
          buf_flush_init_for_writing(): dump the compressed page before ut_error.
        ------------------------------------------------------------
        revno: 0.3.1176
        committer: marko
        timestamp: Mon 2008-08-04 07:09:34 +0000
        message:
          branches/zip: page_copy_rec_list_start(): Remove the bogus assertion that was
          added in r2554.  When this function is called on an empty new_block, "ret"
          will always point to the page infimum.
        ------------------------------------------------------------
        revno: 0.3.1175
        committer: marko
        timestamp: Mon 2008-08-04 06:59:39 +0000
        message:
          branches/zip: page_copy_rec_list_start(): Add the assertion
          ut_a(ret_pos > 0) that was added to page_copy_rec_list_end() in r2552,
          as suggested by Sunny in Mantis issue#52.
        ------------------------------------------------------------
        revno: 0.3.1174
        committer: vasil
        timestamp: Fri 2008-08-01 13:58:11 +0000
        message:
          branches/zip:
          
          Fix typo in comment.
        ------------------------------------------------------------
        revno: 0.3.1173
        committer: marko
        timestamp: Fri 2008-08-01 13:02:46 +0000
        message:
          branches/zip: page_copy_rec_list_end(): Add the assertion ut_a(ret_pos > 0)
          that was suggested by Sunny in Mantis issue#52.
        ------------------------------------------------------------
        revno: 0.3.1172
        committer: vasil
        timestamp: Fri 2008-08-01 08:39:37 +0000
        message:
          branches/zip:
          
          Fix typo in comment.
        ------------------------------------------------------------
        revno: 0.3.1171
        committer: inaam
        timestamp: Wed 2008-07-30 12:36:35 +0000
        message:
          branches/zip: issue#57
          
          Fixes a race in recovery where the recovery thread recovering a
          PREPARED trx and the background rollback thread can both try
          to free the trx after its status is set to COMMITTED_IN_MEMORY.
          
          trx->is_recovered flag was introduced in r2040.
          
          Reviewed by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1170
        committer: inaam
        timestamp: Tue 2008-07-29 17:06:18 +0000
        message:
          branches/zip issue# 33
          
          This fix makes two basic changes in blob handling:
          (The bug was introduced in r2252)
          
          1) The blob prefixes are no longer stored in the undo if
            a) We are modifying a delete marked record and
            b) The record was delete marked by an already committed trx.
          
          2) When building old row version to check if one of these versions
          can hold an implicit lock on the record we stop our probe if
            a) The version is delete marked and
            b) The delete marking is done by a trx which is different from
               the current active trx on the record.
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1169
        committer: sunny
        timestamp: Mon 2008-07-21 08:43:54 +0000
        message:
          branches/zip: The test for issue#36 assumed that AUTOCOMMIT=OFF. Add an
          explicit BEGIN.
        ------------------------------------------------------------
        revno: 0.3.1168
        committer: inaam
        timestamp: Tue 2008-07-15 19:28:29 +0000
        message:
          branches/zip:
          
          Fixed a mistake in r2539 where I changed UNIV_INLINE to UNIV_INTERN
          for the wrong function in btr0sea.h
        ------------------------------------------------------------
        revno: 0.3.1167
        committer: inaam
        timestamp: Tue 2008-07-15 17:38:53 +0000
        message:
          branches/zip: Merge 2524:2537 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2537 | inaam | 2008-07-15 20:46:03 +0300 (Tue, 15 Jul 2008) | 12 lines
            
            branches/5.1   issue# 4
            
            Fixed a timing hole where a thread dropping an index can free the
            in-memory index struct while another thread is still using
            that structure to remove entries from adaptive hash index belonging
            to one of the pages that belongs to the index being dropped.
            
            The fix is to have a reference counter in the index struct and to
            wait for this counter to drop to zero beforing freeing the struct.
            
            Reviewed by: Heikki
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1166
        committer: vasil
        timestamp: Fri 2008-07-04 12:53:10 +0000
        message:
          branches/zip:
          
          Fix the failing innodb-index test by adjusting the result to a new
          MySQL behavior. The author of the behavioral change
          Davi Arnaut <davi@mysql.com>, BZR-r2667:
          http://bazaar.launchpad.net/~mysql/mysql-server/mysql-5.1/revision/davi%40mysql.com-20080617141221-8yre8ys9j4uw3xx5?start_revid=joerg%40mysql.com-20080630105418-7qoe5ehomgrcdb89
          has been asked if this change is intended:
          http://lists.mysql.com/internals/35805
          
          Regardless of the answer we need to adjust to the new behavior to get
          the test to succeed. If they switch back, then we will revert this commit.
        ------------------------------------------------------------
        revno: 0.3.1165
        committer: calvin
        timestamp: Thu 2008-07-03 06:41:16 +0000
        message:
          branches/zip:
          
          Add a space in a warning message. No functional change to the code.
          The original message is "invalid innodb_file_format_checkvalue;...".
          The new one is "invalid innodb_file_format_check value;..."
        ------------------------------------------------------------
        revno: 0.3.1164
        committer: calvin
        timestamp: Thu 2008-07-03 06:34:51 +0000
        message:
          branches/zip:
          
          Fixes issue# 51 - by removing the negative test cases that produce
          warnings. The warnings cause mysql-test-run to fail.
          
          Those negative test cases will be moved to separate test/result files.
          
          Approved by:    Sunny
        ------------------------------------------------------------
        revno: 0.3.1163
        committer: vasil
        timestamp: Wed 2008-07-02 14:39:13 +0000
        message:
          branches/zip:
          
          Disable part of innodb-index test because MySQL changed its behavior and
          is not calling ::add_index() anymore in the following ALTER TABLE:
          
          CREATE TABLE t (a INT) ENGINE=INNODB;
          INSERT INTO t VALUES (NULL);
          ALTER TABLE t ADD PRIMARY KEY (a);  -- adding primary index on non-NULL column
          
          Previously, in ALTER TABLE, MySQL would call ::add_index() which would
          fail with a "primary key cannot contain NULL" error.
          
          The change occured in:
          
            mysql-5.1$ bzr log -v -r2667
            ------------------------------------------------------------
            revno: 2667
            committer: Davi Arnaut <davi@mysql.com>
            branch nick: 33873-5.1
            timestamp: Tue 2008-06-17 11:12:21 -0300
            message:
              Bug#33873: Fast ALTER TABLE doesn't work with multibyte character sets
              
              The problem was that when comparing tables for a possible
              fast alter table, the comparison was being performed using
              the parsed information and not the final definition.
                    
              The solution is to use the possible final table layout to
              compare if a fast alter is possible or not.
            modified:
              mysql-test/include/mix1.inc
              mysql-test/r/alter_table.result
              mysql-test/r/innodb_mysql.result
              mysql-test/t/alter_table.test
              sql/sql_table.cc
            mysql-5.1$
        ------------------------------------------------------------
        revno: 0.3.1162
        committer: vasil
        timestamp: Tue 2008-07-01 06:53:40 +0000
        message:
          branches/zip: Merge 2489:2524 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2519 | sunny | 2008-06-26 16:55:43 +0300 (Thu, 26 Jun 2008) | 5 lines
            
            branches/5.1: Add test cases and fix a bug where the last AUTOINC cached value
            was not reset to 0 when the table was truncated.
            
            Bug #37531 : After truncate, auto_increment behaves incorrectly for InnoDB
            
            ------------------------------------------------------------------------
            r2520 | vasil | 2008-06-26 17:38:02 +0300 (Thu, 26 Jun 2008) | 7 lines
            
            branches/5.1:
             
            Fix Bug#36941 Performance problem in ha_print_info (SHOW INNODB STATUS)
            by disabling some of the code in ha_print_info() in production builds.
             
            Approved by: Heikki (via IM)
            
            ------------------------------------------------------------------------
            r2521 | vasil | 2008-06-26 17:39:01 +0300 (Thu, 26 Jun 2008) | 8 lines
            
            branches/5.1:
             
            Fix Bug#36942 Performance problem in lock_get_n_rec_locks (SHOW INNODB STATUS)
            by not calling lock_get_n_rec_locks() from lock_print_info_summary() on
            production builds.
             
            Approved by: Heikki (via IM)
            
            ------------------------------------------------------------------------
            r2524 | vasil | 2008-07-01 10:37:34 +0300 (Tue, 01 Jul 2008) | 29 lines
            
            branches/5.1:
            
            Merge a change from MySQL (this fixes the failing innodb-replace test):
            
              revno: 2659
              committer: Mattias Jonsson <mattiasj@mysql.com>
              branch nick: b31210-51-bugteam
              timestamp: Tue 2008-06-03 13:25:41 +0200
              message:
                Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
                  
                Problem was an unclear error message since it could suggest that
                MyISAM did not support INSERT DELAYED.
                Changed the error message to say that DELAYED is not supported by the
                table, instead of the table's storage engine.
                The confusion is that a partitioned table is in somewhat sense using
                the partitioning storage engine, which in turn uses the ordinary
                storage engine. By saying that the table does not support DELAYED we
                do not give any extra informantion about the storage engine or if it
                is partitioned.
              modified:
                mysql-test/r/innodb-replace.result
                mysql-test/t/innodb-replace.test
                mysql-test/t/merge.test
                mysql-test/t/partition_hash.test
                sql/share/errmsg.txt
                sql/sql_insert.cc
          
          
          ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1161
        committer: sunny
        timestamp: Thu 2008-06-26 07:24:23 +0000
        message:
          branches/zip: Function doesn't exist, remove declaration.
        ------------------------------------------------------------
        revno: 0.3.1160
        committer: vasil
        timestamp: Thu 2008-06-19 14:24:45 +0000
        message:
          branches/zip:
           
          Rewrite the function innodb_plugin_init() to support parameters in
          different order (in static and dynamic InnoDB) and to support more
          parameters in the static InnoDB.
           
          The previous implementation traversed both lists at the same time,
          skipping parameters in the dynamic list that do not exist in the static
          list. E.g. both lists were allowed to be static=(a, b, c),
          dynamic=(a, b, c) or static=(a, b, c), dynamic=(a, b, x, c).
           
          With the new implementation they are allowed to be
          static=(a, b, c), dynamic=(b, a, c) or
          static=(a, b, x, c), dynamic=(b, a, c) in addition.
          
          The new implementation has complexity O(N^2) while the old one was O(N),
          but this is acceptable sacrifice provided that innodb_plugin_init() is
          called once per InnoDB lifetime and that N=39 currently, and N is not
          going to increase much in the future, N=number of the InnoDB parameters.
          
          Suggested by: Sunny
          Approved by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1159
        committer: vasil
        timestamp: Thu 2008-06-19 14:19:04 +0000
        message:
          branches/zip:
          
          Fix the rpl_ddl mysql-test that produces a warnings:
          
            master.err: rpl.rpl_ddl: 080611 16:27:01 [Warning] MySQL is closing a connection that has an active InnoDB transaction.  13 row modifications will roll back.
          
          the bug was introduced in r2256, which adds "prebuilt->trx->active_trans = 1;"
          in ::add_index() and ::final_drop_index() but never calls innobase_commit() or
          innobase_rollback() to set back active_trans to 0.
          
          Also, per Heikki's suggestion we remove the calls to trans_register_ha() from
          ::add_index() and ::final_drop_index(). Following is the IM discussion that
          took place about this:
          
            --- cut ---
            (17:59:05) vasil:
                    unsigned        active_trans:2; /* 1 - if a transaction in MySQL
                                                    is active. 2 - if prepare_commit_mutex
                                                    was taken */
            
            (17:59:13) vasil: what about 0?
            (17:59:26) Heikki: Hmm
            (17:59:42) Heikki: Maybe in the other cases :)
            (18:01:00) vasil:
               2   1369  handler/ha_innodb.cc <<<unknown>>>
                         if (trx->active_trans == 0) {
               3   1372  handler/ha_innodb.cc <<<unknown>>>
                         trx->active_trans = 1;
            
            (18:01:05) vasil: yes, it can be 0
            (18:01:38) Heikki: Maybe no active transaction => the value is 0
            (18:02:03) vasil: probably yes
            (18:09:09) vasil:
                    /* The flag trx->active_trans is set to 1 in
            
                    1. ::external_lock(),
                    2. ::start_stmt(),
                    3. innobase_query_caching_of_table_permitted(),
                    4. innobase_savepoint(),
                    5. ::init_table_handle_for_HANDLER(),
                    6. innobase_start_trx_and_assign_read_view(),
                    7. ::transactional_table_lock()
            
                    and it is only set to 0 in a commit or a rollback.
            (18:09:14) vasil: this is no longer true
            (18:09:35) vasil: it is also set to 1 in ::final_drop_index
            (18:09:56) vasil: and in ::add_index()
            (18:12:31) Heikki: Please correct the comment :(
            (18:13:01) vasil: it is not only the comment, I am trying to understand what's wrong
            (18:13:28) Heikki: What is the symptom?
            (18:14:37) vasil: can you find this email and the subsequent one:
            
            From: Vasil Dimov <vasil.dimov@oracle.com>
            To: InnoDB Dev <innodb_dev_ww@oracle.com>
            Subject: Re: innodb - marko - r2256 - in branches/zip: handler include lock
                    trx
            Date: Wed, 11 Jun 2008 16:33:47 +0300
            
            (18:15:02) vasil: the symptom is
            
            master.err: rpl.rpl_ddl: 080611 16:27:01 [Warning] MySQL is closing a connection that has
            +an active InnoDB transaction.  13 row modifications will roll back.
            
            (18:16:22) vasil: My understanding till now is that active_trans is set to 1 in ::add_index() and forgotten like this, never set to 0; I wonder if it should be set to 0 somewhere at the end or not set to 1 at all... or there is more...
            (18:16:31) Heikki: Vasil, ok the problem is that Marko forgets to commit the transaction
            (18:16:55) Heikki: An active transaction has to be committed or rolled back
            (18:17:09) vasil: but i can find this in ::add_index():
            
                    /* Commit the data dictionary transaction in order to release
                    the table locks on the system tables.  Unfortunately, this
                    means that if MySQL crashes while creating a new primary key
                    inside row_merge_build_indexes(), indexed_table will not be
                    dropped on crash recovery.  Thus, it will become orphaned. */
                    trx_commit_for_mysql(trx);
            
            (18:17:27) vasil: but this function does not set active_trans to 0
            (18:17:43) Heikki: Let me look
            (18:19:20) vasil: it is only set to 0 in innobase_commit() and in innobase_rollback()
            (18:20:10) Heikki: Ok
            (18:20:59) Heikki: Hmm...
            (18:21:08) vasil: innobase_commit() calls innobase_commit_low() calls trx_commit_for_mysql()
            innobase_commit() sets active_trans=0
            (18:21:26) Heikki: active_trans is strictly a ha_innodb.cc variable
            (18:21:53) Heikki: It is intended to be used in transactions visible to MySQL
            (18:22:25) Heikki: I think Marko should call innobase_commit()
            (18:23:51) vasil: but still set active_trans=1 inside :add_index() inside handler/handler0alter.cc?
            (18:24:12) Heikki: Hmm
            (18:24:56) Heikki: I think the transaction is NOT really visible to MySQL
            (18:24:57) vasil:
            > Author: marko
            > Date: 2008-01-25 16:26:07 +0200 (Fri, 25 Jan 2008)
            > New Revision: 2256
            >
            > Log:
            > branches/zip: Fast index creation: Release locks on system tables before
            > creating indexes.  Lock the user table inside the user transaction.
            >
            > enum trx_dict_op: Remove TRX_OP_INDEX_MAY_WAIT.
            >
            > ha_innobase::add_index(): Lock the user tables within prebuilt->trx.
            > Commit the data dictionary transaction before creating indexes.
            >
            > ha_innobase::final_drop_index(): Lock the user table within prebuilt->trx.
            
            (18:26:41) Heikki: Let me look at the old ::create_table()
            (18:27:25) Heikki: Ok, in the old code, the transactions are internal to InnoDB, not visible to MySQL
            (18:27:46) Heikki: I think it is an error to set active_trans=1 inside :add_index() i
            (18:28:11) Heikki: MySQL is not really interested in HOW the engine adds the index. In a transaction or not.
            (18:28:26) vasil: this is the change inside drop_index(), that is supposed to "Lock the user table within prebuilt->trx":
            (18:28:37) vasil:
            @@ -1093,27 +1101,25 @@ ha_innobase::final_drop_index(
              /* Create a background transaction for the operations on
              the data dictionary tables. */
              trx = trx_allocate_for_mysql();
              trx_start_if_not_started(trx);
             
              trans_register_ha(user_thd, FALSE, ht);
            + prebuilt->trx->active_trans = 1;
             
              trx->mysql_thd = user_thd;
              trx->mysql_query_str = thd_query(user_thd);
             
              /* Flag this transaction as a dictionary operation, so that
            - the data dictionary will be locked in crash recovery.  Prevent
            - warnings if row_merge_lock_table() results in a lock wait,
            - i.e., when another transaction is holding a conflicting lock
            - on the table, e.g., because of SELECT ... FOR UPDATE. */
            - trx_set_dict_operation(trx, TRX_DICT_OP_INDEX_MAY_WAIT);
            + the data dictionary will be locked in crash recovery. */
            + trx_set_dict_operation(trx, TRX_DICT_OP_INDEX);
             
              /* Lock the table exclusively, to ensure that no active
              transaction depends on an index that is being dropped. */
              err = convert_error_code_to_mysql(
            -  row_merge_lock_table(trx, prebuilt->table, LOCK_X),
            +  row_merge_lock_table(prebuilt->trx, prebuilt->table, LOCK_X),
               user_thd);
             
              if (UNIV_UNLIKELY(err)) {
             
               /* Unmark the indexes to be dropped. */
               row_mysql_lock_data_dictionary(trx);
            @@ -1125,14 +1131,12 @@ ha_innobase::final_drop_index(
               }
             
               row_mysql_unlock_data_dictionary(trx);
               goto func_exit;
              }
             
            - trx_set_dict_operation(trx, TRX_DICT_OP_INDEX);
            -
              /* Drop indexes marked to be dropped */
             
              row_mysql_lock_data_dictionary(trx);
             
              index = dict_table_get_first_index(prebuilt->table);
             
            @@ -1159,12 +1163,13 @@ ha_innobase::final_drop_index(
              dict_table_check_for_dup_indexes(prebuilt->table);
             #endif
              row_mysql_unlock_data_dictionary(trx);
             
             func_exit:
              trx_commit_for_mysql(trx);
            + trx_commit_for_mysql(prebuilt->trx);
             
              /* Flush the log to reduce probability that the .frm files and
              the InnoDB data dictionary get out-of-sync if the user runs
              with innodb_flush_log_at_trx_commit = 0 */
             
              log_buffer_flush_to_disk();
            
            (18:28:43) Heikki: Let me look
            (18:29:05) vasil: this is the change inside drop_index(), that is supposed to "Lock the user table within prebuilt->trx"
            (18:29:26) Heikki:   trans_register_ha(user_thd, FALSE, ht);
            + prebuilt->trx->active_trans = 1;
            (18:29:34) Heikki: I think the above code should be removed
            (18:29:53) Heikki: MySQL is not interested in InnoDB's transaction in this case
            (18:30:33) Heikki: Alternatively, we should use innobase_commit() instead of trx_commit_...
            (18:31:01) vasil: but there are many places in ::add_index() where it could return before reaching the trx_commit...
            (18:31:12) vasil: leaving active_traans=1
            (18:31:56) Heikki: Does Marko handle the errors with trx_rollback()?
            (18:32:08) vasil: let me see..
            (18:32:30) Heikki: It is risky to leave error handling to MySQL :(
            (18:32:35) vasil:
             651         if (UNIV_UNLIKELY(error)) {
             652 err_exit:
             653                 mem_heap_free(heap);
             654                 trx_general_rollback_for_mysql(trx, FALSE, NULL);
             655                 trx_free_for_mysql(trx);
             656                 trx_commit_for_mysql(prebuilt->trx);
             657                 DBUG_RETURN(error);
             658         }
            
            (18:32:43) Heikki: Ok
            (18:33:25) Heikki: Please remove the ha_register... and active_trx =1 ....
            (18:33:42) Heikki: Then check if it prints something
            (18:34:08) Heikki: I believe MySQL is not interested in how the engine does the index build
            (18:34:11) vasil: why remove ha_register?
            (18:34:28) Heikki: Because there is no transaction visible to MySQL
            (18:34:53) vasil: the ha_register call was there from before
            (18:35:09) Heikki: Registers that InnoDB takes part in an SQL statement, so that MySQL knows to
            roll back the statement if the statement results in an error. This MUST be
            called for every SQL statement that may be rolled back by MySQL. Calling this
            several times to register the same statement is allowed, too.
            (18:36:01) Heikki: Hmm
            (18:36:17) Heikki: Obviously, MySQL does NOT call commit at the end
            (18:36:36) Heikki: Because then innobase_commit() would set active_trx=0!
            (18:37:00) Heikki: Ok, maybe MySQL thinks CREATE INDEX is NOT a transactional statement
            (18:37:21) Heikki: Then, .._register_.. should be removed
            (18:37:51) Heikki: It is logical this way. If it also passes test, even better
            (18:38:21) vasil: ha_registrer in add_index() was added in r1845 and in drop_index() in r2128, let me read the comments..
            (18:38:55) vasil:
            ------------------------------------------------------------------------
            r1845 | marko | 2007-09-13 13:31:54 +0300 (Thu, 13 Sep 2007) | 3 lines
            
            branches/zip: Move the code related to fast index creation
            (smart ALTER TABLE) from ha_innodb.cc to a separate module, handler0alter.cc.
            
            (18:39:05) Heikki: One thing you must check is that MySQL does write the CREATE INDEX in the binlog, even if we remove the _register_
            (18:39:41) Heikki: I assume Marko did not know if MySQL thinks CREATE INDEX is transactional or not
            (18:39:49) Heikki: He thought it is transactional
            (18:39:53) vasil:
            ------------------------------------------------------------------------
            r2128 | marko | 2007-11-29 12:34:55 +0200 (Thu, 29 Nov 2007) | 5 lines
            
            branches/zip: ha_innobase::final_drop_index(): Allocate a separate transaction
            for dropping the index trees, and set the dictionary operation flag, similar
            to what ha_innobase::add_index() does.  This should ensure correct crash
            recovery.
            
            (18:40:10) Heikki: Ok
            (18:40:17) vasil: how do you know CREATE INDEX is not transactional?
            (18:40:33) Heikki: You cannot roll it back
            (18:40:44) vasil: ok
            (18:41:03) Heikki: MySQL devs probably thought this way
            (18:44:15) vasil: hmm
            (18:44:21) vasil: about r1845
            (18:45:00) vasil: the comments says "move the code" but it is actually "move and change the code"
            (18:45:28) Heikki: Well
            (18:45:29) vasil: the code that is deleted from ha_innodb is this:
            (18:45:32) vasil:
            -       update_thd(ha_thd());
            -
            -       heap = mem_heap_create(1024);
            -
            -       /* In case MySQL calls this in the middle of a SELECT query, release
            -       possible adaptive hash latch to avoid deadlocks of threads. */
            -       trx_search_latch_release_if_reserved(check_trx_exists(user_thd));
            -
            -       trx = trx_allocate_for_mysql();
            -       trx_start_if_not_started(trx);
            -
            -       innobase_register_stmt(ht, user_thd);
            -
            -       trx->mysql_thd = user_thd;
            
            (18:45:38) vasil: (in add_index)
            (18:45:48) inaam left the room.
            (18:45:52) vasil: but the new one in handler0alter is this:
            (18:46:16) vasil:
            +       update_thd(ha_thd());
            +
            +       heap = mem_heap_create(1024);
            +
            +       /* In case MySQL calls this in the middle of a SELECT query, release
            +       possible adaptive hash latch to avoid deadlocks of threads. */
            +       trx_search_latch_release_if_reserved(check_trx_exists(user_thd));
            +
            +       trx = trx_allocate_for_mysql();
            +       trx_start_if_not_started(trx);
            +
            +       trans_register_ha(user_thd, FALSE, ht);
            +
            +       trx->mysql_thd = user_thd;
            
            (18:46:48) vasil: innobase_register_stmt(ht, user_thd); was substituted with trans_register_ha(user_thd, FALSE, ht); during the move
            (18:46:49) Heikki: I do not see how MySQL could call it in the middle of a SELECT query!
            (18:46:59) Heikki: Yes
            (18:47:21) Heikki: Did Marko change innobase_register_stmt() code too?
            (18:48:05) vasil: not in this commit r1845
            (18:48:54) Heikki: Anyway, please test a version where you remove the register thing
            (18:49:08) vasil: and active_trans=1?
            (18:49:15) Heikki: Remove that, too
            (18:49:35) Heikki: innobase_register_stmt(
            /*===================*/
                    handlerton*     hton,   /* in: Innobase hton */
                    THD*    thd)    /* in: MySQL thd (connection) object */
            {
                    DBUG_ASSERT(hton == innodb_hton_ptr);
                    /* Register the statement */
                    trans_register_ha(thd, FALSE, hton);
            }
            
            (18:50:23) Heikki: looks pretty much the same as what Marko has in the later version
            (18:50:43) vasil: innobase_register_stmt() was added in add_index() in r1584
            (18:50:47) vasil:
            r1584 | marko | 2007-06-18 15:46:42 +0300 (Mon, 18 Jun 2007) | 12 lines
            
            branches/zip: ha_innobase::add_index(): Split some assertions.
            Remove the variable parent_trx.
            
            Call innobase_register_stmt() in order to work around a MySQL bug
            in mysql_alter_table(), which, as of
            
            ChangeSet@1.2482.61.2, 2007-06-07 16:37:15+02:00, joerg@trift2. +8 -0
            
            commits the transaction before calling ha_innobase::add_index().
            Without re-registering the statement, the ha_commit_stmt(thd)
            in mysql_alter_table() would not invoke innobase_commit.
            
            (18:51:56) Heikki: But it does not seem to invoke it now, because active_trans is left 1!
            (18:54:15) Heikki: Apparently, there has been confusion also among MySQL devs whether CREATE INDEX is transactional or not
            (18:54:45) vasil: :-(
            (18:54:53) Heikki: The most robust way is to handle all commits and rollbacks internally inside InnoDB and not tell MySQL anything about InnoDB's internal transactions
            (18:55:01) Heikki: That is my idea
            (18:55:20) Heikki: Then MySQL cannot spoil the logic of the code
            (18:55:59) vasil: mysql_alter_table() is ~1100 lines
            (18:56:08) vasil: and you suggest what?
            (18:56:43) Heikki: I suggest removing the ..._register_... thing and active_trans = 1
            (18:57:08) Heikki: Those things tell MySQL that there is a transaction going on
            (18:57:14) Heikki: Better not to tell
            (18:57:29) vasil: and possibly ignoring the above comment in r1584, "Call innobase_register_stmt() in order to work around a MySQL bug
            in mysql_alter_table()........."
            (18:57:32) vasil: ?
            (18:57:36) Heikki: Yes
            (18:57:38) vasil: ok
            (18:57:44) vasil: same for drop_index?
            (18:57:48) Heikki: Yes
            (18:58:51) vasil: testing
            Index: handler/handler0alter.cc
            ===================================================================
            --- handler/handler0alter.cc (revision 2498)
            +++ handler/handler0alter.cc (working copy)
            @@ -632,14 +632,14 @@ ha_innobase::add_index(
             
              /* Create a background transaction for the operations on
              the data dictionary tables. */
              trx = trx_allocate_for_mysql();
              trx_start_if_not_started(trx);
             
            - trans_register_ha(user_thd, FALSE, ht);
            - prebuilt->trx->active_trans = 1;
            + //trans_register_ha(user_thd, FALSE, ht);
            + //prebuilt->trx->active_trans = 1;
             
              trx->mysql_thd = user_thd;
              trx->mysql_query_str = thd_query(user_thd);
             
              innodb_table = indexed_table
               = dict_table_get(prebuilt->table->name, FALSE);
            @@ -1081,14 +1081,14 @@ ha_innobase::final_drop_index(
             
              /* Create a background transaction for the operations on
              the data dictionary tables. */
              trx = trx_allocate_for_mysql();
              trx_start_if_not_started(trx);
             
            - trans_register_ha(user_thd, FALSE, ht);
            - prebuilt->trx->active_trans = 1;
            + //trans_register_ha(user_thd, FALSE, ht);
            + //prebuilt->trx->active_trans = 1;
             
              trx->mysql_thd = user_thd;
              trx->mysql_query_str = thd_query(user_thd);
             
              /* Flag this transaction as a dictionary operation, so that
              the data dictionary will be locked in crash recovery. */
            
            (18:59:07) vasil: not warnings
            (18:59:22) Heikki: Did it create the indexes
            (18:59:36) vasil: I did test only removing active_trans=1 and it removed the warnings too
            (18:59:38) vasil: dunno
            (18:59:54) Heikki: That is the most important thing to check :)
            (19:00:10) vasil: :)
            (19:00:38) vasil: it is some mysqltest that is 610 lines
            (19:00:48) vasil: and it happens at the end
            (19:01:02) vasil: lets see how may add index statements...
            (19:01:11) vasil: 0
            (19:01:26) Heikki: Mostly I am concerned that MySQL might work wrong without that _register_ thing
            (19:03:28) vasil: could be
            (19:03:49) Heikki: You need to check it still calls ::add_index()
            (19:05:15) vasil: well, the change we made is inside ::add_index() how could it result in mysql stopping to call ::add_index()?
            (19:05:39) vasil: if it calls it twice...
            (19:05:43) Heikki: :-D
            (19:08:34) vasil: I guess it must have created the index, because the test is doing SHOW INDEX after CREATE INDEX and after DROP INDEX
            (19:08:43) vasil: the test would have failed if the index was not created
            (19:09:10) Heikki: You need to check that a query using that index will have the right EXPLAIN and result
            (19:15:04) vasil: this is with the patch:
            +CREATE TABLE t (a INT) ENGINE=innodb;
            +CREATE INDEX ti ON t(a);
            +INSERT INTO t VALUES (1), (2), (3);
            +EXPLAIN SELECT * FROM t WHERE a=2;
            +id select_type table type possible_keys key key_len ref rows Extra
            +1 SIMPLE t ref ti ti 5 const 1 Using where; Using index
            +SELECT * FROM t WHERE a=2;
            +a
            +2
            
            (19:15:15) Heikki: :)
            (19:15:46) vasil: this is with the original code:
            +CREATE TABLE t (a INT) ENGINE=innodb;
            +CREATE INDEX ti ON t(a);
            +INSERT INTO t VALUES (1), (2), (3);
            +EXPLAIN SELECT * FROM t WHERE a=2;
            +id select_type table type possible_keys key key_len ref rows Extra
            +1 SIMPLE t ref ti ti 5 const 1 Using where; Using index
            +SELECT * FROM t WHERE a=2;
            +a
            +2
            
            (19:15:59) vasil: it is the same
            (19:16:06) vasil: do you think this is sufficient?
            (19:16:20) Heikki: No, you need to do some manual tests, too
            (19:16:28) vasil: this is manual test
            (19:16:37) Heikki: Several of them
            (19:16:46) vasil: what should they do?
            (19:17:13) Heikki: Test tables of different sizes, different indexes
            (19:17:27) Heikki: CREATE several indexes at a time
            (19:19:14) Heikki: Dinner time -->
            --- cut ---
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1158
        committer: vasil
        timestamp: Thu 2008-06-19 06:59:36 +0000
        message:
          branches/zip:
          
          Add the patches that are needed to make autotest.sh succeed.
        ------------------------------------------------------------
        revno: 0.3.1157
        committer: inaam
        timestamp: Wed 2008-06-18 22:20:53 +0000
        message:
          branches/zip: fixes issue# 36
          
          Fixed the issue where an unchanged blob column that is part of the
          primary key as well is lost if it is externally stored.
          
          The fix is provided by Marko.
          
          Reviewed by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1156
        committer: inaam
        timestamp: Wed 2008-06-18 15:45:34 +0000
        message:
          branches/zip: internal mantis issue#49
          
          This is to fix an unintended side effect of file_format_check changes.
          We were reading the trx system page (TRX_SYS_PAGE_NO) before starting
          recovery and that resulted in redo logs not being applied to the page.
          The fix is to force a reread by calling buf_pool_invalidate().
          This, however, made necessary that any writes to page are deferred to
          until after the redo log application.
          
          Reviewed by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1155
        committer: sunny
        timestamp: Tue 2008-06-17 19:32:18 +0000
        message:
          branches/zip: Add a clarifying comment to the insert buffer mutex/lock
          order check in sync0sync.c.
        ------------------------------------------------------------
        revno: 0.3.1154
        committer: sunny
        timestamp: Tue 2008-06-17 19:15:37 +0000
        message:
          branches/zip: Cover the diagnostic print statement with a suitable lock. It
          caused an assertion failure during testing.
        ------------------------------------------------------------
        revno: 0.3.1153
        committer: sunny
        timestamp: Tue 2008-06-17 19:12:07 +0000
        message:
          branches/zip: A small buffer pool size (currently defined as 5M) in a
          debug build leads to deadlocks. Print a warning at startup.
          
          See issue:43
        ------------------------------------------------------------
        revno: 0.3.1152
        committer: vasil
        timestamp: Mon 2008-06-09 10:27:39 +0000
        message:
          branches/zip:
          
          Update the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1151
        committer: vasil
        timestamp: Mon 2008-06-09 10:25:09 +0000
        message:
          branches/zip: Merge 2485:2489 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2488 | vasil | 2008-06-09 13:53:12 +0300 (Mon, 09 Jun 2008) | 15 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb.result
            
            branches/5.1:
            
            Merge change from MySQL (this almost fixes the failing innodb test):
            
              ChangeSet@1.2613, 2008-05-07 09:58:21+04:00, sergefp@mysql.com +5 -0
                BUG#35850 "Performance regression in 5.1.23/5.1.24"
                - Disable the "prefer full scan on clustered primary key over full scan
                  of any secondary key" rule introduced by BUG#35850.
                - Update test results accordingly
                (bk trigger: file this for BUG#35850)
              
                mysql-test/r/innodb.result@1.214, 2008-05-07 09:57:31+04:00, sergefp@mysql.com +15 -15
                  BUG#35850 "Performance regression in 5.1.23/5.1.24"
                  - Update test results
            
            ------------------------------------------------------------------------
            r2489 | vasil | 2008-06-09 14:16:51 +0300 (Mon, 09 Jun 2008) | 20 lines
            Changed paths:
               M /branches/5.1/mysql-test/innodb.result
            
            branches/5.1:
            
            Merge change from MySQL (this fixes the failing innodb test):
            
              ChangeSet@1.2628  2008-05-13 17:01:02+05:00  gshchepa@host.loc
                Merge host.loc:/work/bugs/5.0-bugteam-30059
                into  host.loc:/work/bk/5.1-bugteam
            
            NOTE: the diff for mysql-test/r/innodb.result in this ChangeSet looks
            empty but the line:
            
            Data truncated for column 'c' at row 1
            
            is present in annotated mysql-test/r/innodb.result@1.215 [1]
            and not present in annotated mysql-test/r/innodb.result@1.216 [2] so it
            must have been deleted in the above ChangeSet.
            
            [1] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=4825e033JNz_463Ha9pwInSjqLvIQg
            [2] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=482982fcUoskWjhU2xMH2BZ4Gyukfg
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1150
        committer: vasil
        timestamp: Fri 2008-06-06 15:34:17 +0000
        message:
          branches/zip:
          
          Update the ChangeLog.
        ------------------------------------------------------------
        revno: 0.3.1149
        committer: vasil
        timestamp: Fri 2008-06-06 15:24:58 +0000
        message:
          branches/zip: Merge 2437:2485 from branches/5.1:
          
          (r2478 was skipped for the obvious reason)
          
            ------------------------------------------------------------------------
            r2464 | vasil | 2008-05-19 17:59:42 +0300 (Mon, 19 May 2008) | 9 lines
            
            branches/5.1:
            
            Fix Bug#36600 SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number
            
            by removing the Innodb_buffer_pool_pages_latched variable from
            SHOW STATUS output in non-UNIV_DEBUG compilation.
             
            Approved by: Heikki
            
            ------------------------------------------------------------------------
            r2466 | calvin | 2008-05-20 01:37:14 +0300 (Tue, 20 May 2008) | 12 lines
            
            branches/5.1:
            
            Fix Bug#11894 innodb_file_per_table crashes w/ Windows .sym symbolic
            link hack
            
            The crash was due to un-handled error 3 (path not found). In the case
            of file per table, change the call to os_file_handle_error_no_exit()
            from os_file_handle_error(). Also, checks for full path pattern during
            table create (Windows only), which is used in symbolic link and temp
            table creation.
            
            Approved by: Heikki
            ------------------------------------------------------------------------
            r2478 | sunny | 2008-05-23 08:29:08 +0300 (Fri, 23 May 2008) | 3 lines
            
            branches/5.1: Fix for bug# 36793. This is a back port from branches/zip. This
            code has been tested on a big-endian machine too.
            
            ------------------------------------------------------------------------
            r2480 | vasil | 2008-05-27 11:40:07 +0300 (Tue, 27 May 2008) | 11 lines
            
            branches/5.1:
            
            Fix Bug#36819 ut_usectime does not handle errors from gettimeofday
            
            by retrying gettimeofday() several times if it fails in ut_usectime().
            If it fails on all calls then return error to the caller to be handled
            at higher level.
            
            Update the variable innodb_row_lock_time_max in SHOW STATUS output only
            if ut_usectime() was successful.
            
            ------------------------------------------------------------------------
            r2482 | sunny | 2008-05-28 12:18:35 +0300 (Wed, 28 May 2008) | 5 lines
            
            branches/5.1: Fix for Bug#35602, "Failed to read auto-increment value from
            storage engine". The test for REPLACE was an error of ommission since it's
            classified as a simple INSERT. For REPLACE statements we don't acquire
            the special AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix.
            
            ------------------------------------------------------------------------
            r2485 | vasil | 2008-05-28 16:01:14 +0300 (Wed, 28 May 2008) | 9 lines
            
            branches/5.1:
            
            Fix Bug#36149 Read buffer overflow in srv0start.c found during "make test"
            
            Use strncmp(3) instead of memcmp(3) to avoid reading past end of the string
            if it is empty (*str == '\0'). This bug is _not_ a buffer overflow.
            
            Discussed with: Sunny (via IM)
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1148
        committer: vasil
        timestamp: Wed 2008-05-21 06:29:55 +0000
        message:
          branches/zip:
          
          Update the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1147
        committer: vasil
        timestamp: Mon 2008-05-19 08:35:38 +0000
        message:
          branches/zip:
          
          Non-functional change - conform to our coding style and make more readbale
          (hopefully) by not using variables with names "v" and "w".
        ------------------------------------------------------------
        revno: 0.3.1146
        committer: inaam
        timestamp: Sat 2008-05-17 22:31:11 +0000
        message:
          branches/zip:
          
          Fixed compilation warning introduced during POSIX AIO clean up patch.
          
          Spotted by: Sunny and Vasil
        ------------------------------------------------------------
        revno: 0.3.1145
        committer: inaam
        timestamp: Fri 2008-05-16 14:41:18 +0000
        message:
          branches/zip:
          
          Clean up the POSIX_ASYNC_IO code which is currently not used and is unlikely to be ever used.
        ------------------------------------------------------------
        revno: 0.3.1144
        committer: sunny
        timestamp: Wed 2008-05-14 04:37:24 +0000
        message:
          branches/zip: Fix bug introduced in r2453.
        ------------------------------------------------------------
        revno: 0.3.1143
        committer: sunny
        timestamp: Thu 2008-05-08 10:08:09 +0000
        message:
          branches/zip: Fix bug# 36172. The zip code changes a precondition that a
          page must be big enough to store two records, this is done because compression
          later may very well result in two records residing on the same page. This
          change handles the case where only one record fits on a page. We don't
          split the page in the middle by default if there is only record on the page.
          We only split the page if the tuple to be inserted is less than existing
          record. That way the existing record is copied over to the right page
          during the split and the new tuple is inserted to the left.
        ------------------------------------------------------------
        revno: 0.3.1142
        committer: sunny
        timestamp: Thu 2008-05-08 00:06:46 +0000
        message:
          branches/zip: Non functional change.
        ------------------------------------------------------------
        revno: 0.3.1141
        committer: vasil
        timestamp: Wed 2008-05-07 14:01:33 +0000
        message:
          branches/zip:
          
          Add a ChangeLog entry for Bug#36222
        ------------------------------------------------------------
        revno: 0.3.1140
        committer: vasil
        timestamp: Wed 2008-05-07 11:20:37 +0000
        message:
          branches/zip:
          
          Add new entries to the ChangeLog
        ------------------------------------------------------------
        revno: 0.3.1139
        committer: vasil
        timestamp: Wed 2008-05-07 11:01:18 +0000
        message:
          branches/zip:
          
          Remove too detailed entry from ChangeLog. Best to have only user-visible
          changes there.
        ------------------------------------------------------------
        revno: 0.3.1138
        committer: sunny
        timestamp: Tue 2008-05-06 22:29:53 +0000
        message:
          branches/zip: Non functional change to error message.
        ------------------------------------------------------------
        revno: 0.3.1137
        committer: calvin
        timestamp: Tue 2008-05-06 15:00:25 +0000
        message:
          branches/zip:
          
          Implement the system tablespace tagging described on the wiki:
          https://svn.innodb.com/innobase/InnoDB_version_and_feature_compatibility
          
          A brief description of the changes:
          
          * The file format tag will be saved in the trx system page, starting at
            (UNIV_PAGE_SIZE - 16) for 8 bytes.
          * The configuration parameter innodb_file_format_check is introduced.
            This variable can be set to on/off and any of the supported file
            formats in the configuration file, but can only be set to any of
            the supported file formats during runtime. The default is on.
          * During table create/open, check the current file format against
            the max in file_format_max. If the current file format is newer,
            update file_format_max and tag the system tablespace with the
            newer one in a normal mtr.
          * During startup, write the tag to the error log and check it against
            DICT_TF_FORMAT_MAX. Refuse to start with error, if
            -- DICT_TF_FORMAT_MAX < the tag, and
            -- innodb_file_format_check is ON
            Print out a warning , if
            -- DICT_TF_FORMAT_MAX < the tag, but
            -- innodb_file_format_check is off
          * The system tablespace tag is re-settable using:
            set innodb_file_format_check = <file_format>
          
          Approved by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1136
        committer: vasil
        timestamp: Tue 2008-05-06 11:10:09 +0000
        message:
          branches/zip:
           
          Add InnoDB version in these places:
           
          * In INFORMATION_SCHEMA.PLUGINS.PLUGIN_VERSION, only 1.2 out of 1.2.3
            because MySQL supports only one dot there
           
          * At startup:
            "080501 12:28:06 InnoDB Plugin 1.0.1 started; log sequence number 46509"
          
          * In a server variable innodb_version;
            mysql> select @@innodb_version;
            +------------------+
            | @@innodb_version |
            +------------------+
            | 1.0.1            |
            +------------------+
          
          Approved by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1135
        committer: vasil
        timestamp: Tue 2008-05-06 10:01:41 +0000
        message:
          branches/zip:
           
          Allow InnoDB I_S plugins to be installed when InnoDB storage engine is
          not installed but show empty tables when SELECTing from them in this
          case. Set srv_was_started to FALSE at the end of
          innobase_shutdown_for_mysql() so the I_S plugins can detect if InnoDB is
          uninstalled.
           
          This is needed to workaround the MySQL
          Bug#36399 Double free bug when INFORMATION_SCHEMA plugin init function fails
          and is more flexible as it allows I_S plugins to be installed before the
          InnoDB plugin and detects if the latter is uninstalled after this.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1134
        committer: sunny
        timestamp: Mon 2008-05-05 22:56:01 +0000
        message:
          branches/zip: Fix a bug in the sync debug code where a lock with level
          SYNC_LEVEL_VARYING would cause an assertion failure when a thread tried
          to release it. We still have to check because it's a varying lock and
          could have been added later, so if the lookup fails then we simply ignore
          it and return TRUE.
        ------------------------------------------------------------
        revno: 0.3.1133
        committer: sunny
        timestamp: Sun 2008-05-04 09:39:30 +0000
        message:
          branches/zip: Drop the tables that were created in the test.
        ------------------------------------------------------------
        revno: 0.3.1132
        committer: vasil
        timestamp: Sun 2008-05-04 07:06:59 +0000
        message:
          branches/zip:
          
          Change an error message.
          
          Suggested by: Ken
        ------------------------------------------------------------
        revno: 0.3.1131
        committer: vasil
        timestamp: Wed 2008-04-30 16:59:16 +0000
        message:
          branches/zip: Merge 2423:2437 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2429 | vasil | 2008-04-30 11:19:06 +0300 (Wed, 30 Apr 2008) | 10 lines
            
            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
            
            ------------------------------------------------------------------------
            r2430 | vasil | 2008-04-30 11:48:35 +0300 (Wed, 30 Apr 2008) | 8 lines
            
            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
            
            ------------------------------------------------------------------------
            r2431 | vasil | 2008-04-30 11:54:49 +0300 (Wed, 30 Apr 2008) | 4 lines
            
            branches/5.1:
            
            Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
            
            ------------------------------------------------------------------------
            r2432 | vasil | 2008-04-30 11:58:38 +0300 (Wed, 30 Apr 2008) | 4 lines
            
            branches/5.1:
            
            Non-functional change: use tabs for indentation in plug.in.
            
            ------------------------------------------------------------------------
            r2433 | vasil | 2008-04-30 12:02:35 +0300 (Wed, 30 Apr 2008) | 5 lines
            
            branches/5.1:
            
            Add vim modeline to hint it that plug.in is a config file
            so it can be colorized.
            
            ------------------------------------------------------------------------
            r2434 | vasil | 2008-04-30 18:45:44 +0300 (Wed, 30 Apr 2008) | 17 lines
            
            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.
            
            
            ------------------------------------------------------------------------
            r2435 | vasil | 2008-04-30 19:04:36 +0300 (Wed, 30 Apr 2008) | 10 lines
            
            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
            
            
            ------------------------------------------------------------------------
            r2436 | vasil | 2008-04-30 19:15:46 +0300 (Wed, 30 Apr 2008) | 7 lines
            
            branches/5.1:
            
            Non-functional white space change in Makefile.am:
            Use tabs for indentation and be consistent about spaces around the
            equal sign.
            
            
            ------------------------------------------------------------------------
            r2437 | vasil | 2008-04-30 20:36:11 +0300 (Wed, 30 Apr 2008) | 8 lines
            
            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
            
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1130
        committer: vasil
        timestamp: Wed 2008-04-30 07:02:16 +0000
        message:
          Rename install_dynamic.sql to install_innodb_plugins.sql
          
          Suggested by: Ken
        ------------------------------------------------------------
        revno: 0.3.1129
        committer: vasil
        timestamp: Wed 2008-04-30 06:31:25 +0000
        message:
          Add SQL script to install InnoDB if it is built as a dynamic plugin
          
          Suggested by: Ken
        ------------------------------------------------------------
        revno: 0.3.1128
        committer: vasil
        timestamp: Wed 2008-04-30 06:24:23 +0000
        message:
          Remove README from branches/zip. This file is added by
          https://svn.innodb.com/svn/plugin/trunk/build/source_release.sh
          which takes it from
          https://svn.innodb.com/svn/plugin/trunk/support/README-source
        ------------------------------------------------------------
        revno: 0.3.1127
        committer: vasil
        timestamp: Wed 2008-04-30 06:20:52 +0000
        message:
          Add ChangeLog.
          
          Formatted in compliance with many GNU tools, roughly described in
          http://www.gnu.org/software/guile/changelogs/guile-changelogs_toc.html
        ------------------------------------------------------------
        revno: 0.3.1126
        committer: vasil
        timestamp: Wed 2008-04-30 05:42:56 +0000
        message:
          branches/zip: Merge 2384:2423 from branches/5.1:
          
            ------------------------------------------------------------------------
            r2386 | vasil | 2008-03-27 07:45:02 +0200 (Thu, 27 Mar 2008) | 22 lines
            
            branches/5.1:
            
            Merge change from MySQL (this fixes the failing innodb test):
            
            ChangeSet@1.1810.3601.4, 2008-02-07 02:33:21+04:00, gshchepa@host.loc +9 -0
              Fixed bug#30059.
              Server handles truncation for assignment of too-long values
              into CHAR/VARCHAR/TEXT columns in a different ways when the
              truncated characters are spaces:
              1. CHAR(N) columns silently ignore end-space truncation;
              2. TEXT columns post a truncation warning/error in the
                 non-strict/strict mode.
              3. VARCHAR columns always post a truncation note in
                 any mode.
            
              Space truncation processing has been synchronised over
              CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR
              columns has been propagated as standard.
            
              Binary-encoded string/BLOB columns are not affected.
            
            
            ------------------------------------------------------------------------
            r2387 | vasil | 2008-03-27 08:49:05 +0200 (Thu, 27 Mar 2008) | 8 lines
            
            branches/5.1:
            
            Check whether *trx->mysql_query_str is != NULL in addition to
            trx->mysql_query_str. This adds more safety.
            
            This may or may not fix Bug#35226 RBR event crashes slave.
            
            
            ------------------------------------------------------------------------
            r2388 | vasil | 2008-03-27 14:02:34 +0200 (Thu, 27 Mar 2008) | 7 lines
            
            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
            
            ------------------------------------------------------------------------
            r2419 | vasil | 2008-04-23 19:08:06 +0300 (Wed, 23 Apr 2008) | 9 lines
            
            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
            
            
            ------------------------------------------------------------------------
            r2420 | calvin | 2008-04-24 15:25:30 +0300 (Thu, 24 Apr 2008) | 4 lines
            
            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.
            ------------------------------------------------------------------------
            r2421 | calvin | 2008-04-24 15:32:30 +0300 (Thu, 24 Apr 2008) | 6 lines
            
            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().
            
            ------------------------------------------------------------------------
            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
            
            ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 0.3.1125
        committer: vasil
        timestamp: Tue 2008-04-29 14:57:06 +0000
        message:
          branches/zip:
           
          Fix Mantis issue#34 https://svn.innodb.com/mantis/view.php?id=34
          "I_S plugins should refuse to load if the storage engine plugin is not loaded"
          and MySQL Bug#36310 http://bugs.mysql.com/36310
          "InnoDB plugin crash"
          
          * Make srv_was_started public
          * Set srv_was_started at the end of innobase_start_or_create_for_mysql()
            so it is not set to TRUE if innodb encounters some startup error
          * Refuse to start any of the I_S plugins if srv_was_started is not TRUE
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1124
        committer: vasil
        timestamp: Wed 2008-04-23 05:45:19 +0000
        message:
          branches/zip:
          
          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
        ------------------------------------------------------------
        revno: 0.3.1123
        committer: sunny
        timestamp: Sat 2008-04-12 10:04:28 +0000
        message:
          branches/zip: The block can't be in io fix state WRITE and we check for
          that in the fix but the earlier check fails because it tries to be too
          strict and assumes that if the block is on the clean list then it can
          only be in state io fix NONE.
        ------------------------------------------------------------
        revno: 0.3.1122
        committer: sunny
        timestamp: Fri 2008-04-11 09:58:17 +0000
        message:
          branches/zip: Remove spaces and fix an uninitialized variable compiler warning.
        ------------------------------------------------------------
        revno: 0.3.1121
        committer: vasil
        timestamp: Fri 2008-04-11 06:51:16 +0000
        message:
          Remove the aux build script as they are now in the plugin/ repo.
        ------------------------------------------------------------
        revno: 0.3.1120
        committer: vasil
        timestamp: Fri 2008-04-11 06:42:35 +0000
        message:
          Sync with the latest changes.
        ------------------------------------------------------------
        revno: 0.3.1119
        committer: calvin
        timestamp: Thu 2008-04-10 11:02:16 +0000
        message:
          branches/zip: Implementation of using animal names for innodb_file_format,
          described in Mantis#30. Specifically:
          
          - Allow innodb_file_format to take string arguments
          - Make innodb_file_format system variable a string instead of a number
          - Implement the callback functions
          - Update warning messages
          
          Three new functions are implemented:
          
          file_format_name_lookup(): Validate the file format name and return
          its corresponding id.
          
          innodb_file_format_check(): Check if it is a valid file format. This
          function is registered as a callback with MySQL.
          
          innodb_file_format_update(): Update the global variable using the
          "saved" value. This functions is registered as a callback with MySQL.
        ------------------------------------------------------------
        revno: 0.3.1118
        committer: sunny
        timestamp: Thu 2008-04-10 08:51:26 +0000
        message:
          branches/zip: Handle rename of variables. If the statically linked in engine
          has a config variable that has since been renamed, we use a mapping table
          to check for matches.
        ------------------------------------------------------------
        revno: 0.3.1117
        committer: vasil
        timestamp: Wed 2008-04-09 13:39:33 +0000
        message:
          Sync the comment with the actual name of the source archive.
        ------------------------------------------------------------
        revno: 0.3.1116
        committer: sunny
        timestamp: Wed 2008-04-09 09:24:04 +0000
        message:
          branches/zip: Add an additional target architecture parameter to
          make_binary_release.sh which is passed to dynconfig. If the target
          architecture is i[3456]86 then we disable the --with-pic flag.
        ------------------------------------------------------------
        revno: 0.3.1115
        committer: inaam
        timestamp: Wed 2008-04-09 04:25:35 +0000
        message:
          branches/zip:
          
          Introduced a new session level config param innodb_strict_mode.
          If it is set we do extra checking at time of table creation
          and fail if any invalid combination of KEY_BLOCK_SIZE
          or ROW_FORMAT is specified.
          
          Reviewed by: Sunny
        ------------------------------------------------------------
        revno: 0.3.1114
        committer: vasil
        timestamp: Mon 2008-04-07 07:14:23 +0000
        message:
          Do not calculate MD5 sums of the archives. Not necessary in this simple script.
          Keep it simple.
        ------------------------------------------------------------
        revno: 0.3.1113
        committer: vasil
        timestamp: Mon 2008-04-07 07:12:48 +0000
        message:
          Put InnoDB version before MySQL version in the name of the archive.
        ------------------------------------------------------------
        revno: 0.3.1112
        committer: vasil
        timestamp: Fri 2008-04-04 11:32:41 +0000
        message:
          Hack the autotools' files so users can compile without having autotools installed.
        ------------------------------------------------------------
        revno: 0.3.1111
        committer: vasil
        timestamp: Fri 2008-04-04 07:04:21 +0000
        message:
          branches/zip:
          
          Reflect the rename of build-plugin.sh.
        ------------------------------------------------------------
        revno: 0.3.1110
        committer: vasil
        timestamp: Fri 2008-04-04 07:03:05 +0000
        message:
          branches/zip:
          
          Rename build-plugin.sh to make_binary_release.sh.
        ------------------------------------------------------------
        revno: 0.3.1109
        committer: vasil
        timestamp: Fri 2008-04-04 07:01:43 +0000
        message:
          branches/zip:
          
          Add an aux script for preparing the source archives of the plugin that we
          are going to ship.
        ------------------------------------------------------------
        revno: 0.3.1108
        committer: vasil
        timestamp: Fri 2008-04-04 06:59:48 +0000
        message:
          branches/zip:
          
          Add a README file containing simple instructions how to build
          the plugin from source.
        ------------------------------------------------------------
        revno: 0.3.1107
        committer: marko
        timestamp: Fri 2008-03-28 10:51:11 +0000
        message:
          branches/zip: i_s_cmpmem_fill_low(): Do not reset all buddy allocator
          statistics, but only the cumulated count and duration of relocation
          operations.
        ------------------------------------------------------------
        revno: 0.3.1106
        committer: marko
        timestamp: Fri 2008-03-28 10:37:40 +0000
        message:
          branches/zip: Minor change to the formatting of integer fields
          in INFORMATION_SCHEMA.INNODB_CMP*.
          
          i_s_cmp_fields_info, i_s_cmpmem_fields_info: Define the field lengths
          as MY_INT32_NUM_DECIMAL_DIGITS or MY_INT64_NUM_DECIMAL_DIGITS.
          
          i_s_cmpmem_fields_info: Define "relocation_ops" as MYSQL_TYPE_LONGLONG.
        ------------------------------------------------------------
        revno: 0.3.1105
        committer: marko
        timestamp: Fri 2008-03-28 10:31:24 +0000
        message:
          branches/zip: Rename the compression-related INFORMATION_SCHEMA tables
          and columns as suggested by Ken.
          
          INNODB_COMPRESSION, INNODB_COMPRESSION_RESET:
          Rename to INNODB_CMP, INNODB_CMP_RESET, with the following columns:
          page_size
          compress_ops
          compress_ops_ok
          compress_time
          uncompress_ops
          uncompress_time
          
          INNODB_COMPRESSION_BUDDY, INNODB_COMPRESSION_BUDDY_RESET:
          Rename to INNODB_CMPMEM, INNODB_CMPMEM_RESET, with the following columns:
          page_size
          pages_used
          pages_free
          relocation_ops
          relocation_time
        ------------------------------------------------------------
        revno: 0.3.1104
        committer: marko
        timestamp: Fri 2008-03-28 10:03:58 +0000
        message:
          branches/zip: Implement the INFORMATION_SCHEMA tables
          INNODB_COMPRESSION_BUDDY and INNODB_COMPRESSION_BUDDY_RESET.
          
          buf_buddy_stat_struct, buf_buddy_stat_t, buf_buddy_stat[]:
          Statistics of the buddy system grouped by block size.
          
          i_s_innodb_compression_buddy, i_s_innodb_compression_buddy_reset:
          New INFORMATION_SCHEMA plugins.
          
          i_s_compression_buddy_fields_info[]: Define the fields:
          size, used, free, relocated, relocated_sec.
          
          i_s_compression_buddy_fill_low(), i_s_compression_buddy_fill(),
          i_s_compression_buddy_reset_fill(): Fill the fields.
          
          i_s_compression_buddy_init(), i_s_compression_buddy_reset_init():
          Initialize the tables.
        ------------------------------------------------------------
        revno: 0.3.1103
        committer: marko
        timestamp: Fri 2008-03-28 09:59:07 +0000
        message:
          branches/zip: Correct minor mistakes made in r2390.
          
          i_s_compression_fill_low(): Do not acquire or release the buffer pool
          mutex.  The page_zip_stat[] is not protected by any mutex.
          
          i_s_innodb_compression, i_s_innodb_compression_reset: Change the
          description to say "compression" instead of "compressed buffer pool".
        ------------------------------------------------------------
        revno: 0.3.1102
        committer: marko
        timestamp: Fri 2008-03-28 09:28:54 +0000
        message:
          branches/zip: Rename the INFORMATION_SCHEMA tables
          INNODB_ZIP and INNODB_ZIP_RESET to
          INNODB_COMPRESSION and INNODB_COMPRESSION_RESET,
          and remove the statistics of the buddy system.
          
          This change was discussed with Ken.  It makes the tables shorter
          and easier to understand.  The removed data will be represented in
          the tables INNODB_COMPRESSION_BUDDY and INNODB_COMPRESSION_BUDDY_RESET
          that will be added later.
          
          i_s_innodb_zip, i_s_innodb_zip_reset, i_s_zip_fields_info[],
          i_s_zip_fill_low(), i_s_zip_fill(), i_s_zip_reset_fill(),
          i_s_zip_init(), i_s_zip_reset_init(): Replace "zip" with "compression".
          
          i_s_compression_fields_info[]: Remove "used", "free",
          "relocated", "relocated_usec".  In "compressed_usec" and "decompressed_usec",
          replace microseconds with seconds ("usec" with "sec").
          
          page_zip_decompress(): Correct a typo in the function comment.
          
          PAGE_ZIP_SSIZE_BITS, PAGE_ZIP_NUM_SSIZE: New constants.
          
          page_zip_stat_t, page_zip_stat: Statistics of the compression, grouped
          by page size.
          
          page_zip_simple_validate(): Assert that page_zip->ssize is reasonable.
        ------------------------------------------------------------
        revno: 0.3.1101
        committer: vasil
        timestamp: Thu 2008-03-27 18:55:45 +0000
        message:
          branches/zip:
          
          Add the prototype of check_global_access() if MySQL version is less than
          5.1.24 to make zip compile with 5.1.23. This was removed when MySQL added
          the prototype in their code in 5.1.24 but we still need zip to compile with
          older versions.
        ------------------------------------------------------------
        revno: 0.3.1100
        committer: marko
        timestamp: Wed 2008-03-26 17:14:00 +0000
        message:
          branches/zip: Merge 2367:2384 from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1099
        committer: marko
        timestamp: Wed 2008-03-19 08:47:24 +0000
        message:
          branches/zip: Remove innodb.patch.
          
          This patch tries to enable resizeable buffer pool by polling the configuration
          parameter for the buffer pool size, which is not a good solution.  The
          right way could be to have an update function callback of a settable
          MySQL variable to send an event to the master thread.
          
          It could also make sense to expose the buffer pool chunks to the user.
          The first chunk would never be freed.  Other chunks than the first one
          would only be used for allocating page frames (uncompressed or compressed)
          and block descriptors of of compressed pages (buf_page_t).  That is, other
          users of the buffer pool, such as mem_heap_create_block() and the lock
          table, would be restricted to the first chunk.  This would allow other
          chunks to be freed by simply flushing any dirty blocks that they contain.
          
          It might also be worthwhile to create multiple chunks initially, based on
          the initial buffer pool size and the HugeTLB page size.  In that way, the
          buffer pool could be reduced from the initial configuration at runtime.
        ------------------------------------------------------------
        revno: 0.3.1098
        committer: marko
        timestamp: Tue 2008-03-18 10:10:51 +0000
        message:
          branches/zip: Pass the tablespace flags correctly when creating or opening
          single-table tablespaces.  This bug was reported by Sunny as Mantis issue #26.
          
          fil_space_create(), fil_create_new_single_table_tablespace(),
          fil_open_single_table_tablespace(), fsp_header_init_fields():
          Add ut_a(flags != DICT_TF_COMPACT).
          
          dict_build_table_def_step(), row_import_tablespace_for_mysql(),
          row_truncate_table_for_mysql(): Pass correct flags to
          fil_create_new_single_table_tablespace() or fil_open_single_table_tablespace().
        ------------------------------------------------------------
        revno: 0.3.1097
        committer: marko
        timestamp: Tue 2008-03-18 10:03:51 +0000
        message:
          branches/zip: dict_load_table(): Remove a redundant check for !flags.
          The function dict_sys_tables_get_flags() already ensures that the
          table flags are 0 unless ROW_FORMAT=COMPACT.
        ------------------------------------------------------------
        revno: 0.3.1096
        committer: marko
        timestamp: Mon 2008-03-17 14:19:04 +0000
        message:
          branches/zip: Rename ib_ulonglong to ib_uint64_t and ib_longlong to ib_int64_t.
        ------------------------------------------------------------
        revno: 0.3.1095
        committer: marko
        timestamp: Mon 2008-03-17 14:09:44 +0000
        message:
          branches/zip: Merge 2295:2367 from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1094
        committer: marko
        timestamp: Mon 2008-03-17 14:07:11 +0000
        message:
          branches/zip: innodb-zip.result: Adjust to the change made in r2368.
        ------------------------------------------------------------
        revno: 0.3.1093
        committer: marko
        timestamp: Mon 2008-03-17 11:30:23 +0000
        message:
          branches/zip: innodb-zip.test: Add a test for inserting a record that
          does not fit by itself on the compressed page.
        ------------------------------------------------------------
        revno: 0.3.1092
        committer: marko
        timestamp: Mon 2008-03-17 11:28:17 +0000
        message:
          branches/zip: Always translate DB_TOO_BIG_RECORD into
          my_error(ER_TOO_BIG_ROWSIZE, ...).  Otherwise, MySQL can report
          "Got error 139 from storage engine" instead of the appropriate
          error message.
          
          ha_innobase::index_read(), ha_innobase::general_fetch():
          Replace if-else if-else with switch-case.
          Pass table->flags to convert_error_code_to_mysql().
          
          innodb_check_for_record_too_big_error().  Remove.  This code belongs to
          convert_error_code_to_mysql().
          
          convert_error_code_to_mysql(): Add the parameter "flags", for table flags.
          Translate DB_TOO_BIG_RECORD into ER_TOO_BIG_ROWSIZE.
          
          create_index(): Add the parameter "flags".
          
          create_clustered_index_when_no_primary(): Replace the parameter "comp"
          with "flags".
          
          innobase_drop_database(): Remove the #ifdef'd-out call to
          convert_error_code_to_mysql().
        ------------------------------------------------------------
        revno: 0.3.1091
        committer: marko
        timestamp: Mon 2008-03-17 11:22:52 +0000
        message:
          branches/zip: ha_innobase::create(): Say innodb_row_format=1 instead of
          innodb_row_format>0.
        ------------------------------------------------------------
        revno: 0.3.1090
        committer: marko
        timestamp: Fri 2008-03-14 11:07:39 +0000
        message:
          branches/zip: innodb-zip.test: Add tests for warnings about
          ROW_FORMAT=COMPRESSED when neither innodb_file_per_table nor
          innodb_file_format are set.
        ------------------------------------------------------------
        revno: 0.3.1089
        committer: marko
        timestamp: Thu 2008-03-13 17:25:53 +0000
        message:
          branches/zip: Implement ROW_FORMAT=COMPRESSED and ROW_FORMAT=DYNAMIC.
          Throw warnings, not errors for wrong ROW_FORMAT or KEY_BLOCK_SIZE,
          so that any table dump can be loaded.
          
          As of this change, InnoDB supports the following table formats:
          
          ROW_FORMAT=REDUNDANT
           the only format before MySQL/InnoDB 5.0.3
          ROW_FORMAT=COMPACT
           the new default format of MySQL/InnoDB 5.0.3
          ROW_FORMAT=DYNAMIC
           uncompressed, no prefix in the clustered index record for BLOBs
          ROW_FORMAT=COMPRESSED
           like ROW_FORMAT=DYNAMIC, but zlib compressed B-trees and BLOBs;
           the compressed page size is specified by KEY_BLOCK_SIZE in
           kilobytes (1, 2, 4, 8, or 16; default 8)
          
          KEY_BLOCK_SIZE=1, 2, 4, 8, or 16: implies ROW_FORMAT=COMPRESSED;
          ignored if ROW_FORMAT is not COMPRESSED
          
          KEY_BLOCK_SIZE=anything else: ignored
          
          The InnoDB row format is displayed in the 4th column (Row_format) of
          the output of SHOW TABLE STATUS.  The Create_options column may show
          ROW_FORMAT= and KEY_BLOCK_SIZE=, but they do not necessarily have
          anything to do with InnoDB.
          
          The table format can also be queried like this:
          
          SELECT table_schema, table_name, row_format
          FROM information_schema.tables
          WHERE engine='innodb' and row_format in ('Compressed','Dynamic');
          
          When Row_format='Compressed', KEY_BLOCK_SIZE should usually correspond
          to the compressed page size.  But the .frm file could be manipulated
          to show any KEY_BLOCK_SIZE.
          
          For some reason, INFORMATION_SCHEMA.TABLES.CREATE_OPTIONS does not
          include KEY_BLOCK_SIZE.  It does include row_format (spelled in
          lowercase).  This looks like a MySQL bug, because the table
          INFORMATION_SCHEMA.TABLES probably tries to replace SHOW TABLE STATUS.
          I reported this as Bug #35275 <http://bugs.mysql.com/35275>.
          
          ha_innobase::get_row_type(): Add ROW_TYPE_COMPRESSED, ROW_TYPE_DYNAMIC.
          
          ha_innobase::create(): Implement ROW_FORMAT=COMPRESSED and
          ROW_FORMAT=DYNAMIC.  Do not throw errors for wrong ROW_FORMAT or
          KEY_BLOCK_SIZE, but issue warnings instead.
          
          ha_innobase::check_if_incompatible_data(): Return COMPATIBLE_DATA_NO
          if KEY_BLOCK_SIZE has been specified.
          
          innodb.result: Adjust the result for the warning issued for ROW_FORMAT=FIXED.
          
          innodb-zip.test: Add tests.  Query INFORMATION_SCHEMA.TABLES for ROW_FORMAT.
        ------------------------------------------------------------
        revno: 0.3.1088
        committer: marko
        timestamp: Thu 2008-03-13 13:26:23 +0000
        message:
          branches/zip: row_upd_index_replace_new_col_val(): Fix the function
          parameters that were somehow wrong in r2363.
        ------------------------------------------------------------
        revno: 0.3.1087
        committer: marko
        timestamp: Thu 2008-03-13 12:49:34 +0000
        message:
          branches/zip: Fix a bug in the retrieval of old versions of records containing
          externally stored columns.
          
          innodb-zip.test: Correct the test case.  Without the fixes, the test
          would fail, because the BLOB would be prepended with a 768-byte prefix
          of the data.
          
          row_upd_index_replace_new_col_vals_index_pos(),
          row_upd_index_replace_new_col_vals(): Use only one "heap"
          parameter that must be non-NULL.  When fetching externally
          stored columns, use upd_field_t::orig_len.
          
          upd_get_field_by_field_no(): New accessor function, for retrieving
          an field from an update vector by field_no.
          
          row_upd_index_replace_new_col_val(): New function, for replacing the
          value from an update vector.  This used to be duplicated code in
          row_upd_index_replace_new_col_vals_index_pos() and
          row_upd_index_replace_new_col_vals().
        ------------------------------------------------------------
        revno: 0.3.1086
        committer: marko
        timestamp: Thu 2008-03-13 09:29:22 +0000
        message:
          branches/zip: Non-functional change: Add some missing const qualifiers.
          
          btr_index_rec_validate_report(), btr_index_rec_validate(): Add const
          qualifiers to page, rec, index.
          
          row_vers_old_has_index_entry(), row_vers_build_for_consistent_read():
          Add const qualifier to rec.
          
          row_vers_build_for_semi_consistent_read(): Add const qualifier to rec
          and old_vers.
          
          row_sel_store_row_id_to_prebuilt(): Add const qualifiers to
          index_rec, index, offsets.
          
          row_sel_build_prev_vers_for_mysql(): Add const qualifier to rec.
          
          row_sel_get_clust_rec_for_mysql(): Add const qualifier to rec and out_rec.
          
          row_sel_try_search_shortcut_for_mysql(): Add const qualifier to out_rec.
        ------------------------------------------------------------
        revno: 0.3.1085
        committer: marko
        timestamp: Tue 2008-03-11 08:57:25 +0000
        message:
          branches/zip: dict_table_print_low(): Print table->flags, so that users
          can create the table innodb_table_monitor and see in the error log which
          tables are incompatible with older versions of InnoDB.
        ------------------------------------------------------------
        revno: 0.3.1084
        committer: marko
        timestamp: Mon 2008-03-10 11:05:32 +0000
        message:
          branches/zip: Implement the configuration parameter and settable global
          variable innodb_file_format.  Implement file format version stamping of
          *.ibd files and SYS_TABLES.TYPE.
          
          This change breaks introduces an incompatible change for for
          compressed tables.  We can do this, as we have not released yet.
          
          innodb-zip.test: Add tests for stricter KEY_BLOCK_SIZE and ROW_FORMAT
          checks.
          
          DICT_TF_COMPRESSED_MASK, DICT_TF_COMPRESSED_SHIFT: Replace with
          DICT_TF_ZSSIZE_MASK, DICT_TF_ZSSIZE_SHIFT.
          
          DICT_TF_FORMAT_MASK, DICT_TF_FORMAT_SHIFT, DICT_TF_FORMAT_51,
          DICT_TF_FORMAT_ZIP: File format version, stored in table->flags,
          in the .ibd file header, and in SYS_TABLES.TYPE.
          
          dict_create_sys_tables_tuple(): Write the table flags to SYS_TABLES.TYPE
          if the format is at least DICT_TF_FORMAT_ZIP.  For old formats
          (DICT_TF_FORMAT_51), write DICT_TABLE_ORDINARY as the table type.
          
          DB_TABLE_ZIP_NO_IBD: Remove the error code.  The error handling is done
          in ha_innodb.cc; as a failsafe measure, dict_build_table_def_step() will
          silently clear the compression and format flags instead of returning this
          error.
          
          dict_mem_table_create(): Assert that no extra bits are set in the flags.
          
          dict_sys_tables_get_zip_size(): Rename to dict_sys_tables_get_flags().
          Check all flag bits, and return ULINT_UNDEFINED if the combination is
          unsupported.
          
          dict_boot(): Document the SYS_TABLES columns N_COLS and TYPE.
          
          dict_table_get_format(), dict_table_set_format(),
          dict_table_flags_to_zip_size(): New accessors to table->flags.
          
          dtuple_convert_big_rec(): Introduce the auxiliary variables
          local_len, local_prefix_len.  Store a 768-byte prefix locally
          if the file format is less than DICT_TF_FORMAT_ZIP.
          
          dtuple_convert_back_big_rec(): Restore the columns.
          
          srv_file_format: New variable: innodb_file_format.
          
          fil_create_new_single_table_tablespace(): Replace the parameter zip_size
          with table->flags.
          
          fil_open_single_table_tablespace(): Replace the parameter zip_size_in_k
          with table->flags.  Check the flags.
          
          fil_space_struct, fil_space_create(), fil_op_write_log():
          Replace zip_size with flags.
          
          fil_node_open_file(): Note a TODO item for InnoDB Hot Backup.
          Check that the tablespace flags match.
          
          fil_space_get_zip_size(): Rename to fil_space_get_flags().  Add a
          wrapper for fil_space_get_zip_size().
          
          fsp_header_get_flags(): New function.
          
          fsp_header_init_fields(): Replace zip_size with flags.
          
          FSP_SPACE_FLAGS: New name for the tablespace flags.  This field used
          to be called FSP_PAGE_ZIP_SIZE, or FSP_LOWEST_NO_WRITE.  It has always
          been written as 0 in MySQL/InnoDB versions 4.1 to 5.1.
          
          MLOG_ZIP_FILE_CREATE: Rename to MLOG_FILE_CREATE2.  Add a 32-bit
          parameter for the tablespace flags.
          
          ha_innobase::create(): Check the table attributes ROW_FORMAT and
          KEY_BLOCK_SIZE.  Issue errors if they are inappropriate, or warnings
          if the inherited attributes (in ALTER TABLE) will be ignored.
          
          PAGE_ZIP_MIN_SIZE_SHIFT: New constant: the 2-logarithm of PAGE_ZIP_MIN_SIZE.
        ------------------------------------------------------------
        revno: 0.3.1083
        committer: marko
        timestamp: Fri 2008-03-07 14:10:08 +0000
        message:
          innodb-zip.test: Now that innodb_file_per_table is a settable variable
          as of r2355, remove the special startup options innodb-zip-master.opt
          and set the variable in innodb-zip.test instead.
        ------------------------------------------------------------
        revno: 0.3.1082
        committer: marko
        timestamp: Fri 2008-03-07 12:56:52 +0000
        message:
          branches/zip: Make innodb_file_per_table a settable global variable.
          
          There is one consideration: fil_init() chooses the tablespace hash size
          based on the initial value of srv_file_per_table.  However, this is nothing
          new: InnoDB could be started with innodb_file_per_table=0 even though
          *.ibd files exist.
          
          srv_file_per_table: Declare as my_bool instead of ibool, because
          MYSQL_SYSVAR_BOOL() expects a pointer to my_bool.  Document the
          variable also in srv0srv.h.
          
          innobase_start_or_create_for_mysql(): Note why it is OK to temporarily
          clear srv_file_per_table.
          
          innobase_file_per_table: Remove.
        ------------------------------------------------------------
        revno: 0.3.1081
        committer: marko
        timestamp: Thu 2008-03-06 12:29:16 +0000
        message:
          branches/zip: fseg_print(): Enclose inside #ifdef UNIV_BTR_PRINT.
        ------------------------------------------------------------
        revno: 0.3.1080
        committer: marko
        timestamp: Wed 2008-03-05 13:17:13 +0000
        message:
          branches/zip: Implement ut_calc_align() and ut_calc_align_down() as
          type-independent macros.
        ------------------------------------------------------------
        revno: 0.3.1079
        committer: marko
        timestamp: Wed 2008-03-05 12:40:29 +0000
        message:
          branches/zip: fsp_header_get_free_limit(), fsp_header_get_tablespace_size():
          Remove the redundant parameter "space".
        ------------------------------------------------------------
        revno: 0.3.1078
        committer: marko
        timestamp: Wed 2008-03-05 09:54:48 +0000
        message:
          branches/zip: Fix two more bogus MSVC C4090 warnings on constness differences
          (Warning C4090 is incorrectly issued when using Visual C++ .NET 2003,
          bug 101661, http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101661)
          
          dict_table_find_equivalent_index(): Cast away constness in the mem_free()
          call.  MSVC seems to think that an array of pointers to const data is
          const itself.
          
          UT_SORT_FUNCTION_BODY(): Cast away constness in the memcpy() call.
          MSVC seems to think that an array of pointers to const data is const itself.
        ------------------------------------------------------------
        revno: 0.3.1077
        committer: marko
        timestamp: Wed 2008-03-05 09:41:51 +0000
        message:
          branches/zip: ut_is_2pow(), ut_2pow_round(), ut_2pow_remainder(): Define
          as type-independent macros instead of functions.  Because ut_2pow_round()
          and ut_2pow_remainder() no longer assert ut_is_2pow(m), add the assertions
          to callers when needed.  Also add parentheses to assist the compiler in
          common subexpression elimination.
        ------------------------------------------------------------
        revno: 0.3.1076
        committer: marko
        timestamp: Wed 2008-03-05 09:16:40 +0000
        message:
          branches/zip: buf_read_ahead_random(), buf_read_ahead_linear():
          Compute BUF_READ_AHEAD_RANDOM_AREA and BUF_READ_AHEAD_LINEAR_AREA
          only once.  The definition of BUF_READ_AHEAD_AREA depends on
          buf_pool->curr_size, which could change while this code is running.
        ------------------------------------------------------------
        revno: 0.3.1075
        committer: marko
        timestamp: Wed 2008-03-05 08:36:16 +0000
        message:
          branches/zip: buf_flush_try_neighbors(): Compute buf_flush_area only
          once and assign it to an auxiliary variable.
        ------------------------------------------------------------
        revno: 0.3.1074
        committer: marko
        timestamp: Tue 2008-03-04 08:57:07 +0000
        message:
          branches/zip: Fix most MSVC (Windows) compilation warnings.
          
          lock_get_table(), locks_row_eq_lock(), buf_page_get_mutex(): Add return
          after ut_error.  On Windows, ut_error is not declared as "noreturn".
          
          Add explicit type casts when assigning ulint to byte to get rid of
          "possible loss of precision" warnings.
          
          struct i_s_table_cache_struct: Declare rows_used, rows_allocd as ulint
          instead of ullint.  32 bits should be enough.
          
          fill_innodb_trx_from_cache(), i_s_zip_fill_low(): Cast 64-bit unsigned
          integers to longlong when calling Field::store(longlong, bool is_unsigned).
          Otherwise, the compiler would implicitly convert them to double and
          invoke Field::store(double) instead.
          
          recv_truncate_group(), recv_copy_group(), recv_calc_lsn_on_data_add():
          Cast ib_uint64_t expressions to ulint to get rid of "possible loss of
          precision" warnings.  (There should not be any loss of precision in
          these cases.)
          
          log_close(), log_checkpoint_margin(): Declare some variables as ib_uint64_t
          instead of ulint, so that there won't be any potential loss of precision.
          
          mach_write_ull(): Cast the second argument of mach_write_to_4() to ulint.
          
          OS_FILE_FROM_FD(): Cast the return value of _get_osfhandle() to HANDLE.
          
          row_merge_dict_table_get_index(): Cast the parameter of mem_free() to (void*)
          in order to get rid of the bogus MSVC warning C4090, which has been reported
          as MSVC bug 101661:
          <http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101661>
          
          row_mysql_read_blob_ref(): To get rid of a bogus MSVC warning C4090,
          drop a const qualifier.
        ------------------------------------------------------------
        revno: 0.3.1073
        committer: marko
        timestamp: Mon 2008-03-03 12:48:38 +0000
        message:
          branches/zip: Improve the LRU algorithm with a separate unzip_LRU list of
          blocks that contains uncompressed and compressed frames.  This patch was
          designed by Heikki and Inaam, implemented by Inaam, and refined and reviewed
          by Marko and Sunny.
          
          buf_buddy_n_frames, buf_buddy_min_n_frames, buf_buddy_max_n_frames: Remove.
          
          buf_page_belongs_to_unzip_LRU(): New predicate:
          bpage->zip.data && buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE.
          
          buf_pool_t, buf_block_t: Add the linked list unzip_LRU.  A block in the
          regular LRU list is in unzip_LRU iff buf_page_belongs_to_unzip_LRU() holds.
          
          buf_LRU_free_block(): Add a third return value to refine the case
          "cannot free the block".
          
          buf_LRU_search_and_free_block(): Update the documentation to reflect the
          implementation.
          
          buf_LRU_stat_t, buf_LRU_stat_cur, buf_LRU_stat_sum, buf_LRU_stat_arr[]:
          Statistics for the unzip_LRU algorithm.
          
          buf_LRU_stat_update(): New function: Update the statistics.  Called once
          per second by srv_error_monitor_thread().
          
          buf_LRU_validate(): Validate the unzip_LRU list as well.
          
          buf_LRU_evict_from_unzip_LRU(): New predicate: Use the unzip_LRU before
          falling back to the regular LRU?
          
          buf_LRU_free_from_unzip_LRU_list(), buf_LRU_free_from_common_LRU_list():
          Subfunctions of buf_LRU_search_and_free_block().
          
          buf_LRU_search_and_free_block(): Reimplement.  Try to evict an uncompressed
          page from the unzip_LRU list before falling back to evicting an entire block
          from the common LRU list.
          
          buf_unzip_LRU_remove_block_if_needed(): New function.
          
          buf_unzip_LRU_add_block(): New function: Add a block to the unzip_LRU list.
        ------------------------------------------------------------
        revno: 0.3.1072
        committer: calvin
        timestamp: Fri 2008-02-29 23:37:15 +0000
        message:
          branches/zip: row_raw_format_str_convert(): Rename to
          innobase_raw_format(), move the definition from row0row.c to
          ha_innodb.cc. After this change, row0row.c no longer references
          system_charset_info (Mantis issue #17). Patch prepared by Vasil,
          tested by Calvin, and reviewed by Marko.
        ------------------------------------------------------------
        revno: 0.3.1071
        committer: calvin
        timestamp: Fri 2008-02-29 23:32:00 +0000
        message:
          branches/zip: Fix the compile errors in btr/btr0cur.c for Windows
          build. It is part of Mantis issue#18. Reviewed by Marko.
        ------------------------------------------------------------
        revno: 0.3.1070
        committer: calvin
        timestamp: Fri 2008-02-29 23:24:27 +0000
        message:
          branches/zip: Remove PAGE_WRITECOMBINE from VirtualAlloc() in
          os_mem_alloc_large(). Otherwise the allocation fails during startup
          with error code 87 - invalid parameter. Reviewed by Marko.
        ------------------------------------------------------------
        revno: 0.3.1069
        committer: calvin
        timestamp: Fri 2008-02-29 23:18:46 +0000
        message:
          branches/zip: Exclude mman.h on Windows since it is not supported on
          Windows. Reviewed by Marko.
        ------------------------------------------------------------
        revno: 0.3.1068
        committer: marko
        timestamp: Fri 2008-02-29 21:45:22 +0000
        message:
          branches/zip: Update CMakeLists.txt to correspond to Makefile.am.
          Add CMake-generated files and directories to svn:ignore.  This patch
          is from Calvin Sun, who couldn't commit it properly on Windows.
          
          Do "svn propset svn:eol-style native" on every text file, to fix
          line format problems on Windows.
        ------------------------------------------------------------
        revno: 0.3.1067
        committer: marko
        timestamp: Fri 2008-02-29 12:30:41 +0000
        message:
          branches/zip: buf_buddy_alloc(), buf_buddy_alloc_low(): Correct a mistake
          in the function comment.  There is no value BUF_BUDDY_USE_LRU.  The mistake
          was made in r1290.
        ------------------------------------------------------------
        revno: 0.3.1066
        committer: marko
        timestamp: Fri 2008-02-29 08:32:14 +0000
        message:
          branches/zip: buf_buddy_alloc_clean(): Remove, as it violates the LRU policy.
        ------------------------------------------------------------
        revno: 0.3.1065
        committer: marko
        timestamp: Fri 2008-02-29 08:20:17 +0000
        message:
          branches/zip: buf_relocate(): Document and assert that bpage must be
          in one of the states BUF_BLOCK_ZIP_DIRTY or BUF_BLOCK_ZIP_PAGE.
          Note that the caller will have to relocate bpage->list.
        ------------------------------------------------------------
        revno: 0.3.1064
        committer: marko
        timestamp: Fri 2008-02-29 08:13:55 +0000
        message:
          branches/zip: Replace __attribute with __attribute.
        ------------------------------------------------------------
        revno: 0.3.1063
        committer: marko
        timestamp: Thu 2008-02-28 11:49:37 +0000
        message:
          branches/zip: row_create_table_for_mysql(): Always roll back the transaction
          when creating the table fails.
        ------------------------------------------------------------
        revno: 0.3.1062
        committer: marko
        timestamp: Thu 2008-02-28 11:46:51 +0000
        message:
          branches/zip: ha_innobase::add_index(): Always commit prebuilt->trx,
          also when row_merge_create_temporary_table() fails.  Otherwise, an
          assertion would fail when the client connection is closed, because
          prebuilt->trx would still be holding a table lock on innodb_table.
        ------------------------------------------------------------
        revno: 0.3.1061
        committer: marko
        timestamp: Thu 2008-02-28 10:28:56 +0000
        message:
          branches/zip: os_file_set_nocache(): Clean up the function comment.
          Add the function prototype to os0file.h.
        ------------------------------------------------------------
        revno: 0.3.1060
        committer: marko
        timestamp: Thu 2008-02-28 08:33:19 +0000
        message:
          branches/zip: dict0dict.c: Add the #include "ha_prototypes.h" that should
          have been added in r2327.
        ------------------------------------------------------------
        revno: 0.3.1059
        committer: vasil
        timestamp: Wed 2008-02-27 16:53:56 +0000
        message:
          branches/zip:
          
          Use innobase_strcasecmp() insteaed of strcasecmp() in i_s.cc and get rid
          of strings.h (that file is not present on Windows).
          
          Move the prototype of innobase_strcasecmp() from ha_innodb.cc and
          dict0dict.c to ha_prototypes.h.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1058
        committer: marko
        timestamp: Wed 2008-02-27 14:34:44 +0000
        message:
          branches/zip: Add duration statistics to INFORMATION_SCHEMA.INNODB_ZIP.
          
          buf_buddy_relocated_duration[],
          page_zip_compress_duration[]
          page_zip_decompress_duration[]: Record the total duration of the operations.
          
          buf_buddy_relocate(), page_zip_compress(), page_zip_decompress():
          Add ut_time_us() instrumentation.
          
          i_s_zip_fields_info[], i_s_zip_fill_low(): Move the columns containing
          cumulated statistics last.  Add relocated_usec, compressed_usec, and
          decompressed_usec.
        ------------------------------------------------------------
        revno: 0.3.1057
        committer: marko
        timestamp: Mon 2008-02-25 14:01:15 +0000
        message:
          branches/zip: ibuf_update_free_bits_zip(): When after==0, call
          buf_page_make_young(), like ibuf_update_free_bits_if_full() does.
          This difference was pointed out by Sunny.
        ------------------------------------------------------------
        revno: 0.3.1056
        committer: marko
        timestamp: Mon 2008-02-25 12:41:54 +0000
        message:
          branches/zip: enum db_err: Use the same InnoDB error numbers as the #defines
          in earlier versions of InnoDB.
        ------------------------------------------------------------
        revno: 0.3.1055
        committer: marko
        timestamp: Fri 2008-02-22 21:03:31 +0000
        message:
          Do not enable page_zip_compress_log by default.  This was accidentally
          set in r2318.
        ------------------------------------------------------------
        revno: 0.3.1054
        committer: marko
        timestamp: Thu 2008-02-21 13:43:40 +0000
        message:
          branches/zip: Add the column "free" to INNODB_ZIP and INNODB_ZIP_RESET
          to display the external fragmentation within the buddy allocator.
        ------------------------------------------------------------
        revno: 0.3.1053
        committer: marko
        timestamp: Tue 2008-02-19 14:42:52 +0000
        message:
          branches/zip: Enable excessive binary logging of page_zip_compress(),
          for the purpose of comparing different compression algorithms.
          
          PAGE_ZIP_COMPRESS_DBG: New preprocessor condition, to see if deflate()
          is wrapped.
          
          page_zip_compress_log: Log file counter.  If set to nonzero, logging
          is enabled.
          
          page_zip_compress_deflate(): Add the parameter logfile.
          
          FILE_LOGFILE, LOGFILE: Macros for declaring and passing the parameter logfile.
          
          page_zip_compress(): Open and close the logfile if needed.  Write the
          uncompressed page and the size of the compressed data.  The data passed
          to deflate() is written by the wrapper page_zip_compress_deflate().
        ------------------------------------------------------------
        revno: 0.3.1052
        committer: marko
        timestamp: Mon 2008-02-18 20:09:03 +0000
        message:
          branches/zip: Merge 2263:2295 from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1051
        committer: marko
        timestamp: Mon 2008-02-18 19:14:09 +0000
        message:
          branches/zip: Remove the unused function os_thread_join().
        ------------------------------------------------------------
        revno: 0.3.1050
        committer: marko
        timestamp: Mon 2008-02-18 18:57:24 +0000
        message:
          branches/zip: trx_undo_prev_version_build(): Remove the unnecessary
          and incorrect "BLOB bug fix" that was suggested by Heikki.  Explain in
          a comment why no such fix is needed.
        ------------------------------------------------------------
        revno: 0.3.1049
        committer: marko
        timestamp: Mon 2008-02-18 18:38:33 +0000
        message:
          branches/zip: Add a UNIV_INTERN qualifier to every global function declaration
          in *.h files, so that the function signatures in the *.h and *.c files fully
          match each other.
          
          ut_dulint_sort(): Add a UNIV_INTERN qualifier also to the function definition.
        ------------------------------------------------------------
        revno: 0.3.1048
        committer: marko
        timestamp: Mon 2008-02-18 15:45:17 +0000
        message:
          branches/zip: Minor fixes.
          
          lock_rec_restore_from_page_infimum(): Correct the comment of the parameter rec.
          
          lock_sec_rec_read_check_and_lock(): Add the debug assertion
          ut_ad(mode == LOCK_X || mode == LOCK_S).
        ------------------------------------------------------------
        revno: 0.3.1047
        committer: marko
        timestamp: Mon 2008-02-18 15:43:16 +0000
        message:
          branches/zip: Minor fixes.
          
          buf_LRU_old_adjust_len(): Replace a constant ut_ad() with a preprocessor check.
          
          buf_LRU_free_block(): Remove the check for the unlikely case
          buf_pool->LRU_old == prev_b in order to simplify the function.
          The check was implemented as part of r2306.
        ------------------------------------------------------------
        revno: 0.3.1046
        committer: marko
        timestamp: Mon 2008-02-18 15:35:00 +0000
        message:
          branches/zip: trx_undo_prev_version_build(): Remove the fix that was
          suggested by Heikki, because it breaks row_vers_impl_x_locked_off_kernel();
          see Mantis issue #10.
          
          However, now that Heikki's fix has been removed, the code may break elsewhere
          when it tries to dereference half-freed or completely freed externally
          stored columns.
        ------------------------------------------------------------
        revno: 0.3.1045
        committer: marko
        timestamp: Mon 2008-02-18 09:53:08 +0000
        message:
          branches/zip: Minor improvements.
          
          lock_update_delete(): Add the debug assertion ut_ad(page == page_align(rec)).
          
          lock_rec_insert_check_and_lock(): Determine next_rec_heap_no before
          acquiring the kernel mutex.  Require the table to be at least S-locked
          in fast index creation.
        ------------------------------------------------------------
        revno: 0.3.1044
        committer: marko
        timestamp: Sat 2008-02-16 10:33:15 +0000
        message:
          branches/zip: buf_LRU_free_block(): When freeing the uncompressed page
          corresponding to a compressed page, do not flag the block as recently
          used, but maintain the position of the control block on the LRU list.
        ------------------------------------------------------------
        revno: 0.3.1043
        committer: marko
        timestamp: Fri 2008-02-15 14:16:27 +0000
        message:
          branches/zip: lock0lock.c: Minor cleanup.
          
          lock_rec_get_first(): Use a simple for loop.
          
          lock_rec_copy(): Use mem_heap_dup().
          
          lock_rec_find_similar_on_page(): Add const qualifier to trx.
          
          lock_move_rec_list_end(), lock_move_rec_list_start(): Simplify the
          memcmp() assertion on ROW_FORMAT=REDUNDANT records.
        ------------------------------------------------------------
        revno: 0.3.1042
        committer: marko
        timestamp: Fri 2008-02-15 13:03:12 +0000
        message:
          branches/zip: lock_rec_other_has_expl_req(): Minor cleanup: add const
          qualifier to parameter, and fix the formatting of a comment.
        ------------------------------------------------------------
        revno: 0.3.1041
        committer: marko
        timestamp: Fri 2008-02-15 11:45:37 +0000
        message:
          branches/zip: buf0lru.c: Minor cleanup.
          
          Use ut_d() in assignments to bpage->in_LRU_list instead of #ifdef UNIV_DEBUG.
          
          buf_LRU_remove_block(): Move an assertion to a more appropriate place.
        ------------------------------------------------------------
        revno: 0.3.1040
        committer: marko
        timestamp: Fri 2008-02-15 11:38:21 +0000
        message:
          branches/zip: lock_rec_add_to_queue(): Improve the debug diagnostics.
          Make it easier to display the violating lock request in a debugger.
        ------------------------------------------------------------
        revno: 0.3.1039
        committer: marko
        timestamp: Fri 2008-02-15 10:07:42 +0000
        message:
          branches/zip: buf_buddy_alloc_from(): Relax a debug assertion that fails
          on i==j==BUF_BUDDY_SIZES.
        ------------------------------------------------------------
        revno: 0.3.1038
        committer: marko
        timestamp: Wed 2008-02-13 20:18:00 +0000
        message:
          branches/zip: Minor cleanup of fast index creation diagnostics.
          
          innobase_check_index_keys(): Remove unused parameters.  Use
          sql_print_error() for error message output.
          
          ha_innobase::add_index(): When row_merge_rename_tables() fails, do not
          allow row_merge_drop_table() to alter the error code returned to MySQL.
        ------------------------------------------------------------
        revno: 0.3.1037
        committer: marko
        timestamp: Tue 2008-02-12 22:05:01 +0000
        message:
          branches/zip: Pass -prefer-non-pic only on IA-32 (x86) when building
          the dynamic InnoDB plugin, ha_innodb.so.  This libtool option cannot
          be used on every target platform.  For instance, the AMD64 (x86_64) ABI
          mandates position-independent code (PIC) in dynamic shared objects.
          
          Makefile.am: Use $(INNODB_CFLAGS) and $(INNODB_DYNAMIC_CFLAGS) in
          target-specific CFLAGS and CXXFLAGS variable definitions.
          
          plug.in: Instead of appending to the MySQL-wide CFLAGS, introduce
          the variables INNODB_CFLAGS and INNODB_DYNAMIC_CFLAGS.  Depending on
          $target_cpu, append -prefer-non-pic to INNODB_DYNAMIC_CFLAGS.
        ------------------------------------------------------------
        revno: 0.3.1036
        committer: marko
        timestamp: Mon 2008-02-11 10:31:55 +0000
        message:
          branches/zip: Makefile.am: Disable the generation of
          position-independent code in the compilation of ha_innodb.so.
          
          ha_innodb_la_CXXFLAGS, ha_innodb_la_CFLAGS: Add -prefer-non-pic.
          This flag is interpreted by the ../../libtool script that acts
          as a front-end to the compiler and linker.
        ------------------------------------------------------------
        revno: 0.3.1035
        committer: marko
        timestamp: Fri 2008-02-08 13:50:28 +0000
        message:
          branches/zip: Add the necessary #include "univ.i" that was removed in the
          unapproved change r2290.
        ------------------------------------------------------------
        revno: 0.3.1034
        committer: vasil
        timestamp: Fri 2008-02-08 13:19:56 +0000
        message:
          branches/zip:
          
          Do not include univ.i in mysql_addons.h, it was included for the sole
          purpose of innodb_redefine.h to work and now innodb_redefine.h has been
          removed. See r2251 and r2288.
        ------------------------------------------------------------
        revno: 0.3.1033
        committer: marko
        timestamp: Fri 2008-02-08 12:31:13 +0000
        message:
          branches/zip: scripts/dynconfig: Correct misleading usage message.
          At present, the script only accepts one command line parameter.
          Append newline to some die messages, so that the Perl interpreter
          will not print the file name and line number of the failing statement.
        ------------------------------------------------------------
        revno: 0.3.1032
        committer: marko
        timestamp: Fri 2008-02-08 12:23:17 +0000
        message:
          branches/zip: Remove innodb_redefine.h and all references to it.  The
          file has been redundant since r2278.
          
          include/innodb_redefine.h: Remove.
          
          include/sync0sync.h: Remove the definition of mutex_free that was added
          because of innodb_redefine.h.
          
          include/univ.i: Remove references to innodb_redefine.h.  Explain why
          the C++ classes need to be renamed.
          
          scripts/build-plugin.sh: Build InnoDB only once.  The file
          innodb_redefine.h is no longer needed.
        ------------------------------------------------------------
        revno: 0.3.1031
        committer: marko
        timestamp: Fri 2008-02-08 12:18:06 +0000
        message:
          branches/zip: scripts/dynconfig: Minor cleanup (spelling and formatting).
        ------------------------------------------------------------
        revno: 0.3.1030
        committer: marko
        timestamp: Fri 2008-02-08 10:22:47 +0000
        message:
          branches/zip: trx_sys_doublewrite_init_or_restore_pages(): Print out the
          space identifier in the corruption message.
        ------------------------------------------------------------
        revno: 0.3.1029
        committer: inaam
        timestamp: Thu 2008-02-07 20:12:11 +0000
        message:
          branches/zip:
          
          srv_log_file_size is misspelled as srv_log_filen_size in r2276
          
          reviewed by: non-functional change.
        ------------------------------------------------------------
        revno: 0.3.1028
        committer: marko
        timestamp: Thu 2008-02-07 10:03:54 +0000
        message:
          branches/zip: make_flex.sh, lexyy.c: Remove some GCC warnings about unused
          static symbol definitions.
          
          yy_scan_buffer, yy_scan_string, yy_scan_bytes: Leave these unused extern
          function declarations alone.
          
          yypush_buffer_state, yypop_buffer_state, yyswitch_to_buffer, yyget*, yyset*,
          yylex_destroy: Add __attribute__((unused)).
          
          This closes Mantis issue #8.
        ------------------------------------------------------------
        revno: 0.3.1027
        committer: marko
        timestamp: Thu 2008-02-07 09:08:28 +0000
        message:
          branches/zip: trx_undo_prev_version_build(): Remove a bogus warning
          about undo_rec possibly being uninitialized.  When trx_undo_get_undo_rec()
          leaves undo_rec uninitialized, both functions will return DB_MISSING_HISTORY
          without dereferencing undo_rec.
          
          This closes Mantis issue #7.
        ------------------------------------------------------------
        revno: 0.3.1026
        committer: marko
        timestamp: Wed 2008-02-06 16:11:46 +0000
        message:
          branches/zip: Hide some global variables that were accidentally not hidden
          in r2276.  Now the following symbols will be exported when InnoDB is built
          as a dynamic plugin:
          
          * the virtual method pointer table of class ha_innodb
          * the three variables that MySQL will reference when linking at runtime:
          
           _mysql_plugin_declarations_
           _mysql_plugin_interface_version_
           _mysql_sizeof_struct_st_plugin_
          
          Furthermore, the following symbols are weak globals, to allow us to access
          the built-in InnoDB in the mysqld executable, in case it contains a statically
          linked InnoDB:
          
           builtin_innobase_plugin
           innodb_hton_ptr
        ------------------------------------------------------------
        revno: 0.3.1025
        committer: marko
        timestamp: Wed 2008-02-06 16:01:57 +0000
        message:
          branches/zip: Make the changes to pars0grm.c that were promised in r2276.
          
          pars/pars0grm.h: Remove.  The primary file is include/pars0grm.h.
          
          pars/make_bison.sh: Add from trunk.  Somehow, this file was not merged
          at the same time with make_flex.sh.  Add sed magic for replacing the
          file name and for hiding yychars, yynerrs, yylval, and yyparse.
          
          pars/pars0grm.c: Apply the changes made by make_bison.sh.
        ------------------------------------------------------------
        revno: 0.3.1024
        committer: marko
        timestamp: Wed 2008-02-06 14:17:36 +0000
        message:
          branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global
          symbols.  Use it for all definitions of non-static variables and functions.
          
          lexyy.c, make_flex.sh: Declare yylex as UNIV_INTERN, not static.  It is
          referenced from pars0grm.c.
          
          Actually, according to
           nm .libs/ha_innodb.so|grep -w '[ABCE-TVXYZ]'
          the following symbols are still global:
          
          * The vtable for class ha_innodb
          * pars0grm.c: The function yyparse() and the variables yychar, yylval, yynerrs
          
          The required changes to the Bison-generated file pars0grm.c will be addressed
          in a separate commit, which will add a script similar to make_flex.sh.
          
          The class ha_innodb is renamed from class ha_innobase by a #define.  Thus,
          there will be no clash with the builtin InnoDB.  However, there will be some
          overhead for invoking virtual methods of class ha_innodb.  Ideas for making
          the vtable hidden are welcome.  -fvisibility=hidden is not available in GCC 3.
        ------------------------------------------------------------
        revno: 0.3.1023
        committer: marko
        timestamp: Wed 2008-02-06 13:14:42 +0000
        message:
          branches/zip: Make static all declarations in the Flex-generated
          lexical analyzer of the InnoDB SQL parser.
        ------------------------------------------------------------
        revno: 0.3.1022
        committer: marko
        timestamp: Wed 2008-02-06 08:19:56 +0000
        message:
          branches/zip: Remove unused definitions from include/trx0xa.h.
        ------------------------------------------------------------
        revno: 0.3.1021
        committer: marko
        timestamp: Mon 2008-02-04 12:47:00 +0000
        message:
          branches/zip: Apply some fixes suggested by Heikki.
          
          btr_cur_pessimistic_update(): Note why the externally stored columns
          of a record on a latched page cannot have been purged.
          
          trx_undo_get_undo_rec(): Clarify that the stack of versions is locked
          all the way down to the purge view.
          
          trx_undo_prev_version_build(): Set *old_vers = NULL also when the record
          could have been purged already.  Add some clarifying comments.
        ------------------------------------------------------------
        revno: 0.3.1020
        committer: marko
        timestamp: Wed 2008-01-30 21:15:41 +0000
        message:
          row_merge_buf_add(): Add a missing const qualifier to "ext".
        ------------------------------------------------------------
        revno: 0.3.1019
        committer: vasil
        timestamp: Tue 2008-01-29 09:54:46 +0000
        message:
          branches/zip:
          
          Require PROCESS privileges instead of SUPER to view INFORMATION_SCHEMA tables.
          
          Suggested by: Sergei Golubchik <serg@mysql.com> (in a private email,
           pointed http://bugs.mysql.com/32710)
        ------------------------------------------------------------
        revno: 0.3.1018
        committer: marko
        timestamp: Mon 2008-01-28 15:54:46 +0000
        message:
          branches/zip: Merge 2236:2263 from branches/5.1.
        ------------------------------------------------------------
        revno: 0.3.1017
        committer: marko
        timestamp: Fri 2008-01-25 14:37:11 +0000
        message:
          branches/zip: Assert in the adaptive hash that the insert buffer B-tree
          is not indexed.
          
          btr_search_update_hash_ref(), btr_search_drop_page_hash_index(),
          btr_search_build_page_hash_index(), btr_search_update_hash_on_delete(),
          btr_search_update_hash_node_on_insert(), btr_search_update_hash_on_insert(),
          btr_search_validate():
          Assert that hashed blocks do not belong to the insert buffer tree.
          
          btr_search_move_or_delete_hash_entries():
          When invoked on the insert buffer tree, assert that neither block is hashed.
        ------------------------------------------------------------
        revno: 0.3.1016
        committer: marko
        timestamp: Fri 2008-01-25 14:26:07 +0000
        message:
          branches/zip: Fast index creation: Release locks on system tables before
          creating indexes.  Lock the user table inside the user transaction.
          
          enum trx_dict_op: Remove TRX_OP_INDEX_MAY_WAIT.
          
          ha_innobase::add_index(): Lock the user tables within prebuilt->trx.
          Commit the data dictionary transaction before creating indexes.
          
          ha_innobase::final_drop_index(): Lock the user table within prebuilt->trx.
        ------------------------------------------------------------
        revno: 0.3.1015
        committer: marko
        timestamp: Fri 2008-01-25 08:13:12 +0000
        message:
          branches/zip: Introduce the accessor function dict_index_is_ibuf()
          for determining if an index is the insert buffer B-tree.
        ------------------------------------------------------------
        revno: 0.3.1014
        committer: marko
        timestamp: Thu 2008-01-24 09:58:03 +0000
        message:
          branches/zip: row_sel_sec_rec_is_for_clust_rec(): If the record in the
          clustered index is delete-marked, return FALSE without comparing any columns.
        ------------------------------------------------------------
        revno: 0.3.1013
        committer: marko
        timestamp: Thu 2008-01-24 08:12:02 +0000
        message:
          branches/zip: Introduce the page type code FIL_PAGE_TYPE_ZBLOB2 for
          continuation pages containing compressed BLOBs.  The first compressed
          BLOB page will be of type FIL_PAGE_TYPE_ZBLOB.
        ------------------------------------------------------------
        revno: 0.3.1012
        committer: marko
        timestamp: Wed 2008-01-23 13:46:45 +0000
        message:
          branches/zip: When storing a longer prefix of an externally stored column
          to the undo log, also store the original length of the column, so that the
          changes will be correctly undone in transaction rollback or when fetching
          previous versions of the row.
          
          innodb-zip.test: New file, for tests of the compression.
          
          upd_field_t: Add orig_len, the original length of new_val.
          
          btr_push_update_extern_fields(): Restore the original prefix of the column.
          Add the parameter heap where memory will be allocated if necessary.
          
          trx_undo_rec_get_col_val(): Add the output parameter orig_len.
          
          trx_undo_page_report_modify_ext(): New function: Write an externally
          stored column to the undo log.  This is only called from
          trx_undo_page_report_modify(), and this is the only caller of
          trx_undo_page_fetch_ext().
          
          trx_undo_update_rec_get_update(): Read the original length of the column
          prefix to upd_field->orig_len.
        ------------------------------------------------------------
        revno: 0.3.1011
        committer: vasil
        timestamp: Wed 2008-01-23 09:38:23 +0000
        message:
          branches/zip:
           
          Include univ.i in mysql_addons.h because univ.i includes innodb_redefine.h
          which is needed to rename the functions in this file with ibd_ prefix in
          the dynamic InnoDB plugin. Aka the renaming magic, required for the dynamic
          plugin to work.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1010
        committer: inaam
        timestamp: Tue 2008-01-22 18:50:44 +0000
        message:
          branches/zip:
          
          Cast to  ib_uint64_t the mask for align down before doing the '~' operation on it.
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.1009
        committer: marko
        timestamp: Mon 2008-01-21 09:51:40 +0000
        message:
          branches/zip: row_sel_get_clust_rec_for_mysql(): Similar to the function
          row_sel_get_clust_rec(), return if a previous version of the clustered index
          record does not exist in the read view.  This bug was made and found by
          Heikki.  It was harmless as long as the clustered index record contained
          a long enough local prefix of externally stored columns, to allow secondary
          index records to be built without fetching BLOBs.
          
          InnoDB transactions should never look at a clustered index record whose
          transaction identifier (DB_TRX_ID) is not visible in the transaction's
          read view.
        ------------------------------------------------------------
        revno: 0.3.1008
        committer: marko
        timestamp: Thu 2008-01-17 12:29:03 +0000
        message:
          branches/zip: Avoid infinite page splits on compressed tables.
          
          btr_page_get_sure_split_rec(): Remove the check if insert_size
          exceeds free_space.
          
          btr_page_split_and_insert(): If a compressed page has already been split,
          avoid further splits by inserting the record to an empty page.  As a
          performance optimization, avoid invoking btr_page_insert_fits() on
          compressed tables.
        ------------------------------------------------------------
        revno: 0.3.1007
        committer: marko
        timestamp: Wed 2008-01-16 14:14:36 +0000
        message:
          branches/zip: btr_page_get_sure_split_rec(): Return NULL when the record
          is not guaranteed to fit on a compressed page, instead of letting
          an assertion fail.
        ------------------------------------------------------------
        revno: 0.3.1006
        committer: marko
        timestamp: Wed 2008-01-16 12:45:27 +0000
        message:
          branches/zip: os_mem_alloc_large(), os_mem_free_large():
          Update ut_total_allocated_memory.
        ------------------------------------------------------------
        revno: 0.3.1005
        committer: marko
        timestamp: Wed 2008-01-16 12:44:44 +0000
        message:
          branches/zip: Free the buffer pool at shutdown.
          
          buf_pool_free(): New function: Free all chunks of the buffer pool.
          
          innobase_shutdown_for_mysql(): Call buf_pool_free() right before
          ut_free_all_mem().
        ------------------------------------------------------------
        revno: 0.3.1004
        committer: marko
        timestamp: Wed 2008-01-16 10:45:14 +0000
        message:
          branches/zip: Add comments about the lock and latch protection of externally
          stored columns (BLOBs).
          
          btr_copy_blob_prefix(), btr_copy_zblob_prefix(),
          btr_copy_externally_stored_field_prefix_low(),
          btr_copy_externally_stored_field_prefix(),
          btr_copy_externally_stored_field(),
          btr_rec_copy_externally_stored_field():
          Note that the page containing the clustered index record that points to
          the BLOB must be latched.
          
          btr_copy_zblob_prefix(): Note that there is no latch on the page, and thus
          all accesses to a given page via this function must be covered by the same
          set of locks or latches.
          
          btr_copy_zblob_prefix(): Note that the block acquired by
          buf_page_get_zip() is protected by an exclusive table lock or
          or by a latch on the clustered index record.
        ------------------------------------------------------------
        revno: 0.3.1003
        committer: marko
        timestamp: Wed 2008-01-16 10:10:32 +0000
        message:
          branches/zip: Fetch externally stored columns only when the clustered index
          record is protected by a latch or a lock.
          
          dtuple_copy(): New function: Copy a data tuple.
          
          row_upd_replace(): New function: Apply on a row an update vector that
          was built for the clustered index.  Set up a cache of externally stored
          column prefixes if needed.
          
          undo_node_t: Add the fields undo_row, undo_ext.
          
          row_undo_search_clust_to_pcur(): Initialize undo_row and undo_ext.
          
          row_undo_mod_upd_exist_sec(): Instead of fetching prefixes of
          externally stored columns, use the undo_row and undo_ext that were
          initialized in row_undo_search_clust_to_pcur().
          
          upd_node_t: Remove the field n_ext.  Add the fields upd_row and upd_ext.
          
          row_upd_store_row(): Initialize the upd_row and upd_ext fields of upd_node_t.
          
          row_upd_sec_index_entry(), row_upd_clust_rec_by_insert(): Instead of
          fetching prefixes of externally stored columns, use the upd_row
          and upd_ext that were initialized in row_upd_store_row().
        ------------------------------------------------------------
        revno: 0.3.1002
        committer: marko
        timestamp: Wed 2008-01-16 09:45:22 +0000
        message:
          branches/zip: row_undo_ins_parse_undo_rec(): Initialize node->update
          so that it will not be uninitialized when the undo record is being
          processed.
        ------------------------------------------------------------
        revno: 0.3.1001
        committer: vasil
        timestamp: Wed 2008-01-16 06:45:16 +0000
        message:
          branches/zip:
           
          Move the column trx_weight near the end in the
          information_schema.innodb_trx table.
          
          Suggested by: Ken
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.1000
        committer: marko
        timestamp: Tue 2008-01-15 09:43:14 +0000
        message:
          branches/zip: buf_pool_init(): Initialize buf_pool_zip_mutex before
          acquiring buf_pool_mutex.  This avoids triggering the debug assertion
          that was added in r2227.
        ------------------------------------------------------------
        revno: 0.3.999
        committer: inaam
        timestamp: Tue 2008-01-15 04:27:03 +0000
        message:
          branches/zip: Merge r2213:2236 from branches/5.1.
          
          Forward port of r2236
          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 #33349)
          
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.998
        committer: marko
        timestamp: Mon 2008-01-14 14:18:21 +0000
        message:
          branches/zip: row_undo_mod(): Eliminate a local variable.
        ------------------------------------------------------------
        revno: 0.3.997
        committer: marko
        timestamp: Mon 2008-01-14 14:13:11 +0000
        message:
          branches/zip: row_upd_clust_rec_by_insert(): Do not release the latch on
          the clustered index record before calling row_upd_index_replace_new_col_vals().
        ------------------------------------------------------------
        revno: 0.3.996
        committer: marko
        timestamp: Mon 2008-01-14 10:04:45 +0000
        message:
          branches/zip: Add comments that clarify why the remaining calls to
          row_build(), row_upd_index_replace_new_col_vals_index_pos(), and
          row_upd_index_replace_new_col_vals() are safe.
          
          btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Note that
          the B-tree page of the clustered index record is latched in mtr.
          
          trx_undo_prev_version_build(): Add const qualifiers to index_rec
          and rec.  Note that the page of index_rec is latched in index_mtr.
          
          row_vers_impl_x_locked_off_kernel(), row_vers_old_has_index_entry():
          Note that the stack of versions is locked by mtr and thus it is
          safe to call row_build().
        ------------------------------------------------------------
        revno: 0.3.995
        committer: marko
        timestamp: Fri 2008-01-11 19:59:47 +0000
        message:
          branches/zip: Clarify why certain calls of
          btr_rec_copy_externally_stored_field() are safe.
          
          row_merge_copy_blobs(): Note that the table is locked during index creation.
          Therefore, none of its BLOBs can be freed.
          
          row_sel_fetch_columns(): Note that rec must be protected by a page latch.
          Add const qualifier to rec.
          
          row_sel_get_clust_rec(): Note that the clustered index record is protected
          by a page latch that was acquired when the persistent cursor was positioned
          and that the latch will be freed by mini-transaction commit.
          
          row_sel_try_search_shortcut(): Check the delete-mark flag before fetching
          the columns.  Note that the clustered index record is protected
          by a page latch that was acquired when the persistent cursor was positioned
          and that the latch will be freed by mini-transaction commit.
          
          row_sel(), row_search_for_mysql(): Note that the clustered index record
          is protected by a page latch that was acquired when the persistent cursor
          was positioned and that the latch will be freed by mini-transaction commit.
          
          row_sel_field_store_in_mysql_format(): Add const qualifier to data.
          
          row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql():
          Add const qualifier to rec.  Note that rec must be protected by a page latch.
        ------------------------------------------------------------
        revno: 0.3.994
        committer: marko
        timestamp: Fri 2008-01-11 19:51:19 +0000
        message:
          branches/zip: eval_node_copy_and_alloc_val(): Add const qualifier.
        ------------------------------------------------------------
        revno: 0.3.993
        committer: marko
        timestamp: Fri 2008-01-11 12:19:59 +0000
        message:
          branches/zip: Add clarifying comments that the clustered index record must
          be protected from being deleted while any externally stored columns are
          being fetched.
          
          row_ext_create(),
          row_upd_index_replace_new_col_vals(),
          row_upd_index_replace_new_col_vals_index_pos(),
          row_sel_sec_rec_is_for_blob(),
          row_sel_sec_rec_is_for_clust_rec(): Note that the clustered
          index record must be covered by a lock or a page latch.
          
          row_upd_sec_index_entry(), row_upd_clust_rec_by_insert(),
          row_undo_mod_upd_exist_sec(): Note that these functions probably
          do not obtain an appropriate lock on the clustered index record
          before fetching any externally stored columns.
        ------------------------------------------------------------
        revno: 0.3.992
        committer: marko
        timestamp: Thu 2008-01-10 12:34:25 +0000
        message:
          branches/zip: buf_LRU_search_and_free_block(): Do not forbid the release
          of the buffer pool mutex.  Apparently, it is temporarily released also
          in older versions of MySQL/InnoDB for the duration of the
          btr_search_drop_page_hash_index() call [in buf_LRU_free_block()].
        ------------------------------------------------------------
        revno: 0.3.991
        committer: marko
        timestamp: Thu 2008-01-10 11:06:01 +0000
        message:
          branches/zip: btr_copy_zblob_prefix(): Print d_stream->msg on decompression
          failure.
        ------------------------------------------------------------
        revno: 0.3.990
        committer: marko
        timestamp: Thu 2008-01-10 09:51:57 +0000
        message:
          branches/zip: Add instrumentation for prohibiting the release of
          the buffer pool mutex.  The instrumentation can be activated by
          defining UNIV_DEBUG or UNIV_BUF_DEBUG at compilation time.
          
          buf_pool_mutex_exit_forbidden: New variable.  When this is nonzero,
          an assertion will fail in buf_pool_mutex_exit().
          
          buf_pool_mutex_exit_forbid(): Macro for declaring that the buffer pool
          mutex must not be released.  Calls may be nested.
          
          buf_pool_mutex_exit_allow(): Macro for declaring that the buffer pool
          mutex may be released.  Calls may be nested.
          
          buf_LRU_search_and_free_block(): Prohibit buf_pool_mutex_exit() in the
          scope of the function.
          
          buf_LRU_free_block(): Prohibit buf_pool_mutex_exit() in buf_buddy_alloc()
          and buf_buddy_free().
          
          buf_LRU_block_remove_hashed_page(): Prohibit buf_pool_mutex_exit()
          in buf_buddy_free().
        ------------------------------------------------------------
        revno: 0.3.989
        committer: marko
        timestamp: Thu 2008-01-10 09:37:13 +0000
        message:
          branches/zip: Implement wrappers for all operations on the buffer pool mutex.
          
          buf_pool->mutex: Rename to buf_pool_mutex, so that the wrappers will have
          to be used when changes are merged from other source trees.
          
          buf_pool->zip_mutex: Rename to buf_pool_zip_mutex.
          
          buf_pool_mutex_own(), buf_pool_mutex_enter(), buf_pool_mutex_exit():
          Wrappers for buf_pool_mutex.
        ------------------------------------------------------------
        revno: 0.3.988
        committer: marko
        timestamp: Wed 2008-01-09 13:03:51 +0000
        message:
          branches/zip: Clean up index->to_be_dropped after a failed DROP INDEX.
          
          ha_innobase::final_drop_index(): If row_merge_drop_table() fails, clear
          the to_be_dropped flags.  This was the error fixed in this commit; the rest
          is just additional safety.
          
          ha_innobase::final_drop_index(): After dropping the flagged indexes,
          assert that none of the remaining indexes are flagged to_be_dropped.
          
          ha_innobase::prepare_drop_index(): Assert that no index has been flagged
          for deletion.  When checking foreign key constraints, simply traverse the
          list of indexes and check if any of the indexes that were just flagged
          to_be_dropped.  On error, clear the to_be_dropped flags with simple list
          traversal.
        ------------------------------------------------------------
        revno: 0.3.987
        committer: marko
        timestamp: Mon 2008-01-07 13:40:12 +0000
        message:
          branches/zip: page_zip_reorganize(): Drop the adaptive search index before
          attempting to reorganize the page, not after the reorganization has succeeded.
        ------------------------------------------------------------
        revno: 0.3.986
        committer: marko
        timestamp: Mon 2008-01-07 09:15:25 +0000
        message:
          branches/zip: Merge 2155:2213 from branches/5.1.
          (Revisions 2146:2155 were already merged.)
        ------------------------------------------------------------
        revno: 0.3.985
        committer: marko
        timestamp: Fri 2008-01-04 15:25:59 +0000
        message:
          branches/zip: innodb-index.test: Test duplicate key failures for different
          indexes.
        ------------------------------------------------------------
        revno: 0.3.984
        committer: marko
        timestamp: Fri 2008-01-04 14:08:41 +0000
        message:
          branches/zip: Split the source-only configuration parameter
          buf_buddy_min_n_frames into two, also buf_buddy_max_n_frames.
          Set the default values in such a way that a strict LRU policy will apply
          for replacing compressed or uncompressed page frames in the buffer pool.
          
          These parameters have not yet been exposed to the MySQL layer.
        ------------------------------------------------------------
        revno: 0.3.983
        committer: marko
        timestamp: Fri 2008-01-04 14:01:45 +0000
        message:
          branches/zip: btr_cur_mark_extern_inherited_fields():
          Add a call to rec_offs_any_extern() as an optimization.
        ------------------------------------------------------------
        revno: 0.3.982
        committer: marko
        timestamp: Fri 2008-01-04 07:57:13 +0000
        message:
          branches/zip: innodb-index.test: Drop all created tables at the end.
        ------------------------------------------------------------
        revno: 0.3.981
        committer: marko
        timestamp: Thu 2008-01-03 12:45:17 +0000
        message:
          branches/zip: innodb-index.test: Work around MySQL bugs and bug fixes.
        ------------------------------------------------------------
        revno: 0.3.980
        committer: marko
        timestamp: Thu 2008-01-03 10:13:11 +0000
        message:
          branches/zip: page0zip.c: Add page_zip_fail() diagnostics to hopefully all
          decompression failures.
          
          page_zip_fields_decode(): Add page_zip_fail() diagnostics.
          
          page_zip_apply_log(): Remove double space in page_zip_fail() printout.
          
          page_zip_decompress_node_ptrs(), page_zip_decompress_sec(),
          page_zip_decompress_clust_ext(), page_zip_decompress_clust(),
          page_zip_decompress(): Add page_zip_fail() diagnostics for inflate()
          failures and other errors.
        ------------------------------------------------------------
        revno: 0.3.979
        committer: marko
        timestamp: Thu 2007-12-20 22:09:22 +0000
        message:
          branches/zip: Allow a build with UNIV_PAGE_SIZE set to 4096.
          
          TRX_RSEG_N_SLOTS: Make the definition dependent of UNIV_PAGE_SIZE.
          
          FSP_EXTENT_SIZE: Define as 1 megabyte, as assumed by the code elsewhere.
          
          fseg_create_general(): Add a debug assertion against page overflow.
        ------------------------------------------------------------
        revno: 0.3.978
        committer: marko
        timestamp: Thu 2007-12-20 21:36:45 +0000
        message:
          branches/zip: Fix some things to allow InnoDB to be built with smaller
          UNIV_PAGE_SIZE than the default 16384.
          
          MEM_BLOCK_STANDARD_SIZE: Cap to MEM_MAX_ALLOC_IN_BUF when UNIV_PAGE_SIZE
          is less than 16384.
          
          ha_create_func(): Invoke mem_heap_create_in_btr_search() with
          ut_min(4096, MEM_MAX_ALLOC_IN_BUF) instead of 4096.  The memory
          will be allocated from the buffer pool, and with UNIV_PAGE_SIZE
          defined to 4096, there would not be any space for the mem_heap
          data structure overhead.
        ------------------------------------------------------------
        revno: 0.3.977
        committer: vasil
        timestamp: Thu 2007-12-20 14:24:57 +0000
        message:
          branches/zip:
          
          Change the format of TRX_IDs in INFORMATION_SCHEMA tables from DEC to
          HEX.
          
          The current TRX_IDs are hard to remember and track down: 426355, 428466,
          428566, etc.
          
          In HEX:
          * there are less "digits", the strings are shorter;
          * since there are 16 instead of 10 "digits", the chance of having
            repeating ones are smaller.
          
          The above look like 68173, 689B2, 68A16 in HEX.
          
          Discussed with: Ken
          Approved by: Heikki (via IM)
        ------------------------------------------------------------
        revno: 0.3.976
        committer: vasil
        timestamp: Thu 2007-12-20 14:08:16 +0000
        message:
          branches/zip:
          
          Change the output format of transaction ids from 2 32bit numbers separated
          by space to a single hex number.
          
          Suggested by: Heikki
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.975
        committer: marko
        timestamp: Thu 2007-12-20 13:37:03 +0000
        message:
          branches/zip: trx0sys.h: Add a compile-time check that UNIV_PAGE_SIZE
          is at least 4 kilobytes.
        ------------------------------------------------------------
        revno: 0.3.974
        committer: marko
        timestamp: Thu 2007-12-20 13:23:23 +0000
        message:
          branches/zip: Allow the uncompressed page size to be settable by setting
          just one parameter: UNIV_PAGE_SIZE_SHIFT.
          
          UNIV_PAGE_SIZE, BUF_BUDDY_SIZES: Define in terms of UNIV_PAGE_SIZE_SHIFT.
          
          BUF_BUDDY_LOW_SHIFT: New macro, to simplify the definition of BUF_BUDDY_LOW
          and BUF_BUDDY_SIZES.
          
          PAGE_ZIP_DIR_SLOT_MASK: Relax the compile-time check.  This bitmask must be
          one less than a power of two, and at least UNIV_PAGE_SIZE - 1.
        ------------------------------------------------------------
        revno: 0.3.973
        committer: marko
        timestamp: Thu 2007-12-20 09:10:42 +0000
        message:
          branches/zip: Add some clarifying comments.
          
          btr_copy_blob_prefix(), btr_copy_externally_stored_field_prefix_low():
          Document the return value as "number of bytes written", not "bytes written".
          
          trx_undo_page_fetch_ext(): Explain the assertion ut_a(ext_len).
          
          row_build_index_entry(): Explain the assertion ut_a(!ext).
        ------------------------------------------------------------
        revno: 0.3.972
        committer: marko
        timestamp: Wed 2007-12-19 15:05:13 +0000
        message:
          branches/zip: Minor cleanup.
          
          row_create_index_graph_for_mysql(): Move from row0mysql.c to row0merge.c
          and rename to row_merge_create_index_graph().  Also change the function
          comment to say that the function will create and execute the query graph
          for creating the index.
          
          row_merge_create_index(): Remove redundant assignment to trx->error_state.
        ------------------------------------------------------------
        revno: 0.3.971
        committer: marko
        timestamp: Wed 2007-12-19 14:26:01 +0000
        message:
          branches/zip: Fast index creation: Lock the data dictionary only after
          acquiring the table lock.  The data dictionary should not be locked for
          long periods.  Before this change, in the worst case, the dictionary
          would be locked until the expiration of innodb_lock_wait_timeout.
          
          Virtually, transaction-level locks (locks on database objects, such
          as records and tables) have a latching order level of SYNC_USER_TRX_LOCK,
          which is above any InnoDB rw-locks or mutexes.  However, the latching
          order of SYNC_USER_TRX_LOCK is never checked, not even by UNIV_SYNC_DEBUG.
          
          ha_innobase::add_index(), ha_innobase::final_drop_index(): Invoke
          row_mysql_lock_data_dictionary(trx) only after row_merge_lock_table().
        ------------------------------------------------------------
        revno: 0.3.970
        committer: marko
        timestamp: Wed 2007-12-19 14:03:39 +0000
        message:
          branches/zip: Implement a limit for the size of undo log records.
          
          innodb-index.test: Add a test with a large number of externally stored
          columns.  Check that there may not be prefix indexes on too many columns.
          
          dict_index_too_big_for_undo(): New function: Check if the undo log may
          overflow.
          
          dict_index_add_to_cache(): Return DB_SUCCESS or DB_TOO_BIG_RECORD.
          Postpone the creation and linking of some data structures, so that
          when dict_index_too_big_for_undo() holds, it will be easier to clean up.
          Check the return status in all callers.
        ------------------------------------------------------------
        revno: 0.3.969
        committer: marko
        timestamp: Wed 2007-12-19 11:58:46 +0000
        message:
          branches/zip: dict0dict.c: Minor cleanup.
          
          dict_index_copy(): Remove the prototype, because this static function
          will be defined before its first use.  Add const qualifier to "table".
          
          dict_index_build_internal_clust(), dict_index_build_internal_non_clust():
          Add const qualifier to "table".  Correct the comment about setting indexed[].
        ------------------------------------------------------------
        revno: 0.3.968
        committer: vasil
        timestamp: Tue 2007-12-18 09:44:03 +0000
        message:
          branches/zip:
          
          Non-functional change:
          Do not include the terminating '\0' in TRX_I_S_LOCK_ID_MAX_LEN.
        ------------------------------------------------------------
        revno: 0.3.967
        committer: marko
        timestamp: Mon 2007-12-17 23:00:55 +0000
        message:
          branches/zip: Fast index creation: Clarify why lock waits may occur in
          row_merge_lock_table().
          
          ha_innobase::final_drop_index(): Set the dictionary operation mode to
          TRX_DICT_OP_INDEX_MAY_WAIT for the duration of the row_merge_lock_table()
          call.
        ------------------------------------------------------------
        revno: 0.3.966
        committer: marko
        timestamp: Mon 2007-12-17 20:51:34 +0000
        message:
          branches/zip: row_merge_lock_table(): Set a more informative trx->op_info.
        ------------------------------------------------------------
        revno: 0.3.965
        committer: marko
        timestamp: Mon 2007-12-17 15:49:59 +0000
        message:
          branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense.
          Active transactions must not switch table or index definitions on the fly,
          for several reasons, including the following:
          
           * copied indexes do not carry any history or locking information;
             that is, rollbacks, read views, and record locking would be broken
          
           * huge potential for race conditions, inconsistent reads and writes,
             loss of data, and corruption
          
          Instead of trying to track down if the table was changed during a transaction,
          acquire appropriate locks that protect the creation and dropping of indexes.
          
          innodb-index.test: Test the locking of CREATE INDEX and DROP INDEX.  Test
          that consistent reads work across dropped indexes.
          
          lock_rec_insert_check_and_lock(): Relax the lock_table_has() assertion.
          When inserting a record into an index, the table must be at least IX-locked.
          However, when an index is being created, an IS-lock on the table is
          sufficient.
          
          row_merge_lock_table(): Add the parameter enum lock_mode mode, which must
          be LOCK_X or LOCK_S.
          
          row_merge_drop_table(): Assert that n_mysql_handles_opened == 0.
          Unconditionally drop the table.
          
          ha_innobase::add_index(): Acquire an X or S lock on the table, as appropriate.
          After acquiring an X lock, assert that n_mysql_handles_opened == 1.
          Remove the comments about dropping tables in the background.
          
          ha_innobase::final_drop_index(): Acquire an X lock on the table.
          
          dict_table_t: Remove version_number, to_be_dropped, and prebuilts.
          ins_node_t: Remove table_version_number.
          
          enum lock_mode: Move the definition from lock0lock.h to lock0types.h.
          
          ROW_PREBUILT_OBSOLETE, row_update_prebuilt(), row_prebuilt_table_obsolete():
          Remove.
          
          row_prebuilt_t: Remove the declaration from row0types.h.
          
          row_drop_table_for_mysql_no_commit(): Always print a warning if a table
          was added to the background drop queue.
        ------------------------------------------------------------
        revno: 0.3.964
        committer: marko
        timestamp: Mon 2007-12-17 14:11:19 +0000
        message:
          branches/zip: lock_rec_insert_check_and_lock(): Use the cached value
          of thr_get_trx(thr).
        ------------------------------------------------------------
        revno: 0.3.963
        committer: marko
        timestamp: Mon 2007-12-17 14:06:59 +0000
        message:
          branches/zip: innobase_mysql_end_print_arbitrary_thd(): Note that
          kernel_mutex must be released before calling this function.
          
          innobase_mysql_end_print_arbitrary_thd(),
          innobase_mysql_prepare_print_arbitrary_thd(): Assert that the
          kernel_mutex is not being held by the current thread.
        ------------------------------------------------------------
        revno: 0.3.962
        committer: vasil
        timestamp: Mon 2007-12-17 10:10:39 +0000
        message:
          branches/zip:
           
          Bugfix: Lock the MySQL mutex LOCK_thread_count before accessing
          trx->mysql_query_str to avoid race conditions where MySQL sets it to
          NULL after we have checked that it is not NULL and before we access it.
           
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.961
        committer: vasil
        timestamp: Mon 2007-12-17 10:03:15 +0000
        message:
          branches/zip:
          
          Non-functional change: add "out:" comment for the return value.
        ------------------------------------------------------------
        revno: 0.3.960
        committer: vasil
        timestamp: Sun 2007-12-16 16:13:53 +0000
        message:
          branches/zip:
           
          Non-functional change:
           
          Move the prototypes of
          innobase_mysql_prepare_print_arbitrary_thd() and
          innobase_mysql_end_print_arbitrary_thd() from lock0lock.c to
          ha_prototypes.h
          
          Suggested by: Marko
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.959
        committer: marko
        timestamp: Thu 2007-12-13 13:12:20 +0000
        message:
          branches/zip: page_zip_decompress(): Implement a proper check if there
          is an overlap between BLOB pointers and the modification log or the
          zlib stream.
          
          page_zip_decompress_clust_ext(): Remove the improper check.  The
          d_stream->avail_in cannot be decremented here, because we do not know
          at this point if the record is deleted.  No space is reserved for the
          BLOB pointers in deleted records.
          
          page_zip_decompress_clust(): Check for the overlap here, right before
          copying the BLOB pointers.
          
          page_zip_decompress_clust(): Also check that the target column is long
          enough, and return FALSE instead of ut_ad() failure.
        ------------------------------------------------------------
        revno: 0.3.958
        committer: vasil
        timestamp: Thu 2007-12-13 13:04:47 +0000
        message:
          branches/zip:
          
          Add some clarification to a comment.
        ------------------------------------------------------------
        revno: 0.3.957
        committer: marko
        timestamp: Thu 2007-12-13 12:45:43 +0000
        message:
          branches/zip: page_zip_decompress_node_ptrs(): Remove the local variable
          is_clust, to avoid a warning about unused variable when the definition
          of page_zip_fail() is empty.
        ------------------------------------------------------------
        revno: 0.3.956
        committer: marko
        timestamp: Thu 2007-12-13 11:32:11 +0000
        message:
          branches/zip: page0zip.c: Add more page_zip_fail() diagnostics to
          some decompression functions.
          
          page_zip_apply_log_ext(), page_zip_apply_log(): Call page_zip_fail()
          with appropriate diagnostics before returning NULL.
          
          page_zip_decompress_node_ptrs(), page_zip_decompress_sec(),
          page_zip_decompress_clust(): When detecting that the zlib stream
          followed by the modification log overlaps the trailer, do not
          let an assertion fail, but invoke page_zip_fail() and return FALSE.
          Corrupt data should never lead into assertion failures in decompression
          functions.
        ------------------------------------------------------------
        revno: 0.3.955
        committer: marko
        timestamp: Thu 2007-12-13 10:57:30 +0000
        message:
          branches/zip: page0zip.c: Define and use the auxiliary macros
          ASSERT_ZERO() and ASSERT_ZERO_BLOB() for asserting that certain
          blocks of memory are filled with zero.
        ------------------------------------------------------------
        revno: 0.3.954
        committer: marko
        timestamp: Wed 2007-12-12 14:12:52 +0000
        message:
          branches/zip: Clarify that buf_buddy_alloc() should only be used for
          allocating compressed page frames or their control blocks.  Also note
          that if buf_buddy_alloc() is used for allocating a control block,
          it must be initialized before releasing buf_pool->mutex.
          
          buf_page_init_for_read(): When the page hash check fails after
          buf_buddy_alloc(), free the uninitialized control block before freeing
          the compressed page frame.  This fixes a potential error in
          buf_buddy_relocate_block().
        ------------------------------------------------------------
        revno: 0.3.953
        committer: marko
        timestamp: Wed 2007-12-12 13:42:03 +0000
        message:
          branches/zip: Document how the data structures of the buddy allocator
          are interfaced with the buffer pool.
        ------------------------------------------------------------
        revno: 0.3.952
        committer: marko
        timestamp: Mon 2007-12-10 12:54:53 +0000
        message:
          branches/zip: buf_page_get_gen(): Check the return status of
          buf_zip_decompress() and return NULL on decompression failure.
        ------------------------------------------------------------
        revno: 0.3.951
        committer: marko
        timestamp: Mon 2007-12-10 10:10:21 +0000
        message:
          branches/zip: Correct an off-by-one error in the debug assertion that was
          supposed to be fixed in r2163.
        ------------------------------------------------------------
        revno: 0.3.950
        committer: marko
        timestamp: Mon 2007-12-10 09:48:28 +0000
        message:
          branches/zip: buf_buddy_alloc(): Assign *lru = TRUE whenever the buffer pool
          mutex is temporarily released.
          
          buf_LRU_free_block(), buf_buddy_alloc_clean(): Add an output parameter that
          will be assigned TRUE when the buffer pool mutex is released.
          
          This bug was spotted by and fix provided by Sunny.
        ------------------------------------------------------------
        revno: 0.3.949
        committer: marko
        timestamp: Fri 2007-12-07 09:47:53 +0000
        message:
          branches/zip: rec_convert_dtuple_to_rec_comp(): Allow externally stored
          columns to be up to REC_MAX_INDEX_COL_LEN + BTR_EXTERN_FIELD_REF_SIZE
          bytes in a debug assertion.  This assertion could fail since r2159 in
          trx_undo_prev_version_build(), because the undo log records for updates
          and deletes would contain longer prefixes of externally stored columns.
          
          The assertion failure was reported by Sunny.
        ------------------------------------------------------------
        revno: 0.3.948
        committer: marko
        timestamp: Fri 2007-12-07 09:12:57 +0000
        message:
          branches/zip: dict_table_copy_types(): Initialize all fields to the SQL NULL
          value.  Document this change in behaviour, and make all callers invoke
          the function right after dtuple_create().
          
          dict_create_sys_fields_tuple(): Add a missing "break" statement to the loop
          that checks if there are any column prefixes in the index.
          
          row_get_prebuilt_insert_row(): Do not set the fields to the SQL NULL value,
          now that dict_table_copy_types() takes care of it.
        ------------------------------------------------------------
        revno: 0.3.947
        committer: marko
        timestamp: Wed 2007-12-05 14:10:15 +0000
        message:
          branches/zip: When logging updates or deletes in the undo log, store long
          enough prefixes of externally stored columns, so that purge will not have
          to dereference any BLOB pointers, which may be invalid.  This will not be
          necessary for logging inserts, because inserts are no-ops in purge, and
          the record will remain locked during transaction rollback.
          
          TODO: in dict_build_table_def_step() or dict_build_index_def_step(),
          prevent the creation of tables with too many columns for which a
          prefix index is defined.  This is because there is a size limit of undo
          log records, and for each prefix-indexed column, the log must store
          REC_MAX_INDEX_COL_LEN + BTR_EXTERN_FIELD_REF_SIZE bytes.
          
          trx_undo_page_report_insert(): Assert that the index is clustered.
          
          trx_undo_page_fetch_ext(): New function, for fetching the BLOB prefix
          in trx_undo_page_report_modify().
          
          trx_undo_page_report_modify(): Write long enough prefixes of the externally
          stored columns to the undo log.
          
          trx_undo_rec_get_partial_row(): Remove the parameter "ext".  Assert that
          the undo log contains long enough prefixes of the externally stored columns.
          
          purge_node_t: Remove the field "ext".
        ------------------------------------------------------------
        revno: 0.3.946
        committer: marko
        timestamp: Wed 2007-12-05 13:26:06 +0000
        message:
          branches/zip: row_build_index_entry(): Add assertions that prevent improper
          prefix indexes from being built on externally stored columns.
        ------------------------------------------------------------
        revno: 0.3.945
        committer: marko
        timestamp: Wed 2007-12-05 09:49:09 +0000
        message:
          branches/zip: btr_cur_pessimistic_update(), btr_cur_pessimistic_delete():
          Use rec_offs_any_extern() as a condition for freeing externally stored
          columns.  This is only a performance optimization.
        ------------------------------------------------------------
        revno: 0.3.944
        committer: marko
        timestamp: Tue 2007-12-04 08:37:43 +0000
        message:
          branches/zip: Merge r2154 from trunk:
          
          innodb.result, innodb.test: Revert the changes in r2145.
          
          The tests that were removed by MySQL
          
          ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
          
          were moved to a new test, innodb_autoinc_lock_mode_zero, which is
          kept in the MySQL BitKeeper tree.
        ------------------------------------------------------------
        revno: 0.3.943
        committer: marko
        timestamp: Mon 2007-12-03 12:16:07 +0000
        message:
          branches/zip: Fix a bug in fast index creation that was introduced in r2131
          when row_build() was changed to prefetch all externally stored column
          prefixes that occur in ordering fields of an index.
          
          row_build(): Add the parameter col_table for determining which
          externally stored columns need to be fetched.
          
          row_merge_read_clustered_index(): Pass new_table as the said parameter,
          so that newly added indexes containing column prefix indexes of externally
          stored columns will work.
        ------------------------------------------------------------
        revno: 0.3.942
        committer: marko
        timestamp: Mon 2007-12-03 10:25:20 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(): Note that the page number
          of the record containing the field reference may change.
        ------------------------------------------------------------
        revno: 0.3.941
        committer: marko
        timestamp: Fri 2007-11-30 15:32:36 +0000
        message:
          branches/zip: row_ext_cache_fill(): Add a missing "else" that should have
          been added in r2131.
        ------------------------------------------------------------
        revno: 0.3.940
        committer: marko
        timestamp: Fri 2007-11-30 12:30:21 +0000
        message:
          branches/zip: Merge 2116:2146 from trunk.
        ------------------------------------------------------------
        revno: 0.3.939
        committer: marko
        timestamp: Fri 2007-11-30 08:48:36 +0000
        message:
          branches/zip: row_ext_cache_fill(): Add an assertion that some BLOB data
          was actually fetched.  ext->len[i] == 0 is reserved to mean an uninitialized
          BLOB pointer.
        ------------------------------------------------------------
        revno: 0.3.938
        committer: vasil
        timestamp: Thu 2007-11-29 13:47:09 +0000
        message:
          branches/zip:
          
          * Change terminology:
            wait lock -> requested lock
            waited lock -> blocking lock
            new: requesting transaction (the trx what owns the requested lock)
            new: blocking transaction (the trx that owns the blocking lock)
          
          * Add transaction ids to INFORMATION_SCHEMA.INNODB_LOCK_WAITS. This is
            somewhat redundant because transaction ids can be found in INNODB_LOCKS
            (which can be joined with INNODB_LOCK_WAITS) but would help users to
            write shorter joins (one table less) in some cases where they want to
            find which transaction is blocking which.
          
          Suggested by: Ken
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.937
        committer: marko
        timestamp: Thu 2007-11-29 12:54:43 +0000
        message:
          branches/zip: row_ext_create(): Remove unused variables that were added
          in r2131.
        ------------------------------------------------------------
        revno: 0.3.936
        committer: marko
        timestamp: Thu 2007-11-29 12:52:49 +0000
        message:
          branches/zip: row_ext_create(): Remove the UNIV_INLINE that should
          have been removed in r2131.
        ------------------------------------------------------------
        revno: 0.3.935
        committer: marko
        timestamp: Thu 2007-11-29 12:47:18 +0000
        message:
          branches/zip: row_ext: Fetch the BLOB prefixes already at row_ext_create().
          Only add indexed BLOBs to row_ext.
          
          trx_undo_rec_get_partial_row(): Move the BLOB fetching to row_ext_create().
          
          row_build(): Pass only those BLOBs to row_ext_create() that are referenced by
          ordering columns of some indexes, similar to trx_undo_rec_get_partial_row().
          
          row_ext_create(): Add the parameter "tuple".  Move the implementation
          from row0ext.ic to row0ext.c.
          
          row_ext_lookup_ith(), row_ext_lookup(): Return a const pointer.  Remove
          the parameters "field" and "f_len".  Make the row_ext_t* parameter const.
          
          row_ext_t: Remove the field zip_size.
          
          field_ref_zero[]: Declare in btr0types.h instead of btr0cur.h.
          
          row_ext_lookup_low(): Rename to row_ext_cache_fill() and change the
          signature.
        ------------------------------------------------------------
        revno: 0.3.934
        committer: marko
        timestamp: Thu 2007-11-29 12:36:53 +0000
        message:
          branches/zip: Clean up after r2129:
          
          univ.i: Do not define UNIV_DEBUG, UNIV_ZIP_DEBUG.
          
          btr_cur_del_unmark_for_ibuf(): Use the same comment in both btr0cur.c and
          btr0cur.h.  Wrap long lines.
        ------------------------------------------------------------
        revno: 0.3.933
        committer: sunny
        timestamp: Thu 2007-11-29 12:23:48 +0000
        message:
          branches/zip: Fix a bug where the zipped page and the uncompressed page
          contents end up with conflicting versions of a record's state. The zipped
          page record was not being marked as "(un)deleted" because we were not
          passing the zipped page contents to the (un)delete function, which first
          (un)delete marks the uncompressed version and then based on whether
          page_zip is NULL or not (un)delete marks the record in the compressed page.
        ------------------------------------------------------------
        revno: 0.3.932
        committer: marko
        timestamp: Thu 2007-11-29 10:34:55 +0000
        message:
          branches/zip: ha_innobase::final_drop_index(): Allocate a separate transaction
          for dropping the index trees, and set the dictionary operation flag, similar
          to what ha_innobase::add_index() does.  This should ensure correct crash
          recovery.
        ------------------------------------------------------------
        revno: 0.3.931
        committer: marko
        timestamp: Thu 2007-11-29 10:07:47 +0000
        message:
          branches/zip: trx_undo_rec_get_partial_row(): Set up the row_ext cache
          only for those externally stored columns that occur in the ordering columns
          of indexes.  Prefetch the prefixes of those columns, because the clustered
          index record and the BLOBs may have been deleted by the time when the
          purge thread needs to read the BLOB prefixes.
          
          row_ext_create(): Add the debug assertion ut_ad(ut_is_2pow(zip_size)).
        ------------------------------------------------------------
        revno: 0.3.930
        committer: marko
        timestamp: Thu 2007-11-29 09:04:42 +0000
        message:
          branches/zip: Remove the warnings about pointer targets differing
          in signedness that were introduced in r2114.
          
          row_upd_index_replace_new_col_vals_index_pos(),
          row_upd_index_replace_new_col_vals(): Declare "data" as const byte*
          instead of const char*, and add casts to the dtype_get_at_most_n_mbchars()
          calls.
        ------------------------------------------------------------
        revno: 0.3.929
        committer: marko
        timestamp: Wed 2007-11-28 13:45:22 +0000
        message:
          branches/zip: Fix a bug that was introduced in r2123.
          
          buf_block_is_uncompressed(): Check that the pointer is aligned.  Use the
          C modulus operator % instead of ut_align_offset(), because sizeof(buf_block_t)
          is not guaranteed to be a power of 2.
        ------------------------------------------------------------
        revno: 0.3.928
        committer: marko
        timestamp: Wed 2007-11-28 13:09:50 +0000
        message:
          branches/zip: row_vers_impl_x_locked_off_kernel(): In follow-up to r2119,
          assert ut_a(entry) instead of playing it safe.
        ------------------------------------------------------------
        revno: 0.3.927
        committer: marko
        timestamp: Wed 2007-11-28 11:31:12 +0000
        message:
          branches/zip: buf_page_get_gen(): Note that the guessed block may also
          point to a buffer pool chunk that has been released when resizing the
          buffer pool.
          
          buf_block_is_uncompressed(): Check that the pointer is aligned.  Thanks
          to this check, it is safe to pass an arbitrary pointer as a guess
          to buf_page_get_gen().
        ------------------------------------------------------------
        revno: 0.3.926
        committer: marko
        timestamp: Wed 2007-11-28 11:22:25 +0000
        message:
          branches/zip: Minor cleanup.
          
          buf_page_get_release_on_io(): Removed this unused function.
          
          ibuf_build_entry_from_ibuf_rec(): Justify why it is not necessary to
          add system columns to the dummy table pointed to by the dummy secondary index.
          
          page_zip_rec_set_deleted(): Add a page_zip_validate() assertion.
        ------------------------------------------------------------
        revno: 0.3.925
        committer: vasil
        timestamp: Wed 2007-11-28 07:07:23 +0000
        message:
          branches/zip:
          
          Add the transaction's weight to information_schema.innodb_trx table.
          
          Suggested by: Ken
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.924
        committer: marko
        timestamp: Tue 2007-11-27 09:20:40 +0000
        message:
          branches/zip: lock_sec_rec_some_has_impl_off_kernel(): Make the function
          static.  It is only called from lock0lock.c.
        ------------------------------------------------------------
        revno: 0.3.923
        committer: marko
        timestamp: Tue 2007-11-27 09:11:45 +0000
        message:
          branches/zip: In purge, avoid dereferencing unset BLOB pointers of freshly
          inserted, uncommitted clustered index records when determining if a
          secondary index record that contains a column prefix of an externally
          stored column is referencing the clustered index record.
          
          field_ref_zero[]: A BLOB pointer full of zero, for use in comparisons.
          
          btr_copy_externally_stored_field_prefix(): Assert that the BLOB pointer is set.
          
          row_ext_lookup_ith(), row_ext_lookup(), row_ext_lookup_low(): Document
          that field_ref_zero is returned when the BLOB cannot be fetched.
          
          row_ext_lookup_low(): Return field_ref_zero and *len = 0 when the
          BLOB pointer is unset.
          
          row_build_index_entry(): Return NULL when a needed BLOB pointer cannot
          be dereferenced (row_ext_lookup returns field_ref_zero).  Check the
          return value for NULL in callers.
          
          row_vers_impl_x_locked_off_kernel(): Avoid comparisons when
          row_build_index_entry() returns NULL.
          
          row_vers_old_has_index_entry(): Ignore records for which
          row_build_index_entry() returns NULL.  The entry should never be NULL
          in rollback, but it may be NULL in purge.
          
          row_merge_buf_add(): Assert that row_ext_lookup() does not return
          field_ref_zero.  The table will be locked during index creation.
        ------------------------------------------------------------
        revno: 0.3.922
        committer: marko
        timestamp: Tue 2007-11-27 07:57:03 +0000
        message:
          branches/zip: btr_cur_pessimistic_insert(): When calling
          btr_cur_optimistic_insert(), pass big_rec to it, so that
          the field references of externally stored columns (BLOB pointers)
          will not be left uninitialized after a successful optimistic insert.
          This bug was spotted by Sunny.
        ------------------------------------------------------------
        revno: 0.3.921
        committer: vasil
        timestamp: Fri 2007-11-23 17:12:35 +0000
        message:
          branches/zip: Merge 2093:2116 from trunk.
        ------------------------------------------------------------
        revno: 0.3.920
        committer: marko
        timestamp: Fri 2007-11-23 12:51:29 +0000
        message:
          branches/zip: Correct mistakes made in r2114.
          
          row_upd_index_replace_new_col_vals(): Declare fetch_ext.
          
          row_upd_index_replace_new_col_vals_index_pos(): Add a type conversion
          to the initialization expression of fetch_ext, to avoid a warning about
          comparison between signed and unsigned.
        ------------------------------------------------------------
        revno: 0.3.919
        committer: marko
        timestamp: Fri 2007-11-23 12:40:19 +0000
        message:
          branches/zip: Fix a bug in the updates of index records that contain a
          column prefix of an externally stored column.
          
          row_upd_ext_fetch(): New function.
          
          row_upd_index_replace_new_col_vals(),
          row_upd_index_replace_new_col_vals_index_pos(): Fetch prefixes of
          externally stored columns when they are needed for column prefix
          indexes.  For memory allocation, add the parameter ext_heap.  Avoid
          repeating the inner loop after finding a  matching upd_field->field_no.
        ------------------------------------------------------------
        revno: 0.3.918
        committer: marko
        timestamp: Thu 2007-11-22 14:09:19 +0000
        message:
          branches/zip: row_ext_create(), row_ext_lookup(): Clarify that the
          column numbers are relative to the InnoDB table object, or numbers
          returned by dict_col_get_no().  This will have to be ensured in
          all calling code.
        ------------------------------------------------------------
        revno: 0.3.917
        committer: marko
        timestamp: Thu 2007-11-22 10:29:02 +0000
        message:
          branches/zip: dict_col_get_clust_pos(): Split a debug assertion, and
          make use of dict_index_is_clust().
        ------------------------------------------------------------
        revno: 0.3.916
        committer: marko
        timestamp: Thu 2007-11-22 10:22:44 +0000
        message:
          branches/zip: row_ext_create(), row_ext_lookup(): Clarify that the column
          numbers are relative to the clustered index record.
        ------------------------------------------------------------
        revno: 0.3.915
        committer: marko
        timestamp: Thu 2007-11-22 10:02:50 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(),
          btr_free_externally_stored_field(): Add some page type assertions
          that were suggested by Sunny.
        ------------------------------------------------------------
        revno: 0.3.914
        committer: vasil
        timestamp: Wed 2007-11-21 17:15:27 +0000
        message:
          branches/zip:
          
          Fix the size of the static buffer for lock_table and lock_index.
          I was not realizing that NAME_LEN contains the mbmaxlen multiplier and thus
          a quote, when converted to 2 quotes, will take 2 bytes while there are 3
          bytes reserved.
          
          Spotted by: Marko
          Pointyhat to: Vasil
        ------------------------------------------------------------
        revno: 0.3.913
        committer: vasil
        timestamp: Wed 2007-11-21 17:02:46 +0000
        message:
          branches/zip:
          
          Add C test for innobase_convert_name() in addition to the mysql-test one.
        ------------------------------------------------------------
        revno: 0.3.912
        committer: marko
        timestamp: Wed 2007-11-21 13:08:15 +0000
        message:
          branches/zip: When writing an externally stored column to the undo log,
          set the "external storage" flag.  When parsing the undo log, do not
          misinterpret a SQL NULL column for externally stored.
          
          These bugs were spotted by Heikki and Sunny.
          
          trx_undo_page_report_modify(): Set the UNIV_EXTERN_STORAGE_FIELD flag
          when needed.
          
          trx_undo_rec_get_partial_row(): Check for len == UNIV_SQL_NULL.
        ------------------------------------------------------------
        revno: 0.3.911
        committer: vasil
        timestamp: Wed 2007-11-21 12:11:04 +0000
        message:
          branches/zip:
          
          Fix a bug where the static buffer for innodb_locks.lock_table may not
          have enough space.
          
          Pointyhat to: Marko
        ------------------------------------------------------------
        revno: 0.3.910
        committer: vasil
        timestamp: Wed 2007-11-21 12:01:36 +0000
        message:
          branches/zip:
          
          Bugfix1: Set innodb_locks.lock_index to NOT NULL.
          If a column in INFORMATION_SCHEMA table has the flag
          MY_I_S_MAYBE_NULL and it is not explicitly marked as NOT NULL
          with the method ::set_notnull() then it is always rendered as
          NULL by MySQL.
          
          Bugfix2: Avoid crashes if lock_index is NULL. It is NULL for table
          level locks.
          
          Pointyhat to: Marko
        ------------------------------------------------------------
        revno: 0.3.909
        committer: vasil
        timestamp: Wed 2007-11-21 11:44:36 +0000
        message:
          branches/zip:
          
          Non-functional change:
          Fix consistency of the sizeof() operator with the rest of i_s.cc
          
          Pointyhat to: Marko
        ------------------------------------------------------------
        revno: 0.3.908
        committer: vasil
        timestamp: Wed 2007-11-21 11:23:05 +0000
        message:
          branches/zip:
          
          Move test that depends on ucs2 to a separate file that is disabled if
          ucs2 is not compiled in.
        ------------------------------------------------------------
        revno: 0.3.907
        committer: vasil
        timestamp: Wed 2007-11-21 10:47:08 +0000
        message:
          branches/zip:
          
          Move common SQL commands to an .inc file.
        ------------------------------------------------------------
        revno: 0.3.906
        committer: vasil
        timestamp: Wed 2007-11-21 10:18:22 +0000
        message:
          branches/zip:
          
          Synchronize the utf8 and ucs2 tests.
        ------------------------------------------------------------
        revno: 0.3.905
        committer: marko
        timestamp: Wed 2007-11-21 08:46:11 +0000
        message:
          branches/zip: INFORMATION_SCHEMA.INNODB_LOCKS: Quote lock_table, lock_index.
          
          innodb_information_schema.test. Add tests that display most columns from
          INFORMATION_SCHEMA.INNODB_LOCKS.  Test that quoting of table names works
          and respects SQL_MODE='ANSI_QUOTES'.
          
          innobase_print_identifier(): Remove.
          
          innobase_convert_identifier(): New function,
          based on innobase_print_identifier().
          
          innobase_convert_name(): New function, similar to ut_print_namel(), but
          using a memory buffer.
          
          ut_print_namel(): Use innobase_convert_name().
          
          fill_innodb_locks_from_cache(): Convert lock_table and lock_index by
          calling innobase_convert_name().
        ------------------------------------------------------------
        revno: 0.3.904
        committer: marko
        timestamp: Wed 2007-11-21 08:00:14 +0000
        message:
          branches/zip: ut_fold_binary(): Adjust a bogus debug assertion.
        ------------------------------------------------------------
        revno: 0.3.903
        committer: vasil
        timestamp: Wed 2007-11-21 07:38:56 +0000
        message:
          branches/zip:
          
          Convert INFORMATION_SCHEMA tables' names to upper case so that they are
          consistent with other INFORMATION_SCHEMA tables.
          
           mysql> show tables;
           +---------------------------------------+
           | Tables_in_information_schema          |
           +---------------------------------------+
           | CHARACTER_SETS                        |
           | COLLATIONS                            |
           | COLLATION_CHARACTER_SET_APPLICABILITY |
           | COLUMNS                               |
           | COLUMN_PRIVILEGES                     |
           | ENGINES                               |
           | EVENTS                                |
           | FILES                                 |
           | GLOBAL_STATUS                         |
           | GLOBAL_VARIABLES                      |
           | KEY_COLUMN_USAGE                      |
           | PARTITIONS                            |
           | PLUGINS                               |
           | PROCESSLIST                           |
           | REFERENTIAL_CONSTRAINTS               |
           | ROUTINES                              |
           | SCHEMATA                              |
           | SCHEMA_PRIVILEGES                     |
           | SESSION_STATUS                        |
           | SESSION_VARIABLES                     |
           | STATISTICS                            |
           | TABLES                                |
           | TABLE_CONSTRAINTS                     |
           | TABLE_PRIVILEGES                      |
           | TRIGGERS                              |
           | USER_PRIVILEGES                       |
           | VIEWS                                 |
           | innodb_zip_reset                      |
           | innodb_trx                            |
           | innodb_locks                          |
           | innodb_lock_waits                     |
           | innodb_zip                            |
           +---------------------------------------+
        ------------------------------------------------------------
        revno: 0.3.902
        committer: marko
        timestamp: Fri 2007-11-16 15:50:36 +0000
        message:
          branches/zip: trx_undo_rec_get_partial_row(): When reading an externally
          stored column, subtract UNIV_EXTERN_STORAGE_FIELD from the length of
          the field.
        ------------------------------------------------------------
        revno: 0.3.901
        committer: marko
        timestamp: Fri 2007-11-16 13:57:27 +0000
        message:
          branches/zip: Merge 2015:2093 from trunk.
        ------------------------------------------------------------
        revno: 0.3.900
        committer: vasil
        timestamp: Fri 2007-11-16 13:12:13 +0000
        message:
          branches/zip:
          
          Implement a limit on the memory used by the INNODB_TRX, INNODB_LOCKS and
          INNODB_LOCK_WAITS tables. The maximum allowed memory is defined with the
          macro TRX_I_S_MEM_LIMIT.
          
          Approved by: Marko (via IM)
        ------------------------------------------------------------
        revno: 0.3.899
        committer: marko
        timestamp: Thu 2007-11-15 10:56:34 +0000
        message:
          branches/zip: Introduce the function page_zip_fail_func() and
          the wrapper macro page_zip_fail() for displaying error messages.
          When the error output is enabled (at compile-time), a breakpoint
          may be set in page_zip_fail_func to easily debug all decompression
          errors in the context where they occur.
        ------------------------------------------------------------
        revno: 0.3.898
        committer: vasil
        timestamp: Tue 2007-11-13 09:31:54 +0000
        message:
          branches/zip:
          
          Remove unnecessary code. Environment variables are passed to children anyway,
          no need to export them.
          
          Approved by: Sunny (via IM)
        ------------------------------------------------------------
        revno: 0.3.897
        committer: vasil
        timestamp: Tue 2007-11-13 07:41:34 +0000
        message:
          branches/zip:
          
          Fix typos in comment.
        ------------------------------------------------------------
        revno: 0.3.896
        committer: sunny
        timestamp: Mon 2007-11-12 23:40:36 +0000
        message:
          branches/zip: Minor fix, remove the constant, calculate the length of
          string dynamically.
        ------------------------------------------------------------
        revno: 0.3.895
        committer: sunny
        timestamp: Mon 2007-11-12 23:28:59 +0000
        message:
          branches/zip: Change directory to one level up if export.sh script run from
          within the scripts/ directory, so that the relative paths work. This change
          was required because the script was moved from the top-level directory to
          its sub-directory scripts/.
        ------------------------------------------------------------
        revno: 0.3.894
        committer: sunny
        timestamp: Mon 2007-11-12 23:19:06 +0000
        message:
          branches/zip: Add plugin build scripts, move export.sh to the scripts/ directory
        ------------------------------------------------------------
        revno: 0.3.893
        committer: marko
        timestamp: Fri 2007-11-09 15:38:48 +0000
        message:
          branches/zip: btr_cur_pessimistic_insert(): For clarity,
          use return(DB_...) instead of assigning err = DB_... when possible.
        ------------------------------------------------------------
        revno: 0.3.892
        committer: marko
        timestamp: Fri 2007-11-09 15:32:37 +0000
        message:
          branches/zip: Undo r2079 and fix the cause of uninitialized data bytes
          in page_zip_decompress().
          
          page_zip_decompress_clust(), page_zip_decompress_clust_ext(): Zero-fill
          the columns DB_TRX_ID and DB_ROLL_PTR on the uncompressed page.
        ------------------------------------------------------------
        revno: 0.3.891
        committer: marko
        timestamp: Fri 2007-11-09 12:09:29 +0000
        message:
          branches/zip: page_zip_decompress(): Note that the uncompressed page
          may contain uninitialized bytes when the space of a deleted record
          is reused by a shorter record.
        ------------------------------------------------------------
        revno: 0.3.890
        committer: marko
        timestamp: Fri 2007-11-09 09:41:21 +0000
        message:
          branches/zip: Remove __attribute__((warn_unused_result)), because it does
          not work in GCC 3.3.  It was useful during the development of zip compression,
          when some placeholder code ignored the return values of some functions.
        ------------------------------------------------------------
        revno: 0.3.889
        committer: vasil
        timestamp: Wed 2007-11-07 20:38:07 +0000
        message:
          branches/zip:
          
          Add the query in information_schema.innodb_trx.trx_query. Add it even
          though it is available in information_schema.processlist.info to make
          inconsistencies between those two tables obvious.
          
          It is rather confusting to see a transaction shown in innodb_trx and
          innodb_locks that holds a lock on one table and the corresponding query
          in processlist executing INSERT on another table. We do not want users
          to contact us asking to explain that. It is caused by the fact that the
          data for innodb_* tables and processlist is fetched at different time.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.888
        committer: vasil
        timestamp: Wed 2007-11-07 16:17:52 +0000
        message:
          branches/zip:
          
          Fix comment: sync variable name in comment with the actual variable name.
        ------------------------------------------------------------
        revno: 0.3.887
        committer: vasil
        timestamp: Wed 2007-11-07 16:06:29 +0000
        message:
          branches/zip:
          
          Add mysql_addons.(cc|h) to Makefile.am, forgotten in r2072.
          
          Pointyhat to: Vasil
        ------------------------------------------------------------
        revno: 0.3.886
        committer: marko
        timestamp: Wed 2007-11-07 15:58:39 +0000
        message:
          branches/zip: Improve Valgrind instrumentation.
          
          page_zip_get_trailer_len(), page_zip_write_header(): Correct the
          UNIV_MEM_ASSERT_RW() assertions.
          
          page_zip_validate(): Read the validity bits of page, page_zip, and
          page_zip->data.
        ------------------------------------------------------------
        revno: 0.3.885
        committer: marko
        timestamp: Wed 2007-11-07 14:14:47 +0000
        message:
          branches/zip: Improve Valgrind instrumentation.
          
          page_zip_decompress(): Assert that the uncompressed page is completely defined.
          
          page_zip_validate(): Assert that the compressed and uncompressed pages are
          completely defined.  Fetch the "valid" bits, so that they can be examined
          when run under valgrind --db-attach=yes.
        ------------------------------------------------------------
        revno: 0.3.884
        committer: vasil
        timestamp: Wed 2007-11-07 14:14:33 +0000
        message:
          branches/zip:
          
          Introduce a generic soultion to the common problem that MySQL do not add
          functions needed by us in a reasonable time.
          
          Start with a function that retrieves THD::thread_id, this is needed for
          the information_schema.innodb_trx.mysql_thread_id column.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.883
        committer: marko
        timestamp: Wed 2007-11-07 13:52:52 +0000
        message:
          branches/zip: row_insert_for_mysql(), row_update_for_mysql(),
          row_prebuilt_free(): Add UNIV_UNLIKELY hints around tests for
          ROW_PREBUILT_OBSOLETE and some other tests.
        ------------------------------------------------------------
        revno: 0.3.882
        committer: marko
        timestamp: Wed 2007-11-07 13:50:53 +0000
        message:
          branches/zip: page_zip_apply_log(): Write the status bits of the record
          before invoking rec_get_offsets().
        ------------------------------------------------------------
        revno: 0.3.881
        committer: marko
        timestamp: Wed 2007-11-07 11:03:13 +0000
        message:
          branches/zip: Return a meaningful error message when refusing to create
          a compressed table in the system tablespace.
          
          db0err.h: Introduce the error code DB_TABLE_ZIP_NO_IBD.  Replace the
          #define directives with an enum, to ease future code merges.  These
          error codes are never written out to files or displayed to the user.
          Thus they need not remain constant.
          
          dict_build_table_def_step(): Return DB_TABLE_ZIP_NO_IBD instead of DB_ERROR.
          
          create_table_def(): Report ER_ILLEGAL_HA_CREATE_OPTION "KEY_BLOCK_SIZE"
          when the table creation fails with DB_TABLE_ZIP_NO_IBD.
        ------------------------------------------------------------
        revno: 0.3.880
        committer: marko
        timestamp: Wed 2007-11-07 08:44:07 +0000
        message:
          branches/zip: Deny non-superuser access to the INFORMATION_SCHEMA
          tables INNODB_ZIP and INNODB_ZIP_RESET.
        ------------------------------------------------------------
        revno: 0.3.879
        committer: vasil
        timestamp: Tue 2007-11-06 16:39:51 +0000
        message:
          branches/zip:
          
          Bugfix: In row_raw_format() - fix the return value when printing in
          hex; do not forget to count the 2 extra characters "0x" that we wrote
          at the beginning of the output.
        ------------------------------------------------------------
        revno: 0.3.878
        committer: vasil
        timestamp: Mon 2007-11-05 14:17:07 +0000
        message:
          branches/zip:
          
          Deny access to TRX INFORMATION_SCHEMA tables to non-superusers.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.877
        committer: marko
        timestamp: Mon 2007-11-05 14:08:18 +0000
        message:
          branches/zip: btr_cur_pessimistic_update(): After btr_cur_pessimistic_insert(),
          update page_zip, because rec may be on a different page.
        ------------------------------------------------------------
        revno: 0.3.876
        committer: marko
        timestamp: Mon 2007-11-05 13:14:11 +0000
        message:
          branches/zip: btr_free_externally_stored_field(): Clear rec_zip_size when
          rec == NULL.
        ------------------------------------------------------------
        revno: 0.3.875
        committer: marko
        timestamp: Mon 2007-11-05 12:12:28 +0000
        message:
          branches/zip: page_zip_compress(): Do not call deflate(&c_stream, Z_FULL_FLUSH)
          unless more than 6 bytes are available for the output.  This should remove
          the possibility that deflate() returns Z_OK without consuming all input.
        ------------------------------------------------------------
        revno: 0.3.874
        committer: marko
        timestamp: Mon 2007-11-05 10:31:41 +0000
        message:
          branches/zip: buf_page_get_gen(): Ignore "guess" if it does not point to
          buf_pool->chunks[]->blocks[].
          
          buf_block_is_uncompressed(): New function, to detect if a block points to
          buf_pool->chunks[]->blocks[].
        ------------------------------------------------------------
        revno: 0.3.873
        committer: marko
        timestamp: Mon 2007-11-05 10:17:38 +0000
        message:
          branches/zip: buf_page_hash_get(): Fix a debug assertion that was
          accidentally negated in r2043.
        ------------------------------------------------------------
        revno: 0.3.872
        committer: marko
        timestamp: Fri 2007-11-02 12:53:06 +0000
        message:
          branches/zip: trx_rollback_or_clean_all_recovered(): Acquire the
          kernel_mutex in the beginning of each loop, as was the case until r2040.
          The bug was spotted by Heikki.
        ------------------------------------------------------------
        revno: 0.3.871
        committer: marko
        timestamp: Thu 2007-11-01 20:36:51 +0000
        message:
          branches/zip: sync0sync.h: Define mutex_free as mutex0_free, because symbols
          defined in innodb_redefine.h must not be undefined.  After this change,
          innodb_redefine.h will define mutex0_free instead of mutex_free, and
          everything is fine.
        ------------------------------------------------------------
        revno: 0.3.870
        committer: marko
        timestamp: Thu 2007-11-01 15:00:44 +0000
        message:
          branches/zip: Allow the symbols in the dynamic InnoDB plugin to be
          redefined so that the dynamic plugin can replace the builtin InnoDB
          in MySQL 5.1.
          
          ha_innodb.cc, handler0alter.cc: #include "univ.i" before any other InnoDB
          header files or before defining any symbols
          
          innodb_redefine.h: New file, to contain a mapping of symbols.  The idea
          is that this file will be replaced in the build process; because this
          is a large file that can be generated automatically, it does not make sense
          to keep it under version control.
          
          univ.i: #include "innodb_redefine.h" and #define ha_innobase ha_innodb
          
          Makefile.am (ha_innodb_la_CXXFLAGS): Remove -Dha_innobase=ha_innodb
          
          NOTE: there are still some issues in the source code.  One known issue is
          the #undef mutex_free in sync0sync.h, which will cause the plugin to call the
          function mutex_free in the builtin InnoDB.  The preprocessor symbols defined
          in innodb_redefine.h must not be undefined or redefined anywhere in the code.
        ------------------------------------------------------------
        revno: 0.3.869
        committer: marko
        timestamp: Thu 2007-11-01 13:25:48 +0000
        message:
          branches/zip: Remove the parameter innodb_dynamic, and always call the
          plugin "InnoDB", not "InnoDBzip".
          
          We can disable the builtin InnoDB by mysqld --skip-innodb.  If the
          builtin InnoDB is not disabled, installing the InnoDB plugin by the same
          name will not work.
          
          innodb_plugin_init(): Ignore differences in the PLUGIN_VAR_READONLY flag.
        ------------------------------------------------------------
        revno: 0.3.868
        committer: marko
        timestamp: Thu 2007-11-01 11:44:49 +0000
        message:
          branches/zip: Remove warnings for BUILD/compile-... --warning-mode=pedantic.
          
          ha_innobase::write_row(): The printf format %p expects const void*.
          
          STRUCT_FLD: Do not use the GCC extension when __STRICT_ANSI__ is defined.
          
          row_merge_read_clustered_index(): Compound initializers must not contain
          variables.  Assign to struct fields instead.
        ------------------------------------------------------------
        revno: 0.3.867
        committer: marko
        timestamp: Wed 2007-10-31 22:02:23 +0000
        message:
          branches/zip: buf_page_init_low(): Initialize also flush_type.
        ------------------------------------------------------------
        revno: 0.3.866
        committer: marko
        timestamp: Wed 2007-10-31 20:49:16 +0000
        message:
          branches/zip: page_zip_compress(): Flag the compressed stream completely
          initialized, although Valgrind believes that some bits in the 7th or 8th
          bytes from the end are uninitialized.  (They might be, but the decompressor
          should not care about those bits after encountering the end-of-stream marker
          in the compressed bit stream.)
        ------------------------------------------------------------
        revno: 0.3.865
        committer: marko
        timestamp: Wed 2007-10-31 16:14:18 +0000
        message:
          branches/zip: Check that page_zip->data is defined, not page_zip itself.
        ------------------------------------------------------------
        revno: 0.3.864
        committer: marko
        timestamp: Wed 2007-10-31 14:27:59 +0000
        message:
          branches/zip: Improve Valgrind instrumentation.
          
          btr_cur_optimistic_insert(): On compressed tablespaces, check that both
          the compressed and the uncompressed page are completely initialized in
          the beginning of the function.
          
          page_zip_compress(): After successful compression, check that the compressed
          page is completely initialized.
        ------------------------------------------------------------
        revno: 0.3.863
        committer: marko
        timestamp: Wed 2007-10-31 13:19:38 +0000
        message:
          branches/zip: Add some more Valgrind instrumentation.
          
          page_zip_write_rec(), page_zip_write_blob_ptr(), page_zip_write_node_ptr(),
          page_zip_write_trx_id_and_roll_ptr(), page_zip_clear_rec(),
          page_zip_rec_set_deleted(), page_zip_rec_set_owned(), page_zip_dir_insert(),
          page_zip_dir_delete(), page_zip_dir_add_slot(), page_zip_reorganize(),
          page_zip_copy(), page_zip_get_trailer_len(), page_zip_write_header():
          Assert that the complete contents of the compressed page is defined.
        ------------------------------------------------------------
        revno: 0.3.862
        committer: marko
        timestamp: Wed 2007-10-31 12:42:38 +0000
        message:
          branches/zip: Improve Valgrind instrumentation.
          
          page_zip_compress(): Assert that the contents of the uncompressed page
          is entirely initialized.
          
          page_zip_decompress(): Assert that the contents of the compressed page
          is entirely initialized.  Assert that the uncompressed page is entirely
          writeable.  Flag the uncompressed page uninitialized in the beginning.
        ------------------------------------------------------------
        revno: 0.3.861
        committer: marko
        timestamp: Wed 2007-10-31 12:23:03 +0000
        message:
          branches/zip: buf_block_align(): Add missing type conversion.
        ------------------------------------------------------------
        revno: 0.3.860
        committer: marko
        timestamp: Wed 2007-10-31 10:44:15 +0000
        message:
          branches/zip: Correct the Valgrind instrumentation of r2041.
          Use UNIV_MEM_ASSERT_RW() instead of UNIV_MEM_VALID().  The latter
          flags memory defined; the former checks that it is defined.
        ------------------------------------------------------------
        revno: 0.3.859
        committer: marko
        timestamp: Wed 2007-10-31 10:40:41 +0000
        message:
          branches/zip: buf_LRU_block_remove_hashed_page(): Add some Valgrind
          instrumentation.
        ------------------------------------------------------------
        revno: 0.3.858
        committer: marko
        timestamp: Wed 2007-10-31 10:40:09 +0000
        message:
          branches/zip: buf_buddy_relocate(): The src block may be partially freed.
          Remove the Valgrind check about it.
        ------------------------------------------------------------
        revno: 0.3.857
        committer: marko
        timestamp: Wed 2007-10-31 09:00:08 +0000
        message:
          branches/zip: Improve Valgrind instrumentation.
          
          buf_buddy_relocate(): Allow the source block to contain uninitialized data.
          
          buf0buddy.c: Replace the remaining VALGRIND_CHECK_ macros with the wrappers
          defined in univ.i.
        ------------------------------------------------------------
        revno: 0.3.856
        committer: marko
        timestamp: Tue 2007-10-30 09:27:09 +0000
        message:
          branches/zip: Improve Valgrind instrumentation.
          
          buf_LRU_free_block(): Check that the block descriptor contains valid data.
          
          buf_buddy_relocate(): Check that the source block contains valid data.
          
          buf_page_get_gen(): Do not dereference bpage after calling buf_relocate().
          This avoids a bogus Valgrind warning; the memory itself was valid.
          
          buf_page_hash_get(): Check that the returned block descriptor contains
          valid data.
        ------------------------------------------------------------
        revno: 0.3.855
        committer: marko
        timestamp: Tue 2007-10-30 08:25:01 +0000
        message:
          branches/zip: trx_rollback_or_clean_all_without_sess(): Rename to
          trx_rollback_or_clean_all_recovered().
        ------------------------------------------------------------
        revno: 0.3.854
        committer: marko
        timestamp: Tue 2007-10-30 08:19:48 +0000
        message:
          branches/zip: page0zip.c: Add some Valgrind instrumentation.
        ------------------------------------------------------------
        revno: 0.3.853
        committer: marko
        timestamp: Mon 2007-10-29 15:32:19 +0000
        message:
          branches/zip: trx_rollback_or_clean_all_without_sess(): Distinguish
          recovered transactions from new ones.  Until r1594, they were distinguished
          by trx->sess == NULL.
          
          trx_t: Add the bitfield is_recovered.
          
          trx_lists_init_at_db_start(): Set trx->is_recovered.
          
          trx_create(): Initialize trx->is_recovered = 0.
          
          trx_print(): Display information about trx->is_recovered.
          
          trx_rollback_or_clean_all_without_sess(): Skip new transactions.
          Protect all accesses of trx_sys->trx_list with kernel_mutex.
          
          trx_roll_crash_recv_trx, trx_roll_max_undo_no, trx_roll_progress_printed_pct:
          Made these variables static.
        ------------------------------------------------------------
        revno: 0.3.852
        committer: marko
        timestamp: Mon 2007-10-29 15:25:46 +0000
        message:
          branches/zip: row_merge_drop_temp_indexes(): Use COMMIT WORK instead of
          trx_commit_for_mysql().
        ------------------------------------------------------------
        revno: 0.3.851
        committer: marko
        timestamp: Mon 2007-10-29 14:03:57 +0000
        message:
          branches/zip: buf_block_get_frame(): Add missing parenthesis.
        ------------------------------------------------------------
        revno: 0.3.850
        committer: vasil
        timestamp: Mon 2007-10-29 13:03:53 +0000
        message:
          branches/zip:
          
          Add innodb_locks.lock_data column and some relevant tests.
          For record locks this column represents the ordering fields of the
          locked row in a human readable, SQL-valid, format.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.849
        committer: marko
        timestamp: Fri 2007-10-26 14:05:54 +0000
        message:
          branches/zip: Minor performance tuning based on measurement data
          on mispredicted branches: opcontrol --event=BR_CND_MISSP_EXEC:45000
          
          UT_SORT_FUNCTION_BODY(): Copy the array with memcpy(3).
          
          cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(),
          cmp_debug_dtuple_rec_with_match(): Add UNIV_UNLIKELY hints around
          tests for REC_INFO_MIN_REC_FLAG.
        ------------------------------------------------------------
        revno: 0.3.848
        committer: marko
        timestamp: Fri 2007-10-26 12:34:53 +0000
        message:
          branches/zip: Reduce WAIT_FOR_READ from 20 to 5 milliseconds, to correspond
          to the time in which modern disks can serve a random disk read.
        ------------------------------------------------------------
        revno: 0.3.847
        committer: marko
        timestamp: Fri 2007-10-26 12:31:48 +0000
        message:
          branches/zip: Add UNIV_UNLIKELY hints to help branch prediction.
        ------------------------------------------------------------
        revno: 0.3.846
        committer: marko
        timestamp: Fri 2007-10-26 08:53:36 +0000
        message:
          branches/zip: buf_pool_t: Add n_pend_unzip.  Display it in buf_print().
        ------------------------------------------------------------
        revno: 0.3.845
        committer: marko
        timestamp: Fri 2007-10-26 08:48:01 +0000
        message:
          branches/zip: buf_page_get_gen(): Improve the comments about
          wait_until_unfixed.
        ------------------------------------------------------------
        revno: 0.3.844
        committer: marko
        timestamp: Thu 2007-10-25 12:54:18 +0000
        message:
          branches/zip: buf_pool_init(): Allocate buf_pool with mem_zalloc().
        ------------------------------------------------------------
        revno: 0.3.843
        committer: marko
        timestamp: Thu 2007-10-25 12:51:18 +0000
        message:
          branches/zip: buf_page_get_gen(): Reinitialize guess when re-entering the loop.
        ------------------------------------------------------------
        revno: 0.3.842
        committer: vasil
        timestamp: Thu 2007-10-25 11:45:11 +0000
        message:
          branches/zip:
          
          Change mach_read_int_type() to return an integer type (ullint) instead
          of array of bytes that later needs to be converted to an appropriate
          integer type.
          
          Approved by: Sunny
        ------------------------------------------------------------
        revno: 0.3.841
        committer: vasil
        timestamp: Thu 2007-10-25 11:21:11 +0000
        message:
          branches/zip:
           
          Make lock_get_type_str() to also indicate if it is a gap lock.
           
          Suggested by: Heikki
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.840
        committer: marko
        timestamp: Thu 2007-10-25 07:19:43 +0000
        message:
          branches/zip: Add the function dtype_is_utf8().
        ------------------------------------------------------------
        revno: 0.3.839
        committer: marko
        timestamp: Thu 2007-10-25 07:07:25 +0000
        message:
          branches/zip: Minor cleanup.
          
          log_block_calc_checksum(), log_block_get_checksum(): Add const qualifiers.
          
          log_block_calc_checksum(): Split a long expression to more readable chunks.
          Some compilers might optimize this better.
        ------------------------------------------------------------
        revno: 0.3.838
        committer: marko
        timestamp: Thu 2007-10-25 07:03:02 +0000
        message:
          branches/zip: Cast void* pointers to byte* when doing pointer arithmetics.
        ------------------------------------------------------------
        revno: 0.3.837
        committer: marko
        timestamp: Wed 2007-10-24 10:59:54 +0000
        message:
          branches/zip: Merge 1937:2015 from trunk.
        ------------------------------------------------------------
        revno: 0.3.836
        committer: marko
        timestamp: Wed 2007-10-24 07:12:11 +0000
        message:
          branches/zip: Remove some unnecessary memory references in the master thread.
          
          srv_print_thread_releases, srv_print_lock_waits, srv_print_buf_io,
          srv_print_log_io, srv_print_latch_waits: Define these variables as
          constants (FALSE), unless UNIV_DEBUG is defined.  These variables
          are never assigned to, and they are initialized to FALSE.  It could
          be useful to set them when debugging InnoDB.
          
          srv_slot_t: Fuse the fields type, in_use, suspended to a single machine word.
          
          srv_meter[], srv_meter_low_water[], srv_meter_high_water[],
          srv_meter_high_water2[], srv_meter_foreground[]: Enclose these arrays
          inside #if 0.  The arrays are essentially constants that do not affect
          the control flow.
          
          enum srv_thread_type: New enum, to replace the #defines SRV_COM, ...
          Enclose the unused values SRV_BUFFER, SRV_RECOVERY, SRV_INSERT
          inside #if 0, so that some arrays and loops can be reduced.
        ------------------------------------------------------------
        revno: 0.3.835
        committer: marko
        timestamp: Wed 2007-10-24 06:59:01 +0000
        message:
          branches/zip: row_build_index_entry(): Correct a typo made in r2012.
        ------------------------------------------------------------
        revno: 0.3.834
        committer: marko
        timestamp: Tue 2007-10-23 06:46:12 +0000
        message:
          branches/zip: Do not access the fields of dfield_t directly.
          
          dfield_dup(): New function for duplicating the data pointed to by dfield_t.
          
          dfield_set_len(), dfield_set_data(): Add Valgrind instrumentation.
        ------------------------------------------------------------
        revno: 0.3.833
        committer: marko
        timestamp: Mon 2007-10-22 10:23:13 +0000
        message:
          branches/zip: row_rec_to_index_entry_low(): Remove a bogus assertion.
        ------------------------------------------------------------
        revno: 0.3.832
        committer: marko
        timestamp: Mon 2007-10-22 09:57:43 +0000
        message:
          branches/zip: Fix bugs that were introduced in r1591.
          
          row_upd_rec_in_place(): Correct a debug assertion.
          
          row_upd_index_parse(): Initialize new_val with dfield_set_data() or
          dfield_set_null().  This ensures that new_val->ext is initialized.
        ------------------------------------------------------------
        revno: 0.3.831
        committer: marko
        timestamp: Mon 2007-10-22 08:34:12 +0000
        message:
          branches/zip: When seeking to a different B-tree page, update the cached
          value of the block that the cursor points to.
          
          row_ins_check_foreign_constraint(): Call btr_pcur_get_block() after
          row_ins_foreign_check_on_constraint(), as it may reposition the cursor
          on a different page.
          
          row_ins_scan_sec_index_for_duplicate(): Call btr_pcur_get_block() on
          every iteration of the loop.  Use do ... while instead of for (;;).
        ------------------------------------------------------------
        revno: 0.3.830
        committer: marko
        timestamp: Mon 2007-10-22 08:16:35 +0000
        message:
          branches/zip: Minor cleanup of B-tree cursor operations.
          
          btr_pcur_get_rel_pos(): Add a const qualifier.
          
          btr_pcur_get_btr_cur(), btr_pcur_get_page_cur(): btr_cur_get_page_cur():
          Define as const-preserving macros.
          
          btr_pcur_is_on_user_rec(), btr_pcur_is_after_last_on_page(),
          btr_pcur_is_before_first_on_page(): Remove the unused parameter mtr.
          Add a const qualifier.
          
          btr_pcur_move_to_next_on_page(), btr_pcur_move_to_prev_on_page():
          Remove the unused parameter mtr.
          
          page_cur_search(): Add const qualifiers.
          
          page_cur_get_page(), page_cur_is_before_first(), page_cur_is_after_last():
          Add debug assertions.
        ------------------------------------------------------------
        revno: 0.3.829
        committer: marko
        timestamp: Mon 2007-10-22 08:10:13 +0000
        message:
          branches/zip: trx_set_dict_operation(): Allow a transition from
          TRX_DICT_OP_TABLE to TRX_DICT_OP_TABLE.
        ------------------------------------------------------------
        revno: 0.3.828
        committer: marko
        timestamp: Mon 2007-10-22 07:49:54 +0000
        message:
          branches/zip: lock_sec_rec_read_check_and_lock(): Correct a typo in comment.
        ------------------------------------------------------------
        revno: 0.3.827
        committer: marko
        timestamp: Mon 2007-10-22 07:02:02 +0000
        message:
          branches/zip: trx_create(): Set trx->dict_operation directly, because
          the assertion in trx_set_dict_operation() would read uninitialized data.
          This mistake was made in r1998.
        ------------------------------------------------------------
        revno: 0.3.826
        committer: marko
        timestamp: Fri 2007-10-19 13:38:49 +0000
        message:
          branches/zip: dict_truncate_index_tree(): When the index is not found in
          the data dictionary cache, do not create the index tree.
        ------------------------------------------------------------
        revno: 0.3.825
        committer: marko
        timestamp: Fri 2007-10-19 10:52:25 +0000
        message:
          branches/zip: Introduce two new dictionary operation modes for transactions.
          
          enum trx_dict_op: dictionary operation modes
          
          trx_get_dict_operation(), trx_set_dict_operation(): Accessors for
          trx->dict_operation.
          
          lock_table_enqueue_waiting(), lock_rec_enqueue_waiting(): Do not complain
          about lock waits if the dictionary mode is TRX_DICT_OP_INDEX_MAY_WAIT.
          
          row_merge_lock_table(): Remove the work-around for avoiding the warning
          in lock_table_enqueue_waiting().
          
          trx_undo_mark_as_dict_operation(): Do not write trx->table_id to the
          undo log unless the dict_operation is TRX_DICT_OP_TABLE.
          
          ha_innobase::add_index(): Set the dict_operation mode initially to
          TRX_DICT_OP_INDEX_MAY_WAIT, then lock the table exclusively, and set the
          mode to TRX_DICT_OP_INDEX, and optionally to TRX_DICT_OP_TABLE when
          creating a temporary table.
        ------------------------------------------------------------
        revno: 0.3.824
        committer: marko
        timestamp: Fri 2007-10-19 10:30:34 +0000
        message:
          branches/zip: srv_suspend_mysql_thread(): Allow the transaction to
          hold an X-latch to the data dictionary, to avoid an assertion failure
          when a lock wait occurs in row_merge_lock_table().
        ------------------------------------------------------------
        revno: 0.3.823
        committer: marko
        timestamp: Thu 2007-10-18 12:46:14 +0000
        message:
          branches/zip: ha_innobase::add_index(): Lock the table before creating
          any indexes.  Before this fix, other transactions could see the empty indexes
          before we acquired the table lock.
        ------------------------------------------------------------
        revno: 0.3.822
        committer: marko
        timestamp: Thu 2007-10-18 09:18:18 +0000
        message:
          branches/zip: row_merge_lock_table(): Clear the trx->dict_operation flag
          for the duration of the lock_table() call in order to avoid a bogus warning.
        ------------------------------------------------------------
        revno: 0.3.821
        committer: marko
        timestamp: Thu 2007-10-18 07:12:05 +0000
        message:
          branches/zip: Remove const warnings reported by GCC 4.2.1.
          
          page_cur_set_before_first(), page_cur_set_after_last(),
          page_cur_position(): Add const qualifiers to buf_block_t and rec.
          A better solution would be to define a const_page_cur_t and a
          set of accessors, but it would lead to severe code duplication.
          
          page_rec_get_n_recs_before(): Add const qualifiers.
          
          page_dir_get_nth_slot(): Define as a const-preserving macro.
          
          page_dir_slot_get_rec(), page_dir_slot_get_n_owned(),
          page_dir_find_owner_slot(), page_check_dir(): Add const qualifiers.
          
          page_rec_get_next_low(): Add const qualifiers.
          
          page_rec_get_next_const(), page_rec_get_prev_const(): New functions,
          based on the const-less page_rec_get_next() and page_rec_get_prev().
          
          page_cur_get_page(), page_cur_get_block(), page_cur_get_page_zip(),
          page_cur_get_rec(): Define as const-preserving macros.
          
          page_cur_try_search_shortcut(), page_cur_search_with_match():
          Add const qualifiers.
          
          buf_page_get_mutex(): Add a const qualifier to buf_page_t*.
          
          rec_get_next_ptr_const(): Const variant of rec_get_next_ptr().
        ------------------------------------------------------------
        revno: 0.3.820
        committer: marko
        timestamp: Thu 2007-10-18 06:58:39 +0000
        message:
          innodb-test: Allow Innodb_buffer_pool_pages_total to be 511 or 512.
          The size of the buffer pool can be one page smaller than the requested
          size when os_mem_alloc_large() returns something that is not
          aligned by UNIV_PAGE_SIZE.  This test may still fail on systems with
          a big os_large_page_size.
        ------------------------------------------------------------
        revno: 0.3.819
        committer: vasil
        timestamp: Wed 2007-10-17 12:30:22 +0000
        message:
          branches/zip:
          
          Fix typo in comment.
        ------------------------------------------------------------
        revno: 0.3.818
        committer: marko
        timestamp: Wed 2007-10-17 12:19:35 +0000
        message:
          branches/zip: row_scan_and_check_index(): Remove the compiler warning
          that tmp_heap is possibly uninitialized.  This was introduced in r1990.
        ------------------------------------------------------------
        revno: 0.3.817
        committer: marko
        timestamp: Wed 2007-10-17 12:13:29 +0000
        message:
          branches/zip: Initialize dfield_t::ext as soon as possible.  This should
          fix the bugs introduced in r1591.
          
          row_rec_to_index_entry_low(): Clear "n_ext".  Do not allow it to be NULL.
          Add const qualifier to dict_index_t*.
          
          row_rec_to_index_entry(): Add the parameters "offsets" and "n_ext".
          
          btr_cur_optimistic_update(): Add an assertion that there are no externally
          stored columns.  Remove the unreachable call to btr_cur_unmark_extern_fields()
          and the preceding unnecessary call to rec_get_offsets().
          
          btr_push_update_extern_fields(): Remove the parameters index, offsets.
          Only report the additional externally stored columns of the update vector.
          
          row_build(), trx_undo_rec_get_partial_row(): Flag externally stored columns
          also with dfield_set_ext().
          
          rec_copy_prefix_to_dtuple(): Assert that there are no externally stored
          columns in the prefix.
          
          row_build_row_ref(): Note and assert that the index is a secondary index,
          and assert that there are no externally stored columns.
          
          row_build_row_ref_fast(): Assert that there are no externally stored columns.
          
          rec_offs_get_n_alloc(): Expose the function.
          
          row_build_row_ref_in_tuple(): Assert that there are no externally stored
          columns in a record of a secondary index.
          
          row_build_row_ref_from_row(): Assert that there are no externally stored
          columns.
          
          row_upd_check_references_constraints(): Add the parameter offsets, to
          avoid a redundant call to rec_get_offsets().
          
          row_upd_del_mark_clust_rec(): Add the parameter offsets.  Remove
          duplicated code.
          
          row_ins_index_entry_set_vals(): Copy the external storage flag.
          
          sel_pop_prefetched_row(): Assert that there are no externally stored
          columns.
          
          row_scan_and_check_index(): Copy offsets to a temporary heap across
          the invocation of row_rec_to_index_entry().
        ------------------------------------------------------------
        revno: 0.3.816
        committer: marko
        timestamp: Tue 2007-10-16 07:25:58 +0000
        message:
          branches/zip: btr_push_update_extern_fields(): Add parameter "index"
          and use it for flagging externally stored columns in the data tuple.
          The data tuple contains the same columns as the clustered index record,
          but in a different order.  This error was introduced in r1591.
          
          TODO: the assertion ut_ad(!dfield_is_ext()) may fail in
          btr_cur_pessimistic_update().
        ------------------------------------------------------------
        revno: 0.3.815
        committer: marko
        timestamp: Tue 2007-10-16 06:05:09 +0000
        message:
          branches/zip: btr_cur_mark_dtuple_inherited_extern(): Fix the loop condition
          that was broken in r1591.  Spotted by Heikki and Vasil.
        ------------------------------------------------------------
        revno: 0.3.814
        committer: marko
        timestamp: Mon 2007-10-15 11:30:38 +0000
        message:
          branches/zip: plug.in: Remove the check for aio.h and -lrt, which were
          never used.  Combine the three AC_CHECK_FUNCS tests.
        ------------------------------------------------------------
        revno: 0.3.813
        committer: marko
        timestamp: Mon 2007-10-15 11:26:58 +0000
        message:
          branches/zip: buf_chunk_init(): Note that the function does not always
          return the requested amount of memory.
        ------------------------------------------------------------
        revno: 0.3.812
        committer: marko
        timestamp: Mon 2007-10-15 11:05:40 +0000
        message:
          branches/zip: Allow a dynamically loaded InnoDB storage engine plugin
          to replace a built-in instance of InnoDB in mysqld.  This is work in
          progress, with several limitations:
          
          * Other plugins defined in the builtin InnoDB are not disabled.
            However, InnoDB in MySQL 5.1 only defines the storage engine plugin,
            no INFORMATION_SCHEMA plugins.
          
          * The global C symbols in ha_innodb.so except innodb_hton_ptr and
            builtin_innobase_plugin will have to be redefined, e.g., by objcopy.
          
          * The storage engine cannot be called "InnoDB" to avoid a conflict with
            the builtin name.  Here we call it InnoDBzip.
          
          innobase_hton_name[]: Rename to "InnoDBzip" when building a dynamic plugin.
          
          innodb_plugin_init(): New function for the dynamic plugin, to copy
          and redirect configuration parameters from the builtin InnoDB.
          
          innodb_dynamic: New configuration parameter.  This has to be added
          to the builtin InnoDB in MySQL 5.1.  Also, innodb_hton_ptr must be made
          global there.
          
          innobase_init(): Interpret the parameter innodb_dynamic.
          
          Makefile.am: Redefine class ha_innobase to ha_innodb by a preprocessor
          define.  Apparently, C++ classes cannot be easily renamed by objcopy.
        ------------------------------------------------------------
        revno: 0.3.811
        committer: marko
        timestamp: Mon 2007-10-15 08:42:35 +0000
        message:
          branches/zip: innodb-index.test: Add FORCE INDEX directives and remove
          those SELECTs whose ORDER BY cannot possibly make use of an index.
        ------------------------------------------------------------
        revno: 0.3.810
        committer: marko
        timestamp: Fri 2007-10-12 13:25:12 +0000
        message:
          branches/zip: On compressed pages, always update the insert buffer bitmap.
          Do not assume anything about the contents of the bitmap.
          
          ibuf_update_free_bits_low(): Use this function only for uncompressed pages.
          Remove the parameter zip_size.  This function avoids latching the bitmap page
          and updating the bitmap when the bits do not change.
          
          ibuf_update_free_bits_zip(): New function based on ibuf_update_free_bits_low(),
          for use on compressed pages.  Remove the parameter max_insert_size that
          was used for computing the before image of the free bits.  Always update the
          bitmap.
          
          ibuf_index_page_calc_free_zip(): New function, factored out from
          ibuf_index_page_calc_free().
          
          ibuf_update_free_bits_if_full(): Document that this function must only be
          invoked on uncompressed pages.  Add a debug assertion about this.
        ------------------------------------------------------------
        revno: 0.3.809
        committer: vasil
        timestamp: Fri 2007-10-12 11:20:13 +0000
        message:
          branches/zip:
          
          Add the proper macros for checking the correct latching order in trx
          information_schema code.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.808
        committer: marko
        timestamp: Fri 2007-10-12 11:16:20 +0000
        message:
          branches/zip: page_zip_max_ins_size(): Correct the comment of the return value.
        ------------------------------------------------------------
        revno: 0.3.807
        committer: marko
        timestamp: Fri 2007-10-12 10:48:35 +0000
        message:
          branches/zip: ibuf_insert_low(): Add the parameter entry_size in order to
          avoid repeated invocation of the costly function rec_get_converted_size().
        ------------------------------------------------------------
        revno: 0.3.806
        committer: marko
        timestamp: Fri 2007-10-12 10:45:41 +0000
        message:
          branches/zip: ibuf_index_page_calc_free(): Add const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.805
        committer: vasil
        timestamp: Fri 2007-10-12 10:20:01 +0000
        message:
          branches/zip:
          
          Fix off-by-one error in ut_raw_to_hex().
        ------------------------------------------------------------
        revno: 0.3.804
        committer: marko
        timestamp: Fri 2007-10-12 08:38:49 +0000
        message:
          branches/zip: Improve diagnostic output in ibuf_insert_to_index_page()
          and add some debug assertions.
        ------------------------------------------------------------
        revno: 0.3.803
        committer: marko
        timestamp: Fri 2007-10-12 08:37:27 +0000
        message:
          branches/zip: ut_raw_to_hex(): Fix a compiler warning that was introduced
          in r1960.
        ------------------------------------------------------------
        revno: 0.3.802
        committer: vasil
        timestamp: Fri 2007-10-12 07:58:28 +0000
        message:
          branches/zip:
          
          Non-functional change: add a missed space in the output message.
        ------------------------------------------------------------
        revno: 0.3.801
        committer: vasil
        timestamp: Thu 2007-10-11 11:54:51 +0000
        message:
          branches/zip:
          
          Non-functional change: fix compiler warning:
          
          buf0buf.ic:637: warning: assignment discards qualifiers from pointer target type
        ------------------------------------------------------------
        revno: 0.3.800
        committer: vasil
        timestamp: Thu 2007-10-11 10:45:57 +0000
        message:
          branches/zip:
          
          Non-functional change to improve readability.
        ------------------------------------------------------------
        revno: 0.3.799
        committer: vasil
        timestamp: Wed 2007-10-10 16:35:05 +0000
        message:
          branches/zip:
           
          Add ut_raw_to_hex() function to convert a raw binary strings to hex.
          This is a monstrous, fine-tuned implementation.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.798
        committer: marko
        timestamp: Wed 2007-10-10 11:39:26 +0000
        message:
          branches/zip: row_ins_foreign_report_add_err(): Note that the dtuple_print()
          call may display uninitialized values of DB_TRX_ID and DB_ROLL_PTR.
        ------------------------------------------------------------
        revno: 0.3.797
        committer: marko
        timestamp: Mon 2007-10-08 12:16:32 +0000
        message:
          branches/zip: innodb-index.result: Adapt the results to a patch from MySQL.
          Unfortunately, the patch seems to prevent MySQL from utilizing secondary
          indexes in the ORDER BY clauses.  Thus, the test no longer checks if newly
          created indexes are well-formed.
          
          ChangeSet@1.2528.98.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.
        ------------------------------------------------------------
        revno: 0.3.796
        committer: vasil
        timestamp: Mon 2007-10-08 10:46:26 +0000
        message:
          branches/zip:
          
          Add diagnostic function ha_storage_get_size() to retrieve the amount of
          memory used by a ha_storage_t object.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.795
        committer: marko
        timestamp: Fri 2007-10-05 11:33:19 +0000
        message:
          branches/zip: page_mem_alloc_free(): Fix the debug assertion that was
          accidentally broken in r1939.  It failed when next_rec == NULL.
        ------------------------------------------------------------
        revno: 0.3.794
        committer: marko
        timestamp: Fri 2007-10-05 11:22:23 +0000
        message:
          branches/zip: Correct the Valgrind instrumentation that was added in r1947.
        ------------------------------------------------------------
        revno: 0.3.793
        committer: marko
        timestamp: Fri 2007-10-05 10:59:34 +0000
        message:
          branches/zip: i_s.cc: Add missing #include "buf0buf.h" that should have
          been added in r1943.  This is needed for building a noninlined version.
        ------------------------------------------------------------
        revno: 0.3.792
        committer: marko
        timestamp: Fri 2007-10-05 09:58:24 +0000
        message:
          branches/zip: dtuple_convert_big_rec(): Do not flag the extern field
          references uninitialized, because it causes bogus warnings since r1947.
        ------------------------------------------------------------
        revno: 0.3.791
        committer: marko
        timestamp: Fri 2007-10-05 08:53:28 +0000
        message:
          branches/zip: Add some Valgrind instrumentation.
          
          dtuple_validate(): Detect uninitialized data.
          
          page_cur_insert_rec_low(), page_cur_insert_rec_zip(): Assert that the
          record being inserted is valid before and after insertion.
        ------------------------------------------------------------
        revno: 0.3.790
        committer: marko
        timestamp: Fri 2007-10-05 08:39:35 +0000
        message:
          branches/zip: innodb.test: Fix the result, now that fast index creation
          reports duplicate key values.  The reported value may depend on the
          size of the main-memory merge sort buffer (row_merge_block_t).
        ------------------------------------------------------------
        revno: 0.3.789
        committer: marko
        timestamp: Fri 2007-10-05 06:23:37 +0000
        message:
          branches/zip: Use static linkage for row_ins().
        ------------------------------------------------------------
        revno: 0.3.788
        committer: marko
        timestamp: Thu 2007-10-04 08:33:25 +0000
        message:
          branches/zip: Add DBUG_ASSERT(hton == innodb_hton_ptr) to various functions.
        ------------------------------------------------------------
        revno: 0.3.787
        committer: marko
        timestamp: Wed 2007-10-03 14:00:54 +0000
        message:
          branches/zip: Move the implementation of the INFORMATION_SCHEMA tables
          INNODB_ZIP and INNODB_ZIP_RESET from ha_innodb.cc to i_s.cc.
          
          plugin_author, END_OF_ST_FIELD_INFO, i_s_info: New common constants.
          
          trx_i_s_common_deinit(): Renamed to i_s_common_deinit().
        ------------------------------------------------------------
        revno: 0.3.786
        committer: marko
        timestamp: Wed 2007-10-03 13:48:17 +0000
        message:
          branches/zip: Initialize also the newly added field open_method
          in ST_FIELD_INFO.
        ------------------------------------------------------------
        revno: 0.3.785
        committer: marko
        timestamp: Wed 2007-10-03 12:36:59 +0000
        message:
          branches/zip: Silence some more GCC 4.2.1 warnings.
        ------------------------------------------------------------
        revno: 0.3.784
        committer: marko
        timestamp: Wed 2007-10-03 12:27:06 +0000
        message:
          branches/zip: page_rec_get_next_low(): Fix a bug that was made in r952.
        ------------------------------------------------------------
        revno: 0.3.783
        committer: marko
        timestamp: Wed 2007-10-03 12:22:29 +0000
        message:
          branches/zip: Silence most GCC 4.2.1 warnings about const pointers.
          For some reason, GCC 4.2.1 ignores casts (for removing constness)
          in calls to inline functions.
          
          page_align(), ut_align_down(): Make the parameter const void*, but still
          return a non-const pointer.  This is ugly, but these functions cannot be
          replaced with a const-preserving macro in a portable way, given that
          the pointer argument is not always pointing to bytes.
          
          buf_block_get_page_zip(): Implement as a const-preserving macro.
          
          buf_frame_get_page_zip(), buf_block_align(): Add const qualifiers.
          
          lock_rec_get_prev(): Silence GCC 4.2.1 warnings.
          
          mlog_write_initial_log_record(), mlog_write_initial_log_record_fast(),
          mtr_memo_contains(): Add const qualifier to the pointer.
          
          page_header_get_ptr(): Rewrite as page_header_get_offs(), and
          implement as a macro that calls this function.
        ------------------------------------------------------------
        revno: 0.3.782
        committer: marko
        timestamp: Wed 2007-10-03 08:44:50 +0000
        message:
          branches/zip: Merge 1918:1937 from trunk.
        ------------------------------------------------------------
        revno: 0.3.781
        committer: marko
        timestamp: Mon 2007-10-01 08:00:24 +0000
        message:
          branches/zip: dict_index_copy_rec_order_prefix(): Add const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.780
        committer: marko
        timestamp: Mon 2007-10-01 07:45:02 +0000
        message:
          branches/zip: btr_search_validate(): Use buf_block_hash_get().
        ------------------------------------------------------------
        revno: 0.3.779
        committer: marko
        timestamp: Mon 2007-10-01 07:32:45 +0000
        message:
          branches/zip: Optimize buf_page_try_get_func().
          
          buf_block_hash_get(): New function, similar to buf_page_hash_get().
          
          buf_page_get_block(): Remove the const qualifiers.  This is a low-level
          function, and the operations on block->mutex are non-const.
          
          buf_page_try_get_func(): Implement with lower-level predicates, somewhat
          similar to buf_page_get_known_nowait().
          
          lock_rec_print(): Remove the unused variable zip_size and the
          call to fil_space_get_zip_size().  Adapt to buf_page_try_get() returning
          a const pointer.
        ------------------------------------------------------------
        revno: 0.3.778
        committer: marko
        timestamp: Mon 2007-10-01 07:25:02 +0000
        message:
          branches/zip: Introduce the function buf_block_fix_dec(), similar to
          buf_block_fix_inc(), and use it.
        ------------------------------------------------------------
        revno: 0.3.777
        committer: vasil
        timestamp: Fri 2007-09-28 14:07:02 +0000
        message:
          branches/zip:
          
          Remove bogus comment from ha_storage_empty().
        ------------------------------------------------------------
        revno: 0.3.776
        committer: vasil
        timestamp: Fri 2007-09-28 13:40:12 +0000
        message:
          branches/zip:
          
          Add const qualifier to the value returned by ha_storage_put().
          It must not be changed as this will invalidate the hash.
        ------------------------------------------------------------
        revno: 0.3.775
        committer: marko
        timestamp: Fri 2007-09-28 12:04:04 +0000
        message:
          branches/zip: Add the function buf_page_get_block(), for converting
          from buf_page_t* to buf_block_t*.
          
          buf_page_can_relocate(): Replace the incorrect __attribute__((const))
          with __attribute__((pure)).
        ------------------------------------------------------------
        revno: 0.3.774
        committer: marko
        timestamp: Fri 2007-09-28 10:44:20 +0000
        message:
          branches/zip: Fix some link errors.
          
          ha_innobase::update_thd(void): New function, to call the inline function
          ha_innobase::update_thd(THD*).
          
          check_trx_exists(): Make static.  handler0alter.cc does not need to call
          this function.
        ------------------------------------------------------------
        revno: 0.3.773
        committer: marko
        timestamp: Fri 2007-09-28 07:05:57 +0000
        message:
          branches/zip: Define the macro rec_offs_init() and use it for initializing
          offsets_[] arrays, as suggested by Vasil.
          
          rec_offs_set_n_alloc(): Declare as a public function.  Assert that
          n_alloc > REC_OFFS_HEADER_SIZE.
          
          rec_offs_get_n_alloc(): Assert that n_alloc > REC_OFFS_HEADER_SIZE.
        ------------------------------------------------------------
        revno: 0.3.772
        committer: marko
        timestamp: Fri 2007-09-28 06:55:26 +0000
        message:
          branches/zip: sync_thread_add_level(): Reduce code duplication in
          the sync_thread_levels_g() check, so that it will be easier to add
          new sync levels.
        ------------------------------------------------------------
        revno: 0.3.771
        committer: marko
        timestamp: Fri 2007-09-28 06:26:21 +0000
        message:
          branches/zip: Define buf_block_get_frame() as a const-preserving macro.
        ------------------------------------------------------------
        revno: 0.3.770
        committer: marko
        timestamp: Fri 2007-09-28 06:16:20 +0000
        message:
          branches/zip: Merge 1894:1918 from trunk.
        ------------------------------------------------------------
        revno: 0.3.769
        committer: vasil
        timestamp: Fri 2007-09-28 04:58:16 +0000
        message:
          branches/zip:
          
          Fix compilation warning:
          
          can_cache_be_updated(): Remove const qualifier because this function needs
          to call rw_lock_own().
        ------------------------------------------------------------
        revno: 0.3.768
        committer: marko
        timestamp: Thu 2007-09-27 18:16:39 +0000
        message:
          branches/zip: innobase_col_to_mysql(): Replace the undefined variable "templ"
          with "col" in two debug assertions.  This mistake was made in r1910.
        ------------------------------------------------------------
        revno: 0.3.767
        committer: vasil
        timestamp: Thu 2007-09-27 15:15:51 +0000
        message:
          branches/zip:
          
          Fix a warning produced when UNIV_DEBUG is defined.
        ------------------------------------------------------------
        revno: 0.3.766
        committer: vasil
        timestamp: Thu 2007-09-27 14:35:18 +0000
        message:
          branches/zip:
          
          Move part of the code from lock_rec_print() in a separate function
          buf_page_try_get() because the same functionality is needed in
          INFORMATION SCHEMA code.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.765
        committer: vasil
        timestamp: Thu 2007-09-27 13:54:21 +0000
        message:
          branches/zip:
          
          Add auxiliary function lock_rec_get_index() to retrieve the index on
          which the lock is.
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.764
        committer: vasil
        timestamp: Thu 2007-09-27 13:52:47 +0000
        message:
          branches/zip:
          
          Fix a bug where the condition (prtype & DATA_ROW_ID) is unexpectedly
          always false becasue DATA_ROW_ID is 0.
          
          Use a switch instead of if-else in order to avoid repeating
          (prtype & DATA_SYS_PRTYPE_MASK).
          
          Approved by: Heikki
        ------------------------------------------------------------
        revno: 0.3.763
        committer: marko
        timestamp: Thu 2007-09-27 11:17:45 +0000
        message:
          branches/zip: Merge 1862:1894 from trunk, except 1866.
        ------------------------------------------------------------
        revno: 0.3.762
        committer: marko
        timestamp: Thu 2007-09-27 11:03:36 +0000
        message:
          branches/zip: Correctly convert InnoDB records to MySQL table->record[0].
          
          innobase_col_to_mysql(): New function, adapted from
          row_sel_field_store_in_mysql_format().
          
          innobase_rec_to_mysql(): Correct the function comment, which was still
          saying "clustered index record", although we can convert any record.
          Make use of innobase_col_to_mysql().  Always call field->reset(),
          so that innobase_col_to_mysql() will not have to pad anything.
        ------------------------------------------------------------
        revno: 0.3.761
        committer: marko
        timestamp: Thu 2007-09-27 10:59:54 +0000
        message:
          branches/zip: row_mysql_store_blob_ref(): Change the type of the parameter
          "data" from byte* to const void*.
        ------------------------------------------------------------
        revno: 0.3.760
        committer: marko
        timestamp: Thu 2007-09-27 09:05:05 +0000
        message:
          branches/zip: row_sel_field_store_in_mysql_format(): Replace
          if-else with switch.
        ------------------------------------------------------------
        revno: 0.3.759
        committer: marko
        timestamp: Thu 2007-09-27 08:56:33 +0000
        message:
          branches/zip: Remove the unused variable row_mysql_identically_false.
        ------------------------------------------------------------
        revno: 0.3.758
        committer: marko
        timestamp: Thu 2007-09-27 08:28:25 +0000
        message:
          branches/zip: Simplify the reporting of duplicate key values.
          Since r1905, innobase_rec_to_mysql() does not require a clustered index record.
          
          row_merge_dup_t: Remove old_table.
          
          row_merge_dup_report(): Do not fetch the clustered index record.  Simply
          convert the tuple by innobase_rec_to_mysql().
          
          row_merge_blocks(), row_merge(), row_merge_sort(): Add a TABLE* parameter
          for reporting duplicate key values during file sort.
          
          row_merge_read_clustered_index(): Replace UNIV_PAGE_SIZE with the more
          appropriate sizeof(mrec_buf_t).
        ------------------------------------------------------------
        revno: 0.3.757
        committer: marko
        timestamp: Thu 2007-09-27 08:19:38 +0000
        message:
          branches/zip: innobase_rec_to_mysql(): Allow "index" to be any index,
          clustered or secondary.  Remove the rec_offs_validate() assertion, because
          the function may be passed a mrec_t* that would fail the check.
        ------------------------------------------------------------
        revno: 0.3.756
        committer: marko
        timestamp: Thu 2007-09-27 06:13:33 +0000
        message:
          branches/zip: Double the size of mrec_buf_t to UNIV_PAGE_SIZE.
          This should have been done in r1903, where the minimum size of
          row_merge_block_t was noted to be UNIV_PAGE_SIZE.
        ------------------------------------------------------------
        revno: 0.3.755
        committer: marko
        timestamp: Wed 2007-09-26 13:52:08 +0000
        message:
          branches/zip: Document the minimum size of row_merge_block_t as UNIV_PAGE_SIZE.
          
          row_merge_buf_add(): Add ut_ad(data_size < sizeof(row_merge_block_t))
          and document why it may fail if sizeof row_merge_block_t < UNIV_PAGE_SIZE.
        ------------------------------------------------------------
        revno: 0.3.754
        committer: marko
        timestamp: Wed 2007-09-26 13:47:32 +0000
        message:
          branches/zip: row_merge_build_indexes(): Call innobase_rec_reset() only once.
          
          row_merge_dup_report(): Do not call innobase_rec_reset().
        ------------------------------------------------------------
        revno: 0.3.753
        committer: marko
        timestamp: Wed 2007-09-26 12:07:07 +0000
        message:
          branches/zip: Clean up some non-inlined functions.
          
          dtuple_create_for_mysql(), dtuple_free_for_mysql(): Remove.
          
          ha_innobase::records_in_range(): Use mem_heap_create(), mem_heap_free(),
          and dtuple_create() instead of the removed functions above.  Since r1587,
          InnoDB C++ functions can invoke inlined C functions.
        ------------------------------------------------------------
        revno: 0.3.752
        committer: marko
        timestamp: Wed 2007-09-26 11:56:26 +0000
        message:
          branches/zip: Implement the reporting of duplicate key values to MySQL.
          
          innobase_rec_to_mysql(): New function, for converting an InnoDB clustered
          index record to MySQL table->record[0].  TODO: convert integer fields.
          Currently, integer fields are in big-endian byte order instead of
          host byte order, and signed integer fields are offset by 0x80000000.
          
          innobase_rec_reset(): New function, for resetting table->record[0].
          
          row_merge_build_indexes(): Add the parameter TABLE* table (the MySQL table
          handle) for reporting duplicate key values.
          
          dtuple_from_fields(): New function, to convert an array of dfield_t* to
          dtuple_t.
          
          dtuple_get_n_ext(): New function, to compute the number of externally stored
          fields.
          
          row_merge_dup_t: Structure for counting and reporting duplicate records.
          
          row_merge_dup_report(): Function for counting and reporting duplicate records.
          
          row_merge_tuple_cmp(), row_merge_tuple_sort(): Replace the ulint* n_dup
          parameter with row_merge_dup_t* dup.
          
          row_merge_buf_sort(): Add the parameter row_merge_dup_t* dup, which is
          NULL when sorting a non-unique index.
          
          row_merge_buf_write(), row_merge_heap_create(), row_merge_read_rec(),
          row_merge_cmp(), row_merge_read_clustered_index(), row_merge_blocks(),
          row_merge(), row_merge_sort(): Add const qualifiers.
          
          row_merge_read_clustered_index(): Use a common error handling branch err_exit.
          Invoke row_merge_buf_sort() differently on unique indexes.
          
          row_merge_blocks(): note TODO: We could invoke innobase_rec_to_mysql()
          to report duplicate key values when creating a clustered index.
        ------------------------------------------------------------
        revno: 0.3.751
        committer: marko
        timestamp: Wed 2007-09-26 09:59:17 +0000
        message:
          branches/zip: Minor cleanup.
          
          dict_find_index_by_max_id(): Rename this static function to its
          only caller, dict_table_get_index_by_max_id().
          
          dict_table_get_index_by_max_id(): Copy the function comment from
          dict_find_index_by_max_id().
        ------------------------------------------------------------
        revno: 0.3.750
        committer: marko
        timestamp: Wed 2007-09-26 09:12:23 +0000
        message:
          branches/zip: Add some const qualifiers to input parameters.
          
          rec_get_converted_size_comp(), rec_convert_dtuple_to_rec_comp(),
          rec_convert_dtuple_to_rec_new(), rec_convert_dtuple_to_rec(): Add a
          const qualifier to dict_index_t*.
          
          row_search_on_row_ref(): Add const qualifiers to the dict_table_t*
          and dtuple_t* parameters.  Note that pcur is an "out" parameter
          and mtr is "in/out".
        ------------------------------------------------------------
        revno: 0.3.749
        committer: marko
        timestamp: Wed 2007-09-26 07:45:08 +0000
        message:
          branches/zip: Minor cleanup.
          
          row_build_row_ref_fast(): Note that "ref" is an in/out parameter.
          
          row_build_row_ref_from_row(): Add const qualifiers to all "in" parameters.
        ------------------------------------------------------------
        revno: 0.3.748
        committer: marko
        timestamp: Wed 2007-09-26 06:37:17 +0000
        message:
          branches/zip: Minor cleanup.
          
          dtuple_create(): Simplify a pointer expression.  Flag the fields uninitialized
          after initializing them in the debug version.
          
          dtuple_t: Only declare magic_n if UNIV_DEBUG is defined.  The field is
          not assigned to nor tested unless UNIV_DEBUG is defined.
        ------------------------------------------------------------
        revno: 0.3.747
        committer: marko
        timestamp: Tue 2007-09-25 07:20:56 +0000
        message:
          branches/zip: row_build_row_ref_in_tuple(): Add the parameter "offsets",
          to avoid a rec_get_offsets() call.  Add some const qualifiers.
          
          row_sel_get_clust_rec_for_mysql(): Note that "offsets" will also be
          an input parameter.
        ------------------------------------------------------------
        revno: 0.3.746
        committer: marko
        timestamp: Mon 2007-09-24 13:29:18 +0000
        message:
          branches/zip: Add some const qualifiers or in/out comments to the
          dict_index_t* and dict_table_t* parameters of some functions.
        ------------------------------------------------------------
        revno: 0.3.745
        committer: vasil
        timestamp: Mon 2007-09-24 12:25:06 +0000
        message:
          branches/zip:
          
          Copy any data (currently table name and table index) that may be
          destroyed after releasing the kernel mutex into internal cache's
          storage.
          
          This is done in efficient manner using ha_storage type and a given
          string is copied only once into the cache's storage. Later additions of
          the same string use the already stored string, thus allocating memory
          only once per unique string.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.744
        committer: vasil
        timestamp: Mon 2007-09-24 12:21:29 +0000
        message:
          branches/zip:
          
          Add a type that stores chunks of data in its own storage and avoids
          duplicates. Supported methods:
          
          ha_storage_create()
          Allocates new storage object.
          
          ha_storage_put()
          Copies a given data chunk into the storage and returns pointer to the
          copy. If the data chunk is already present, a pointer to the existing
          object is returned and the given data chunk is not copied.
          
          ha_storage_empty()
          Clears (empties) the storage from all data chunks that are stored in it.
          
          ha_storage_free()
          Destroys a storage object. Opposite to ha_storage_create().
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.743
        committer: marko
        timestamp: Mon 2007-09-24 11:58:07 +0000
        message:
          branches/zip: Add const qualifiers to the dict_index_t* parameters of
          rec_get_n_fields(), rec_offs_validate(), and rec_offs_make_valid().
        ------------------------------------------------------------
        revno: 0.3.742
        committer: marko
        timestamp: Mon 2007-09-24 08:52:15 +0000
        message:
          branches/zip: Restore the size of row_merge_block_t to 1048576 bytes.
          This was inadvertently reduced to 16384 bytes in r1861.  For testing,
          this can be set as low as UNIV_PAGE_SIZE.
        ------------------------------------------------------------
        revno: 0.3.741
        committer: marko
        timestamp: Mon 2007-09-24 08:46:13 +0000
        message:
          branches/zip: Correct the bug mentioned in r1872.
          
          row_merge(): Add the assertion ut_ad(half > 0).
          
          row_merge_sort(): Compute the half of the merge file correctly.  The
          previous implementation used truncating division, which may result in
          loss of records when the file size in blocks is not a power of 2.
        ------------------------------------------------------------
        revno: 0.3.740
        committer: vasil
        timestamp: Sat 2007-09-22 09:18:59 +0000
        message:
          branches/zip:
          
          Non-functional: put the code that clears the IS cache into a separate
          function.
        ------------------------------------------------------------
        revno: 0.3.739
        committer: vasil
        timestamp: Sat 2007-09-22 09:03:29 +0000
        message:
          branches/zip:
          
          Cosmetic: initialize the members of the cache in the same order as
          they are defined in the structure.
        ------------------------------------------------------------
        revno: 0.3.738
        committer: vasil
        timestamp: Sat 2007-09-22 08:36:59 +0000
        message:
          branches/zip:
          
          Make comment more clear (hopefully).
        ------------------------------------------------------------
        revno: 0.3.737
        committer: vasil
        timestamp: Sat 2007-09-22 08:34:26 +0000
        message:
          branches/zip:
          
          Use the newly introduced mem_alloc2() to use the memory that has been
          allocated in addition to the requested memory. This is done in order to
          avoid wasting memory.
          
          Do not calculate the sizes and offsets of the chunks in advance in
          table_cache_init() because it is unknown how much bytes will actually
          be allocated by mem_alloc2(). Rather calculate these on the run: after
          each chunk is allocated set its size and the offset of the next chunk.
          
          Similar patch approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.736
        committer: marko
        timestamp: Fri 2007-09-21 14:33:49 +0000
        message:
          branches/zip: row_merge_read_clustered_index(): After writing out the
          merge buffer, write the next record to the beginning of the emptied buffer.
          This fixes one of the bugs mentioned in r1872.
        ------------------------------------------------------------
        revno: 0.3.735
        committer: marko
        timestamp: Fri 2007-09-21 13:05:51 +0000
        message:
          branches/zip: Fix a bug in the merge sort in fast index creation.
          Some bug still remains, because innodb-index.test will lose some
          records from the clustered index after add primary key (a,b(255),c(255))
          when row_merge_block_t is reduced to 8192 bytes.
          
          row_merge(): Add the parameter "half".  Add some Valgrind instrumentation.
          Note that either stream can end before the other one.
          
          row_merge_sort(): Calculate "half" for row_merge().
        ------------------------------------------------------------
        revno: 0.3.734
        committer: marko
        timestamp: Fri 2007-09-21 12:45:46 +0000
        message:
          branches/zip: Reduce internal memory fragmentation.
          
          mem_alloc2(): New macro.  This is a variant of mem_alloc() that
          returns the allocated size, which is equal to or greater than
          the requested size.
          
          mem_alloc_func(): Add the output parameter *size for the allocated size.
          When it is set, adjust the parameter passed to mem_heap_alloc().
          
          rec_copy_prefix_to_buf_old(), rec_copy_prefix_to_buf(): Use mem_alloc2()
          instead of mem_alloc().
        ------------------------------------------------------------
        revno: 0.3.733
        committer: marko
        timestamp: Fri 2007-09-21 11:44:57 +0000
        message:
          branches/zip: Add more details to the debug printout enabled by
          row_merge_print_read and row_merge_print_write.
        ------------------------------------------------------------
        revno: 0.3.732
        committer: marko
        timestamp: Fri 2007-09-21 10:22:58 +0000
        message:
          branches/zip: When creating a memory heap, set the block size to what
          was actually obtained from the buddy allocator.  This should avoid some
          internal memory fragmentation in mem_heap_create() and mem_heap_alloc().
          
          mem_area_alloc(): Change the in parameter size to an in/out parameter.
          Adjust the size based on what was obtained from pool->free_list[].
          
          mem_heap_create_block(): Adjust block->len to what was obtained from
          mem_area_alloc().
        ------------------------------------------------------------
        revno: 0.3.731
        committer: marko
        timestamp: Fri 2007-09-21 10:00:00 +0000
        message:
          branches/zip: innodb-index.test: Add yet another CHECK TABLE and add the
          column d to two SELECT FROM t1.
        ------------------------------------------------------------
        revno: 0.3.730
        committer: marko
        timestamp: Fri 2007-09-21 08:07:58 +0000
        message:
          branches/zip: Add diagnostic printout.
          
          rec_print_comp(): New function, sliced from rec_print_new().
          
          rec_print_old(), rec_print_comp(): Print the untruncated length of the column.
          
          row_merge_print_read, row_merge_print_write, row_merge_print_cmp:
          New flags, to enable debug printout in UNIV_DEBUG builds.
          
          row_merge_tuple_print(): New function for UNIV_DEBUG builds.
          
          row_merge_read_rec(): Obey row_merge_print_read.
          
          row_merge_buf_write(), row_merge_write_rec_low(),
          row_merge_write_eof(): Obey row_merge_print_write.
          
          row_merge_cmp(): Obey row_merge_print_cmp.
        ------------------------------------------------------------
        revno: 0.3.729
        committer: marko
        timestamp: Thu 2007-09-20 12:20:17 +0000
        message:
          branches/zip: Improve Valgrind instrumentation of the file-based merge sort
          in fast index creation.
          
          row_merge_write_eof(), row_merge_buf_write(): When UNIV_DEBUG_VALGRIND
          is defined, fill the rest of the block (after the end-of-block marker)
          with 0xff.
        ------------------------------------------------------------
        revno: 0.3.728
        committer: vasil
        timestamp: Thu 2007-09-20 11:23:44 +0000
        message:
          Implement INFORMATION_SCHEMA tables innodb_trx, innodb_locks,
          innodb_lock_waits. See
          https://svn.innodb.com/innobase/InformationSchema/TransactionsAndLocks
          for design notes.
          
          Things that need to be resolved before this goes live:
          * MySQL must add thd_get_thread_id() function to their code
            http://bugs.mysql.com/30930
          * Allocate memory from mem_heap instead of using mem_alloc()
          * Copy table name and index name into the cache because they may be
            freed later which will result in referencing freed memory
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.727
        committer: marko
        timestamp: Thu 2007-09-20 08:36:22 +0000
        message:
          branches/zip: Merge 1830:1862 from trunk.
        ------------------------------------------------------------
        revno: 0.3.726
        committer: marko
        timestamp: Wed 2007-09-19 13:52:43 +0000
        message:
          branches/zip: Improve Valgrind instrumentation in the merge block I/O
          of fast index creation.
        ------------------------------------------------------------
        revno: 0.3.725
        committer: marko
        timestamp: Wed 2007-09-19 11:40:51 +0000
        message:
          branches/zip: Fix some bugs in file-based merge sort.
          
          row_merge_read_rec(): Correct a typo in a comment.  Fix error in
          arithmetics when the record spans two blocks.
          
          row_merge_write_rec_low(): Add a "size" parameter.  Add debug assertions
          about extra_size and size.
          
          row_merge_write_rec(): After writing a record, properly advance the
          buffer pointer.
        ------------------------------------------------------------
        revno: 0.3.724
        committer: marko
        timestamp: Wed 2007-09-19 11:31:00 +0000
        message:
          branches/zip: cmp_rec_rec_simple(): Compare n_uniq columns instead of
          all columns present in offsets.  Add a const qualifier to the
          dict_index_t* parameter.
        ------------------------------------------------------------
        revno: 0.3.723
        committer: marko
        timestamp: Wed 2007-09-19 09:49:58 +0000
        message:
          branches/zip: dict_index_get_n_unique_in_tree(), dict_index_get_n_unique():
          Add const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.722
        committer: marko
        timestamp: Wed 2007-09-19 09:37:09 +0000
        message:
          branches/zip: innodb-index.test: Add more columns and rows, to ensure
          that row_merge_blocks() will have some work to do when
          row_merge_block_t is shrunk to 8192 bytes.
          
          Currently, this will cause a debug assertion failure, because
          row_merge_cmp() is considering all columns, not just the unique ones.
        ------------------------------------------------------------
        revno: 0.3.721
        committer: marko
        timestamp: Wed 2007-09-19 09:05:16 +0000
        message:
          branches/zip: rec_init_offsets(): Fix a bug that was introduced in r1518:
          Correctly handle node pointer records containing variable-length columns
          with two-byte length.
        ------------------------------------------------------------
        revno: 0.3.720
        committer: marko
        timestamp: Wed 2007-09-19 07:14:36 +0000
        message:
          branches/zip: row_merge_buf_add(): Correct the processing of
          column prefixes in clustered indexes.
          
          innodb-index.test: Add test cases for creating primary keys
          containing column prefixes.
        ------------------------------------------------------------
        revno: 0.3.719
        committer: marko
        timestamp: Wed 2007-09-19 07:11:13 +0000
        message:
          branches/zip: row_ext_lookup_ith(): New function, sliced from
          row_ext_lookup().
        ------------------------------------------------------------
        revno: 0.3.718
        committer: marko
        timestamp: Mon 2007-09-17 10:43:51 +0000
        message:
          branches/zip: ha_innobase::add_index(): Translate DB_TOO_BIG_RECORD
          via my_error().  Add a test case to innodb-index.test.
        ------------------------------------------------------------
        revno: 0.3.717
        committer: marko
        timestamp: Mon 2007-09-17 08:42:10 +0000
        message:
          branches/zip: innodb-index.test: Make the column b much longer, to hit
          the 65,535-byte VARCHAR length limit of MySQL.
        ------------------------------------------------------------
        revno: 0.3.716
        committer: marko
        timestamp: Thu 2007-09-13 09:31:54 +0000
        message:
          branches/zip: Move the code related to fast index creation
          (smart ALTER TABLE) from ha_innodb.cc to a separate module, handler0alter.cc.
        ------------------------------------------------------------
        revno: 0.3.715
        committer: marko
        timestamp: Wed 2007-09-12 19:13:18 +0000
        message:
          branches/zip: innodb-index.test: Remove a bogus comment that should have
          been removed in r1808.
        ------------------------------------------------------------
        revno: 0.3.714
        committer: marko
        timestamp: Wed 2007-09-12 10:44:53 +0000
        message:
          branches/zip: ha_node_t: Enclose the field buf_block_t* block inside
          #ifdef UNIV_DEBUG.  This should have been done in r1014.
        ------------------------------------------------------------
        revno: 0.3.713
        committer: marko
        timestamp: Wed 2007-09-12 07:27:42 +0000
        message:
          branches/zip: row_merge_create_temporary_table(): On error, free the
          data dictionary object new_table.  This fixes a memory leak.
        ------------------------------------------------------------
        revno: 0.3.712
        committer: marko
        timestamp: Tue 2007-09-11 06:20:19 +0000
        message:
          branches/zip: ha_innobase::add_index(): Fix a race condition that
          existed before the fast-index-creation code was merged, in r1414.
          
          Do not call row_prebuilt_table_obsolete(innodb_table) until after
          the table has been renamed to a temporary name.  Otherwise, the
          following could happen when creating a clustered index on table T:
          
          (a1) copy T to T#1
          (a2) mark T obsolete
          (b1) add the name of T to the background drop list
          (a3) rename T to T#2 and T#1 to T
          (b2) drop the table on the background
          
          These steps are executed by two threads, a and b.
          
          If b1 is executed after a3, all is fine: the name T#2 will be added
          to the background drop list.  If b1 is executed before a3, the name
          T will be added, and T#2 will survive.
        ------------------------------------------------------------
        revno: 0.3.711
        committer: marko
        timestamp: Tue 2007-09-11 05:09:19 +0000
        message:
          branches/zip: Minor cleanup.
          
          row_add_table_to_background_drop_list(): Replace the dict_table_t*
          parameter with const char* (the table name).
          
          row_check_table_for_mysql(): Replace prebuilt->table with table.
        ------------------------------------------------------------
        revno: 0.3.710
        committer: inaam
        timestamp: Tue 2007-09-11 00:41:02 +0000
        message:
          branches/zip: Undo changes commited in r1832.
          These should have gone to branches/fts.
          
          Spotted by: Marko and Ken
        ------------------------------------------------------------
        revno: 0.3.709
        committer: inaam
        timestamp: Tue 2007-09-11 00:38:13 +0000
        message:
          branches/zip: undo changes made in r1763.
          These should have gone in branches/fts
          
          Spotted by: Marko and Ken
        ------------------------------------------------------------
        revno: 0.3.708
        committer: inaam
        timestamp: Mon 2007-09-10 17:06:44 +0000
        message:
          branches/zip: Enabled group commit functionality with XA.
          
          Reviewed by: Heikki
        ------------------------------------------------------------
        revno: 0.3.707
        committer: marko
        timestamp: Mon 2007-09-10 10:09:01 +0000
        message:
          branches/zip: Merge 1809:1830 from trunk.
        ------------------------------------------------------------
        revno: 0.3.706
        committer: marko
        timestamp: Fri 2007-09-07 12:39:36 +0000
        message:
          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.
        ------------------------------------------------------------
        revno: 0.3.705
        committer: marko
        timestamp: Fri 2007-09-07 09:05:52 +0000
        message:
          branches/zip: Decode table names when displaying error messages in
          fast index creation.
          
          innobase_convert_tablename(): New function, to remove the filename
          encoding of a database and table name.
          
          ha_innobase::add_index(): Invoke innobase_convert_tablename() before
          calling my_error().
          
          innodb-index.result: Update the error messages.
        ------------------------------------------------------------
        revno: 0.3.704
        committer: marko
        timestamp: Thu 2007-09-06 12:43:29 +0000
        message:
          branches/zip: ha_innobase::add_index(): Allocate a new transaction for
          the dictionary operations.
          
          TODO: ha_innobase::final_drop_index() should do the same, and set
          trx->dict_operation as well.
        ------------------------------------------------------------
        revno: 0.3.703
        committer: marko
        timestamp: Thu 2007-09-06 12:25:38 +0000
        message:
          branches/zip: mem_init_buf(), mem_erase_buf(): Add UNIV_MEM_ASSERT_W().
        ------------------------------------------------------------
        revno: 0.3.702
        committer: marko
        timestamp: Thu 2007-09-06 11:44:00 +0000
        message:
          branches/zip: univ.i: Remove the duplicate UNIV_MEM_DEBUG that was
          accidentally added in r1815.
        ------------------------------------------------------------
        revno: 0.3.701
        committer: marko
        timestamp: Thu 2007-09-06 11:36:35 +0000
        message:
          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(): Declare the memory undefined.
          
          mem_erase_buf(): Declare the memory freed.
        ------------------------------------------------------------
        revno: 0.3.700
        committer: marko
        timestamp: Thu 2007-09-06 07:12:12 +0000
        message:
          branches/zip: Merge 1792:1809 from trunk.
        ------------------------------------------------------------
        revno: 0.3.699
        committer: marko
        timestamp: Wed 2007-09-05 11:27:41 +0000
        message:
          branches/zip: ha_innobase:add_index(): Report HA_ERR_TABLE_EXIST when the
          temporary table cannot be created or renamed.
          
          innodb-index.test,result: Add test cases where a temporary table already
          exists.
        ------------------------------------------------------------
        revno: 0.3.698
        committer: marko
        timestamp: Wed 2007-09-05 10:18:03 +0000
        message:
          branches/zip: Simplify crash recovery in fast index creation.
          
          trx_t: Remove dict_undo_list and dict_redo_list.
          
          innobase_create_temporary_tablename(): Replace TEMP_TABLE_PREFIX with
          a table name suffix "#1" or "#2".  In this way, the user can restore
          precious data, should anything go wrong.  It is possible to reach an
          inconsistent state, because the creation, deletion and renaming of
          single-table tablespaces are not transactional.
          
          ut_print_namel(), fil_make_ibd_name(), innobase_rename_table(): Remove
          the special treatment of TEMP_TABLE_PREFIX.
          
          Introduce TEMP_INDEX_PREFIX == 0xff for temporary indexes.  This byte
          cannot occur in index names since MySQL 4.1.  However, it might have
          been possible to use this byte in MySQL 4.0.
          
          recv_recovery_from_checkpoint_finish(): Call the new function
          row_merge_drop_temp_indexes(), to drop all indexes whose name starts
          with the byte 0xff.
          
          row_merge_rename_indexes(): Renamed from row_merge_rename_index().
          Remove the parameter "index".
          
          row_drop_table_for_mysql(): Unconditionally call trx_commit_for_mysql().
          
          row_drop_table_for_mysql_no_commit(): Correct the function commit,
          based on the corrected comment of row_drop_table_for_mysql().  Rely on
          table->to_be_dropped instead of TEMP_TABLE_PREFIX.
          
          ha_innobase::add_index(): Simplify the control flow.
        ------------------------------------------------------------
        revno: 0.3.697
        committer: marko
        timestamp: Wed 2007-09-05 08:57:59 +0000
        message:
          branches/zip: lock_rec_enqueue_waiting(): When a record lock wait occurs
          in a dictionary operation, display also the name of the index.
        ------------------------------------------------------------
        revno: 0.3.696
        committer: vasil
        timestamp: Tue 2007-09-04 07:54:29 +0000
        message:
          lock_get_type() needs to be accessed outside of the lock module, but it
          is inline and accesses lock_t members.
          
          As advised by Marko rename lock_get_type() to lock_get_type_low() and
          create a public non-inline function lock_get_type() which calls
          lock_get_type_low().
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.695
        committer: vasil
        timestamp: Tue 2007-09-04 07:29:59 +0000
        message:
          Use MAP_ANON if MAP_ANONYMOUS is not defined, if neither of both is
          defined, fall back to using malloc/free.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.694
        committer: vasil
        timestamp: Mon 2007-09-03 12:16:11 +0000
        message:
          Add functions that retrieve some lock_t characteristics, needed in
          INFORMATION_SCHEMA implementation:
          
          lock_get_trx_id()
          lock_get_mode_str()
          lock_get_type_str()
          lock_get_table_id()
          lock_get_table_name()
          lock_rec_get_index_name()
          lock_rec_get_space_id()
          lock_rec_get_page_no()
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.693
        committer: marko
        timestamp: Mon 2007-09-03 10:34:25 +0000
        message:
          branches/zip: row_merge_drop_table(): Replace the
          row_drop_table_for_mysql() call with a call to
          row_drop_table_for_mysql_no_commit().  The last parameter of
          the function is ibool drop_db, not ibool do_commit.  Also,
          since r1790 of trunk it is not necessary to copy table->name.
        ------------------------------------------------------------
        revno: 0.3.692
        committer: vasil
        timestamp: Mon 2007-09-03 09:08:25 +0000
        message:
          branches/zip:
          Move lock_rec_find_set_bit() from lock0priv.h to lock0lock.h. This
          function is needed in the INFORMATION_SCHEMA implementation which
          currently resides in trx/
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.691
        committer: marko
        timestamp: Mon 2007-09-03 08:44:39 +0000
        message:
          branches/zip: Merge 1783:1792 from trunk.
        ------------------------------------------------------------
        revno: 0.3.690
        committer: marko
        timestamp: Mon 2007-09-03 07:13:59 +0000
        message:
          branches/zip: Enclose the definition of dict_index_t::trx_id in
          #ifdef ROW_MERGE_IS_INDEX_USABLE, to avoid growing the memory
          footprint until MySQL implements and calls the virtual method
          handler::is_index_available() or something equivalent.
        ------------------------------------------------------------
        revno: 0.3.689
        committer: marko
        timestamp: Fri 2007-08-31 09:58:22 +0000
        message:
          branches/zip: Introduce TEMP_INDEX_PREFIX == 0xff for indexes being populated
          in fast index creation.  The prefix was previously TEMP_TABLE_PREFIX == '/',
          which may occur in index names.
          
          ut_print_namel(): Do not assume that all '/' are separators between
          database and table names.
        ------------------------------------------------------------
        revno: 0.3.688
        committer: marko
        timestamp: Thu 2007-08-30 09:21:25 +0000
        message:
          branches/zip: Merge 1664:1783 from trunk.
        ------------------------------------------------------------
        revno: 0.3.687
        committer: marko
        timestamp: Thu 2007-08-30 06:43:27 +0000
        message:
          branches/zip: Add const qualifiers to some XID* parameters.
        ------------------------------------------------------------
        revno: 0.3.686
        committer: marko
        timestamp: Wed 2007-08-29 09:54:11 +0000
        message:
          branches/zip: Relax the string type check of some built-in functions
          of the InnoDB SQL parser.
          
          pars_is_string_type(): New function.  Returns TRUE iff mtype equals
          DATA_VARCHAR, DATA_CHAR, DATA_FIXBINARY, or DATA_BINARY.
          
          pars_resolve_func_data_type(): Replace checks for DATA_VARCHAR with
          pars_is_string_type().  For example, the NAME column of SYS_INDEXES,
          SYS_TABLES, and SYS_COLUMNS is of DATA_BINARY type, although it
          contains a UTF-8 character string.  This affects the functions
          TO_NUMBER, BINARY_TO_NUMBER, LENGTH, INSTR, and SUBSTR.
        ------------------------------------------------------------
        revno: 0.3.685
        committer: marko
        timestamp: Wed 2007-08-29 09:40:18 +0000
        message:
          branches/zip: pars_func_get_class(), pars_resolve_func_data_type():
          Replace if-else with switch-case.
        ------------------------------------------------------------
        revno: 0.3.684
        committer: marko
        timestamp: Wed 2007-08-29 08:53:29 +0000
        message:
          branches/zip: ha_innobase::add_index(): Remove a remark about row0mysql.c
          in a comment about latching the data dictionary.  The data dictionary may
          be latched elsewhere too.
        ------------------------------------------------------------
        revno: 0.3.683
        committer: marko
        timestamp: Wed 2007-08-29 08:45:34 +0000
        message:
          branches/zip: Remove some checks if an index or a table is a temporary one
          created in fast index creation.
          
          dict_load_indexes(): Always complain if the first index is not clustered.
          
          lock_table_enqueue_waiting(): Always complain about lock waits in
          a dictionary operation.
          
          row_merge_rename_tables(): Add an assertion that dict_sys->mutex is
          being held.
          
          row_undo_mod_del_unmark_sec_and_undo_update(): Make the test about
          temporary indexes more readable.
          
          row_create_table_for_mysql(): Do not retry creating a temporary table
          in fast index creation.  Orphaned temporary tables will have to be dropped
          in crash recovery.
        ------------------------------------------------------------
        revno: 0.3.682
        committer: marko
        timestamp: Wed 2007-08-29 06:36:10 +0000
        message:
          branches/zip: Simplify the locking of the data dictionary.
          
          row_upd_index_is_referenced(), row_upd_check_references_constraints(),
          row_purge_parse_undo_rec(): Remove duplicated code that calls
          row_mysql_unfreeze_data_dictionary().
          
          row_undo_ins_remove_clust_rec():
          Assert that the data dictionary is X-latched.  Do not attempt to re-latch
          the data dictionary, because doing so introduces race conditions.  This
          re-latching was probably made unnecessary already in r1676, which keeps
          the data dictionary X-latched in ha_innobase::add_index() for the complete
          duration of the data dictionary operations.
          
          row_undo_ins_parse_undo_rec(): Do not attempt to acquire the data dictionary
          latch.  The data dictionary should be already X-latched when a transaction
          that modifies system tables is rolled back.  This also holds in the rollback
          during crash recovery: trx_rollback_active() will X-latch the data dictionary
          when needed.
        ------------------------------------------------------------
        revno: 0.3.681
        committer: marko
        timestamp: Wed 2007-08-29 05:48:37 +0000
        message:
          branches/zip: hash_create(): Remove two unused variables.  They should have
          been removed in r1752.
        ------------------------------------------------------------
        revno: 0.3.680
        committer: inaam
        timestamp: Mon 2007-08-27 19:41:56 +0000
        message:
          branches/zip: The freed_page_clock for both buf_pool and block starts ticking
          only after the buffer_cache has warmed up. During the initial warmup
          phase these values are set to zero. We should recommend to move the
          block to the start of the LRU in this case.
          
          Also added some comments to buf0buf.c about the LRU logic.
          
          reviewed by: Sunny
        ------------------------------------------------------------
        revno: 0.3.679
        committer: vasil
        timestamp: Thu 2007-08-23 09:29:28 +0000
        message:
          branches/zip: Add trx_get_id() and trx_get_que_state_str() functions to
          retrieve trx_t's properties that will be exported in INFORMATION_SCHEMA tables.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.678
        committer: vasil
        timestamp: Thu 2007-08-23 07:01:24 +0000
        message:
          branches/zip: Use hash_table_clear() to initialize the array instead of
          for()-loop.
          
          Suggested by: Sunny
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.677
        committer: marko
        timestamp: Wed 2007-08-22 18:31:24 +0000
        message:
          branches/zip: row_merge_create_temporary_table(): On failure,
          row_create_table_for_mysql() will free new_table.  Thus, remove
          the call dict_mem_table_free(new_table).
        ------------------------------------------------------------
        revno: 0.3.676
        committer: vasil
        timestamp: Wed 2007-08-22 09:43:45 +0000
        message:
          branches/zip: Add a hash_table_clear() function to drop all elements that
          have been added to it.
          
          Approved by: Marko
        ------------------------------------------------------------
        revno: 0.3.675
        committer: marko
        timestamp: Tue 2007-08-21 12:36:13 +0000
        message:
          branches/zip: Remove trx->sync_cb.  Call dict_rename_indexes() directly
          from ha_innobase::add_index().
          
          dict_rename_indexes(): Remove the redundant parameter commit_flag.
        ------------------------------------------------------------
        revno: 0.3.674
        committer: marko
        timestamp: Tue 2007-08-21 12:10:14 +0000
        message:
          branches/zip: Fix a memory leak in fast index creation.
          
          ha_innobase::add_index(): Add assertions about !trx->sync_cb and
          !trx->dict_redo_list.  Remove a bogus comment.  Replace
          row_lock_table_for_merge() with row_merge_lock_table().
          
          row_merge_lock_table(): Renamed from row_lock_table_for_merge()
          and moved from row0mysql.c to row0merge.c.  Always lock the table in
          the mode LOCK_X.  Call que_graph_free() in order not to leak memory.
        ------------------------------------------------------------
        revno: 0.3.673
        committer: marko
        timestamp: Tue 2007-08-21 09:48:33 +0000
        message:
          branches/zip: mem_heap_free_heap_top(): Declare the memory
          freed with UNIV_MEM_FREE().  Before this change, the memory
          freed by mem_heap_empty() was not completely flagged free
          in UNIV_DEBUG_VALGRIND builds.  After this change, Valgrind
          will hopefully catch all errors caught by UNIV_MEM_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.672
        committer: marko
        timestamp: Tue 2007-08-21 09:42:20 +0000
        message:
          branches/zip: ha_innobase::add_index(): Remove the mem_heap_empty() call.
          The index[] array that is allocated from the heap is still live.
        ------------------------------------------------------------
        revno: 0.3.671
        committer: marko
        timestamp: Tue 2007-08-21 08:34:50 +0000
        message:
          branches/zip: dict_foreign_eval_sql(): Print foreign->id as a table name
          (in the database.id format).  This should have been changed in r1570.
        ------------------------------------------------------------
        revno: 0.3.670
        committer: marko
        timestamp: Tue 2007-08-21 06:40:46 +0000
        message:
          branches/zip: innodb-index.test: Add tests for creating or dropping
          FOREIGN KEY constraints.  At the moment, MySQL will rebuild the entire
          table and indexes when such constraints are added or removed, even though
          the constraints do not affect the storage format of the data.
        ------------------------------------------------------------
        revno: 0.3.669
        committer: marko
        timestamp: Mon 2007-08-20 12:33:27 +0000
        message:
          branches/zip: row_merge_read(): Call os_file_read_no_error_handling()
          instead of os_file_read().  Display some fault diagnostics.
        ------------------------------------------------------------
        revno: 0.3.668
        committer: marko
        timestamp: Mon 2007-08-20 11:40:00 +0000
        message:
          branches/zip: Preserve FOREIGN KEY constraints when creating a PRIMARY KEY.
          
          innodb-index.test: Add some test cases for FOREIGN KEY constraints.
          
          row_merge_rename_tables(): New function,
          adapted from row_rename_table_for_mysql().
          
          ha_innobase::add_index(): Use row_merge_rename_tables().
        ------------------------------------------------------------
        revno: 0.3.667
        committer: marko
        timestamp: Mon 2007-08-20 09:45:27 +0000
        message:
          branches/zip: row_rename_table_for_mysql(): Rely on the diagnostic
          printout of dict_table_rename_in_cache().  Correct the comment about
          the SQL parser.  This function does not drop any table.
        ------------------------------------------------------------
        revno: 0.3.666
        committer: marko
        timestamp: Mon 2007-08-20 09:43:30 +0000
        message:
          branches/zip: dict_table_rename_in_cache(): Improve the diagnostic printout
          for the error cases.  Avoid copying the old table->name; the string will
          remain valid in table->heap.
        ------------------------------------------------------------
        revno: 0.3.665
        committer: marko
        timestamp: Mon 2007-08-20 09:13:26 +0000
        message:
          branches/zip: Refuse fast index creation if newraw or innodb_force_recovery
          have been set.
          
          ha_innobase::add_index(), ha_innobase::prepare_drop_index(),
          ha_innobase::final_drop_index(): Return HA_ERR_WRONG_COMMAND if
          newraw or innodb_force_recovery have been set.
        ------------------------------------------------------------
        revno: 0.3.664
        committer: marko
        timestamp: Mon 2007-08-20 06:59:22 +0000
        message:
          branches/zip: Add const qualifiers to the upd_t* parameters of some functions.
        ------------------------------------------------------------
        revno: 0.3.663
        committer: marko
        timestamp: Mon 2007-08-20 06:58:37 +0000
        message:
          branches/zip: Use mem_heap_zalloc() when initializing
          dict_table_t, dict_index_t, and dict_foreign_t.
        ------------------------------------------------------------
        revno: 0.3.662
        committer: marko
        timestamp: Mon 2007-08-20 06:54:31 +0000
        message:
          branches/zip: ha_innobase::write_row(): Remove an unreachable break statement.
        ------------------------------------------------------------
        revno: 0.3.661
        committer: marko
        timestamp: Thu 2007-08-16 13:25:56 +0000
        message:
          branches/zip: Rename mem_heap_calloc() and mem_calloc() to
          mem_heap_zalloc() and mem_zalloc(), because calloc() in the C runtime
          library takes two size parameters, not one.
          
          mem_heap_zalloc(): Add debug assertions.  Document that the return value
          is never NULL.
        ------------------------------------------------------------
        revno: 0.3.660
        committer: marko
        timestamp: Thu 2007-08-16 13:13:25 +0000
        message:
          branches/zip: Fix bugs in the creation or dropping of the clustered index
          (PRIMARY KEY or UNIQUE INDEX on NOT NULL columns).
          
          innodb-index.test: Remove the --replace_regex directives.  Replace correct
          values to the "Duplicate entry" messages.  This will cause the test to
          fail until we somehow return the duplicate key values to MySQL.
          Add test cases for creating or dropping UNIQUE INDEX or PRIMARY KEY.
          
          innobase_copy_index_def(): Allow the function to copy a clustered index
          definition to a secondary one (UNIQUE INDEX).
          
          innobase_create_key_def(): Check the NOT NULL flag from the correct
          place.  Copy the clustered index if it is a UNIQUE INDEX.
          
          ha_innobase::prepare_drop_index(): Refuse to drop the clustered index.
        ------------------------------------------------------------
        revno: 0.3.659
        committer: marko
        timestamp: Thu 2007-08-16 09:19:48 +0000
        message:
          branches/zip: Minor cleanup.
          
          ha_innobase::add_index(), ha_innobase::prepare_drop_index():
          Remove the redundant thd_test_options() calls.
          The options are tested in check_trx_exists().
          
          ha_innobase::prepare_drop_index(): key cannot be NULL; remove the tests.
          Move the condition for checking foreign keys outside of the loop.
          Remove the redundant error log printout about foreign key dependency.
        ------------------------------------------------------------
        revno: 0.3.658
        committer: marko
        timestamp: Thu 2007-08-16 09:09:08 +0000
        message:
          branches/zip: Remove redundant type casts.  Change the parameter type
          of ut_strcmp() from const void* to const char*.
        ------------------------------------------------------------
        revno: 0.3.657
        committer: marko
        timestamp: Thu 2007-08-16 08:48:29 +0000
        message:
          branches/zip: dict0mem.h: Minor cleanup.
          
          Remove the unused constant DICT_NOT_READY.
          Make dict_index_t::type a bit-field, and move it next to other bit-fields.
          Add a const qualifier to dict_index_t::name.
        ------------------------------------------------------------
        revno: 0.3.656
        committer: marko
        timestamp: Wed 2007-08-15 15:49:58 +0000
        message:
          branches/zip: Remove the error code DB_CANNOT_DROP_FOREIGN_INDEX.
          It was only set by ha_innobase::prepare_drop_index(), which can return
          the appropriate MySQL error code (HA_ERR_DROP_INDEX_FK) directly.
          
          ha_innobase::add_index(): Correct the function comment.
          
          ha_innobase::prepare_drop_index(): Correct the function comment.
          Return MySQL error codes directly.
          
          ha_innobase::final_drop_index(): Correct the function comment.
        ------------------------------------------------------------
        revno: 0.3.655
        committer: marko
        timestamp: Wed 2007-08-15 15:35:48 +0000
        message:
          branches/zip: row_mysql_handle_errors(): Replace the if-else with
          switch-case.
        ------------------------------------------------------------
        revno: 0.3.654
        committer: marko
        timestamp: Wed 2007-08-15 11:54:15 +0000
        message:
          branches/zip: Performance improvement:
          
          row_merge_buf_add(): Add a prefetch instruction to row->fields.
          Eliminate a variable from the copying loop, and move the termination
          condition to the end of the loop.
          
          row_merge_build_indexes(): Remove the second call to
          trx_start_if_not_started().
        ------------------------------------------------------------
        revno: 0.3.653
        committer: marko
        timestamp: Wed 2007-08-15 06:53:34 +0000
        message:
          branches/zip: Minor cleanup.
          
          trx_t: Change the type of error_info from void* to const dict_index_t*.
          
          trx_get_error_info(): Add const qualifier to trx_t*.  Make this an
          inline function.
        ------------------------------------------------------------
        revno: 0.3.652
        committer: marko
        timestamp: Mon 2007-08-13 17:15:31 +0000
        message:
          branches/zip: Fix two mistakes made in r1414
          (merging branches/fast-index-creation):
          
          row_truncate_table_for_mysql(), row_drop_table_for_mysql_no_commit():
          Let ut_print_name() output to ef instead of stderr.
        ------------------------------------------------------------
        revno: 0.3.651
        committer: marko
        timestamp: Mon 2007-08-13 16:34:00 +0000
        message:
          branches/zip: ha_innobase::add_index(): Do not merely check for a
          key name "PRIMARY".  If the table has a generated clustered index,
          also check for a UNIQUE INDEX containing no NULL columns.
          
          innobase_create_index_def(): Add the parameter key_primary.
          
          innobase_create_key_def(): Check if the first index is a UNIQUE index
          consisting of NOT NULL columns.
          
          Fixing this bug revealed another one: FOREIGN KEY constraints
          will be lost when a PRIMARY KEY is created.  This is the reason why
          innodb.test will fail.
        ------------------------------------------------------------
        revno: 0.3.650
        committer: marko
        timestamp: Mon 2007-08-13 16:05:23 +0000
        message:
          branches/zip: ha_innobase::change_active_index(): Write to the error log
          when the index could not be found.
        ------------------------------------------------------------
        revno: 0.3.649
        committer: marko
        timestamp: Mon 2007-08-13 15:57:28 +0000
        message:
          branches/zip: Add some const qualifiers to dict_index_t* and dict_table_t*.
          
          innobase_create_key_def(), row_table_got_default_clust_index(),
          row_get_mysql_key_number_for_index(): Add a const qualifier.
          
          dict_table_get_first_index(), dict_table_get_next_index(): Define
          as a const-preserving macro.  Preserve the old function for UNIV_DEBUG,
          but add a const qualifier to the parameter and cast away the constness.
        ------------------------------------------------------------
        revno: 0.3.648
        committer: marko
        timestamp: Mon 2007-08-13 14:07:59 +0000
        message:
          branches/zip: Use mem_calloc and mem_heap_calloc when possible.
          
          row_ext_create(): After a memset() inside UNIV_DEBUG, flag the memory
          uninitialized with UNIV_MEM_ALLOC().
        ------------------------------------------------------------
        revno: 0.3.647
        committer: marko
        timestamp: Mon 2007-08-13 12:46:13 +0000
        message:
          branches/zip: row_rename_table_for_mysql(): Change the return type to ulint
          and simplify error handling.
        ------------------------------------------------------------
        revno: 0.3.646
        committer: marko
        timestamp: Mon 2007-08-13 12:23:21 +0000
        message:
          branches/zip: ha_innobase::add_index(): Remove the unused variable new_unique.
        ------------------------------------------------------------
        revno: 0.3.645
        committer: marko
        timestamp: Mon 2007-08-13 07:37:53 +0000
        message:
          branches/zip: ha_innobase::add_index(): Fix an ut_ad() assertion that
          was broken in r1685.
        ------------------------------------------------------------
        revno: 0.3.644
        committer: marko
        timestamp: Fri 2007-08-10 15:53:19 +0000
        message:
          branches/zip: Add changes that accidentally omitted from r1698:
          
          innodb-index.test, innodb-index.result: Add a test for creating
          a PRIMARY KEY on a column that contains a NULL value.
        ------------------------------------------------------------
        revno: 0.3.643
        committer: marko
        timestamp: Fri 2007-08-10 15:52:09 +0000
        message:
          branches/zip: When creating a PRIMARY KEY, flag all its columns NOT NULL.
          
          row_merge_create_temporary_table(): Add the parameter index_defs.
          
          DB_PRIMARY_KEY_IS_NULL: New error code, mapped to ER_PRIMARY_CANT_HAVE_NULL.
          
          row_merge_read_clustered_index(): Replace the parameter "table" with the
          two parameters "old_table" and "new_table".  Detect NULL values of columns
          that are supposed to be NOT NULL.
          
          row_merge_col_prtype(): New auxiliary function, used by
          row_merge_create_temporary_table() to flag NOT NULL any columns
          contained in an added PRIMARY KEY.
        ------------------------------------------------------------
        revno: 0.3.642
        committer: marko
        timestamp: Fri 2007-08-10 15:22:47 +0000
        message:
          branches/zip: Minor cleanup.
          
          innobase_copy_index_field_def(): Remove parameter heap.  The field->name
          will not be deallocated before the copied index has been added to the
          data dictionary cache.
          
          innobase_copy_index_def(): Add const qualifier to dict_index_t*.
          Add an assertion !dict_index_is_clust(index).
          
          ha_innobase::add_index(): Add the missing user_thd parameter to the
          convert_error_code_to_mysql() call that was forgotten from r1686.
          
          merge_index_field_struct: Add const qualifier to field_name.
          
          merge_index_def_struct: Add const qualifier to name.
          
          row_merge_build_indexes(): Improve the function comment.
          
          row_merge_drop_table(): Remove bogus assertion ut_a(table->to_be_dropped).
        ------------------------------------------------------------
        revno: 0.3.641
        committer: marko
        timestamp: Wed 2007-08-08 14:23:14 +0000
        message:
          branches/zip: ha_innobase::add_index(): Convert the error code before
          goto err_exit.  The error handling should be rewritten.  Many of the
          error messages contain parameters, but this code is only returning
          the error number to MySQL.
        ------------------------------------------------------------
        revno: 0.3.640
        committer: marko
        timestamp: Wed 2007-08-08 13:57:04 +0000
        message:
          branches/zip: innobase_check_index_keys(): return 0 instead of DB_SUCCESS,
          as documented.  Do not translate the error code.
          
          This function is still broken; we should probably use my_error() for
          reporting errors.
        ------------------------------------------------------------
        revno: 0.3.639
        committer: marko
        timestamp: Wed 2007-08-08 13:43:44 +0000
        message:
          branches/zip: convert_error_code_to_mysql(): replace if-else with switch-case
        ------------------------------------------------------------
        revno: 0.3.638
        committer: marko
        timestamp: Wed 2007-08-08 13:13:01 +0000
        message:
          branches/zip: Resolve an error number collision in db0err.h.
          The code for DB_CANNOT_DROP_FOREIGN_INDEX should have been
          renumbered in r1494 (Merge revisions 1402:1493 from trunk).
        ------------------------------------------------------------
        revno: 0.3.637
        committer: marko
        timestamp: Wed 2007-08-08 09:01:46 +0000
        message:
          branches/zip: Add const qualifiers to some dict_table_t* accessor functions.
        ------------------------------------------------------------
        revno: 0.3.636
        committer: marko
        timestamp: Wed 2007-08-08 08:49:33 +0000
        message:
          branches/zip: merge_index_field_struct: Remove the unused field col_type.
        ------------------------------------------------------------
        revno: 0.3.635
        committer: marko
        timestamp: Fri 2007-08-03 11:49:51 +0000
        message:
          branches/zip: Fix memory management errors in row_merge_buf_t.
          
          row_merge_buf_create_low(): Swap the parameters max_tuples and buf_size,
          because the callers had them swapped.  Add debug assertions about
          these parameters.
          
          row_merge_buf_empty(): Return the emptied buffer.  In some cases, the
          buffer may be relocated.
        ------------------------------------------------------------
        revno: 0.3.634
        committer: marko
        timestamp: Fri 2007-08-03 11:42:37 +0000
        message:
          branches/zip: ha_innobase::add_index(): When creating a clustered index,
          do not release and relock the data dictionary during initial preparations.
        ------------------------------------------------------------
        revno: 0.3.633
        committer: marko
        timestamp: Fri 2007-08-03 10:53:08 +0000
        message:
          branches/zip: row_undo_dictionary(): For TRX_UNDO_INDEX_CREATE_REC,
          the index may be NULL when unfinished transactions are rolled back
          after crash recovery.
        ------------------------------------------------------------
        revno: 0.3.632
        committer: marko
        timestamp: Fri 2007-08-03 10:17:50 +0000
        message:
          branches/zip: trx_sys_init_at_db_start(): Initialize trx_dummy_sess
          before calling trx_lists_init_at_db_start().  This was broken in r1594.
        ------------------------------------------------------------
        revno: 0.3.631
        committer: marko
        timestamp: Fri 2007-08-03 07:35:05 +0000
        message:
          branches/zip: Fix errors made in r1672.
        ------------------------------------------------------------
        revno: 0.3.630
        committer: marko
        timestamp: Fri 2007-08-03 07:09:29 +0000
        message:
          branches/zip: Add const qualifiers to the functions that read MySQL data.
          
          row_mysql_read_true_varchar(), row_mysql_read_blob_ref(),
          row_mysql_store_col_in_innobase_format(),
          row_sel_convert_mysql_key_to_innobase(): Add const qualifiers.
          
          row_sel_convert_mysql_key_to_innobase(): Document that the first parameter
          is in/out.
        ------------------------------------------------------------
        revno: 0.3.629
        committer: marko
        timestamp: Thu 2007-08-02 10:55:25 +0000
        message:
          branches/zip: Ensure that the dictionary updates are atomic by keeping
          the data dictionary locked across the operations.
          
          dict_table_decrement_handle_count(), row_prebuilt_free(): Add the flag
          dict_locked, to prevent the acquisition of dict_sys->mutex.
          
          innobase_rename_table(): Rename commit_flag to lock_and_commit,
          and do not acquire dict_sys->mutex or flush the log unless the flag is set.
          Remove bogus comment about utility threads, because the threads will
          be waken up by the upper-level function ha_innobase::rename_table().
          
          ha_innobase::add_index(): After creating a primary key, hold dict_sys->mutex
          across all dictionary operations.
        ------------------------------------------------------------
        revno: 0.3.628
        committer: marko
        timestamp: Thu 2007-08-02 09:46:28 +0000
        message:
          branches/zip: row_merge_create_temporary_table(): Correct a bogus ut_ad().
        ------------------------------------------------------------
        revno: 0.3.627
        committer: marko
        timestamp: Wed 2007-08-01 13:00:16 +0000
        message:
          branches/zip: innodb-index.test: Replace numeric error codes with
          symbolic ones.
        ------------------------------------------------------------
        revno: 0.3.626
        committer: marko
        timestamp: Wed 2007-08-01 11:49:19 +0000
        message:
          branches/zip: Declare schema_table_store_record(), because MySQL strangely
          does not declare it unless MYSQL_SERVER is defined.
        ------------------------------------------------------------
        revno: 0.3.625
        committer: marko
        timestamp: Wed 2007-08-01 11:18:43 +0000
        message:
          branches/zip: Merge 1575:1664 from trunk.
        ------------------------------------------------------------
        revno: 0.3.624
        committer: marko
        timestamp: Wed 2007-08-01 11:01:27 +0000
        message:
          branches/zip: innodb.test: Use ER_DROP_INDEX_FK instead of a numeric
          error code.  Apparently, the numeric error codes in MySQL 5.1 are changing.
        ------------------------------------------------------------
        revno: 0.3.623
        committer: marko
        timestamp: Wed 2007-08-01 10:38:07 +0000
        message:
          branches/zip: Add explicit type casts to *.ic, because C++ does not allow
          implicit type conversion from void*.  Inlining is enabled in ha_innodb.cc
          since r1587.
        ------------------------------------------------------------
        revno: 0.3.622
        committer: marko
        timestamp: Wed 2007-08-01 08:13:22 +0000
        message:
          branches/zip: HASH_SEARCH(): Add the parameter TYPE, for the type of DATA.
          C++ requires explicit type casts when converting from void*, and *.ic files
          are now inlined in ha_innodb.cc.
          
          fil_space_get_by_id(), fil_space_get_by_name(): New inline functions, to
          replace occurrences of the HASH_SEARCH() macro in fil0fil.c.  This should
          improve readability.
        ------------------------------------------------------------
        revno: 0.3.621
        committer: marko
        timestamp: Wed 2007-08-01 08:01:47 +0000
        message:
          branches/zip: trx_weight_cmp(): Add const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.620
        committer: marko
        timestamp: Wed 2007-08-01 07:53:27 +0000
        message:
          branches/zip: btr_cur_mark_dtuple_inherited_extern(): Initialize len.
          This was broken in r1591.
        ------------------------------------------------------------
        revno: 0.3.619
        committer: marko
        timestamp: Wed 2007-08-01 07:52:05 +0000
        message:
          branches/zip: row_merge_read_clustered_index(): Remove a bogus warning
          about "row" being possibly uninitialized.
        ------------------------------------------------------------
        revno: 0.3.618
        committer: marko
        timestamp: Wed 2007-08-01 07:49:43 +0000
        message:
          branches/zip: lock_rec_print(), lock_table_print(), lock_rec_get_prev():
          Add a const qualifier to lock_t*.
        ------------------------------------------------------------
        revno: 0.3.617
        committer: marko
        timestamp: Thu 2007-06-21 13:27:22 +0000
        message:
          branches/zip: Declare innobase_mysql_print_thd() in ha_prototypes.h.
        ------------------------------------------------------------
        revno: 0.3.616
        committer: marko
        timestamp: Thu 2007-06-21 13:25:03 +0000
        message:
          branches/zip: row_prebuilt_free(), row_drop_tables_for_mysql_in_background():
          Fix some printouts.
        ------------------------------------------------------------
        revno: 0.3.615
        committer: marko
        timestamp: Thu 2007-06-21 12:22:04 +0000
        message:
          branches/zip: row_upd_sec_index_entry(): Pass foreign=TRUE to
          row_ins_index_entry().  The added parameter (whether to check
          foreign key constraints) was incorrectly passed as FALSE in r1591.
        ------------------------------------------------------------
        revno: 0.3.614
        committer: marko
        timestamp: Thu 2007-06-21 12:02:29 +0000
        message:
          branches/zip: Initialize trx_dummy_sess only once.  Require trx->sess to
          be set always.
          
          trx_rollback_active(): Split from trx_rollback_or_clean_all_without_sess().
          
          row_undo_dictionary(): Do not return a value.  Assert that all operations
          succeed.
          
          row_merge_drop_index(): Remove bogus comment about void return value.
          
          trx_dummy_sess: Move the declaration from trx0roll.h to trx0trx.h,
          because the variable is defined in trx0trx.c.
        ------------------------------------------------------------
        revno: 0.3.613
        committer: marko
        timestamp: Thu 2007-06-21 11:14:13 +0000
        message:
          branches/zip: que_thr_dec_refer_count(): Cleanup.  Remove unused variable sess.
        ------------------------------------------------------------
        revno: 0.3.612
        committer: marko
        timestamp: Thu 2007-06-21 10:42:20 +0000
        message:
          branches/zip: trx_commit_for_mysql(): Call trx_start_if_not_started() earlier.
          Return DB_SUCCESS.  Do not release and reacquire kernel_mutex.
        ------------------------------------------------------------
        revno: 0.3.611
        committer: marko
        timestamp: Thu 2007-06-21 09:43:15 +0000
        message:
          branches/zip: Make merge sort handle externally stored columns.
          Some things still fail in innodb-index.test, and there seems to be
          a race condition (data dictionary lock wait) when running with --valgrind.
          
          dfield_t: Add an "external storage" flag, dfield->ext.
          
          dfield_is_null(), dfield_is_ext(), dfield_set_ext(), dfield_set_null():
          New functions.
          
          dfield_copy(), dfield_copy_data(): Add const qualifiers, fix in/out comments.
          
          data_write_sql_null(): Use memset().
          
          big_rec_field_t: Replace byte* data with const void* data.
          
          ut_ulint_sort(): Remove.
          
          upd_field_t: Remove extern_storage.
          
          upd_node_t: Replace ext_vec, n_ext_vec with n_ext.
          
          row_merge_copy_blobs(): New function.
          
          row_ins_index_entry(): Add the parameter "ibool foreign" for suppressing
          foreign key checks during fast index creation or when inserting into
          secondary indexes.
          
          btr_page_insert_fits(): Add const qualifiers.
          
          btr_cur_add_ext(), upd_ext_vec_contains(): Remove.
          
          dfield_print_also_hex(), dfield_print(): Replace if...else if with switch.
          Observe dfield_is_ext().
        ------------------------------------------------------------
        revno: 0.3.610
        committer: marko
        timestamp: Thu 2007-06-21 08:58:41 +0000
        message:
          branches/zip: btr_rec_copy_externally_stored_field(): Add const qualifier
          to rec_t*.  Remove the ut_ad(rec_offs_validate()), because this function
          will be called from row0merge.c on a record that lacks the
          REC_N_NEW_EXTRA_BYTES.
        ------------------------------------------------------------
        revno: 0.3.609
        committer: marko
        timestamp: Wed 2007-06-20 20:07:56 +0000
        message:
          branches/zip: Add .deps to svn:ignore.
        ------------------------------------------------------------
        revno: 0.3.608
        committer: marko
        timestamp: Wed 2007-06-20 13:58:16 +0000
        message:
          branches/zip: Restore the transaction commit that was removed in r1583.
          
          ha_innobase::add_index(): Do commit the transaction, because the error
          handler (label err1) in mysql_alter_table() won't commit it as of now.
          This was detected in a failure of type_bit_innodb.
        ------------------------------------------------------------
        revno: 0.3.607
        committer: marko
        timestamp: Wed 2007-06-20 08:26:26 +0000
        message:
          branches/zip: Enable calls to inlined InnoDB functions in ha_innodb.cc,
          now that all of InnoDB code is built from a single Makefile and it should
          not be possible to build the modules with mutually incompatible options.
          
          #define INSIDE_HA_INNOBASE_CC: Remove.
          
          srv_sizeof_trx_t_in_ha_innodb_cc: Remove.
          
          dict_table_get_low_noninlined(): Remove.  This function was unused.
          
          Remove all _noninline functions.  Remove the _noninline suffix from
          all function calls in ha_innodb.cc.
        ------------------------------------------------------------
        revno: 0.3.606
        committer: marko
        timestamp: Tue 2007-06-19 12:44:45 +0000
        message:
          branches/zip: Add some const qualifiers, mainly to upd_t*.
          
          upd_get_n_fields(), upd_get_nth_field(): Add const qualifiers.
        ------------------------------------------------------------
        revno: 0.3.605
        committer: marko
        timestamp: Tue 2007-06-19 09:39:27 +0000
        message:
          branches/zip: Define mem_heap_calloc() and mem_calloc().  Use them
          when allocating zero-filled memory.
        ------------------------------------------------------------
        revno: 0.3.604
        committer: marko
        timestamp: Mon 2007-06-18 11:46:42 +0000
        message:
          branches/zip: ha_innobase::add_index(): Split some assertions.
          Remove the variable parent_trx.
          
          Call innobase_register_stmt() in order to work around a MySQL bug
          in mysql_alter_table(), which, as of
          
          ChangeSet@1.2482.61.2, 2007-06-07 16:37:15+02:00, joerg@trift2. +8 -0
          
          commits the transaction before calling ha_innobase::add_index().
          Without re-registering the statement, the ha_commit_stmt(thd)
          in mysql_alter_table() would not invoke innobase_commit.
        ------------------------------------------------------------
        revno: 0.3.603
        committer: marko
        timestamp: Mon 2007-06-18 11:01:30 +0000
        message:
          branches/zip: ha_innobase::add_index(): Do not commit the transaction.
          It should be committed by MySQL after all.  The error in mysql_alter_table()
          will be worked around in r1584.
        ------------------------------------------------------------
        revno: 0.3.602
        committer: marko
        timestamp: Wed 2007-06-13 13:40:29 +0000
        message:
          branches/zip: Remove reads of freed memory in fast index creation.
          Because row_drop_table_for_mysql_no_commit() checks with dict_load_table()
          if the table was successfully dropped, we cannot pass table->name to it.
          
          row_merge_drop_table(): Pass a copy of table->name to
          row_drop_table_for_mysql().
          
          row_prebuilt_free(): Do not dereference prebuilt->table->name after a
          successful invocation of row_add_table_to_background_drop_list().  The
          table object may be freed at any time.  Remove the debug message
          "Dropping table".
        ------------------------------------------------------------
        revno: 0.3.601
        committer: marko
        timestamp: Wed 2007-06-13 11:01:26 +0000
        message:
          branches/zip: Fix a few bugs in fast index creation.  No more crashes
          occur in mysql-test-run, but mysql-test-run reports some warnings for
          some tests and incorrect results for innodb-index.test.
          
          innobase_start_trx_and_assign_read_view(): Use thd instead of current_thd.
          
          ha_innobase::add_index(): Use ha_thd() instead of current_thd.
          Commit the transaction at the end.
          
          row_merge_rename_index(): Really change the name of the index.  This was
          broken in r1430.
        ------------------------------------------------------------
        revno: 0.3.600
        committer: marko
        timestamp: Wed 2007-06-13 10:20:52 +0000
        message:
          branches/zip: Merge 1571:1575 from trunk.
        ------------------------------------------------------------
        revno: 0.3.599
        committer: marko
        timestamp: Wed 2007-06-13 10:19:23 +0000
        message:
          branches/zip: trx_commit_for_mysql(): Replace ut_a(err)
          with ut_a(err == DB_SUCCESS).
        ------------------------------------------------------------
        revno: 0.3.598
        committer: marko
        timestamp: Tue 2007-06-12 10:59:01 +0000
        message:
          branches/zip: Merge 1556:1571 from trunk.
        ------------------------------------------------------------
        revno: 0.3.597
        committer: marko
        timestamp: Tue 2007-06-12 07:06:36 +0000
        message:
          branches/zip: Correctly print the names of temporary tables and indexes
          during fast index creation.
          
          TEMP_TABLE_PREFIX: Move the definition from dict0dict.h to ut0ut.h.
          
          ut_print_namel(): Check if the name starts with TEMP_TABLE_PREFIX.
          
          innobase_rename_table(): Print all names with ut_print_name().
          
          row_prebuilt_free(): Replace assert() with ut_a().
        ------------------------------------------------------------
        revno: 0.3.596
        committer: marko
        timestamp: Mon 2007-06-11 14:39:04 +0000
        message:
          branches/zip: Initialize some uninitialized variables in order to avoid
          comparing uninitialized values.
          
          dict_mem_table_create(): Initialize table->version_number.
          
          ins_node_create(): Initialize node->table_version_number.
          
          row_create_prebuilt(): Initialize all fields.  Initialize most fields
          by memset(), so that any fields that are added will be initialized
          automatically.
        ------------------------------------------------------------
        revno: 0.3.595
        committer: marko
        timestamp: Mon 2007-06-11 08:26:33 +0000
        message:
          branches/zip: Create special single-table tablespace file names for
          temporary tablespaces in fast index creation.  The tablespaces must
          reside in the same directory as the persistent tablespaces, so that
          they can be renamed without copying.  Namespace collisions are avoided
          by replacing the ".ibd" file name suffix with ".ib1" or ".ib2".
          
          fil_make_ibd_name(): Treat names starting with TEMP_TABLE_PREFIX
          specially.  Document the dependence on
          innobase_create_temporary_tablename().
        ------------------------------------------------------------
        revno: 0.3.594
        committer: marko
        timestamp: Fri 2007-06-08 20:30:26 +0000
        message:
          branches/zip: Fix bugs in merge sort.
          
          row_merge_buf_add(): Correctly calculate buf->total_size.
          
          row_merge_buf_write(): Add an assertion about buf->total_size.
          
          row_merge_heap_create(), row_merge_read_rec(), row_merge_insert_index_tuples():
          offsets needs to be 1 + REC_OFFS_HEADER_SIZE + n_fields.  Previously, we
          allocated one element too little.
          
          row_merge_blocks(): Use goto instead of break in the AT_END argument
          of ROW_MERGE_WRITE_GET_NEXT.
        ------------------------------------------------------------
        revno: 0.3.593
        committer: marko
        timestamp: Fri 2007-06-08 09:49:50 +0000
        message:
          branches/zip: row_merge_build_indexes(): Allocate all buffers with a
          single os_mem_alloc_large() call.  The function mem_alloc() that was
          used previously allocates unaligned memory.
          
          row_merge_blocks(): Replace block1, block2, block3 with a single array.
          Replace buf1, buf2, buf3 with buf[3].  Replace b1..b3 with b0..b2.
          Replace mrec1,2 with mrec0,1.  Replace offsets1,2 with offsets0,1.
          
          row_merge(), row_merge_sort(): Replace block1, block2, block3 with a
          single array.
        ------------------------------------------------------------
        revno: 0.3.592
        committer: marko
        timestamp: Fri 2007-06-08 07:37:07 +0000
        message:
          branches/zip: Reimplement merge sort in fast index creation.
          
          The creation of the primary key does not work.  We will have to flag
          externally stored columns and copy the externally stored part from
          the old table.
          
          row_build_index_for_mysql(): Rename to row_merge_build_indexes().
          Move from row0mysql.c to row0merge.c.
          
          Remove private declarations from row0merge.h.  Make many functions static
          in row0merge.c.
          
          cmp_rec_rec_simple(): A new comparison function.
          
          dict_index_get_min_size(): New function.
          
          OS_FILE_FROM_FD(fd): A macro for converting from int to os_file_t.
          
          rec_convert_dtuple_to_rec_comp(): Make the interface lower-level.
          
          rec_get_converted_size_comp(): Return also extra_size.
          
          UT_SORT_FUNCTION_BODY(): Remove reference to an obsolete test program.
          
          row_rec_to_index_entry_low(): New function.
          
          row0merge.c: Implement merge sort based on file streams instead of
          fixed-size blocks.  Sort the small blocks as arrays of dfield_t*,
          because it is faster than invoking rec_get_offsets() for every
          comparison.
        ------------------------------------------------------------
        revno: 0.3.591
        committer: marko
        timestamp: Fri 2007-06-08 07:05:17 +0000
        message:
          branches/zip: Merge 1553:1556 from trunk.
        ------------------------------------------------------------
        revno: 0.3.590
        committer: marko
        timestamp: Thu 2007-06-07 19:57:34 +0000
        message:
          branches/zip: innodb-index.test: Check the length of the long columns.
        ------------------------------------------------------------
        revno: 0.3.589
        committer: marko
        timestamp: Thu 2007-06-07 18:29:57 +0000
        message:
          branches/zip: Reduce memory allocation and pointer indirection
          in fast index creation.
          
          innobase_create_index_def(), innobase_copy_index_def(): Copy to pre-allocated
          space.
          
          innobase_create_key_def(): Change the return type from merge_index_def_t**
          to merge_index_def_t*.
        ------------------------------------------------------------
        revno: 0.3.588
        committer: marko
        timestamp: Thu 2007-06-07 12:23:26 +0000
        message:
          branches/zip: Minor cleanup.
          
          innobase_create_index_def(): Add parameter new_primary.
          
          innobase_copy_index_def(): Simplify the documented algorithm,
          and try to implement it properly.
          
          innodb-index.test: Replace CHECKSUM TABLE with something more stable and
          useful.  The test passes on an older BitKeeper snapshot:
          
          ChangeSet@1.2475.18.9, 2007-05-08 11:16:41+02:00, jbruehe@mysql.com +1 -0
            Raise version number after cloning 5.1.18-beta
          
          But it fails on a newer one where the statement
           alter table t1 add primary key (a), add key (b(20));
          results in fast index creation:
          
          ChangeSet@1.2500.1.40, 2007-06-01 20:06:13+04:00, kostja@bodhi.(none) +2 -0
            Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime
            into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
            MERGE: 1.1810.2984.14
        ------------------------------------------------------------
        revno: 0.3.587
        committer: marko
        timestamp: Thu 2007-06-07 09:47:59 +0000
        message:
          branches/zip: Document dict_rename_indexes() better.
        ------------------------------------------------------------
        revno: 0.3.586
        committer: marko
        timestamp: Thu 2007-06-07 08:14:42 +0000
        message:
          branches/zip: row_merge_read_clustered_index(): Correctly skip the page
          infimum and supremum.  This was broken in r1515.
        ------------------------------------------------------------
        revno: 0.3.585
        committer: marko
        timestamp: Wed 2007-06-06 20:25:35 +0000
        message:
          branches/zip: Clean up fast index creation API.
          
          row_merge_create_temporary_table(), row_merge_create_index():
          Return the dictionary object.  On error, set trx->error_state.
        ------------------------------------------------------------
        revno: 0.3.584
        committer: marko
        timestamp: Wed 2007-06-06 11:07:37 +0000
        message:
          branches/zip: Merge 1533:1553 from trunk.
        ------------------------------------------------------------
        revno: 0.3.583
        committer: marko
        timestamp: Mon 2007-06-04 07:51:10 +0000
        message:
          branches/zip: Minor cleanup.
          
          row_merge_mark_prebuilt_obsolete(): Rename to row_prebuilt_table_obsolete()
          and move from row0merge.c to row0mysql.c.  Remove the parameter trx.
          
          row_merge_print_table(): Remove.
        ------------------------------------------------------------
        revno: 0.3.582
        committer: marko
        timestamp: Mon 2007-06-04 07:49:31 +0000
        message:
          branches/zip: Minor cleanup.
          
          row_remove_indexes_for_mysql(): Rename to row_merge_drop_indexes(),
          move from row0mysql.c to row0merge.c and make the return type void.
          
          row_merge_remove_index(): Rename to row_merge_drop_index() and make
          the return type void.
        ------------------------------------------------------------
        revno: 0.3.581
        committer: marko
        timestamp: Tue 2007-05-29 08:48:16 +0000
        message:
          branches/zip: Merge 1493:1533 from trunk.
          
          Make use of UT_BITS_IN_BYTES().
        ------------------------------------------------------------
        revno: 0.3.580
        committer: marko
        timestamp: Mon 2007-05-28 07:42:28 +0000
        message:
          branches/zip: Revert r1523.  Passing extra parameters to SORT_FUN and CMP_FUN
          of UT_SORT_FUNCTION_BODY is best done by defining SORT_FUN and CMP_FUN as
          macros when needed.  The solution of r1523 allows for only one extra parameter.
        ------------------------------------------------------------
        revno: 0.3.579
        committer: marko
        timestamp: Thu 2007-05-24 13:14:57 +0000
        message:
          branches/zip: UT_SORT_FUNCTION_BODY(): Add the parameter CTX, which will be
          needed in row0merge.c for merge sorting the small blocks in main memory.
          Pass CTX also to SORT_FUN.  Adjust all users.
        ------------------------------------------------------------
        revno: 0.3.578
        committer: marko
        timestamp: Tue 2007-05-22 11:55:07 +0000
        message:
          branches/zip: rec_get_offsets_reverse(): Fix the type of the parameter
          node_ptr.
        ------------------------------------------------------------
        revno: 0.3.577
        committer: marko
        timestamp: Tue 2007-05-22 11:12:35 +0000
        message:
          branches/zip: Refactor some code for handling records in ROW_FORMAT=COMPACT.
          
          rec_get_converted_size_new(): Rename to rec_get_converted_size_comp().
          Add const qualifier to dtuple.  Remove the assertion
          dict_table_is_comp(index->table), because this function will be invoked
          when populating the temporary files in fast index creation.
          
          rec_convert_dtuple_to_rec_new(): Rename to rec_convert_dtuple_to_rec_comp().
          Add parameter "extra".
          
          rec_init_offsets_comp_ordinary(): New function.  Used in rec_init_offsets().
        ------------------------------------------------------------
        revno: 0.3.576
        committer: marko
        timestamp: Tue 2007-05-22 09:34:25 +0000
        message:
          branches/zip: Rename dtuple_datas_are_ordering_equal() to dtuple_coll_cmp(),
          and change the return type from ibool to int (-1, 0, 1).  This comparison
          function will be needed in fast index creation.
        ------------------------------------------------------------
        revno: 0.3.575
        committer: marko
        timestamp: Tue 2007-05-22 06:48:53 +0000
        message:
          branches/zip: Correct the terminology: s/cluster index/clustered index/.
          
          row_merge_read_clustered_index(): Simplify the loop that scans the
          clustered index.
        ------------------------------------------------------------
        revno: 0.3.574
        committer: marko
        timestamp: Mon 2007-05-21 09:35:13 +0000
        message:
          branches/zip: Implement INFORMATION_SCHEMA.INNODB_ZIP_RESET, which is
          otherwise like INNODB_ZIP, but resets the cumulated counts.
          
          Rename innodb_buddy to innodb_zip in some comments.
          
          innobase_stat_zip_fill(): Add parameter "reset".  Document the race condition
          with the compression statistics counters.
        ------------------------------------------------------------
        revno: 0.3.573
        committer: marko
        timestamp: Fri 2007-05-18 13:00:53 +0000
        message:
          branches/zip: Minor cleanup.
          
          trx_undo_report_row_operation(), trx_undo_report_dict_operation():
          Reduce the scope of some variables.  Move the return(DB_SUCCESS)
          case inside the for loop.
        ------------------------------------------------------------
        revno: 0.3.572
        committer: marko
        timestamp: Fri 2007-05-18 11:37:05 +0000
        message:
          branches/zip: row_merge_block_merge(): Add an assertion against buffer
          overflow.
        ------------------------------------------------------------
        revno: 0.3.571
        committer: marko
        timestamp: Fri 2007-05-18 11:01:58 +0000
        message:
          branches/zip: Use ut_dulint_zero and ut_dulint_is_zero whenever possible.
        ------------------------------------------------------------
        revno: 0.3.570
        committer: marko
        timestamp: Fri 2007-05-18 10:53:29 +0000
        message:
          branches/zip: Fix some minor things in row0uins.c after comparing to trunk.
          
          Replace row0merge.h with row0mysql.h.
          
          Remove redundant test trx->dict_operation_lock_mode == 0.
          Fix typos in comments.
          
          row_undo_ins(): Make the function more similar to the one in trunk.
        ------------------------------------------------------------
        revno: 0.3.569
        committer: marko
        timestamp: Wed 2007-05-16 12:01:31 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): Set the insert buffer free bits
          exactly.  Rename the local variable "ulint level" to "ibool leaf".
          Document that if the function returns DB_SUCCESS on a compressed page that
          is covered by the insert buffer, the mini-transaction must be committed
          before latching any further pages.  Verify that this is the case on all
          execution paths.
        ------------------------------------------------------------
        revno: 0.3.568
        committer: marko
        timestamp: Wed 2007-05-16 09:23:53 +0000
        message:
          branches/zip: Document and obey the rules for modifying the free bits in
          the insert buffer bitmap.
          
          ibuf_set_free_bits_func(): Never disable redo logging.
          
          ibuf_update_free_bits_zip(): Remove.
          
          btr_page_reorganize_low(), page_zip_reorganize(): Do not update the insert
          buffer bitmap.  Instead, document that callers will have to take care of it,
          and adapt the callers.
          
          btr_compress(): On error, reset the insert buffer free bits.
          
          btr_cur_insert_if_possible(): Do not modify the insert buffer bitmap.
          
          btr_compress(), btr_cur_optimistic_insert(): On compressed pages,
          reset the insert buffer bitmap.  Document why.
          
          btr_cur_update_alloc_zip(): Document why it is necessary and sufficient
          to reset the insert buffer free bits.
          
          btr_cur_update_in_place(), btr_cur_optimistic_update(),
          btr_cur_pessimistic_update(): Update the free bits in the same
          mini-transaction.  Document that the mini-transaction must be
          committed before latching any further pages.  Verify that this
          is the case in all execution paths.
          
          row_ins_sec_index_entry_by_modify(), row_ins_clust_index_entry_by_modify(),
          row_undo_mod_clust_low(): Because these functions call
          btr_cur_update_in_place(), btr_cur_optimistic_update(), or
          btr_cur_pessimistic_update(), document that the mini-transaction must be
          committed before latching any further pages.  Verify that this is the case
          in all execution paths.
        ------------------------------------------------------------
        revno: 0.3.567
        committer: marko
        timestamp: Tue 2007-05-15 09:31:41 +0000
        message:
          branches/zip: Minor cleanup.
          
          page_cur_tuple_insert(), page_cur_rec_insert(): Improve the documentation.
          Note that the physical position of page_cursor may change.
          
          page_cur_rec_insert(), page_cur_insert_rec_low(), page_cur_insert_rec_zip():
          Add a const qualifier to the parameter rec.
        ------------------------------------------------------------
        revno: 0.3.566
        committer: marko
        timestamp: Mon 2007-05-14 09:07:15 +0000
        message:
          branches/zip: Merge revisions 1402:1493 from trunk.
          
          Remove mysql.patch, because the configuration parameter interface has changed.
        ------------------------------------------------------------
        revno: 0.3.565
        committer: marko
        timestamp: Mon 2007-05-07 05:53:42 +0000
        message:
          branches/zip: Fix two bugs.
          
          mtr_commit(): Do not acquire the log mutex if no log records are to be written.
          
          ibuf_set_free_bits_func(): Do not clear mtr.modifications, because that would
          prevent the dirty insert buffer bitmap block from being moved to the flush
          list.  Instead, assume that mtr_commit() will not acquire log_sys->mutex
          because redo logging is disabled.
          
          buf_page_init_for_read(): I/O-fix the block before buf_buddy_alloc(), because
          the newly allocated block could otherwise be reused by the compressed page.
        ------------------------------------------------------------
        revno: 0.3.564
        committer: marko
        timestamp: Sun 2007-05-06 13:21:59 +0000
        message:
          branches/zip: When reading pages for merging buffered inserts, request that
          the pages be decompressed.
          
          buf_read_page_low(), buf_page_init_for_read(): Add parameter "unzip".
        ------------------------------------------------------------
        revno: 0.3.563
        committer: marko
        timestamp: Sun 2007-05-06 12:39:46 +0000
        message:
          branches/zip: ibuf_set_free_bits_func(): Disable redo logging when
          crash recovery is in progress.  This avoids a hang when
          btr_parse_page_reorganize(), called from an I/O handler thread,
          attempts to acquire log_sys->mutex while it is being held by
          the main thread (the one that runs innobase_init()).  This change
          was committed accidentally.  It may be unsafe to clear
          mtr.modifications, because buf_page_release() at mtr_commit() may
          forget to put modified pages to the flush list.
          
          Cleanup: Remove the "type" parameter from many ibuf functions.
          Let the caller check that !dict_index_is_clust().  This should avoid
          function calls and register spilling.
          
          ibuf_set_free_bits_func(), ibuf_set_free_bits(): Remove the parameter "type".
          
          ibuf_reset_free_bits_with_type(): Rename to ibuf_reset_free_bits().
          Remove the parameter "type".
          
          ibuf_update_free_bits_if_full(), ibuf_update_free_bits_zip(),
          ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low():
          Remove the parameter "index".
        ------------------------------------------------------------
        revno: 0.3.562
        committer: marko
        timestamp: Sun 2007-05-06 12:30:10 +0000
        message:
          branches/zip: buf_page_io_query(): Shorten the code by using a local variable.
        ------------------------------------------------------------
        revno: 0.3.561
        committer: marko
        timestamp: Sun 2007-05-06 12:28:05 +0000
        message:
          branches/zip: Minor cleanup.
          
          log_write_up_to(): Replace if-else if-else with a switch block.
          
          log_archive_do(): Remove an excess mutex_enter().  Replace if-else if-else
          with a switch block.  (This function is not included unless UNIV_LOG_ARCHIVE
          is defined.)
        ------------------------------------------------------------
        revno: 0.3.560
        committer: marko
        timestamp: Sun 2007-05-06 12:05:21 +0000
        message:
          branches/zip: Improve the documentation of UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.559
        committer: marko
        timestamp: Thu 2007-05-03 07:42:54 +0000
        message:
          branches/zip: Correct the comment of row_merge_cmp().
        ------------------------------------------------------------
        revno: 0.3.558
        committer: marko
        timestamp: Wed 2007-05-02 11:58:45 +0000
        message:
          branches/zip: Replace the table attribute AVG_ROW_LENGTH (ugly hack to
          pass the compressed page size) with KEY_BLOCK_SIZE.
        ------------------------------------------------------------
        revno: 0.3.557
        committer: marko
        timestamp: Mon 2007-04-30 07:02:28 +0000
        message:
          branches/zip: row_merge_sort_linked_list(): Add a default: ut_error; branch
          to the switch (row_merge_cmp(...)) to eliminate bogus warning about
          uninitialized variable tmp.
        ------------------------------------------------------------
        revno: 0.3.556
        committer: marko
        timestamp: Mon 2007-04-30 06:25:47 +0000
        message:
          branches/zip: Apply a fix from Sunny.  The function row_merge_block_merge()
          was broken in one of the earlier cleanups.
          
          row_merge_block_merge(): Remove the variable "selected".  Clear the record
          count of new_block1 and new_block2.  Anticipate the right return values
          from row_merge_cmp().
        ------------------------------------------------------------
        revno: 0.3.555
        committer: marko
        timestamp: Tue 2007-04-17 12:25:51 +0000
        message:
          branches/zip: Minor cleanup.
          
          Add __attribute__((const)) or __attribute__((pure)) to various
          mach_read functions.
          
          dtype_new_read_for_order_and_null_size(): Remove a statement
          without effect: mach_read_from_2(buf + 4).
        ------------------------------------------------------------
        revno: 0.3.554
        committer: marko
        timestamp: Tue 2007-04-17 09:44:29 +0000
        message:
          branches/zip: Reintroduce the local variables "sorted" that were removed
          in r1445.  They are needed after all, but apparently the tests do not
          actually verify that the records are sorted.  (Also, a buffer overflow
          will occur in index_merge_innodb.test if MERGE_BLOCK_SIZE is made smaller.)
        ------------------------------------------------------------
        revno: 0.3.553
        committer: marko
        timestamp: Tue 2007-04-17 08:53:47 +0000
        message:
          branches/zip: Clean up fast index creation.
          
          Correct the language of some comments.  Eliminate the local variables
          "num_of_merges" (renamed to "sorted" in one function).
        ------------------------------------------------------------
        revno: 0.3.552
        committer: marko
        timestamp: Tue 2007-04-17 08:21:28 +0000
        message:
          branches/zip: Clean up.
          
          cmp_rec_rec_with_match(): Initialize ret=0.  Remove assignments ret=0.
          
          rec_init_offsets(): Remove bogus comment.
        ------------------------------------------------------------
        revno: 0.3.551
        committer: marko
        timestamp: Mon 2007-04-16 09:21:39 +0000
        message:
          branches/zip: Make use of the function dict_index_is_unique().
        ------------------------------------------------------------
        revno: 0.3.550
        committer: marko
        timestamp: Mon 2007-04-16 09:13:44 +0000
        message:
          branches/zip: Clean up fast index creation.
          
          dict_index_is_unique(): New function.
          
          row_merge_rec_fits_to_block(), row_merge_store_rec_to_block():
          Add const qualifiers to rec, offsets.
          
          row_merge_select(): Rename to row_merge_cmp(), simplify the interface.
          
          row_merge_sort_linked_list(): Change the return type to ibool.
          Replace sec_offs1,sec_offs2 with offsets1,offsets2.  Replace offset_heap
          with heap.  Define a func_exit label.
          
          row_merge_block_merge(): Reduce the scope of rec_offsets.
        ------------------------------------------------------------
        revno: 0.3.549
        committer: marko
        timestamp: Mon 2007-04-16 07:11:00 +0000
        message:
          branches/zip: Clean up fast index creation.
          
          merge_rec_list_t: Define n_records only #ifdef UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.548
        committer: marko
        timestamp: Mon 2007-04-16 07:10:00 +0000
        message:
          branches/zip: Clean up fast index creation.
          
          row_merge_dict_table_get_index(): Add function comment.
          Use inlined versions of mem_alloc() and mem_free().
        ------------------------------------------------------------
        revno: 0.3.547
        committer: marko
        timestamp: Fri 2007-04-13 12:11:43 +0000
        message:
          branches/zip: fast index creation: Check the status of os_file_read()
          and os_file_write(), and return DB_CORRUPTION when they fail.  Minor cleanup.
          
          row_mege_insert_index_tuples(): Use a shared heap for dtuple and rec.
          Use fewer gotos.
          
          row_merge_sort_linked_list_in_disk(): Free the merge blocks at error exit.
        ------------------------------------------------------------
        revno: 0.3.546
        committer: marko
        timestamp: Thu 2007-04-12 12:58:09 +0000
        message:
          branches/zip: Clean up fast index creation.
          
          row_merge_read(), row_merge_write(): Add UNIV_LIKELY hints.
          
          row_merge_sort_linked_list_in_disk(): Reduce the scope of many variables.
          Eliminate the variable "selected".
        ------------------------------------------------------------
        revno: 0.3.545
        committer: marko
        timestamp: Thu 2007-04-12 10:32:16 +0000
        message:
          branches/zip: Minor cleanup of merge_file_t and merge_block_header_t.
          
          Replace byte offsets of type dulint with block offsets of type ulint.
          Avoid references to MERGE_BLOCK_SIZE.
          
          Improve the language of some comments.
          
          row_merge_insert_index_tuples(), row_merge_sort_linked_list_in_disk():
          Make the offset a ulint.
          
          row_merge_read(), row_merge_write(): Helper functions.  Return the
          status of os_file_read() and os_file_write().  TO DO: check the status
          in the callers.
        ------------------------------------------------------------
        revno: 0.3.544
        committer: marko
        timestamp: Thu 2007-04-12 05:14:41 +0000
        message:
          branches/zip: More cleanup of fast index creation.
          
          innobase_create_temporary_tablename(): Add static qualifier.  Allocate
          the memory from heap.  Return a fixed identifier.
          
          ha_innobase::add_index(): Allocate all memory from a single heap.
          Simplify error handling.  Use a fixed prefix for temporary table names,
          because only one add_index() can be active for a given table.
          
          mem_heap_empty_noninline(): New function, to be called from ha_innodb.cc.
          
          row_build_index_for_mysql(): Remove the parameter new_primary.
        ------------------------------------------------------------
        revno: 0.3.543
        committer: marko
        timestamp: Wed 2007-04-11 12:42:54 +0000
        message:
          branches/zip: Clean up fast index creation.
          
          row_merge_remove_index(), row_merge_rename_index(): Remove risky sprintf()
          calls.  Make use of named literals and que_eval_sql().
        ------------------------------------------------------------
        revno: 0.3.542
        committer: marko
        timestamp: Wed 2007-04-11 12:17:55 +0000
        message:
          branches/zip: Some more cleanup of fast index creation.
          
          Move more definitions from row0mysql.h to row0mysql.c.  Remove the
          unused definition of merge_thread.
          
          merge_index_def_t: Replace merge_index_field_t** with merge_index_field_t*.
          Use mem_heap_strdup() when copying strings.
          
          ha_innobase::add_index(): Avoid excessive use of current_thd.
        ------------------------------------------------------------
        revno: 0.3.541
        committer: marko
        timestamp: Wed 2007-04-11 09:42:50 +0000
        message:
          branches/zip: row_merge_sort_linked_list_in_disk(): Remove some unnecessary
          assignments.  A memory leak remains at "goto error_handling": the memory
          allocated with row_merge_block_create() in the beginning of this function
          will not be freed.
        ------------------------------------------------------------
        revno: 0.3.540
        committer: marko
        timestamp: Wed 2007-04-11 08:16:14 +0000
        message:
          branches/zip: Initial clean up of the merge sort subsystem.
          
          Define the merge_rec_ structures in row0merge.c instead of
          row0merge.h.  They are not used in the interface defined in row0merge.h.
          
          row_merge_create_file_structure(): Rename to row_merge_file_create().
          Input a pointer to a pre-allocated block of memory.
          
          row_merge_read_clustered_index(): Replace merge_file_t** with merge_file_t*.
          
          row_merge_sort_and_insert_thread(): Remove the declaration.
          This function was never defined or called.
          
          row_merge_is_index_usable(): Correct the formatting.
          
          row_build_index_for_mysql(): Allocate an array of merge_file_t instead
          of an array of pointers to merge_file_t.
        ------------------------------------------------------------
        revno: 0.3.539
        committer: marko
        timestamp: Tue 2007-04-10 08:23:11 +0000
        message:
          branches/zip: Rename INFORMATION_SCHEMA.INNODB_BUDDY to INNODB_ZIP.
        ------------------------------------------------------------
        revno: 0.3.538
        committer: marko
        timestamp: Tue 2007-04-10 08:11:49 +0000
        message:
          branches/zip: Add statistics on page compression and decompression counts.
          
          ha_innodb.cc: Add the columns COMPRESSED, COMPRESSED_OK, DECOMPRESSED
          to INFORMATION_SCHEMA.INNODB_BUDDY.
          
          page_zip_compress_count[], page_zip_compress_ok[]: New statistic counters,
          incremented in page_zip_compress().
          
          page_zip_decompress_count[]: New statistic counter,
          incremented in page_zip_decompress().
        ------------------------------------------------------------
        revno: 0.3.537
        committer: marko
        timestamp: Wed 2007-04-04 14:26:06 +0000
        message:
          branches/zip: Fix the merge of branches/fast-index-creation -r1413 in r1414.
          
          innodb.test: The error code 1540 has been renumbered to 1542.
          innodb.result: Adjust the expected value of Innodb_buffer_pool_pages_total.
          Something may have changed in the BLOB handling in branches/zip.
          
          ha_innodb.cc: Add ha_innobase:: prefix to some DBUG_ENTER macros.
          
          row_merge_create_temporary_table(): Free the heap only after invoking
          row_create_table_for_mysql().  The table->col_names points to the heap
          until the system columns are added by row_create_table_for_mysql().
          
          TODO: use the filename-safe encoding in temporary table names.  Test
          extensively under Valgrind and fix all errors found.  Eliminate
          merge_rec_t and rewrite row0merge.c to write the records directly to
          the merge blocks.
        ------------------------------------------------------------
        revno: 0.3.536
        committer: marko
        timestamp: Wed 2007-04-04 11:05:33 +0000
        message:
          branches/zip: Merge branches/fast-index-creation -r1413.
          Fix some bugs.  The tests innodb and innodb-index fail, but that might
          be due to an old MySQL source tree being used.
        ------------------------------------------------------------
        revno: 0.3.535
        committer: marko
        timestamp: Mon 2007-04-02 05:39:41 +0000
        message:
          branches/zip: Merge revisions 1322:1402 from trunk.
        ------------------------------------------------------------
        revno: 0.3.534
        committer: marko
        timestamp: Thu 2007-03-29 08:51:13 +0000
        message:
          branches/zip: Make TRUNCATE TABLE recreate single-table tablespaces.
          
          dict_truncate_index_tree(): Add the parameter space for specifying the
          new tablespace identifier of a single-table tablespace that has been
          recreated.  When SYS_INDEXES.PAGE_NO == FIL_NULL, do not abort but
          create the index tree.
          
          fil_discard_tablespace(): Pass the return code from fil_delete_tablespace().
          
          row_truncate_table_for_mysql(): Attempt to discard and recreate
          single-table tablespaces.  Reassign the tablespace identifier both in
          the data dictionary (SYS_TABLES and SYS_INDEXES) and in the data
          dictionary cache.
        ------------------------------------------------------------
        revno: 0.3.533
        committer: marko
        timestamp: Thu 2007-03-29 07:13:22 +0000
        message:
          branches/zip: Minor cleanup in rollback.
          
          trx_undo_left(): Add const qualifiers.
          
          trx_undo_page_report_insert(): Use exact trx_undo_left() limit.
          Remove a duplicated trx_undo_left() check.
          
          trx_undo_page_report_modify(): Eliminate the local variable len.
          Document that no prefix for BLOBs needs to be stored in the undo log.
          Lump two trx_undo_left() checks together.
        ------------------------------------------------------------
        revno: 0.3.532
        committer: marko
        timestamp: Wed 2007-03-28 19:35:52 +0000
        message:
          branches/zip: btr_cur_pessimistic_update(): Add parameter heap.
          Previously, when big_rec was returned, the fields would point to
          freed memory.  The memory heap was allocated locally, and the data tuple
          was allocated from the heap, and the big_rec would point to some fields
          in the data tuple.
          
          row_ins_clust_index_entry_by_modify(): Add parameter heap,
          for the same reason.
        ------------------------------------------------------------
        revno: 0.3.531
        committer: marko
        timestamp: Wed 2007-03-28 18:31:16 +0000
        message:
          branches/zip: Make dtuple_big_rec_free() an inline function.
        ------------------------------------------------------------
        revno: 0.3.530
        committer: marko
        timestamp: Wed 2007-03-28 11:07:28 +0000
        message:
          branches/zip: buf_LRU_block_free_non_file_page(): Flag block->frame
          allocated before overwriting some fields and flagging the frame freed.
          Some of the buffer frame may have been flagged freed by the user
          (such as mem_heap).
        ------------------------------------------------------------
        revno: 0.3.529
        committer: marko
        timestamp: Wed 2007-03-28 09:02:55 +0000
        message:
          branches/zip: Add Valgrind instrumentation to the InnoDB memory management
          functions.
          
          ut_malloc_low(): Flag the block with UNIV_MEM_ALLOC().  Do not flag the
          block with UNIV_MEM_FREE() in ut_free(), because it would cause bogus
          Valgrind warnings in the underlying memory allocator.
          
          mem_pool_create(): Flag the data area with UNIV_MEM_FREE().
          
          mem_pool_fill_free_list(): Flag the area header with UNIV_MEM_ALLOC().
          
          mem_area_alloc(): Flag the data area with UNIV_MEM_ALLOC().
          
          mem_area_free(): Flag the data area with UNIV_MEM_FREE().
          
          mem_heap_alloc(): Flag the buffer with UNIV_MEM_ALLOC().
          
          mem_heap_block_free(): Flag the block with UNIV_MEM_FREE().
          
          mem_heap_free_top(): Flag the block with UNIV_MEM_FREE().
        ------------------------------------------------------------
        revno: 0.3.528
        committer: marko
        timestamp: Wed 2007-03-14 12:34:55 +0000
        message:
          branches/zip: Minor cleanup.
          
          btr_rec_free_updated_extern_fields(): Remove the parameter
          do_not_free_inherited, which is always passed as TRUE.
          
          btr_cur_unmark_extern_fields(): Invoke rec_offs_any_extern().
          
          btr_cur_unmark_dtuple_extern_fields(): Remove a local variable.
        ------------------------------------------------------------
        revno: 0.3.527
        committer: marko
        timestamp: Mon 2007-03-12 12:01:45 +0000
        message:
          branches/zip: Add the pseudo table INFORMATION_SCHEMA.INNODB_BUDDY
          for displaying buddy allocator statistics.
          
          buf_buddy_used[], buf_buddy_relocated[]: Declare as global symbols.
          
          mysql_declare_plugin(innobase): Add MYSQL_INFORMATION_SCHEMA_PLUGIN
          for innobase_is_buddy ("INNODB_BUDDY").
        ------------------------------------------------------------
        revno: 0.3.526
        committer: marko
        timestamp: Mon 2007-03-05 09:13:33 +0000
        message:
          branches/zip: dict_mem_table_free(): Remove the call
          ut_free(table->col_names) that should have been removed in r1264,
          which made the temporary memory allocations use a caller-supplied heap.
        ------------------------------------------------------------
        revno: 0.3.525
        committer: marko
        timestamp: Thu 2007-03-01 13:53:57 +0000
        message:
          branches/zip: Merge revisions 1271:1322 from trunk.
        ------------------------------------------------------------
        revno: 0.3.524
        committer: marko
        timestamp: Thu 2007-03-01 11:33:26 +0000
        message:
          branches/zip: ibuf_set_free_bits(): Rename to ibuf_set_free_bits_func(),
          and remove the max_val parameter unless #ifdef UNIV_IBUF_DEBUG
        ------------------------------------------------------------
        revno: 0.3.523
        committer: marko
        timestamp: Thu 2007-03-01 11:28:30 +0000
        message:
          branches/zip: ibuf_update_free_bits_if_full(): Remove the zip_size
          parameter.  Add ibuf_update_free_bits_zip() for compressed pages.
        ------------------------------------------------------------
        revno: 0.3.522
        committer: marko
        timestamp: Wed 2007-02-28 16:04:19 +0000
        message:
          branches/zip: dict_table_copy_types(), dict_index_copy_types(): Add const
          qualifiers.  Correct the documentation of the parameters.
        ------------------------------------------------------------
        revno: 0.3.521
        committer: marko
        timestamp: Wed 2007-02-28 13:19:13 +0000
        message:
          btr_cur_optimistic_insert(): When inserting into a compressed page,
          pass max_ins_size=UNIV_PAGE_SIZE and increase=ULINT_UNDEFINED to
          ibuf_update_free_bits_if_full().  Otherwise, a bogus assertion failure
          may occur when the page is recompressed and there is more space available
          in the modification log after inserting the record.
        ------------------------------------------------------------
        revno: 0.3.520
        committer: marko
        timestamp: Wed 2007-02-28 11:08:59 +0000
        message:
          branches/zip: Note that page_cur_tuple_insert() can fail without attempting
          to reorganize a compressed page.  This mistake was made in r1308.
        ------------------------------------------------------------
        revno: 0.3.519
        committer: marko
        timestamp: Tue 2007-02-27 11:56:38 +0000
        message:
          branches/zip: Split UNIV_IBUF_COUNT_DEBUG from UNIV_IBUF_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.518
        committer: marko
        timestamp: Tue 2007-02-27 10:21:44 +0000
        message:
          branches/zip: Prepare for a negative return from page_zip_max_ins_size().
        ------------------------------------------------------------
        revno: 0.3.517
        committer: marko
        timestamp: Tue 2007-02-27 07:25:24 +0000
        message:
          branches/zip: btr_cur_insert_if_possible(): Update the free bits on
          compressed secondary index pages after attempting the insert.
          
          btr_cur_update_alloc_zip(): Reset the insert buffer free bits if there is
          insufficient space available on secondary index pages.  Do not update
          the bits after successful operation.
          
          btr_cur_update_in_place(): Update the free bits in the index buffer.
          
          btr_cur_optimistic_update(): First check rec_offs_any_extern(), because
          checking it is cheaper than checking the "external storage" flags of the
          update vector.  Update the insert buffer free bits in any case after
          successfully calling btr_cur_update_alloc_zip().
        ------------------------------------------------------------
        revno: 0.3.516
        committer: marko
        timestamp: Mon 2007-02-26 09:35:02 +0000
        message:
          branches/zip: Update the insert buffer free bits when recompressing
          a page during update-in-place.
          
          page_zip_alloc(): Rename to btr_cur_update_alloc_zip().
          Invoke ibuf_update_free_bits_if_full().
        ------------------------------------------------------------
        revno: 0.3.515
        committer: marko
        timestamp: Tue 2007-02-20 15:01:47 +0000
        message:
          branches/zip: Many places: Avoid re-reorganizing compressed pages after
          failing insert.  Reorganization will have been attempted in
          page_cur_tuple_insert() or page_cur_rec_insert().
          
          page_zip_reorganize(): Recompute the insert buffer free bits for
          leaf pages of secondary indexes.
          
          ibuf_data_enough_free_for_insert(): Simplify.
        ------------------------------------------------------------
        revno: 0.3.514
        committer: marko
        timestamp: Tue 2007-02-20 13:50:39 +0000
        message:
          branches/zip: page_cur_rec_field_extends(): Fix compilation errors that
          were introduced when reducing the memory footprint of the data dictionary
          cache (Bug #20877), around r834.  This function is only compiled if
          PAGE_CUR_LE_OR_EXTENDS is defined in page0cur.h.
        ------------------------------------------------------------
        revno: 0.3.513
        committer: marko
        timestamp: Tue 2007-02-20 13:36:17 +0000
        message:
          branches/zip: Fix bugs related to the insert buffering of
          compressed tablespaces.
          
          btr_page_reorganize_low(): Recompute the insert buffer free bits
          for compressed pages belonging to a non-clustered index.
          
          btr_cur_optimistic_insert(): Determine if the page was reorganized by
          page_cur_tuple_insert(). Do not attempt to reorganize compressed pages,
          because that will be attempted by page_cur_tuple_insert().
        ------------------------------------------------------------
        revno: 0.3.512
        committer: marko
        timestamp: Tue 2007-02-20 11:30:13 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): If btr_page_reorganize()
          fails, reset the insert buffer free bits for the page.
        ------------------------------------------------------------
        revno: 0.3.511
        committer: marko
        timestamp: Mon 2007-02-19 20:32:06 +0000
        message:
          branches/zip: Enable the insert buffer on compressed tablespaces.
          
          page_zip_max_ins_size(): New function.
          
          btr_cur_optimistic_insert(), btr_cur_optimistic_delete(),
          btr_page_split_and_insert(), btr_compress(): Do not update the
          ibuf free bits for non-leaf pages or pages belonging to a clustered index.
          The insert buffer only covers operations on leaf pages of secondary indexes.
          For pages covered by the insert buffer, limit the max_ins_size to
          page_zip_max_ins_size().
          
          buf_page_get_gen(): Merge the insert buffer after decompressing the page.
          
          buf_page_io_complete(): Relax the assertion about ibuf_count.  For
          compressed-only pages, the insert buffer merge takes place
          in buf_page_get_gen().
          
          ibuf_index_page_calc_free_bits(), ibuf_index_page_calc_free_from_bits(),
          ibuf_index_page_calc_free(), ibuf_update_free_bits_if_full(),
          ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(),
          ibuf_set_free_bits_low(): Add the parameter zip_size.  Limit the maximum
          insert size to page_zip_max_ins_size().
        ------------------------------------------------------------
        revno: 0.3.510
        committer: marko
        timestamp: Mon 2007-02-19 14:51:44 +0000
        message:
          branches/zip: page_zip_get_trailer_len(), page_zip_available():
          Replace the parameter "dict_index_t* index" with "ibool is_clust".
          
          dict_index_is_clust(): Add __attribute__((pure)).
        ------------------------------------------------------------
        revno: 0.3.509
        committer: marko
        timestamp: Mon 2007-02-19 14:23:32 +0000
        message:
          branches/zip: buf_LRU_search_and_free_block(): Do not try to preserve
          compressed pages, because doing so would require a call to
          buf_buddy_alloc(), which in turn can invoke buf_LRU_get_free_block()
          and buf_LRU_search_and_free_block(), potentially infinite recursion.
        ------------------------------------------------------------
        revno: 0.3.508
        committer: marko
        timestamp: Fri 2007-02-16 09:22:50 +0000
        message:
          branches/zip: buf_LRU_search_and_free_block(): Avoid freeing compressed-only
          pages when they do not occupy too much of the buffer pool.
          
          buf0buddy.c, buf0buddy.h: Export buf_buddy_n_frames and buf_buddy_min_n_frames.
        ------------------------------------------------------------
        revno: 0.3.507
        committer: marko
        timestamp: Tue 2007-02-13 12:41:02 +0000
        message:
          branches/zip: Add statistic counters to the buddy allocator.
          
          buf_buddy_n_frames: Number of buffer frames allocated for the buddy system
          buf_buddy_used[]: Counts of allocated blocks, by buddy size.
          buf_buddy_relocated[]: Counts of blocks relocated, bu buddy size.
          
          buf_buddy_alloc_clean(): Note the added configuration parameter
          buf_buddy_min_n_frames: Preferred minimum buf_buddy_n_frames
        ------------------------------------------------------------
        revno: 0.3.506
        committer: marko
        timestamp: Tue 2007-02-13 11:21:57 +0000
        message:
          branches/zip: buf_LRU_get_free_block(): Add an UNIV_UNLIKELY hint
          around zip_size.  zip_size will be 0 most of the time.
        ------------------------------------------------------------
        revno: 0.3.505
        committer: marko
        timestamp: Tue 2007-02-13 11:15:27 +0000
        message:
          branches/zip: buf_page_get_gen(): After allocating an uncompressed page for
          decompression, check that the compressed block has not been
          buffer-fixed or I/O-fixed.  This race condition was introduced in r1286.
        ------------------------------------------------------------
        revno: 0.3.504
        committer: marko
        timestamp: Mon 2007-02-12 12:04:49 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): After dtuple_convert_big_rec(),
          invoke btr_cur_add_ext() so that rec_size will be computed correctly.
          Prepare to free the memory heap when handling errors.
        ------------------------------------------------------------
        revno: 0.3.503
        committer: marko
        timestamp: Thu 2007-02-08 14:19:55 +0000
        message:
          branches/zip: buf_page_init_for_read(): Defer the costly calls to
          buf_buddy_alloc() until after the block has been found not to exist
          in the buffer pool.
          
          buf_buddy_alloc(), buf_buddy_alloc_low(): Make lru an output parameter.
          Improve documentation.
          
          buf_page_init_for_read(): Simplify the code.  Check buf_page_hash_get()
          again if buf_buddy_alloc() released buf_pool->mutex.
        ------------------------------------------------------------
        revno: 0.3.502
        committer: marko
        timestamp: Thu 2007-02-08 12:33:54 +0000
        message:
          branches/zip: buf_page_create(): Do not IO-fix or X-latch the block
          when not invoking buf_buddy_alloc().
        ------------------------------------------------------------
        revno: 0.3.501
        committer: marko
        timestamp: Thu 2007-02-08 12:03:03 +0000
        message:
          branches/zip: buf_page_init_for_read(): Do not allocate an uncompressed page
          frame when reading compressed pages, unless crash recovery is in progress.
          
          buf_page_read_low(): Adapt for buf_page_init_for_read() returning
          buf_page_t* instead of buf_block_t*.
        ------------------------------------------------------------
        revno: 0.3.500
        committer: marko
        timestamp: Thu 2007-02-08 09:08:11 +0000
        message:
          branches/zip: buf_page_init_for_read(), buf_page_create(): Note in the
          function comments that buf_page_init_for_read() does not perform the
          state transition to FILE_PAGE.  This should have been done in r1286.
        ------------------------------------------------------------
        revno: 0.3.499
        committer: marko
        timestamp: Wed 2007-02-07 13:59:43 +0000
        message:
          branches/zip: Do not decompress blocks in buf_page_init_for_read(),
          but in buf_page_get_gen().  Adjust comments.  This prevents
          unnecessary decompression in read-ahead when the compressed block
          exists in the buffer pool.
          
          If the block does not exist in the buffer pool, read-ahead will still
          allocate an uncompressed page and decompress the block.
          
          Move buf_block_init_low() and buf_zip_decompress() earlier in the file,
          because some compilers are unable to inline functions that are defined
          after the invocation.
          
          buf_page_get_gen(): Decompress the block if needed.
          
          buf_page_init_for_read(): Do not decompress.
        ------------------------------------------------------------
        revno: 0.3.498
        committer: marko
        timestamp: Mon 2007-02-05 14:05:39 +0000
        message:
          branches/zip: page_zip_write_rec(): Treat records containing externally
          stored columns as a special case.
          
          page_zip_write_rec_ext(): New function for writing records containing
          externally stored columns.
        ------------------------------------------------------------
        revno: 0.3.497
        committer: marko
        timestamp: Mon 2007-02-05 13:20:00 +0000
        message:
          branches/zip: page_zip_decompress_clust(): Optimize the case when the
          record does not contain externally stored columns.
          
          page_zip_decompress_clust_ext(): New function for decompressing records
          containing externally stored columns.
        ------------------------------------------------------------
        revno: 0.3.496
        committer: marko
        timestamp: Mon 2007-02-05 12:17:11 +0000
        message:
          branches/zip: ha_innobase::create(): Do not test create_info->used_fields
          before testing create_info->avg_row_length, because otherwise the table
          would be converted to uncompressed format by CREATE INDEX and possibly
          other statements.
        ------------------------------------------------------------
        revno: 0.3.495
        committer: marko
        timestamp: Mon 2007-02-05 11:19:25 +0000
        message:
          branches/zip: Introduce separate functions for handling records containing
          externally stored columns.
          
          page_zip_compress_clust_ext(), page_zip_apply_log_ext():
          New functions.
          
          page_zip_compress_clust(), page_zip_apply_log(): Check rec_offs_any_extern()
          and avoid invoking the costly loop in most cases.
          
          Similar optimizations can be made in page_zip_decompress_clust() and
          page_zip_write_rec().
        ------------------------------------------------------------
        revno: 0.3.494
        committer: marko
        timestamp: Fri 2007-02-02 16:20:48 +0000
        message:
          branches/zip: Speed up rec_offs_any_extern() and rec_offs_n_extern()
          by adding the REC_OFFS_EXTERNAL flag to rec_offs_base(offsets)[0].
          
          This reduces the processor usage of page_zip_write_rec() by about 40%
          in one test case.  The code could be sped up further by testing
          rec_offs_any_extern() outside of loops that check rec_offs_nth_extern().
          The vast majority of records does not contain any externally stored columns.
        ------------------------------------------------------------
        revno: 0.3.493
        committer: marko
        timestamp: Fri 2007-02-02 11:31:29 +0000
        message:
          branches/zip: Merge revisions 1206:1271 from trunk.
        ------------------------------------------------------------
        revno: 0.3.492
        committer: marko
        timestamp: Thu 2007-02-01 20:56:23 +0000
        message:
          branches/zip: Simplify lock_mode_stronger_or_eq() and lock_mode_compatible()
          and introduce enum lock_mode.
          
          lock_mode_stronger_or_eq(), lock_mode_compatible(): Replace if-then-else
          chain with a bitwise and against a constant.
        ------------------------------------------------------------
        revno: 0.3.491
        committer: marko
        timestamp: Thu 2007-02-01 09:53:26 +0000
        message:
          branches/zip: Split the function page_cur_insert_rec_low().
          
          page_cur_insert_rec_zip_reorg(): New function: Recompress or
          reorganize a compressed page.
          
          page_cur_insert_rec_zip(): New function: insert a record to
          a compressed page.
          
          page_cur_insert_rec_low(): Only handle inserts to uncompressed pages.
        ------------------------------------------------------------
        revno: 0.3.490
        committer: marko
        timestamp: Wed 2007-01-31 15:11:28 +0000
        message:
          branches/zip: Minor optimization.
          
          trx_undo_page_report_modify(), trx_undo_report_row_operation():
          Add const qualifier to the parameter rec.  Remove some local variables.
          
          trx_undo_report_row_operation(): Invoke rec_get_offsets() only once.
        ------------------------------------------------------------
        revno: 0.3.489
        committer: marko
        timestamp: Wed 2007-01-31 14:28:37 +0000
        message:
          branches/zip: btr_search_guess_on_hash(): Eliminate two local variables
          and optimize one test.
        ------------------------------------------------------------
        revno: 0.3.488
        committer: marko
        timestamp: Wed 2007-01-31 14:12:57 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): Optimize some tests,
          eliminate some local variables, and add branching hints.
        ------------------------------------------------------------
        revno: 0.3.487
        committer: marko
        timestamp: Tue 2007-01-30 09:24:18 +0000
        message:
          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".
        ------------------------------------------------------------
        revno: 0.3.486
        committer: marko
        timestamp: Mon 2007-01-29 08:51:20 +0000
        message:
          branches/zip: Make zlib use InnoDB memory heaps when processing BLOBs.
          
          page_zip_set_alloc(): New function, to configure zlib to use a memory heap.
          
          btr_store_big_rec_extern_fields(): Reduce memLevel, so that a heap of
          256 kilobytes will suffice.  Use page_zip_set_alloc().
          
          btr_copy_externally_stored_field_prefix_low(): Use page_zip_set_alloc().
          
          page_zip_compress(), page_zip_decompress(): Use page_zip_set_alloc().
        ------------------------------------------------------------
        revno: 0.3.485
        committer: marko
        timestamp: Wed 2007-01-24 11:41:19 +0000
        message:
          branches/zip: Add UNIV_HASH_DEBUG for detecting multiple invocations
          of HASH_DELETE().
          
          HASH_ASSERT_VALID(), HASH_INVALIDATE(): New macros, used in HASH_DELETE()
          and HASH_SEARCH().
          
          buf_page_init_low(): Add HASH_INVALIDATE(bpage, hash);
          
          buf_page_init(): Call buf_page_init_low() before HASH_INSERT(), so that
          bpage->hash will not be invalidated.
        ------------------------------------------------------------
        revno: 0.3.484
        committer: marko
        timestamp: Wed 2007-01-24 10:36:05 +0000
        message:
          branches/zip: buf_page_t: Add the in_page_hash and in_zip_hash
          for extra validation in UNIV_DEBUG builds.
        ------------------------------------------------------------
        revno: 0.3.483
        committer: marko
        timestamp: Tue 2007-01-23 16:12:14 +0000
        message:
          branches/zip: buf_page_init_for_read(): Decrement, do not reset
          block->page.buf_fix_count.  This mistake was made in r1255.
          When access to the block is requested by some other thread,
          buf_fix_count can be incremented during the execution of
          buf_zip_decompress().
        ------------------------------------------------------------
        revno: 0.3.482
        committer: marko
        timestamp: Tue 2007-01-23 14:10:48 +0000
        message:
          branches/zip: lock0lock.c: Minor cleanup.
          
          Replace some while loops with do..while or for loops.
          
          lock_move_rec_list_start(): Replace 2 with PAGE_HEAP_NO_USER_LOW.
        ------------------------------------------------------------
        revno: 0.3.481
        committer: marko
        timestamp: Tue 2007-01-23 14:08:37 +0000
        message:
          branches/zip: buf_page_init_for_read(): When decompressing a compressed block,
          initialize all the fields of the control block.
          
          buf_block_init_low(), buf_page_init_low(): New functions, used in
          buf_page_init_for_backup_restore(), buf_page_init(), and
          buf_page_init_for_read().
        ------------------------------------------------------------
        revno: 0.3.480
        committer: marko
        timestamp: Tue 2007-01-23 10:02:02 +0000
        message:
          branches/zip: lock0lock.c: Add UNIV_UNLIKELY hints to LOCK_WAIT checks.
          Declare some local variables in narrower scope.
          
          lock_move_rec_list_start(): Check for orphan locks #ifdef UNIV_DEBUG
        ------------------------------------------------------------
        revno: 0.3.479
        committer: marko
        timestamp: Mon 2007-01-22 15:46:27 +0000
        message:
          branches/zip: lock_move_reorganize_page(): Move the UNIV_DEBUG check for
          orphaned locks outside the "for" loop.  This mistake was made in r1252.
        ------------------------------------------------------------
        revno: 0.3.478
        committer: marko
        timestamp: Mon 2007-01-22 14:44:34 +0000
        message:
          branches/zip: lock_move_reorganize_page(): Clean up the code a little,
          and implement UNIV_DEBUG diagnostics for orphaned locks.
        ------------------------------------------------------------
        revno: 0.3.477
        committer: marko
        timestamp: Mon 2007-01-22 10:24:21 +0000
        message:
          branches/zip: Enclose ut_ad(lock_rec_validate_page(...))
          inside #ifdef UNIV_DEBUG_LOCK_VALIDATE.
          
          lock_rec_validate_page(): Assert that page_find_rec_with_heap_no()
          returns non-NULL.
        ------------------------------------------------------------
        revno: 0.3.476
        committer: marko
        timestamp: Mon 2007-01-22 08:48:00 +0000
        message:
          branches/zip: Enable assertions on ut_ad(lock_rec_validate_page()).
          
          lock_rec_get_nth_bit(), lock_rec_set_nth_bit(), lock_rec_reset_nth_bit(),
          lock_rec_copy(): Simplify the code.
        ------------------------------------------------------------
        revno: 0.3.475
        committer: marko
        timestamp: Fri 2007-01-19 12:27:47 +0000
        message:
          branches/zip: Fix a bug in the buddy allocator.
          
          buf_buddy_relocate_block(): New function, split from buf_buddy_relocate().
          Return FALSE when buf_page_can_relocate() returns FALSE.
          
          Fix some formatting in buf_buddy_free_low() and buf_page_init_for_read().
        ------------------------------------------------------------
        revno: 0.3.474
        committer: marko
        timestamp: Thu 2007-01-18 23:10:49 +0000
        message:
          branches/zip: When retrieving compressed BLOBs, avoid allocating
          uncompressed page frames.
          
          buf_page_get_zip(), buf_page_release_zip(): New functions, used
          by btr_copy_zblob_prefix().
          
          btr_copy_zblob_prefix(): Do not call inflateEnd().
        ------------------------------------------------------------
        revno: 0.3.473
        committer: marko
        timestamp: Thu 2007-01-18 20:29:35 +0000
        message:
          branches/zip: Fix bugs.
          
          buf_LRU_free_block(): Do not allocate the control block when
          a compressed-only page is being freed.
          
          buf_validate(): Note that buf_pool->zip_clean may contain blocks
          with io_fix == BUF_IO_READ.
        ------------------------------------------------------------
        revno: 0.3.472
        committer: marko
        timestamp: Thu 2007-01-18 18:29:12 +0000
        message:
          branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.471
        committer: marko
        timestamp: Thu 2007-01-18 15:43:59 +0000
        message:
          branches/zip: buf_LRU_free_block(): Allocate a control block for the
          compressed page also when freeing an unmodified uncompressed page.
        ------------------------------------------------------------
        revno: 0.3.470
        committer: marko
        timestamp: Thu 2007-01-18 14:02:56 +0000
        message:
          branches/zip: Free buffer blocks that are no longer needed for BLOB storage.
          
          btr_blob_free(): New function to commit a mini-transaction and to free
          an uncompressed BLOB block, or the entire block.
          
          btr_store_big_rec_extern_fields(): Replace the existing code with
          btr_blob_free().  The old code may have contained a race condition.
          
          btr_free_externally_stored_field(): Completely free the buffer blocks
          allocated for the freed BLOB.
        ------------------------------------------------------------
        revno: 0.3.469
        committer: marko
        timestamp: Thu 2007-01-18 12:58:39 +0000
        message:
          branches/zip: Merge revisions 1165:1206 from trunk.
        ------------------------------------------------------------
        revno: 0.3.468
        committer: marko
        timestamp: Thu 2007-01-18 09:59:00 +0000
        message:
          branches/zip: Remove the fil_space_get_zip_size() call from
          buf_page_get_gen().  This saves one mutex operation per block request.
          
          buf_page_get_gen(), various macros and functions: Add parameter zip_size.
          
          btr_node_ptr_get_child(): Add parameter index.
          
          fil_space_get_latch(): Add optional output parameter zip_size.
          
          fil_space_get_zip_size(): Return 0 for space id==0, because the
          system tablespace is never compressed.
          
          fsp_header_init(): Remove the parameter zip_size.
          
          ibuf_free_excess_pages(): Remove the parameter zip_size.
          
          trx_rseg_t, trx_undo_t: Add field zip_size.
          
          xdes_lst_get_next(): Remove, unused.
        ------------------------------------------------------------
        revno: 0.3.467
        committer: marko
        timestamp: Thu 2007-01-18 08:35:57 +0000
        message:
          branches/zip: btr_cur_pessimistic_delete(): Correct a comment.
        ------------------------------------------------------------
        revno: 0.3.466
        committer: marko
        timestamp: Wed 2007-01-17 09:07:20 +0000
        message:
          branches/zip: btr_copy_externally_stored_field_prefix_low():
          Split the code to subroutines.
          
          btr_copy_blob_prefix(): New function: copy the prefix of the externally
          stored part of an uncompressed BLOB.
          
          btr_copy_zblob_prefix(): New function: copy the prefix of the externally
          stored part of a compressed BLOB.
          
          btr_blob_get_part_len(), btr_blob_get_next_page_no(): Add const qualifier
          to the parameter.
        ------------------------------------------------------------
        revno: 0.3.465
        committer: marko
        timestamp: Tue 2007-01-16 22:19:29 +0000
        message:
          branches/zip: buf_flush_write_block_low(): When flushing a compressed page
          that also exists in uncompressed form in the buffer pool, pass the
          compressed frame to fil_io() instead of the uncompressed one when
          not using the doublewrite buffer.
        ------------------------------------------------------------
        revno: 0.3.464
        committer: marko
        timestamp: Tue 2007-01-16 21:51:40 +0000
        message:
          branches/zip: buf_flush_write_block_low(): Avoid recomputing the compressed
          page checksum of compressed-only blocks.  Pass the compressed page frame
          to fil_io() when needed.
          
          page_zip_calc_checksum(): Skip also FIL_PAGE_LSN and FIL_PAGE_FILE_FLUSH_LSN.
          
          buf_flush_init_for_writing(): Expect page to be non-NULL.
        ------------------------------------------------------------
        revno: 0.3.463
        committer: marko
        timestamp: Tue 2007-01-16 18:02:49 +0000
        message:
          branches/zip: Allow dirty compressed-only blocks to exist in the buffer pool
          and to be flushed to disk.
          
          buf_LRU_free_block(): Enable the freeing of uncompressed pages of
          compressed tablespaces.
          
          trx_doublewrite->buf_block_arr[]: Change the type from buf_block_t*
          to buf_page_t*.
          
          buf_flush_ready_for_flush(): Add debug assertion.
          
          buf_flush_buffered_writes(), buf_flush_try_page(): Support blocks of type
          BUF_BLOCK_ZIP_DIRTY.
          
          buf_flush_post_to_doublewrite_buf(), buf_flush_write_block_low():
          Change the type of the parameter from buf_block_t* to buf_page_t*.
          
          buf_flush_init_for_writing(): Allow page to be NULL if page_zip_ is non-NULL.
        ------------------------------------------------------------
        revno: 0.3.462
        committer: marko
        timestamp: Tue 2007-01-16 16:39:53 +0000
        message:
          branches/zip: Note that b (the newly created control block for the
          compressed page) is not protected by block_mutex.  Before releasing
          buf_pool->mutex, we can simply assign b->io_fix.  After reacquiring
          buf_pool->mutex, we also have to acquire buf_pool->zip_mutex.
        ------------------------------------------------------------
        revno: 0.3.461
        committer: marko
        timestamp: Tue 2007-01-16 16:24:47 +0000
        message:
          branches/zip: buf_LRU_free_block(): When preserving the compressed page
          of a block, do not release buf_pool->mutex between the time the old control
          block is removed from buf_pool->page_hash and the new control block is
          added to it.  Prevent operations on the compressed-only block while calling
          btr_search_drop_page_hash_index() or page_zip_calc_checksum().
          
          buf_LRU_invalidate_tablespace(): Revert the change done in r1223.
          buf_pool->zip_mutex will have been released by
          buf_LRU_block_remove_hashed_page() when it returns BUF_BLOCK_ZIP_FREE.
        ------------------------------------------------------------
        revno: 0.3.460
        committer: marko
        timestamp: Tue 2007-01-16 14:37:40 +0000
        message:
          branches/zip: buf_flush_remove(): buf_page_get_mutex(bpage) must have been
          acquired by the caller.
          
          buf_LRU_invalidate_tablespace(): Do not leak buf_pool->zip_mutex when
          rescanning the LRU list.
        ------------------------------------------------------------
        revno: 0.3.459
        committer: marko
        timestamp: Tue 2007-01-16 14:11:21 +0000
        message:
          branches/zip: buf_LRU_free_block(): When freeing the uncompressed page
          of a dirty block, relocate the control blocks on buf_pool->flush_list
          instead of calling buf_flush_insert_into_flush_list().
        ------------------------------------------------------------
        revno: 0.3.458
        committer: marko
        timestamp: Tue 2007-01-16 13:45:52 +0000
        message:
          branches/zip: buf_page_init_for_read(): X-latch the block before
          invoking buf_buddy_alloc().  An IO-fixed block must also be x-latched
          when block->mutex and buf_pool->mutex are released.
          
          buf_page_create(): Protect the block during buf_buddy_alloc() by
          IO-fixing and X-latching it.
        ------------------------------------------------------------
        revno: 0.3.457
        committer: marko
        timestamp: Tue 2007-01-16 13:23:10 +0000
        message:
          branches/zip: btr0cur.c: Add missing #include "buf0lru.h" that
          should have been added in r1218.
        ------------------------------------------------------------
        revno: 0.3.456
        committer: marko
        timestamp: Tue 2007-01-16 12:40:15 +0000
        message:
          branches/zip: buf_page_init_for_read(): IO-fix the block during
          buf_zip_decompress().  This will prevent btr_cur_search_to_nth_level()
          from accessing a half-decompressed leaf page.  Internal B-tree nodes
          (non-leaf pages) in B-tree searches are only protected by the tree
          latch (index->lock) and by buffer-fixing.
        ------------------------------------------------------------
        revno: 0.3.455
        committer: marko
        timestamp: Tue 2007-01-16 11:56:33 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(): Release the uncompressed
          page frame to save memory.
        ------------------------------------------------------------
        revno: 0.3.454
        committer: marko
        timestamp: Tue 2007-01-16 10:24:13 +0000
        message:
          branches/zip: buf_LRU_block_remove_hashed_page(): When preserving the
          compressed page, copy the contents from the uncompressed page if necessary.
        ------------------------------------------------------------
        revno: 0.3.453
        committer: marko
        timestamp: Tue 2007-01-16 08:59:39 +0000
        message:
          branches/zip: buf_buddy_alloc_clean(): Remove bogus assertion ut_a(bpage)
          and update the comments.
        ------------------------------------------------------------
        revno: 0.3.452
        committer: marko
        timestamp: Mon 2007-01-15 16:51:39 +0000
        message:
          branches/zip: When adding a page to the buffer pool, add it to
          buf_pool->page_hash and buf_pool->LRU before releasing buf_pool->mutex.
          
          buf_page_init_for_read(), buf_page_create(): Allocate the compressed
          page after the block has been added to the buffer pool.  Document the
          reason for this.
        ------------------------------------------------------------
        revno: 0.3.451
        committer: marko
        timestamp: Sun 2007-01-14 20:32:44 +0000
        message:
          branches/zip: buf_LRU_free_block(): Flag the buffer frame fully initialized
          when calling btr_search_drop_page_hash_index() and uninitialized after that.
        ------------------------------------------------------------
        revno: 0.3.450
        committer: marko
        timestamp: Sat 2007-01-13 21:15:55 +0000
        message:
          branches/zip: Make Valgrind diagnostics more accurate.
          
          buf_page_init(): Declare block->frame valid only in the system tablespace.
          
          trx_sysf_create(): Declare the rest of the page valid, although it is
          uninitialized.
        ------------------------------------------------------------
        revno: 0.3.449
        committer: marko
        timestamp: Fri 2007-01-12 22:23:12 +0000
        message:
          branches/zip: Improve Valgrind diagnostics.
          
          buf_buddy_relocate(): Document that src may have been split and some of
          it may be in buf_pool->zip_free[j] for some j<i, thus mach_read_from_4()
          may be reading from free memory.  Check buffer pages only for addressability,
          not for being completely initialized.  Ensure that block descriptors are
          completely initialized.
          
          buf_buddy_remove_from_free(): Check prev->state and next->state in
          UNIV_DEBUG && UNIV_DEBUG_VALGRIND builds.
          
          buf_buddy_free_low(): Flag the entire block valid prior to invoking
          buf_buddy_remove_from_free() in order to avoid a Valgrind warning about
          the debug assertion on bpage->state.  Remove the Valgrind check for
          buddy being completely allocated.  If it has been split to smaller blocks,
          some of those blocks may be free.
        ------------------------------------------------------------
        revno: 0.3.448
        committer: marko
        timestamp: Fri 2007-01-12 20:40:42 +0000
        message:
          branches/zip: trx_sys_create_doublewrite_buf(): Revert the change of r1208.
          We cannot clear the page with memset(), because the page number and
          tablespace id have already been stamped on it.
        ------------------------------------------------------------
        revno: 0.3.447
        committer: marko
        timestamp: Fri 2007-01-12 14:30:18 +0000
        message:
          branches/zip: buf_buddy_relocate(): Add Valgrind checks.
        ------------------------------------------------------------
        revno: 0.3.446
        committer: marko
        timestamp: Fri 2007-01-12 14:18:22 +0000
        message:
          branches/zip: Add the buf_pool->zip_free[] accessor functions
          buf_buddy_add_to_free() and buf_buddy_remove_from_free().
          Remove some bogus Valgrind warnings.  Improve Valgrind instrumentation.
        ------------------------------------------------------------
        revno: 0.3.445
        committer: marko
        timestamp: Fri 2007-01-12 12:36:40 +0000
        message:
          branches/zip: Improve Valgrind instrumentation of allocated memory.
          
          UNIV_MEM_FREE(): Declare a memory area free.
          UNIV_MEM_ALLOC(): Declare a memory area allocated (but uninitialized).
          UNIV_MEM_DESC(): Associate a memory area with a control block.
          UNIV_MEM_UNDESC(): Unassociate a control block.
          
          trx_sys_create_doublewrite_buf(): Clear the buffer with memset().
          
          buf_page_init(): Add a bogus UNIV_MEM_VALID(block->frame) to silence
          valid warnings about InnoDB data pages containing uninitialized data.
          
          buf_LRU_get_free_only(): Add UNIV_MEM_ALLOC(block->frame).
          
          buf_LRU_get_free_block(): Add UNIV_MEM_DESC(block->page.zip.data, block).
          
          buf_LRU_free_block(): Add UNIV_MEM_DESC(b->zip.data, b) when allocating
          a compressed-only control block for a compressed page.
          
          buf_LRU_block_free_non_file_page(): Replace UNIV_MEM_INVALID() with
          UNIV_MEM_FREE().
          
          buf_LRU_block_remove_hashed_page(): Add UNIV_MEM_UNDESC(bpage) when
          deallocating a compressed-only control block.  Add
          UNIV_MEM_INVALID(block->frame).  (The frame should be flagged free
          by buf_LRU_block_free_non_file_page() moments later.)
          
          buf0buddy.c: Disable some extra checks in Valgrind-instrumented builds.
          Add UNIV_MEM_VALID(), UNIV_MEM_INVALID(), UNIV_MEM_FREE(), UNIV_MEM_ALLOC()
          as necessary.
        ------------------------------------------------------------
        revno: 0.3.444
        committer: marko
        timestamp: Fri 2007-01-12 09:14:15 +0000
        message:
          branches/zip: buf_relocate(): Copy the block.  Invalidate the source block.
          
          buf_buddy_block_free(), buf_buddy_free_low(): Flag the freed bytes
          uninitialized.
          
          buf_page_init_for_read(), buf_buddy_relocate(): Do not refer to bpage
          after invoking buf_relocate().
          
          buf_buddy_relocate(): Flag src uninitialized.
        ------------------------------------------------------------
        revno: 0.3.443
        committer: marko
        timestamp: Wed 2007-01-10 14:36:39 +0000
        message:
          branches/zip: buf_page_io_complete(): Change the parameter type from
          buf_block_t* to buf_page_t*.  Handle compressed-only blocks.
        ------------------------------------------------------------
        revno: 0.3.442
        committer: marko
        timestamp: Wed 2007-01-10 14:36:15 +0000
        message:
          branches/zip: buf_page_init(): Improve diagnostic output in case of
          buf_pool->page_hash corruption.
        ------------------------------------------------------------
        revno: 0.3.441
        committer: marko
        timestamp: Wed 2007-01-10 12:50:10 +0000
        message:
          branches/zip: buf_page_init_for_read(): Increment the buf_fix_count
          during the buf_zip_decompress() call.  Otherwise, the block may end
          up being freed by another thread.  This bug was caught by the
          page_zip_validate() check in buf_LRU_block_remove_hashed_page().
        ------------------------------------------------------------
        revno: 0.3.440
        committer: marko
        timestamp: Wed 2007-01-10 10:08:34 +0000
        message:
          branches/zip: Remove a race condition.
          
          buf_page_init_for_read(): Protect the buf_zip_decompress() call with
          an X-lock on the block.
          
          page_zip_validate(): Move the page_is_comp() assertion after the
          page header comparison.
        ------------------------------------------------------------
        revno: 0.3.439
        committer: marko
        timestamp: Tue 2007-01-09 16:11:11 +0000
        message:
          branches/zip: buf_buddy_free(): Add debug code for detecting live
          objects in the free area.
        ------------------------------------------------------------
        revno: 0.3.438
        committer: marko
        timestamp: Tue 2007-01-09 15:52:08 +0000
        message:
          branches/zip: buf_LRU_invalidate_tablespace(): After freeing a
          compressed-only page, restart the scan of the LRU list, because
          prev_bpage may have been relocated.
          
          buf_LRU_block_remove_hashed_page(): Note that other compressed pages
          or compressed-only blocks may be relocated when freeing a compressed
          page or a compressed-only block descriptor.
        ------------------------------------------------------------
        revno: 0.3.437
        committer: marko
        timestamp: Tue 2007-01-09 12:56:12 +0000
        message:
          branches/zip: Replace an ut_a() with ut_d().  This mistake was made in r1188.
        ------------------------------------------------------------
        revno: 0.3.436
        committer: marko
        timestamp: Tue 2007-01-09 12:47:15 +0000
        message:
          branches/zip: buf_LRU_free_block(): Correct the logic for releasing
          dirty uncompressed blocks.  Move the page_zip_validate() call to
          a more appropriate place, buf_LRU_block_remove_hashed_page().
          
          buf_LRU_block_remove_hashed_page(): Allow bpage->oldest_modification != 0
          for uncompressed pages if there is a compressed page that will be preserved.
          Release the mutexes before calling buf_print() and buf_LRU_print().
          
          page_zip_validate(): Remove the assertion containing the
          buf_frame_get_page_zip() call.  We might already be holding buf_pool->mutex.
        ------------------------------------------------------------
        revno: 0.3.435
        committer: marko
        timestamp: Tue 2007-01-09 12:39:50 +0000
        message:
          branches/zip: buf_buddy_alloc_clean(): Restart the scan after a
          successful buf_LRU_free_block().
          
          buf_LRU_free_block(): Note that buf_pool->mutex may be temporarily released.
        ------------------------------------------------------------
        revno: 0.3.434
        committer: marko
        timestamp: Tue 2007-01-09 12:35:42 +0000
        message:
          branches/zip: buf_page_t: Introduce the field in_flush_list #ifdef UNIV_DEBUG.
          
          buf_flush_batch(): Remove the local variable "found".
        ------------------------------------------------------------
        revno: 0.3.433
        committer: marko
        timestamp: Mon 2007-01-08 17:08:57 +0000
        message:
          branches/zip: Maintain a valid checksum for compressed-only pages kept in
          the buffer pool.
          
          buf_LRU_free_block(): When preserving the compressed page, compute the
          checksum.  Also assert page_zip_validate().
          
          buf_zip_decompress(): Add parameter "check" for enabling checksum tests.
          Before decompressing a compressed-only page from the buffer pool, verify
          the compressed page checksum.
        ------------------------------------------------------------
        revno: 0.3.432
        committer: marko
        timestamp: Mon 2007-01-08 14:58:20 +0000
        message:
          branches/zip: buf_LRU_free_block(): Check if the block has been reloaded
          to the buffer pool while we were not holding buf_pool->mutex.  If it was,
          do not attempt to preserve the compressed page.
        ------------------------------------------------------------
        revno: 0.3.431
        committer: marko
        timestamp: Mon 2007-01-08 12:32:31 +0000
        message:
          branches/zip: page_zip_fields_decode(): Do not dereference a null pointer.
        ------------------------------------------------------------
        revno: 0.3.430
        committer: marko
        timestamp: Fri 2007-01-05 21:15:05 +0000
        message:
          branches/zip: Make zlib use InnoDB memory heaps.
          
          page_zip_malloc(): Replace ut_malloc(...) with mem_heap_alloc(opaque, ...).
          
          page_zip_free(): Dummy function (cannot deallocate from InnoDB memory
          heaps, and zlib seems to defer deallocation to the very end anyway).
          
          page_zip_compress(): Create a big enough heap for the needs of zlib.
          Replace deflateInit() with deflateInit2().
          
          page_zip_decompress(): Create a big enough heap for the needs of zlib.
          Replace inflateInit() with inflateInit2().
        ------------------------------------------------------------
        revno: 0.3.429
        committer: marko
        timestamp: Fri 2007-01-05 21:00:07 +0000
        message:
          branches/zip: buf_get_latched_pages_number(): Count compressed-only blocks too.
        ------------------------------------------------------------
        revno: 0.3.428
        committer: marko
        timestamp: Fri 2007-01-05 20:59:40 +0000
        message:
          branches/zip: mem_heap_create_block(), mem_heap_create_func():
          Remove the unused parameter init_block.
          
          mem_heap_fast_create(): Remove.
          
          struct mem_block_info_struct: Remove the field init_block.
        ------------------------------------------------------------
        revno: 0.3.427
        committer: marko
        timestamp: Fri 2007-01-05 14:03:44 +0000
        message:
          branches/zip: Support compressed-only pages in buf_page_create().
          
          buf_page_get_gen(): Note that buf_read_page() may uncompress
          a compressed-only page.
          
          buf_page_create(): Test buf_page_in_file() instead of BUF_BLOCK_FILE_PAGE.
        ------------------------------------------------------------
        revno: 0.3.426
        committer: marko
        timestamp: Fri 2007-01-05 12:13:28 +0000
        message:
          branches/zip: buf_validate(): Validate also the compressed-only blocks.
        ------------------------------------------------------------
        revno: 0.3.425
        committer: marko
        timestamp: Fri 2007-01-05 11:19:56 +0000
        message:
          branches/zip: buf_page_peek(): Return TRUE also if the page exists in the
          buffer pool in compressed form only.
          
          buf_page_peek_block(): Remove.
          
          mutex_enter_fast_func: Remove.
        ------------------------------------------------------------
        revno: 0.3.424
        committer: marko
        timestamp: Fri 2007-01-05 10:49:56 +0000
        message:
          branches/zip: buf_pool_page_hash_rebuild(): Rebuild also buf_pool->zip_hash
          and add compressed-only pages to buf_pool->page_hash.
          
          BUF_POOL_ZIP_FOLD(), BUF_POOL_ZIP_FOLD_PTR(), BUF_POOL_ZIP_FOLD_BPAGE():
          Macros for computing buf_pool->zip_hash fold values.  Make use of these
          in buf0buddy.c.
          
          buf0buddy.c: Replace some ptr == ut_align_down(ptr, ...) in assertions with
          !ut_align_offset(ptr, ...).
        ------------------------------------------------------------
        revno: 0.3.423
        committer: marko
        timestamp: Thu 2007-01-04 21:40:10 +0000
        message:
          branches/zip: Allow dirty blocks to be relocated.  Allow a transition
          to BUF_BLOCK_ZIP_DIRTY (discarding the uncompressed page corresponding
          to a modified compressed page that has not been flushed to disk).
          
          buf_page_can_relocate(): New function, modelled after
          buf_flush_ready_for_replace().
          
          buf_LRU_free_block(): Allow the transition to BUF_BLOCK_ZIP_DIRTY.
          
          buf_flush_insert_into_flush_list(): Make the prototype public.
          
          buf_buddy_relocate(): Remove an unnecessary switch statement.
          Use buf_page_can_relocate() instead of buf_flush_ready_for_replace().
          
          buf_page_peek(): Made UNIV_INLINE.
          
          Document UNIV_ZIP_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.422
        committer: marko
        timestamp: Thu 2007-01-04 15:45:42 +0000
        message:
          branches/zip: Fix two bugs in the relocation of block descriptors.
          Improve diagnostics.
          
          buf_buddy_relocate(): Do not assume all small blocks to contain only one
          buf_page_t object.  Require an exact size match, as in the case of
          compressed pages.
          
          buf_relocate(): Relocate buf_pool->LRU_old if needed.
          Validate the LRU list in debug builds.
          
          buf_LRU_block_remove_hashed_page(): Do not overwrite FIL_PAGE_OFFSET
          or FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID.  The memory will be invalidated
          in debug builds of buf_buddy_free().
          
          buf0buddy.c: Add assertions for not holding buf_pool->zip_mutex.
          The calling thread should not be holding any block->mutex, but it might
          be too time-consuming to assert against that, even #ifdef UNIV_SYNC_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.421
        committer: marko
        timestamp: Wed 2007-01-03 15:55:36 +0000
        message:
          buf_flush_validate_low(): Minor cleanup.
        ------------------------------------------------------------
        revno: 0.3.420
        committer: marko
        timestamp: Wed 2007-01-03 15:54:05 +0000
        message:
          branches/zip: Before calling buf_buddy_alloc() or buf_buddy_free(),
          release any block mutexes but hold the buf_pool->mutex.
        ------------------------------------------------------------
        revno: 0.3.419
        committer: marko
        timestamp: Wed 2007-01-03 13:10:46 +0000
        message:
          branches/zip: Use the buddy allocator for managing compressed pages.
          There is something wrong with the management of compressed-only blocks
          (BUF_BLOCK_ZIP_PAGE).  To disable the creation of such blocks, set zip=TRUE
          in buf_LRU_block_remove_hashed_page().
          
          buf_LRU_block_remove_hashed_page(): Release buf_pool->zip_mutex when
          freeing a compressed-only page and its control block, with buf_buddy_free().
          Adapt callers.
          
          buf_LRU_block_free_hashed_page(): Change the parameter type from buf_page_t*
          to buf_block_t*.
          
          buf_LRU_free_block(): Move below the definition of buf_LRU_add_block_low().
          Allocate block descriptor for compressed-only blocks.
          
          buf_LRU_block_free_non_file_page(): Replace ut_free() with buf_buddy_free().
          
          buf_zip_decompress(): New function, split from buf_page_io_complete().
          
          buf_page_init_for_read(): Do not allocate the compressed page until it is
          really needed, to avoid the overhead of the buddy allocator.  Decompress
          compressed-only blocks that are needed again.
          
          buf_page_create(): Do not allocate the compressed page until it is
          really needed, to avoid the overhead of the buddy allocator.
          
          buf_validate(): Replace some equality tests on the lengths of the LRU
          list and the flush lists with greater-or-equal tests, since the counted
          numbers do not include control blocks for compressed-only pages.
        ------------------------------------------------------------
        revno: 0.3.418
        committer: marko
        timestamp: Wed 2007-01-03 12:34:54 +0000
        message:
          branches/zip: Add __attribute__((const)) or __attribute__((pure))
          to all fold functions.
        ------------------------------------------------------------
        revno: 0.3.417
        committer: marko
        timestamp: Wed 2007-01-03 12:34:04 +0000
        message:
          branches/zip: trx_prepare_off_kernel(): Eliminate the local variable
          must_flush_log, and remove warning about lsn being possibly uninitialized.
        ------------------------------------------------------------
        revno: 0.3.416
        committer: marko
        timestamp: Tue 2007-01-02 21:25:40 +0000
        message:
          branches/zip: buf_page_get_gen(): When checking a guessed block,
          also check buf_page_in_file().  This error was introduced in r1082.
        ------------------------------------------------------------
        revno: 0.3.415
        committer: marko
        timestamp: Tue 2007-01-02 14:36:59 +0000
        message:
          branches/zip: Merge revisions 1009:1165 from trunk.
        ------------------------------------------------------------
        revno: 0.3.414
        committer: marko
        timestamp: Fri 2006-12-29 09:13:57 +0000
        message:
          branches/zip: Minor cleanup.
          
          buf_buddy_get(): New function in buf0buddy.c, to replace the macro
          in buf0buddy.h.
          
          buf_buddy_get_offset(): Remove.
          
          buf_buddy_get_slot(): Remove the prototype from buf0buddy.h.  This function
          is for internal use in buf0buddy.ic.
        ------------------------------------------------------------
        revno: 0.3.413
        committer: marko
        timestamp: Fri 2006-12-29 09:07:01 +0000
        message:
          branches/zip: Minor cleanup.
          
          buf_page_get_gen(): Cache the result of fil_space_get_zip_size().
          
          trx_commit_off_kernel(): Eliminate the flag must_flush_log.  Initialize lsn = 0
          to signify must_flush_log == FALSE.
          
          log_flush_margin(): Eliminate the flag do_flush.  Initialize lsn = 0
          to signify do_flush == FALSE.
        ------------------------------------------------------------
        revno: 0.3.412
        committer: marko
        timestamp: Thu 2006-12-21 14:59:41 +0000
        message:
          branches/zip: Fix two bugs in the buddy allocator.
          
          buf_buddy_block_free(): Remove the block from buf_pool->zip_hash.
          
          buf_buddy_alloc_clean(): Test for buf_page_in_file() before
          invoking buf_LRU_free_block().  The LRU list also contains "half-freed"
          blocks (state == BUF_BLOCK_REMOVE_HASH).
        ------------------------------------------------------------
        revno: 0.3.411
        committer: marko
        timestamp: Wed 2006-12-20 15:56:58 +0000
        message:
          branches/zip: Allow the buddy allocator to work for 16-kilobyte pages,
          twice the maximum block size of the buddy system.
          
          buf_page_t: Note that state may change from BUF_BLOCK_READY_FOR_USE
          to BUF_BLOCK_MEMORY without buf_page_get_mutex() protection
          [only buf_pool->mutex].
          
          buf_buddy_get_slot(): Extend the output to BUF_BUDDY_SIZES.
          
          buf_buddy_alloc(), buf_buddy_free(): Allow sizes up to UNIV_PAGE_SIZE.
          
          buf_buddy_alloc_low(), buf_buddy_free_low(), buf_buddy_alloc_clean():
          Allow i==BUF_BUDDY_SIZES.
        ------------------------------------------------------------
        revno: 0.3.410
        committer: marko
        timestamp: Wed 2006-12-20 14:07:08 +0000
        message:
          branches/zip: buf_page_get_gen(): Restore the "break" statement to a
          "for (;;)" loop that was accidentally removed in r1090.
        ------------------------------------------------------------
        revno: 0.3.409
        committer: marko
        timestamp: Wed 2006-12-20 13:29:02 +0000
        message:
          branches/zip: buf_buddy_free_low(): When trying to relocate to a block on
          the free list, remove the free block from the free list, so that the list
          item pointers will not be overwritten.
        ------------------------------------------------------------
        revno: 0.3.408
        committer: marko
        timestamp: Wed 2006-12-20 11:38:19 +0000
        message:
          branches/zip: Fix bugs in the buddy allocator and add assertions.
          
          buf_buddy_free(), buf_buddy_free_low(): Document that the data must
          not be pointed to by the buffer pool.  Add ut_ad(!buf_pool_contains_zip())
          assertions to catch pointers to freed blocks.
          
          Validate the zip_free[] lists #ifdef UNIV_DEBUG.
          
          buf_buddy_relocate(): Ensure that the size of the compressed page
          matches.  The buddy block can be split, and the control block can be
          pointing to a smaller compressed page than the one whose relocation
          is being attempted.
        ------------------------------------------------------------
        revno: 0.3.407
        committer: marko
        timestamp: Tue 2006-12-19 22:12:44 +0000
        message:
          branches/zip: Add the debug function buf_pool_contains_zip() #ifdef UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.406
        committer: marko
        timestamp: Tue 2006-12-19 12:38:18 +0000
        message:
          branches/zip: Correct some bugs in the buddy allocator and add debug code.
          
          buf_buddy_alloc_zip() [UNIV_DEBUG]: Byte-fill the allocated blocks with ~i.
          
          buf_buddy_block_free() [UNIV_DEBUG]: Clear the frame before releasing it
          to the buffer pool.
          
          buf_buddy_alloc_from() [UNIV_DEBUG]: Byte-fill the free blocks with j.
          
          buf_buddy_relocate(): Allow the buf_page_hash_get() lookup to fail,
          and note the reason.
          
          buf_buddy_free_low(): Correctly compute the address of the combined free block.
          
          buf_page_struct: Clarify the mutex protection rules.  Note that
          the pointer zip.data is also protected by buf_pool->mutex.
        ------------------------------------------------------------
        revno: 0.3.405
        committer: marko
        timestamp: Mon 2006-12-18 12:55:04 +0000
        message:
          branches/zip: buf_buddy_free_low(): Examine the state bits inside the
          block before traversing the free list.
        ------------------------------------------------------------
        revno: 0.3.404
        committer: marko
        timestamp: Mon 2006-12-18 12:39:39 +0000
        message:
          branches/zip: buf_buddy_free_low(): Use a byte pointer in arithmetics.
          
          buf_buddy_get(): Document that "page" should be a pointer to char or byte.
        ------------------------------------------------------------
        revno: 0.3.403
        committer: marko
        timestamp: Mon 2006-12-18 11:23:58 +0000
        message:
          branches/zip: Fix some bugs in the buddy allocator.
          
          buf_buddy_alloc_zip(): Calculate the address with char* aritmetics.
          
          buf_buddy_alloc_clean(): Acquire a mutex on the block before
          calling buf_LRU_free_block().
          
          buf_buddy_relocate(): Remove the bogus assertion about src and dst
          being buddies of each other.  Use mach_read_from_4() instead of
          page_get_space_id() and page_get_page_no() to avoid page alignment
          assertions.
          
          buf_buddy_free_low(): Replace bogus assertions.
        ------------------------------------------------------------
        revno: 0.3.402
        committer: marko
        timestamp: Fri 2006-12-15 15:05:18 +0000
        message:
          branches/zip: Minor improvements.
          
          buf_LRU_block_remove_hashed_page(): Return the new state of the block.
          
          Only call buf_LRU_block_free_hashed_page()
          if buf_LRU_block_remove_hashed_page() did not return BUF_BLOCK_ZIP_FREE,
          that is, the control block was not freed.
          
          buf_LRU_insert_zip_clean(): New function, for inserting a compressed-only
          block into buf_pool->zip_clean in the LRU order.
          
          buf_LRU_block_remove_hashed_page(), buf_LRU_free_block():
          Add the flag "zip" for controlling if the compressed page of an uncompressed
          page should be removed.  For now, assume zip==TRUE.
          
          buf_LRU_get_free_block(): Replace the test for UT_LIST_GET_LEN(buf_pool->free)
          with a test for the return value of buf_LRU_get_free_only().  Do not
          free zip.data, as it must already have been freed.
          
          buf_flush_insert_into_flush_list(), buf_flush_insert_sorted_into_flush_list():
          Remove compressed-only blocks from the buf_pool->zip_clean list.
          
          buf_flush_remove(): Restore compressed-only blocks to
          the buf_pool->zip_clean list.
          
          buf_page_init_for_read(): Uncompress compressed-only blocks when possible.
          Currently, there cannot be any compressed-only blocks in the buffer pool;
          they would be inserted by buf_LRU_free_block(bpage, zip=FALSE).
        ------------------------------------------------------------
        revno: 0.3.401
        committer: marko
        timestamp: Fri 2006-12-15 14:47:04 +0000
        message:
          branches/zip: Minor improvements.
          
          buf_flush_remove(): New function, for removing a block from the flush list.
          Sliced from buf_flush_write_complete().
          
          buf_page_set_state(): Allow transitions between BUF_BLOCK_ZIP_PAGE
          and BUF_BLOCK_ZIP_DIRTY.
        ------------------------------------------------------------
        revno: 0.3.400
        committer: marko
        timestamp: Thu 2006-12-14 15:15:51 +0000
        message:
          branches/zip: Refactor some code for relocating buffer control blocks.
          
          buf_relocate(): New function, split from buf_buddy_relocate().
        ------------------------------------------------------------
        revno: 0.3.399
        committer: marko
        timestamp: Wed 2006-12-13 14:58:54 +0000
        message:
          branches/zip: Make use of the previously unused state BUF_BLOCK_MEMORY.
          
          buf_LRU_get_free_block(): Document that the block is in the state
          BUF_BLOCK_READY_FOR_USE.
          
          buf_block_alloc(): Change the state of the block to BUF_BLOCK_MEMORY
          and document it.
          
          Replace those invocations of buf_block_alloc() with
          buf_LRU_get_free_block() where the allocated block is used for buffer
          pool input and output.  However, temporary copies of B-tree pages
          during reorganization are not used for file I/O, and such blocks are
          still allocated with buf_block_alloc().
        ------------------------------------------------------------
        revno: 0.3.398
        committer: marko
        timestamp: Tue 2006-12-12 16:28:22 +0000
        message:
          branches/zip: Make the buddy allocator reclaim blocks from the end of
          the LRU list regardless of their size.
          
          buf_buddy_alloc_clean_zip(): Rename to buf_buddy_alloc_clean(),
          now that also uncompressed blocks can be reclaimed.
          Use buf_buddy_alloc_zip() instead of reusing the freed block
          directly, since buf_buddy_free() may combine blocks.
        ------------------------------------------------------------
        revno: 0.3.397
        committer: marko
        timestamp: Tue 2006-12-12 12:21:11 +0000
        message:
          branches/zip: Correct the names of two function parameters in buf0flu.ic.
        ------------------------------------------------------------
        revno: 0.3.396
        committer: marko
        timestamp: Tue 2006-12-12 12:14:58 +0000
        message:
          branches/zip: Minor improvements to the buddy allocator.
          
          buf_buddy_alloc(), buf_buddy_alloc_low(): Add parameter "lru" for
          enabling allocation from the list of least-recently-used blocks.
          
          buf_buddy_alloc_low(): Release buf_pool->mutex while calling
          buf_LRU_get_free_block().
        ------------------------------------------------------------
        revno: 0.3.395
        committer: marko
        timestamp: Mon 2006-12-11 15:48:37 +0000
        message:
          branches/zip: Make the code compile with all debugging enabled
          
          buf_buddy_relocate(): Replace ut_align_down() with ut_align_offset()
          in assertions.
          
          buf0buddy.h: Include buf0buf.h and sync0sync.h.
        ------------------------------------------------------------
        revno: 0.3.394
        committer: marko
        timestamp: Mon 2006-12-11 14:27:43 +0000
        message:
          branches/zip: Implement the whole allocation algorithm of compressed pages.
          
          buf_LRU_free_block(): Free compressed-only pages and their
          descriptors with buf_buddy_free().
          
          buf_LRU_get_free_only(): New function for returning a block from
          buf_pool->free if one is available.  Split from buf_LRU_get_free_block().
          
          buf_buddy_alloc_zip(): Rename from buf_buddy_alloc_low() and make static.
          Remove parameter "split".  Always try to split.
          
          buf_buddy_free_block(): Rename to buf_buddy_block_free().
          
          buf_buddy_block_register(): New function for registering buf_block_t
          objects reserved by the allocator.
          
          buf_buddy_alloc_from(): New function for allocating an object from a
          bigger object, and putting the unused parts on the free list.
          
          buf_buddy_alloc_clean_zip(): New function for allocating memory by
          replacing an unmodified compressed page.
          
          buf_buddy_alloc_low(): New function for allocating memory, either from
          the free lists of compressed pages, from the global free list, or from
          unmodified pages in the buffer pool.
        ------------------------------------------------------------
        revno: 0.3.393
        committer: marko
        timestamp: Mon 2006-12-11 09:59:06 +0000
        message:
          branches/zip: buf_buddy_relocate(): Split some lines differently on
          popular demand.
        ------------------------------------------------------------
        revno: 0.3.392
        committer: marko
        timestamp: Mon 2006-12-11 09:54:13 +0000
        message:
          branches/zip: Add buf_pool->zip_hash for keeping track on pages allocated
          to the buddy system for allocating compressed pages and their descriptors.
          
          buf_buddy_free_block(): New function: Deallocate the buffer frame.
          
          buf_buddy_free(), buf_buddy_free_low(): Return void instead of a pointer
          to a freed buffer frame.
        ------------------------------------------------------------
        revno: 0.3.391
        committer: marko
        timestamp: Mon 2006-12-11 08:43:55 +0000
        message:
          branches/zip: buf_buddy_relocate(): Relocate buf_page_t objects that represent
          clean compressed pages (BUF_BLOCK_ZIP_PAGE).
        ------------------------------------------------------------
        revno: 0.3.390
        committer: marko
        timestamp: Fri 2006-12-08 15:55:59 +0000
        message:
          branches/zip: Try to adhere to ISO 9899:1989 where possible.  (The recently
          introduced ib_longlong and %ll length specifier are not C89.)
          
          row_ext_t: Change char* buf to byte* buf to avoid signedness warnings.
          
          Change the type of all bit fields to unsigned.
          
          rec_get_next_ptr(): Add (byte*) casts to avoid arithmetics on void*.
          
          page_zip_decompress_clust(): Do not mix declarations and code.
        ------------------------------------------------------------
        revno: 0.3.389
        committer: marko
        timestamp: Fri 2006-12-08 14:44:28 +0000
        message:
          branches/zip: buf_buddy_free_low(): Attempt to relocate the buddy of a
          free block in order to create two adjacent free blocks that can be
          recombined.  Add some debug assertions.
          
          buf_buddy_relocate(): New function: Try to relocate a free block.
        ------------------------------------------------------------
        revno: 0.3.388
        committer: marko
        timestamp: Thu 2006-12-07 15:22:44 +0000
        message:
          branches/zip: Add buf_buddy_free() and buf_buddy_free_low().
        ------------------------------------------------------------
        revno: 0.3.387
        committer: marko
        timestamp: Thu 2006-12-07 15:20:53 +0000
        message:
          branches/zip: Introduce the constant BUF_BUDDY_HIGH.
        ------------------------------------------------------------
        revno: 0.3.386
        committer: marko
        timestamp: Thu 2006-12-07 15:05:06 +0000
        message:
          branches/zip: Rename buf_buddy_alloc_free() to buf_buddy_alloc() and
          buf_buddy_alloc_free_low() to buf_buddy_alloc_low().
        ------------------------------------------------------------
        revno: 0.3.385
        committer: marko
        timestamp: Thu 2006-12-07 14:58:58 +0000
        message:
          branches/zip: buf_buddy_alloc_free(), buf_buddy_alloc_free_low():
          Add parameter "split" for enabling splits.
        ------------------------------------------------------------
        revno: 0.3.384
        committer: marko
        timestamp: Thu 2006-12-07 13:29:04 +0000
        message:
          branches/zip: Add the first bits of the binary buddy system for allocating
          compressed pages from the buffer pool.
          
          Makefile.am: Add buf0buddy.h, buf0buddy.ic.
          
          buf/Makefile.am: Add buf0buddy.c.
          
          Introduce the constants BUF_BUDDY_LOW and BUF_BUDDY_SIZES.
          
          buf_pool_t: Add zip_mutex and the lists zip_clean and zip_free[].
          
          buf_page_get_mutex(): Return &buf_pool->zip_mutex instead of NULL.
          
          buf_buddy_get_offset(), buf_buddy_get(), buf_buddy_get_slot(),
          buf_buddy_alloc_free(), buf_buddy_alloc_free_low(): New functions.
        ------------------------------------------------------------
        revno: 0.3.383
        committer: marko
        timestamp: Thu 2006-12-07 10:02:23 +0000
        message:
          branches/zip: Fix some comments in buf0buf.h.
        ------------------------------------------------------------
        revno: 0.3.382
        committer: marko
        timestamp: Tue 2006-12-05 12:31:38 +0000
        message:
          branches/zip: buf_page_t: Rename free_or_flush_list to list
          and document the possible list memberships.
        ------------------------------------------------------------
        revno: 0.3.381
        committer: marko
        timestamp: Tue 2006-12-05 12:10:30 +0000
        message:
          branches/zip: enum buf_page_state: Add BUF_BLOCK_ZIP_FREE, BUF_BLOCK_ZIP_DIRTY.
        ------------------------------------------------------------
        revno: 0.3.380
        committer: marko
        timestamp: Mon 2006-12-04 13:12:07 +0000
        message:
          branches/zip: buf_LRU_free_block(): Note that
          buf_LRU_block_remove_hashed_page() changes the state of the block.
          This error was introduced in r1090.
        ------------------------------------------------------------
        revno: 0.3.379
        committer: marko
        timestamp: Mon 2006-12-04 12:44:06 +0000
        message:
          branches/zip: Remove buf_block_t:free_list.  Rename buf_page_t:flush_list
          to free_or_flush_list.  The list node pointers can be shared, because a
          block can never be belong to both lists at the same time.
        ------------------------------------------------------------
        revno: 0.3.378
        committer: marko
        timestamp: Mon 2006-12-04 12:38:27 +0000
        message:
          branches/zip: buf_page_get_io_fix(): Remove UNIV_SYNC_DEBUG assertions,
          as the field will be read without mutex protection in buf_page_io_complete().
        ------------------------------------------------------------
        revno: 0.3.377
        committer: marko
        timestamp: Thu 2006-11-30 15:25:52 +0000
        message:
          branches/zip: Fix compilation errors when UNIV_HOTBACKUP is defined.
        ------------------------------------------------------------
        revno: 0.3.376
        committer: marko
        timestamp: Thu 2006-11-30 15:09:33 +0000
        message:
          branches/zip: Allow some functions to work on compressed-only pages
          (state == BUF_BLOCK_ZIP_PAGE).  Make use of buf_page_in_file()
          and buf_page_get_mutex().
          
          buf_block_get_newest_modification(): Rename to
          buf_page_get_newest_modification().
        ------------------------------------------------------------
        revno: 0.3.375
        committer: marko
        timestamp: Thu 2006-11-30 14:09:29 +0000
        message:
          branches/zip: page_zip_des_t: Enclose m_start in #ifdef UNIV_DEBUG.
          Add m_nonempty for facilitating the test in page_zip_alloc().  This
          reduces the combined size of the bit-fields to 32 bits.  Thus,
          sizeof(page_zip_des_t) == 2 machine words on 32-bit and wider systems.
        ------------------------------------------------------------
        revno: 0.3.374
        committer: marko
        timestamp: Thu 2006-11-30 13:27:34 +0000
        message:
          branches/zip: buf_page_t: Move "old" to the same machine word with
          LRU_position and possibly freed_page_clock.  All these fields are
          protected by buf_pool->mutex rather than buf_page_get_mutex().
          
          buf_page_set_accessed(): Add a mutex_own() assertion.
        ------------------------------------------------------------
        revno: 0.3.373
        committer: marko
        timestamp: Thu 2006-11-30 12:40:33 +0000
        message:
          branches/zip: buf_page_peek_block(): Do not invoke buf_block_get_state()
          on a NULL pointer.  This error was introduced in r1082.
        ------------------------------------------------------------
        revno: 0.3.372
        committer: marko
        timestamp: Thu 2006-11-30 12:27:49 +0000
        message:
          branches/zip: Move the fields related to the least-recently-used algorithm
          of the buffer pool from buf_block_t to buf_page_t.  Replace some buf_block_t*
          parameters with buf_page_t*.  Add accessor functions.
        ------------------------------------------------------------
        revno: 0.3.371
        committer: marko
        timestamp: Thu 2006-11-30 10:33:35 +0000
        message:
          branches/zip: Move all fields that are not needed in compression or
          decompression from page_zip_des_t to buf_page_t, because the fields
          needed in compression are modified without holding the block mutex.
          All writes to bit-fields sharing a machine word must be protected
          by the same mutex or rw-lock.
        ------------------------------------------------------------
        revno: 0.3.370
        committer: marko
        timestamp: Thu 2006-11-30 09:24:57 +0000
        message:
          branches/zip: Make buf_block_buf_fix_inc() a macro wrapper for
          buf_block_buf_fix_inc_func() to eliminate an #ifdef in every invocation.
        ------------------------------------------------------------
        revno: 0.3.369
        committer: marko
        timestamp: Thu 2006-11-30 09:23:47 +0000
        message:
          branches/zip: Rename ut_ulonglong_align_down() and ut_ulonglong_align_up()
          to ut_uint64_align_down() and ut_uint64_align_up(), to reflect the rename
          of ib_ulonglong to ib_uint64_t in r1085.
        ------------------------------------------------------------
        revno: 0.3.368
        committer: marko
        timestamp: Wed 2006-11-29 14:52:16 +0000
        message:
          branches/zip: Replace ib_ulonglong with ib_uint64_t, since we want exactly
          64 bits.  "long long" might be longer than 64 bits on some systems.
        ------------------------------------------------------------
        revno: 0.3.367
        committer: marko
        timestamp: Wed 2006-11-29 13:23:28 +0000
        message:
          branches/zip: Make buf_pool->page_hash point to buf_page_t instead of
          buf_block_t.  Move the fields "hash" and "file_page_was_freed" from
          buf_block_t to buf_page_t.
          
          buf_page_in_file(): New function, for checking block state in assertions.
        ------------------------------------------------------------
        revno: 0.3.366
        committer: marko
        timestamp: Tue 2006-11-28 11:08:33 +0000
        message:
          branches/zip: Allow the code to compile with debugging enabled.  This
          was broken in r1066.
        ------------------------------------------------------------
        revno: 0.3.365
        committer: marko
        timestamp: Tue 2006-11-28 10:02:03 +0000
        message:
          branches/zip: Make buf_block_t:old a bit-field.  Document the mutex protection
          of the fields "freed_page_clock" and "old".
        ------------------------------------------------------------
        revno: 0.3.364
        committer: marko
        timestamp: Tue 2006-11-28 09:37:02 +0000
        message:
          branches/zip: Enclose buf_block_t:in_LRU_list in #ifdef UNIV_DEBUG
        ------------------------------------------------------------
        revno: 0.3.363
        committer: marko
        timestamp: Mon 2006-11-27 14:12:09 +0000
        message:
          branches/zip: Move the page flushing fields from buf_block_t to
          buf_page_t and page_zip_des_t.
        ------------------------------------------------------------
        revno: 0.3.362
        committer: marko
        timestamp: Mon 2006-11-27 13:44:32 +0000
        message:
          branches/zip: page_zip_des_t: Rename "size" to "ssize" and reduce the
          storage size from 16 to 3 bits.
          
          page_zip_get_size(), page_zip_set_size(): New functions.
          
          Replace direct references to page_zip_des_t:size with calls to
          buf_block_get_zip_size(), page_zip_get_size(), and page_zip_set_size().
        ------------------------------------------------------------
        revno: 0.3.361
        committer: marko
        timestamp: Fri 2006-11-24 13:05:01 +0000
        message:
          branches/zip: Introduce the unsigned 64-bit data type ib_ulonglong
          for log sequence numbers, to replace dulint.
        ------------------------------------------------------------
        revno: 0.3.360
        committer: marko
        timestamp: Fri 2006-11-24 13:02:31 +0000
        message:
          branches/zip: Since r1057, page_zip_des_init() affects
          buf_block_get_state().
          
          buf_block_init(), buf_page_init_for_backup_restore(): Assign
          block->page.zip.state after invoking page_zip_des_init(&block->page).
        ------------------------------------------------------------
        revno: 0.3.359
        committer: marko
        timestamp: Fri 2006-11-24 12:51:05 +0000
        message:
          page_zip_validate(): Replace %lu with %d, because the bit-fields
          introduced in r1057 are of the int type.
        ------------------------------------------------------------
        revno: 0.3.358
        committer: marko
        timestamp: Fri 2006-11-24 12:49:59 +0000
        message:
          branches/zip: Replace all references to block->space and block->offset,
          which should have been replaced in r1057.
        ------------------------------------------------------------
        revno: 0.3.357
        committer: marko
        timestamp: Fri 2006-11-24 08:39:53 +0000
        message:
          branches/zip: buf_read_ahead_random(): Stop searching upon exceeding the
          threshold.
        ------------------------------------------------------------
        revno: 0.3.356
        committer: marko
        timestamp: Fri 2006-11-24 08:32:18 +0000
        message:
          branches/zip: Introduce buf_page_t, a common structure for compressed-only
          and uncompressed buffer pool pages.
          
          buf_block_t: Replace page_zip, space, and offset with buf_page_t page.
          Replace some integers with bit-fields.
          
          enum buf_block_state: Rename to buf_page_state.  Add BUF_BLOCK_ZIP_PAGE.
          
          page_zip_des_t: Add the field "state".  Make the integer fields bit-fields.
          
          page_zip_copy(): Document which fields are copied.
        ------------------------------------------------------------
        revno: 0.3.355
        committer: marko
        timestamp: Thu 2006-11-23 15:14:45 +0000
        message:
          branches/zip: Remove buf_block_t:magic_n.
          
          buf_block_state_valid(): New macro for replacing the magic_n check
        ------------------------------------------------------------
        revno: 0.3.354
        committer: marko
        timestamp: Thu 2006-11-23 15:12:53 +0000
        message:
          branches/zip: buf_block_set_state(): Allow the state transition from
          BUF_BLOCK_READY_FOR_USE to BUF_BLOCK_NOT_USED.
        ------------------------------------------------------------
        revno: 0.3.353
        committer: marko
        timestamp: Thu 2006-11-23 15:10:51 +0000
        message:
          branches/zip: Remove bogus debug assertions.
          
          buf_block_get_space(), buf_block_get_page_no():
          Remove ut_ad(block->buf_fix_count > 0), because since r1052
          these functions are also used in low-level code.
        ------------------------------------------------------------
        revno: 0.3.352
        committer: marko
        timestamp: Thu 2006-11-23 14:12:58 +0000
        message:
          branches/zip: Remove most direct references to block->state.
          
          buf_block_set_state(): New function.  Also checks the state transitions.
          
          buf_block_set_file_page(): New function.
        ------------------------------------------------------------
        revno: 0.3.351
        committer: marko
        timestamp: Thu 2006-11-23 13:26:01 +0000
        message:
          branches/zip: Replace most references to block->state, block->offset,
          and block->space with buf_block_get_state(block), buf_block_get_page_no(block),
          and buf_block_get_space(block).
          
          enum buf_block_state: Replaces the #define'd buf_block_t.state values.
          
          buf_block_get_state(): New function.
          
          buf_block_get_frame(): Add __attribute__((const)).
        ------------------------------------------------------------
        revno: 0.3.350
        committer: marko
        timestamp: Wed 2006-11-22 13:08:38 +0000
        message:
          branches/zip: Fix errors when compiling with UNIV_DEBUG and UNIV_SYNC_DEBUG.
          
          buf0buf.ic: Remove the extern declaration of buf_dbg_counter.
          It was declared static in buf0buf.c in r1025.
          
          ha0ha.c: #include "btr0sea.h" #ifdef UNIV_SYNC_DEBUG.  Assertions on
          btr_search_latch were added in r1041.
        ------------------------------------------------------------
        revno: 0.3.349
        committer: marko
        timestamp: Tue 2006-11-21 15:38:18 +0000
        message:
          branches/zip: Rebuild buf_pool->page_hash after resizing the buffer pool.
          
          buf_pool_page_hash_rebuild(): New function.
        ------------------------------------------------------------
        revno: 0.3.348
        committer: marko
        timestamp: Tue 2006-11-21 14:40:14 +0000
        message:
          branches/zip: When shrinking the buffer pool, disable and purge the adaptive
          hash index, because it might occupy the chunk we would like to free.
          
          TODO: In btr_search_check_free_space_in_heap(), release the block if
          btr_search_latch is not immediately available.
          
          buf_pool_shrink(): Split from buf_pool_resize().
          
          btr_search_disabled: New variable, similar to srv_use_adaptive_hash_indexes
          that was removed earlier.
          
          btr_search_disable(): New function: disable and purge the adaptive hash index.
          
          btr_search_enable(): New function: enable the adaptive hash index.
          
          ha_clear(): New function: Empty a hash table and free the memory heaps.
        ------------------------------------------------------------
        revno: 0.3.347
        committer: marko
        timestamp: Tue 2006-11-21 10:34:42 +0000
        message:
          branches/zip: ha_node_set_data(): Define a wrapper macro, and rename the
          function to ha_node_set_data_func().  In this way, the #ifdef in the
          callers can be removed.
        ------------------------------------------------------------
        revno: 0.3.346
        committer: marko
        timestamp: Tue 2006-11-21 10:09:14 +0000
        message:
          branches/zip: Remove some instrumentation and reduce the output of
          SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
        ------------------------------------------------------------
        revno: 0.3.345
        committer: marko
        timestamp: Thu 2006-11-16 11:23:20 +0000
        message:
          branches/zip: buf_pool_resize(): When shrinking the buffer pool, do not
          assume that non-file pages are free.  After trying to free or flush
          file pages, do not proceed to buf_chunk_free(), because the calls will
          temporarily release buf_pool->mutex.  Do not flush if there are non-free
          blocks, because it would not achieve anything.
        ------------------------------------------------------------
        revno: 0.3.344
        committer: marko
        timestamp: Thu 2006-11-16 09:01:53 +0000
        message:
          branches/zip: Make ibuf_validate_low() static and enclose in #ifdef UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.343
        committer: marko
        timestamp: Thu 2006-11-16 09:00:30 +0000
        message:
          branches/zip: Introduce a new preprocessor symbol, UNIV_BUF_DEBUG, and
          enclose buf_validate() and friends in it.
        ------------------------------------------------------------
        revno: 0.3.342
        committer: marko
        timestamp: Thu 2006-11-16 08:48:28 +0000
        message:
          branches/zip: Add #define UNIV_DEBUG_FILE_ACCESSES to univ.i and
          enclose all related debug code in #ifdef UNIV_DEBUG_FILE_ACCESSES.
          This should have no effect on the behaviour, as the symbol is
          not defined by default.  It only reduces the size of buf_block_t
          and removes some assignments and debug functions.
        ------------------------------------------------------------
        revno: 0.3.341
        committer: marko
        timestamp: Thu 2006-11-16 08:41:10 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(): Remove the incomplete
          statement that was accidentally checked in in r1022.
        ------------------------------------------------------------
        revno: 0.3.340
        committer: marko
        timestamp: Wed 2006-11-15 21:58:01 +0000
        message:
          btr_store_big_rec_extern_fields(): Write the (space_id, page_no) of the
          record on every compressed BLOB page header, so that compressed BLOBs
          can be relocated or the chain of BLOB pages can be validated.
        ------------------------------------------------------------
        revno: 0.3.339
        committer: marko
        timestamp: Wed 2006-11-15 21:49:14 +0000
        message:
          branches/zip: Improve the shrinking of the buffer pool.
          
          buf_LRU_block_free_non_file_page(): Deallocate block->page_zip.data
          to avoid ut_a(!block->page_zip.data) in buf_chunk_free().
          
          buf_chunk_free(): Add the assertion ut_a(!block->in_LRU_list).
          
          buf_pool_resize(): When shrinking the buffer pool and there are
          non-free blocks in the candidate chunk, free the clean blocks
          and move the dirty blocks to the end of the LRU list and request a flush.
          Proceed if the chunk becomes free, and retry otherwise.
        ------------------------------------------------------------
        revno: 0.3.338
        committer: marko
        timestamp: Wed 2006-11-15 21:41:27 +0000
        message:
          branches/zip: buf_LRU_free_block(): New function, split from
          buf_LRU_search_and_free_block().
        ------------------------------------------------------------
        revno: 0.3.337
        committer: marko
        timestamp: Tue 2006-11-14 14:27:26 +0000
        message:
          branches/zip: Implement resizeable buffer pool.
          
          mysql.patch: Patch to change or add variables to MySQL
          
          innodb.patch: Patch to make the master thread poll requests to resize
          the buffer pool.
          
          Replace srv_pool_size and innobase_buffer_pool_size
          with srv_buf_pool_size, srv_buf_pool_old_size,
          and srv_buf_pool_curr_size.
          
          Add buf_chunk_t, a collection of buf_block_t.
        ------------------------------------------------------------
        revno: 0.3.336
        committer: marko
        timestamp: Tue 2006-11-14 10:42:50 +0000
        message:
          branches/zip: Correct a bug introduced in r1014: Always assign node->block
          when assigning node->data.
          
          ha_delete(), ha_search_and_delete_if_found(), ha_remove_all_nodes_to_page():
          Remove the parameter buf_block_t* block, now that it is stored within the
          hash data structure in debug builds.
        ------------------------------------------------------------
        revno: 0.3.335
        committer: marko
        timestamp: Mon 2006-11-13 21:53:09 +0000
        message:
          branches/zip: Remove the buf_block_align() calls from ha0ha.c that caused
          an assertion failure in debug builds when a context switch occurred in
          buf_LRU_search_and_free_block() before the call to
          btr_search_drop_page_hash_index() managed to acquire the mutexes again.
          
          ha_node_t: Add the field buf_block_t* block.
          
          ha_search_and_update_if_found(): Rename to ha_search_and_update_if_found_func()
          with added buf_block_t* parameter in debug builds.  Define the wrapper macro
          ha_search_and_update_if_found() that always takes the buf_block_t* parameter.
          
          ha_insert_for_fold(): Rename to ha_insert_for_fold_func()
          with added buf_block_t* parameter in debug builds.  Define the wrapper macro
          ha_insert_for_fold() that always takes the buf_block_t* parameter.
        ------------------------------------------------------------
        revno: 0.3.334
        committer: marko
        timestamp: Mon 2006-11-13 10:03:18 +0000
        message:
          branches/zip: Remove the variable innobase_buffer_pool_awe_mem_mb.
          The bulk of the AWE support was removed in r976.
        ------------------------------------------------------------
        revno: 0.3.333
        committer: marko
        timestamp: Mon 2006-11-13 09:55:31 +0000
        message:
          branches/zip: buf_LRU_block_free_non_file_page(),
          buf_LRU_block_remove_hashed_page(): Overwrite (space_id,page_no)
          when freeing a buffer block.  This will help catching non-file
          pages being passed to buf_block_align().
        ------------------------------------------------------------
        revno: 0.3.332
        committer: marko
        timestamp: Fri 2006-11-10 11:15:59 +0000
        message:
          branches/zip: Merge revisions 968:1009 from trunk.
        ------------------------------------------------------------
        revno: 0.3.331
        committer: marko
        timestamp: Thu 2006-11-02 09:06:49 +0000
        message:
          branches/zip: buf_block_align(): Remove from non-debug builds.
          
          btr_search_guess_on_hash(), btr_search_validate(): Instead of
          buf_block_align(), call buf_page_hash_get(), and allow it to return NULL.
        ------------------------------------------------------------
        revno: 0.3.330
        committer: marko
        timestamp: Wed 2006-11-01 10:06:29 +0000
        message:
          branches/zip: btr_cur_position(): Replace buf_block_get_frame(block)
          with block->frame, because in btr_search_guess_on_hash(), it may
          occur that block->buf_fix_count == 0.
        ------------------------------------------------------------
        revno: 0.3.329
        committer: marko
        timestamp: Wed 2006-11-01 09:20:22 +0000
        message:
          branches/zip: ibuf_merge_or_delete_for_page(): Replace all
          calls buf_block_get_frame(block) with block->frame in order
          to avoid debug assertions about block->buf_fix_count == 0.
        ------------------------------------------------------------
        revno: 0.3.328
        committer: marko
        timestamp: Wed 2006-11-01 08:13:58 +0000
        message:
          branches/zip: os_mem_alloc_large(), os_mem_free_large():
          On POSIX, use mmap() and munmap().  On Windows, use VirtualAlloc()
          and VirtualFree().  Only on Netware, use ut_malloc_low() and ut_free().
          The lower-level functions on POSIX and Windows allow InnoDB to return
          memory to the operating system when the buffer pool is shrunk.
        ------------------------------------------------------------
        revno: 0.3.327
        committer: marko
        timestamp: Tue 2006-10-31 16:51:16 +0000
        message:
          branches/zip: Enclose some more debug code in #ifdef UNIV_SYNC_DEBUG
          to allow the code to be built with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.326
        committer: marko
        timestamp: Tue 2006-10-31 09:59:15 +0000
        message:
          branches/zip: Remove buf_pool->frame_zero and buf_pool->high_end.
        ------------------------------------------------------------
        revno: 0.3.325
        committer: marko
        timestamp: Mon 2006-10-30 19:46:31 +0000
        message:
          branches/zip: ha_delete_hash_node(): Do not call buf_block_align().
          Instead, get buf_block_t* as a parameter.
          
          Without this patch, buf_page_hash_get() would return NULL in
          buf_block_align().  The function buf_LRU_search_and_free_block()
          invokes buf_LRU_block_remove_hashed_page(), which removes the
          hash mapping needed by buf_page_hash_get().
        ------------------------------------------------------------
        revno: 0.3.324
        committer: marko
        timestamp: Mon 2006-10-30 16:18:23 +0000
        message:
          branches/zip: Always call buf_block_align() while holding buf_pool->mutex.
          This was forgotten from r977.
        ------------------------------------------------------------
        revno: 0.3.323
        committer: marko
        timestamp: Mon 2006-10-30 15:38:58 +0000
        message:
          branches/zip: Replace buf_pool->max_size with buf_pool->curr_size in
          debug assertions.  This was forgotten from r977.
        ------------------------------------------------------------
        revno: 0.3.322
        committer: marko
        timestamp: Mon 2006-10-30 15:15:19 +0000
        message:
          branches/zip: Prepare for buffer pool allocation in several chunks.
          
          buf_pool_t: Remove n_frames, max_size, and blocks_of_frames.
          The current buffer pool size is in curr_size.
          
          buf_pool_init(): Remove parameter max_size.
          
          buf_pool_get_max_size(), buf_pool_is_block(): Remove.
          
          buf_block_align(): Do not assume that the buffer pool is allocated
          in one chunk.  Replace dependency on buf_pool->blocks_of_frames
          with a call to buf_page_hash_get().
        ------------------------------------------------------------
        revno: 0.3.321
        committer: marko
        timestamp: Mon 2006-10-30 13:48:08 +0000
        message:
          branches/zip: Remove support for AWE (Intel PAE on Win32).
          
          Removal of the variable innobase_buffer_pool_awe_mem_mb requires
          coordination with MySQL AB.
        ------------------------------------------------------------
        revno: 0.3.320
        committer: marko
        timestamp: Mon 2006-10-30 13:44:00 +0000
        message:
          branches/zip: Port r973 from trunk.
          
          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.
        ------------------------------------------------------------
        revno: 0.3.319
        committer: marko
        timestamp: Mon 2006-10-30 09:25:08 +0000
        message:
          branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
          The code was previously unused in non-debug builds.
        ------------------------------------------------------------
        revno: 0.3.318
        committer: marko
        timestamp: Mon 2006-10-30 09:19:41 +0000
        message:
          branches/zip: Minor cleanup.
          
          btr_pcur_restore_position(): Add const qualifiers.
          
          buf_LRU_block_remove_hashed_page(): Reduce the amount
          of buf_page_hash_get() calls and add a UNIV_UNLIKELY hint
          to an assertion-like test.
        ------------------------------------------------------------
        revno: 0.3.317
        committer: marko
        timestamp: Mon 2006-10-30 09:11:31 +0000
        message:
          branches/zip: Merge revisions 962:968 from trunk.
        ------------------------------------------------------------
        revno: 0.3.316
        committer: marko
        timestamp: Fri 2006-10-27 13:12:47 +0000
        message:
          branches/zip: dict_load_table(): Note that dict_sys_tables_get_zip_size()
          returns the compressed page size in kilobytes, not bytes.
        ------------------------------------------------------------
        revno: 0.3.315
        committer: marko
        timestamp: Thu 2006-10-26 13:05:45 +0000
        message:
          branches/zip: lock0lock.c: Add const qualifiers to and assertions
          about block->frame matching rec.
        ------------------------------------------------------------
        revno: 0.3.314
        committer: marko
        timestamp: Thu 2006-10-26 13:04:49 +0000
        message:
          branches/zip: row_ins_foreign_check_on_constraint(),
          row_ins_check_foreign_constraint(): Pass the correct block to
          the lock_ functions.
        ------------------------------------------------------------
        revno: 0.3.313
        committer: marko
        timestamp: Thu 2006-10-26 13:03:43 +0000
        message:
          branches/zip: row0ins.c: Add const qualifiers to function parameters.
        ------------------------------------------------------------
        revno: 0.3.312
        committer: marko
        timestamp: Thu 2006-10-26 11:56:51 +0000
        message:
          branches/zip: Merge revisions 934:962 from trunk.
        ------------------------------------------------------------
        revno: 0.3.311
        committer: marko
        timestamp: Thu 2006-10-26 11:13:59 +0000
        message:
          branches/zip: btr_lift_page_up(): Omit father_block from blocks[],
          because the level of that page needs to be adjusted separately.
        ------------------------------------------------------------
        revno: 0.3.310
        committer: marko
        timestamp: Thu 2006-10-26 08:52:14 +0000
        message:
          branches/zip: Add const qualifiers to read-only pointers.
          
          rec_get_nth_field_offs_old(): Split from rec_get_nth_field_old().
          
          rec_get_nth_field_old(): Reimplement as a constness-preserving macro.
          
          dict_drop_index_tree(), dict_truncate_index_tree(): Note that rec is
          an in/out parameter, as the B-tree root page number will be updated.
        ------------------------------------------------------------
        revno: 0.3.309
        committer: marko
        timestamp: Thu 2006-10-26 08:47:00 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(): Replace
          page_get_page_no(page_align(field_ref)) calls with a local variable
          rec_page_no = buf_block_get_page_no(rec_block).
        ------------------------------------------------------------
        revno: 0.3.308
        committer: marko
        timestamp: Thu 2006-10-26 08:04:16 +0000
        message:
          branches/zip: btr_compress(): Enclose an assertion inside
          #ifdef UNIV_BTR_DEBUG, as it depends on other #ifdef UNIV_BTR_DEBUG code.
        ------------------------------------------------------------
        revno: 0.3.307
        committer: marko
        timestamp: Thu 2006-10-26 07:50:51 +0000
        message:
          branches/zip: After merge (r956) fix:
          Implement dict_index_get_if_in_cache_low() correctly.
          Restore the function dict_index_get_if_in_cache() #ifdef UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.306
        committer: marko
        timestamp: Wed 2006-10-25 11:19:12 +0000
        message:
          branches/zip: Merge revisions 887:934 from trunk.
        ------------------------------------------------------------
        revno: 0.3.305
        committer: marko
        timestamp: Wed 2006-10-25 11:03:27 +0000
        message:
          branches/zip: Clean up things found in an inlined build.
          
          buf0lru.c: Always #include "srv0srv.h"
          
          buf_block_get_lock_mutex(), buf_frame_get_lock_mutex(): Remove.
          
          mtr0log.ic: Remove #include "page0page.h" and replace the page_
          functions with lower-level ones to break an #include cycle.
          
          dict0dict.ic: Remove unnecessary #include "trx0undo.h" and "trx0sys.h"
          that would create an #include cycle.
        ------------------------------------------------------------
        revno: 0.3.304
        committer: marko
        timestamp: Wed 2006-10-25 08:52:43 +0000
        message:
          branches/zip: Remove a few buf_block_align() calls from debug builds.
          
          btr_check_node_ptr(): Replace page_t* parameter with buf_block_t*.
          
          btr_free_externally_stored_field(): Add const qualifier to rec.
          Remove an explicit buf_block_align() call, but replace an
          mtr_memo_contains() with mtr_memo_contains_page().
          
          row_upd_rec_sys_fields(): Reorder an assertion containing buf_block_align()
          so that the costly call can be avoided in some cases.
        ------------------------------------------------------------
        revno: 0.3.303
        committer: marko
        timestamp: Wed 2006-10-25 08:45:25 +0000
        message:
          branches/zip: page_cur_insert_rec_low(): Replace rec_t* current_rec
          with rec_t** current_rec.  Reposition *current_rec after calling
          page_zip_reorganize().
        ------------------------------------------------------------
        revno: 0.3.302
        committer: marko
        timestamp: Tue 2006-10-24 14:06:31 +0000
        message:
          branches/zip: Remove all references to buf_block_align() except those
          from the adaptive hash index [btr_search_guess_on_hash() and
          btr_search_validate()].  Some references to buf_block_align() remain
          in debug builds.
          
          btr_store_big_rec_extern_fields(): Add the parameter rec_block.
          
          page_rec_get_next_low(): Do not assume that the page has been
          allocated from the buffer pool when printing the diagnostic information.
          
          page_cur_insert_rec_low(): Replace the parameter page_zip_des_t* page_zip
          with the parameter buf_block_t* block.
        ------------------------------------------------------------
        revno: 0.3.301
        committer: marko
        timestamp: Tue 2006-10-24 11:54:01 +0000
        message:
          branches/zip: lock_update_discard(): Fix a bug introduced in r949:
          Compare heap_no against PAGE_HEAP_NO_SUPREMUM instead of
          PAGE_NEW_SUPREMUM or PAGE_OLD_SUPREMUM.
        ------------------------------------------------------------
        revno: 0.3.300
        committer: marko
        timestamp: Tue 2006-10-24 11:03:46 +0000
        message:
          branches/zip: mem_heap_create_block(): Correct an error introduced in r909:
          Return NULL when trying to use heap->free_block that is NULL.
        ------------------------------------------------------------
        revno: 0.3.299
        committer: marko
        timestamp: Tue 2006-10-24 06:45:52 +0000
        message:
          branches/zip: Remove all buf_block_align() calls from lock0lock.c.
          Replace all page_t* parameters with buf_block_t*, and replace many
          rec_t* parameters with heap_no.  This eliminates also many
          rec_get_heap_no() calls, which became more expensive with the
          introduction of ROW_FORMAT=COMPACT in MySQL/InnoDB 5.0.3.
          
          page_rec_get_heap_no(), lock_get_min_heap_no(): New functions.
        ------------------------------------------------------------
        revno: 0.3.298
        committer: marko
        timestamp: Mon 2006-10-23 19:34:45 +0000
        message:
          branches/zip: buf_page_get_release_on_io(), buf_page_get_gen():
          Replace buf_frame_t* guess with buf_block_t* guess in order to avoid
          a buf_block_align() call.
          
          trx_undo_t: Replace page_t* guess_page with buf_block_t* guess_block.
          
          btr_search_t: Replace page_t* root_guess with buf_block_t* root_guess.
        ------------------------------------------------------------
        revno: 0.3.297
        committer: marko
        timestamp: Mon 2006-10-23 19:14:36 +0000
        message:
          branches/zip: Minor cleanup.
          
          buf_calc_page_new_checksum(), buf_calc_page_old_checksum(),
          buf_page_is_corrupted(), buf_page_print():
          Add const qualifier to byte* parameter.
          
          page_parse_create_zip(): Remove this declaration of non-existing function.
          
          page_rec_check(), page_rec_print(), row_vers_impl_x_locked_off_kernel():
          Add const qualifier to rec_t* parameter.
          
          row_vers_old_has_index_entry(): Add const qualifier to dtuple_t* parameter.
          
          row_sel_sec_rec_is_for_blob(): Add const qualifiers.
          
          Replace some occurrences of mtr_memo_contains_page() with mtr_memo_contains().
        ------------------------------------------------------------
        revno: 0.3.296
        committer: marko
        timestamp: Mon 2006-10-23 18:29:14 +0000
        message:
          branches/zip: row_sel_sec_rec_is_for_clust_rec(): Augment the bug fix in r918:
          After calling row_sel_sec_rec_is_for_blob(), skip the cmp_data_data()
          comparison of the incomplete prefix.
        ------------------------------------------------------------
        revno: 0.3.295
        committer: marko
        timestamp: Mon 2006-10-23 18:26:10 +0000
        message:
          branches/zip: Minor cleanup.
          
          page_set_max_trx_id(): Replace page_t* parameter with buf_block_t*,
          to avoid a buf_block_align() call.
          
          Replace some occurrences of page_get_page_no() with buf_block_get_page_no().
          
          page_cur_delete_rec(): Replace buf_block_align() with page_cur_get_block().
        ------------------------------------------------------------
        revno: 0.3.294
        committer: marko
        timestamp: Mon 2006-10-23 11:38:32 +0000
        message:
          branches/zip: Fix some bugs.
          
          btr_cur_pessimistic_insert(): Remove local variable "block".  Replace
          an extraneous call to btr_cur_position() [with wrong "block", in r948]
          with a debug assertion that the cursor is positioned on the preceding
          record after the page split.
          
          btr_pcur_restore_position(): Do not use btr_pcur_get_page(), because
          the debug assertion there could fail.  This bug was introduced in r928.
        ------------------------------------------------------------
        revno: 0.3.293
        committer: marko
        timestamp: Fri 2006-10-20 13:50:40 +0000
        message:
          branches/zip: Add const qualifiers to some read-only byte* and rec_t*
          parameters of some functions.
        ------------------------------------------------------------
        revno: 0.3.292
        committer: marko
        timestamp: Fri 2006-10-20 13:49:42 +0000
        message:
          branches/zip: btr_search_drop_page_hash_index(): Do not call
          buf_block_get_frame(), because it will lead to debug assertion failure
          when buf_fix_count == 0.  This bug was introduced in r908.
        ------------------------------------------------------------
        revno: 0.3.291
        committer: marko
        timestamp: Fri 2006-10-20 12:45:53 +0000
        message:
          branches/zip: Remove some more buf_block_align() calls.
          
          btr_cur_t: Move page_block to page_cur_t::block.
          
          page_cur_get_block(), page_cur_get_page_zip(): New functions.
          
          page_cur_position(): Add parameter block.
          
          Remove many page_zip parameters, now that there is page_cur_get_page_zip().
          Replace some page, page_zip parameters with block.
          
          Add some const qualifiers to function parameters and remove casts.
          
          PAGE_HEAP_NO_INFIMUM, PAGE_HEAP_NO_SUPREMUM, PAGE_HEAP_NO_USER_LOW:
          New constants.
          
          Replace some cursor code in low-level diagnostic functions with
          direct management of rec, because buf_block_t::buf_fix_count may be 0
          when the functions are called, and debug assertions would fail.
        ------------------------------------------------------------
        revno: 0.3.290
        committer: marko
        timestamp: Fri 2006-10-20 12:22:42 +0000
        message:
          branches/zip: btr_search_guess_on_hash(): Do not call buf_block_get_frame(),
          because it will lead to debug assertion failure when buf_fix_count == 0.
          This bug was introduced in r912.
        ------------------------------------------------------------
        revno: 0.3.289
        committer: marko
        timestamp: Fri 2006-10-20 11:54:13 +0000
        message:
          branches/zip: btr_cur_open_at_index_side(): Correct a debug assertion
          added in r928.  Do not call btr_cur_get_block() in the debug assertion,
          because the debug assertion there would fail.
        ------------------------------------------------------------
        revno: 0.3.288
        committer: marko
        timestamp: Fri 2006-10-20 11:35:32 +0000
        message:
          branches/zip: buf_merge_or_delete_for_page(): Correct some debug assertions.
          We cannot call buf_block_get_space() or buf_block_get_page_no(),
          because the assertions there can fail.
        ------------------------------------------------------------
        revno: 0.3.287
        committer: marko
        timestamp: Fri 2006-10-20 11:10:46 +0000
        message:
          branches/zip: mem_heap_block_free(): Fix a bug introduced in r914
          while trying to fix r909: invoke mem_erase_buf() before freeing the
          buffer, but after interpreting block->buf_block.
        ------------------------------------------------------------
        revno: 0.3.286
        committer: marko
        timestamp: Fri 2006-10-20 08:30:07 +0000
        message:
          branches/zip: Add const qualifiers to function parameters, mostly dtuple_t.
        ------------------------------------------------------------
        revno: 0.3.285
        committer: marko
        timestamp: Thu 2006-10-19 11:07:50 +0000
        message:
          branches/zip: Remove many fil_space_get_zip_size() calls.
          
          ibuf_page(), ibuf_page_low(), ibuf_free_excess_pages(), ibuf_insert(),
          buf_read_page(), buf_read_ahead_linear(), buf_read_recv_pages():
          Add parameter zip_size.
        ------------------------------------------------------------
        revno: 0.3.284
        committer: marko
        timestamp: Thu 2006-10-19 08:27:34 +0000
        message:
          branches/zip: Remove some more buf_block_align() calls.
          
          btr_search_build_page_hash_index(), fsp_parse_init_file_page(),
          ibuf_parse_bitmap_init(): Replace page_t* with buf_block_t*.
          
          buf_read_ibuf_merge_pages(): Add const qualifiers.  Retrieve zip_size.
          
          ibuf_merge_or_delete_for_page(): Replace page_t* with buf_block_t*.
          Add parameter zip_size.
        ------------------------------------------------------------
        revno: 0.3.283
        committer: marko
        timestamp: Thu 2006-10-19 07:52:28 +0000
        message:
          branches/zip: Remove some more casts.
          
          dict_index_get_nth_col_pos(), dict_index_get_sys_col_pos(),
          dict_index_get_n_fields(), fil_page_get_type():
          Add const qualifier to parameter.
          
          dict_index_get_nth_field(): Implement as a macro unless #ifdef UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.282
        committer: marko
        timestamp: Thu 2006-10-19 07:27:26 +0000
        message:
          branches/zip: Remove the casts introduced in r920 and r925.  Replace the
          accessors returning pointers with macros that preserve const qualifiers.
          In UNIV_DEBUG builds, retain the accessors and cast away constness there.
          
          dfield_get_type(), dfield_get_data(), dtuple_get_nth_field(),
          dict_table_get_nth_col(), dict_table_get_sys_col(): Implement as macro
          unless #ifdef UNIV_DEBUG.
          
          rec_get_nth_field(): Replace with rec_get_nth_field_offs() that does not
          do pointer arithmetics.  Implement rec_get_nth_field() as a macro.
        ------------------------------------------------------------
        revno: 0.3.281
        committer: marko
        timestamp: Wed 2006-10-18 18:52:04 +0000
        message:
          branches/zip: ha_create(): Remove parameter in_btr_search, which was
          passed as TRUE.
          
          Enclose hash_table_t::adaptive and buf_block_t::n_pointers in
          #ifdef UNIV_DEBUG.
          
          btr_search_drop_page_hash_index(): Enclose the corruption check
          (which depends on buf_block_t::n_pointers) in #ifdef UNIV_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.280
        committer: marko
        timestamp: Wed 2006-10-18 17:43:04 +0000
        message:
          branches/zip: btr_cur_t: replace left_page with left_block, to avoid
          calling buf_block_align() in btr_pcur_move_backward_from_page().
          Also, enclose some assertions about page_is_comp() in #ifdef UNIV_BTR_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.279
        committer: marko
        timestamp: Wed 2006-10-18 11:39:31 +0000
        message:
          branches/zip: Eliminate many buf_block_align() calls.
          
          Replace page_t* or page_zip_des_t* parameters in some functions with
          buf_block_t*.
          
          buf_frame_get_page_zip(): Disable unless #ifdef UNIV_DEBUG || UNIV_ZIP_DEBUG.
          
          btr_cur_t: Add buf_block_t* page_block.
          
          btr_pcur_get_block(), btr_cur_get_block(), btr_cur_get_page_zip():
          New functions.
          
          btr_cur_position(): Add the parameter block.
        ------------------------------------------------------------
        revno: 0.3.278
        committer: marko
        timestamp: Tue 2006-10-17 12:24:13 +0000
        message:
          branches/zip: Introduce const qualifiers to many read-only parameters
          and modify some functions to return const pointers.  Add const qualifiers
          to local variable declarations or casts to remove the const qualifier
          in those places where write access is needed.
        ------------------------------------------------------------
        revno: 0.3.277
        committer: marko
        timestamp: Tue 2006-10-17 12:13:15 +0000
        message:
          branches/zip: Allow compilation with UNIV_DEBUG without defining
          the symbol UNIV_DEBUG_PRINT, which was introduced in r729.
          
          buf_LRU_print(), buf_print(): Replace #ifdef UNIV_DEBUG_PRINT
          with #if defined UNIV_DEBUG || defined UNIV_DEBUG_PRINT.
        ------------------------------------------------------------
        revno: 0.3.276
        committer: marko
        timestamp: Mon 2006-10-16 11:42:46 +0000
        message:
          branches/zip: Add const qualifiers to read-only rec_t* parameters
          of rec accessor functions.
        ------------------------------------------------------------
        revno: 0.3.275
        committer: marko
        timestamp: Fri 2006-10-13 13:40:25 +0000
        message:
          branches/zip: row_sel_sec_rec_is_for_blob(): Add parameters mbminlen, mbmaxlen.
          Trim the fetched prefix with dtype_get_at_most_n_mbchars().
        ------------------------------------------------------------
        revno: 0.3.274
        committer: marko
        timestamp: Fri 2006-10-13 13:03:06 +0000
        message:
          branches/zip: buf_ptr_get_fsp_addr(): Change parameter ptr to const void*,
          and remove the buf_block_align() call.
        ------------------------------------------------------------
        revno: 0.3.273
        committer: marko
        timestamp: Fri 2006-10-13 13:02:00 +0000
        message:
          branches/zip: row_sel_get_clust_rec_for_mysql(): Improve formatting.
        ------------------------------------------------------------
        revno: 0.3.272
        committer: marko
        timestamp: Fri 2006-10-13 11:55:27 +0000
        message:
          branches/zip: Remove some more buf_block_align() calls.
          
          Replace buf_frame_modify_clock_inc() with buf_block_modify_clock_inc().
          Replace buf_frame_get_lock_hash_val() with buf_block_get_lock_hash_val().
          Replace buf_frame_get_lock_mutex() with buf_block_get_lock_mutex().
          
          page_create_zip(), page_create(), page_create_low(), btr_page_free(),
          btr_page_free_low(): Replace page_t with buf_block_t.
        ------------------------------------------------------------
        revno: 0.3.271
        committer: marko
        timestamp: Fri 2006-10-13 11:50:33 +0000
        message:
          branches/zip: mem_heap_block_free(): Fix a bug introduced in r909:
          invoke mem_erase_buf() only after interpreting block->buf_block.
        ------------------------------------------------------------
        revno: 0.3.270
        committer: marko
        timestamp: Fri 2006-10-13 09:15:17 +0000
        message:
          branches/zip: Eliminate some more buf_block_align() calls.
          
          ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(),
          ibuf_set_free_bits_low(): Replace page_t with buf_block_t.
        ------------------------------------------------------------
        revno: 0.3.269
        committer: marko
        timestamp: Fri 2006-10-13 07:45:52 +0000
        message:
          branches/zip: Remove more references to buf_block_align().
          
          ibuf_reset_free_bits(): Remove, as there already is a similar function
          ibuf_reset_free_bits_with_type().
          
          ibuf_reset_free_bits_with_type(), ibuf_set_free_bits(),
          ibuf_update_free_bits_if_full(), btr_leaf_page_release(),
          buf_page_make_young(): Replace page_t with buf_block_t.
          
          btr_compress(): Replace btr_page_get() with btr_block_get().
        ------------------------------------------------------------
        revno: 0.3.268
        committer: marko
        timestamp: Thu 2006-10-12 18:39:43 +0000
        message:
          branches/zip: Eliminate some more buf_block_align() calls.
          
          mlog_write_initial_log_record_fast(): Remove the buf_block_align() call
          unless #ifdef UNIV_DEBUG.
          
          btr_cur_update_in_place(): Replace buf_frame_get_page_zip() with
          buf_block_get_page_zip().
          
          btr_page_create(), btr_page_empty(): Replace the parameter page with block.
          
          btr_attach_half_pages(): Use btr_block_get() instead of btr_page_get().
          Remove buf_block_align() calls.
          
          btr_cur_latch_leaves(): Remove duplicated code.  Use btr_block_get()
          instead of btr_page_get().  Remove buf_block_align() calls.
        ------------------------------------------------------------
        revno: 0.3.267
        committer: marko
        timestamp: Thu 2006-10-12 12:44:46 +0000
        message:
          branches/zip: mem_heap_create_block(): Correct an error introduced in r909:
          When allocating a block from heap->free_block, set buf_block.
        ------------------------------------------------------------
        revno: 0.3.266
        committer: marko
        timestamp: Thu 2006-10-12 12:38:29 +0000
        message:
          branches/zip: Replace buf_frame_alloc() and buf_frame_free()
          with buf_block_alloc() and buf_block_free(), in order to
          avoid buf_block_align() calls.
        ------------------------------------------------------------
        revno: 0.3.265
        committer: marko
        timestamp: Thu 2006-10-12 11:05:22 +0000
        message:
          branches/zip: Reduce the number of buf_block_align() calls.
          
          btr_block_get(): New function to return buf_block_t.
          
          btr_page_alloc(), buf_page_get_release_on_io(), buf_page_get_gen(),
          buf_page_create(), fseg_create(), fseg_create_general(): Return buf_block_t.
          
          buf_page_get_known_nowait(): Expect buf_block_t instead of buf_frame_t.
          
          buf_frame_get_newest_modification(): Replace with
          buf_block_get_newest_modification().
          
          buf_page_dbg_add_level(): Replace with buf_block_dbg_add_level().
          
          buf_block_get_zip_size(): New function.
          
          buf_block_get_page_zip(): Reintroduce.
          
          recv_recover_page(): Replace page, space, page_no with block.
          
          ibuf_bitmap_page_init(): Replace page, zip_size with block.
          
          ibuf_parse_bitmap_init(): Remove the parameter zip_size.
          
          btr_search_drop_page_hash_index(): Replace page with block.
        ------------------------------------------------------------
        revno: 0.3.264
        committer: marko
        timestamp: Thu 2006-10-12 07:02:36 +0000
        message:
          branches/zip: Replace buf_frame_get_page_no() and buf_frame_get_space_id()
          with page_get_page_no() and page_get_space_id().  We want to avoid
          buf_block_align() calls, and the page_no and space_id are now stamped
          on the pages early on.
        ------------------------------------------------------------
        revno: 0.3.263
        committer: marko
        timestamp: Thu 2006-10-12 06:33:43 +0000
        message:
          branches/zip: Move the assertion about holding dict_sys->mutex from
          dict_table_add_system_columns() to dict_table_add_to_cache().
        ------------------------------------------------------------
        revno: 0.3.262
        committer: marko
        timestamp: Tue 2006-10-10 12:26:37 +0000
        message:
          branches/zip: Stamp (space_id, page_no) on buffer pool pages early on.
          
          buf_flush_init_for_writing(): Remove parameters space, page_no.
          
          fsp_init_file_page_low(): Wriet space_id and page_no to the page.
          
          fil_create_new_single_table_tablespace(): Write space_id to the page.
        ------------------------------------------------------------
        revno: 0.3.261
        committer: marko
        timestamp: Tue 2006-10-10 10:21:04 +0000
        message:
          row_ext_create(): Allocate enough space for the structure.
          This error was introduced in r867.
        ------------------------------------------------------------
        revno: 0.3.260
        committer: marko
        timestamp: Mon 2006-10-09 19:36:58 +0000
        message:
          branches/zip: Add function mtr_memo_contains_page() #ifdef UNIV_DEBUG.
          Replace ut_ad(mtr_memo_contains(mtr, buf_block_align(ptr), ...))
          with ut_ad(mtr_memo_contains_page(mtr, ptr, ...)) in order to reduce the
          number of buf_block_align() calls.
        ------------------------------------------------------------
        revno: 0.3.259
        committer: marko
        timestamp: Mon 2006-10-09 16:22:47 +0000
        message:
          branches/zip: Replace buf_frame_align() with page_align(), page_offset(),
          ut_align_down(), or ut_align_offset().
        ------------------------------------------------------------
        revno: 0.3.258
        committer: marko
        timestamp: Mon 2006-10-09 15:37:19 +0000
        message:
          branches/zip: buf_block_get_page_zip(): Replace with buf_frame_get_page_zip().
        ------------------------------------------------------------
        revno: 0.3.257
        committer: marko
        timestamp: Fri 2006-10-06 11:23:19 +0000
        message:
          branches/zip: Remove compilation errors with -DUNIV_HOTBACKUP.
          
          dict_load_foreigns(): Enclose in #ifndef UNIV_HOTBACKUP.
          
          fil_extend_tablespaces_to_stored_len(): Pass zip_size to fil_read().
          
          buf_page_init_for_backup_restore(): Add parameter zip_size.
          Enclose the declaration in buf0buf.h in #ifdef UNIV_HOTBACKUP.
          
          recv_apply_log_recs_for_backup(): Replace the local variable "page"
          with the local variable "block".  Add local variable zip_size.
        ------------------------------------------------------------
        revno: 0.3.256
        committer: marko
        timestamp: Wed 2006-10-04 11:47:25 +0000
        message:
          branches/zip: fil_reset_too_high_lsns(): Adapt for compressed tablespaces.
          TODO: test this with InnoDB Hot Backup 3.0
        ------------------------------------------------------------
        revno: 0.3.255
        committer: marko
        timestamp: Tue 2006-10-03 13:10:20 +0000
        message:
          branches/zip: Merge revisions 869:887 from trunk.
        ------------------------------------------------------------
        revno: 0.3.254
        committer: marko
        timestamp: Mon 2006-10-02 08:42:42 +0000
        message:
          branches/zip: Fix all bugs detected by mysql-test-run.  The exactly same set
          of tests are failing with trunk -r869, with this revision using uncompressed
          storage, and with this revision hard-wired to use 1-kilobyte compressed pages
          and innodb_file_per_table.
          
          btr_push_update_extern_fields(): Do not call ut_ulint_sort() if n_pushed == 0.
          
          btr_copy_externally_stored_field_prefix_low(): Replace ut_max() with ut_min().
        ------------------------------------------------------------
        revno: 0.3.253
        committer: marko
        timestamp: Fri 2006-09-29 12:12:47 +0000
        message:
          branches/zip: Merge revisions 861:869 from trunk.
        ------------------------------------------------------------
        revno: 0.3.252
        committer: marko
        timestamp: Fri 2006-09-29 11:26:20 +0000
        message:
          branches/zip: Remove os_file_check_page_trailers().  It was used in
          os_aio_simulated_handle() before and after initiating a write.  We
          cannot easily pass the compressed page sizes to this function.  The
          check could only be performed on uncompressed pages.
        ------------------------------------------------------------
        revno: 0.3.251
        committer: marko
        timestamp: Fri 2006-09-29 10:43:42 +0000
        message:
          branches/zip: Remove the unused function ut_clock().
        ------------------------------------------------------------
        revno: 0.3.250
        committer: marko
        timestamp: Fri 2006-09-29 10:40:42 +0000
        message:
          branches/zip: dtuple_convert_big_rec(): Do not store anything locally
          of externally stored columns, and fix bugs introduced in r873.  (Bug #22496)
          
          btr_page_get_sure_split_rec(), btr_page_insert_fits(),
          rec_get_converted_size(), rec_convert_dtuple_to_rec(),
          rec_convert_dtuple_to_rec_old(), rec_convert_dtuple_to_rec_new():
          Add parameters ext and n_ext.  Flag external fields during the
          conversion.
          
          rec_set_field_extern_bits(), rec_set_field_extern_bits_new(),
          rec_offs_set_nth_extern(), rec_set_nth_field_extern_bit_old():
          Remove.  The bits are set by rec_convert_dtuple_to_rec().
          
          page_cur_insert_rec_low(): Remove the parameters ext and n_ext.
          
          btr_cur_add_ext(): New utility function for updating and sorting ext[].
          Low-level functions now expect the array to be in ascending order
          for performance reasons.  Used in btr_cur_optimistic_insert(),
          btr_cur_pessimistic_insert(), and btr_cur_pessimistic_update().
          
          btr_cur_optimistic_insert(): Remove some defensive code, because we cannot
          compute the added parameters of rec_get_converted_size().
          
          btr_push_update_extern_fields(): Sort the array.  Require the array to
          be twice the maximum usage, so that ut_ulint_sort() can be used.
          
          dtuple_convert_big_rec(): Allocate new space for the BLOB pointer,
          to avoid overwriting prefix indexes to the same column.  Adapt
          dtuple_convert_back_big_rec().
          
          row_build_index_entry(): Fetch the columns also for prefix indexes of
          the clustered index.
          
          page_zip_apply_log(), page_zip_decompress_clust(): Allow externally
          stored fields to lack a locally stored part.
        ------------------------------------------------------------
        revno: 0.3.249
        committer: marko
        timestamp: Thu 2006-09-28 11:02:04 +0000
        message:
          btr_page_get_sure_split_rec(): Revert the change from r875:
          "On compressed pages, return NULL if incl_data > free_space."
          
          btr_page_split_and_insert(): Remove the limit check of n_iterations
          on compressed pages.  After enough many invocations of
          btr_page_get_sure_split_rec(), the record will finally fit.
        ------------------------------------------------------------
        revno: 0.3.248
        committer: marko
        timestamp: Thu 2006-09-28 10:40:07 +0000
        message:
          branches/zip: btr_page_get_sure_split_rec(): Rewrite the
          for (;;) { ... if (condition) { ... return }} loop as
          do { ... } while (!condition); ... return.
          
          On compressed pages, return NULL if incl_data > free_space.
        ------------------------------------------------------------
        revno: 0.3.247
        committer: marko
        timestamp: Wed 2006-09-27 10:51:05 +0000
        message:
          branches/zip: Replace FIL_PAGE_ZBLOB_SPACE_ID and FIL_PAGE_ZBLOB_DATA
          with FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID and FIL_PAGE_DATA.  The doublewrite
          buffer needs to read the space_id in order to determine the type of the page.
          Because FIL_PAGE_TYPE could contain garbage in MySQL/InnoDB 5.0 and earlier
          versions, we cannot trust fil_page_get_type().  Instead, we have to always
          store the space_id at the same location.  This modification wastes 12 bytes
          per compressed BLOB page (1.2% on 1-kilobyte pages).
        ------------------------------------------------------------
        revno: 0.3.246
        committer: marko
        timestamp: Tue 2006-09-26 19:50:21 +0000
        message:
          branches/zip: dtuple_convert_big_rec(): Reduce the locally stored part
          of externally stored columns to REC_1BYTE_OFFS_LIMIT (128) bytes.
          TODO: only store BTR_EXTERN_FIELD_REF_SIZE (20) bytes with the record,
          and store the entire column externally.  (Bug #22496)
          
          dict_col_t::min_prefix: Remove.
        ------------------------------------------------------------
        revno: 0.3.245
        committer: marko
        timestamp: Tue 2006-09-26 14:26:19 +0000
        message:
          branches/zip: row_build_index_entry(): Fix errors introduced in r870.
          
          Do not augment clustered index records.  When computing the prefix,
          use dfield (where the prefix was copied), not dfield2 (the record in
          the clustered index).
        ------------------------------------------------------------
        revno: 0.3.244
        committer: marko
        timestamp: Tue 2006-09-26 14:21:28 +0000
        message:
          branches/zip: fil_create_new_single_table_tablespace(): Remove the
          unnecessary memset() introduced in r852.  When zip_size != 0,
          write the compressed page to disk, not the uncompressed one.
        ------------------------------------------------------------
        revno: 0.3.243
        committer: marko
        timestamp: Tue 2006-09-26 11:50:54 +0000
        message:
          branches/zip: Allow the locally stored part of externally stored columns
          in the clustered index to be smaller than the indexed prefix in secondary
          indexes.
          
          row_ext_lookup(): Return NULL if the column is not stored externally.
          
          trx_undo_rec_get_partial_row(): row_build(): Add parameter row_ext_t** ext.
          
          row_build_index_entry(): Add the parameter row_ext_t* ext.
          Invoke row_ext_lookup() to fetch prefixes of externally stored columns.
          
          upd_node_t, undo_node_t, purge_node_t: Add the field row_ext_t* ext.
        ------------------------------------------------------------
        revno: 0.3.242
        committer: marko
        timestamp: Tue 2006-09-26 07:39:02 +0000
        message:
          branches/zip: Add const qualifiers to the pointer parameters of
          mach_read_...() functions.  Remove unnecessary casts.
        ------------------------------------------------------------
        revno: 0.3.241
        committer: marko
        timestamp: Tue 2006-09-26 07:28:23 +0000
        message:
          branches/zip: Add row_ext_t for caching prefixes of externally stored columns.
          This will be needed for fixing Bug #22496.
          
          REC_MAX_INDEX_COL_LEN: New constant, copied from DICT_MAX_INDEX_COL_LEN.
          
          row_ext_create(), row_ext_lookup(), row_ext_lookup_low(): New functions.
        ------------------------------------------------------------
        revno: 0.3.240
        committer: marko
        timestamp: Tue 2006-09-26 06:22:16 +0000
        message:
          branches/zip: Implement the ability to fetch a prefix of an externally
          stored column.  This is the first part of fixing Bug #22496.
          
          btr_copy_externally_stored_field_prefix(): New function.
          
          btr_copy_externally_stored_field(): Split to
          btr_copy_externally_stored_field_prefix_low().
          
          row_sel_sec_rec_is_for_blob(): New function, used by
          row_sel_sec_rec_is_for_clust_rec() in selects via
          a secondary index.
        ------------------------------------------------------------
        revno: 0.3.239
        committer: marko
        timestamp: Mon 2006-09-25 12:17:33 +0000
        message:
          branches/zip: Minor cleanup in update related code.
          
          btr_push_update_extern_fields(): Instead of iterating all upd_get_n_fields(),
          stop at the first match.
          
          row_search_index_entry(): Simplify the return statements.
          
          row_upd_sec_step(): Eliminate the local variable "err".
          
          row_upd_clust_step(): Add a UNIV_UNLIKELY hint.
        ------------------------------------------------------------
        revno: 0.3.238
        committer: marko
        timestamp: Fri 2006-09-22 11:30:03 +0000
        message:
          branches/zip: ibuf_merge_or_delete_for_page(): Check for
          ibuf_fixed_addr_page() and fsp_descr_page() before invoking
          fil_inc_pending_ibuf_merges().  That function call should
          always be paired with a call to fil_decr_pending_ibuf_merges().
        ------------------------------------------------------------
        revno: 0.3.237
        committer: marko
        timestamp: Fri 2006-09-22 10:22:03 +0000
        message:
          branches/zip: Merge revisions 838:861 from trunk.
        ------------------------------------------------------------
        revno: 0.3.236
        committer: marko
        timestamp: Fri 2006-09-22 06:56:50 +0000
        message:
          branches/zip: srv_master_thread(): Remove unnecessary assignments to
          n_pages_purged.
        ------------------------------------------------------------
        revno: 0.3.235
        committer: marko
        timestamp: Thu 2006-09-21 19:09:25 +0000
        message:
          branches/zip: page_zip_decompress(): Split into
          page_zip_decompress_node_ptrs(), page_zip_decompress_sec(), and
          page_zip_decompress_clust().  See also r856.
        ------------------------------------------------------------
        revno: 0.3.234
        committer: marko
        timestamp: Thu 2006-09-21 08:01:50 +0000
        message:
          branches/zip: ibuf_merge_or_delete_for_page(): Do not invoke
          fil_space_get_zip_size() unless zip_size is really needed
          (update_ibuf_bitmap || page).  This avoids an assertion failure
          when discarding ibuf entries for a deleted tablespace, for which
          fil_space_get_zip_size() would return ULINT_UNDEFINED.
          
          Also, reindent ibuf0ibuf.c.
        ------------------------------------------------------------
        revno: 0.3.233
        committer: marko
        timestamp: Thu 2006-09-21 07:27:35 +0000
        message:
          branches/zip: page_zip_compress(): Split into page_zip_compress_node_ptrs(),
          page_zip_compress_sec(), and page_zip_compress_clust().
        ------------------------------------------------------------
        revno: 0.3.232
        committer: marko
        timestamp: Wed 2006-09-20 14:26:53 +0000
        message:
          branches/zip: page_zip_empty_size(): New function to compute the
          guaranteed free space available for inserting one record.
          
          btr_page_get_sure_split_rec(), btr_cur_pessimistic_insert():
          Use page_zip_empty_size().
          
          btr_page_split_and_insert(): Relax a debug assertion that there should
          be at least two user records on the page.  On compressed pages, we may
          be able to write only one record.
        ------------------------------------------------------------
        revno: 0.3.231
        committer: marko
        timestamp: Wed 2006-09-20 12:42:08 +0000
        message:
          branches/zip: Instrument the buffer pool allocator and deallocator
          for more accurate Valgrind debugging.
          
          univ.i: Introduce UNIV_DEBUG_VALGRIND, UNIV_MEM_VALID, and UNIV_MEM_INVALID.
          
          buf_LRU_block_free_non_file_page(): Invalidate the buffer frame
          with UNIV_MEM_INVALID().
          
          buf_LRU_get_free_block(): Declare the buffer frame valid
          with UNIV_MEM_VALID().
          
          Other memory is allocated and deallocated via malloc() and free(),
          which are already overridden by Valgrind.  Without the added
          instrumentation, accesses to free pages in the buffer pool cannot
          be caught.
          
          The diagnostics could probably be improved further by declaring all
          non-latched buffer frames invalid.
        ------------------------------------------------------------
        revno: 0.3.230
        committer: marko
        timestamp: Wed 2006-09-20 12:23:25 +0000
        message:
          branches/zip: Fix bugs #ifdef UNIV_DEBUG.
          
          rec_convert_dtuple_to_rec_old(): Initialize the record in order to avoid
          bogus Valgrind warnings about the ut_ad() in mach_write_to_1() and
          mach_write_to_2().
          
          page_zip_compress(), page_zip_write_rec(), page_zip_write_blob_ptr():
          Replace ut_ad(page_validate(...)) with ut_ad(page_simple_validate_new(...)),
          because otherwise crash recovery would fail.
        ------------------------------------------------------------
        revno: 0.3.229
        committer: marko
        timestamp: Wed 2006-09-20 11:14:54 +0000
        message:
          branches/zip: fil_create_new_single_table_tablespace():
          Make page_zip->data point to an address different from page,
          to avoid calling memcpy() with overlapping source and destination.
        ------------------------------------------------------------
        revno: 0.3.228
        committer: marko
        timestamp: Wed 2006-09-20 05:05:58 +0000
        message:
          branches/zip: mlog_parse_index(): After merge fix (r841):
          Identify DB_TRX_ID and DB_ROLL_PTR in the index.
        ------------------------------------------------------------
        revno: 0.3.227
        committer: marko
        timestamp: Tue 2006-09-19 13:56:56 +0000
        message:
          branches/zip: Remove page_zip_decompress_low().  Do not call page_validate()
          on the ZIP_DUMMY index.  Because it does not contain valid collation
          information, the ordering check in page_validate() may fail on pages
          containing non-binary data.
          
          Instead, let the callers of page_zip_decompress() invoke page_validate()
          when the index information is available.
        ------------------------------------------------------------
        revno: 0.3.226
        committer: marko
        timestamp: Tue 2006-09-19 10:14:07 +0000
        message:
          branches/zip: Merge revisions 804:838 from trunk.
        ------------------------------------------------------------
        revno: 0.3.225
        committer: marko
        timestamp: Tue 2006-09-12 07:29:57 +0000
        message:
          branches/zip: Merge revisions 789:804 from trunk.
        ------------------------------------------------------------
        revno: 0.3.224
        committer: marko
        timestamp: Wed 2006-09-06 14:17:20 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(): When adjusting the
          "next BLOB page" pointer, write it also to the compressed page,
          which is the one that will be flushed to disk.
        ------------------------------------------------------------
        revno: 0.3.223
        committer: marko
        timestamp: Wed 2006-09-06 09:51:00 +0000
        message:
          branches/zip: btr_copy_externally_stored_field(): Add diagnostics for
          unexpected end of compressed BLOB.
        ------------------------------------------------------------
        revno: 0.3.222
        committer: marko
        timestamp: Tue 2006-09-05 19:41:05 +0000
        message:
          branches/zip: btr_copy_externally_stored_field(): Correct the
          reporting and handling of inflate() errors.
        ------------------------------------------------------------
        revno: 0.3.221
        committer: marko
        timestamp: Tue 2006-09-05 19:37:43 +0000
        message:
          branches/zip: Split lines before operators, not after them.
        ------------------------------------------------------------
        revno: 0.3.220
        committer: marko
        timestamp: Tue 2006-09-05 12:49:35 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): When returning DB_FAIL,
          always convert back big_rec_vec.
        ------------------------------------------------------------
        revno: 0.3.219
        committer: marko
        timestamp: Mon 2006-09-04 19:47:47 +0000
        message:
          branches/zip: Merge revisions 767:789 from trunk.
        ------------------------------------------------------------
        revno: 0.3.218
        committer: marko
        timestamp: Mon 2006-09-04 19:06:58 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): Add a closing parenthesis that
          was accidentally omitted in r766.
        ------------------------------------------------------------
        revno: 0.3.217
        committer: marko
        timestamp: Thu 2006-08-31 11:00:02 +0000
        message:
          branches/zip: dtuple_convert_big_rec(): Shorten the locally stored part
          of externally stored columns to 108 bytes when possible.
          
          This will unmask a bug in the handling of BLOBs on compressed tablespaces,
          especially of small page sizes.  Apparently, the locally stored part must
          be less than 235 bytes in size for the bug to occur.
          
          dict_col_struct: Add field min_prefix.
          
          dict_index_build_internal_non_clust(): Adjust min_prefix.
        ------------------------------------------------------------
        revno: 0.3.216
        committer: marko
        timestamp: Thu 2006-08-31 10:53:00 +0000
        message:
          branches/zip: Avoid overwriting an existing big_rec when calling
          dtuple_convert_big_rec().  This should never happen, though.
        ------------------------------------------------------------
        revno: 0.3.215
        committer: marko
        timestamp: Tue 2006-08-29 12:17:50 +0000
        message:
          branches/zip: Merge revisions 765:767 from trunk.
        ------------------------------------------------------------
        revno: 0.3.214
        committer: marko
        timestamp: Tue 2006-08-29 09:30:31 +0000
        message:
          branches/zip: Merge revisions 720:765 from trunk and reindent the code
          as per revisions r763:765.
        ------------------------------------------------------------
        revno: 0.3.213
        committer: marko
        timestamp: Tue 2006-08-22 08:34:14 +0000
        message:
          branches/zip: page_zip_dir_insert(): When looking for slot_rec, use the
          old value of PAGE_N_RECS.
          
          page_zip_dir_find_free_low(): Rename to page_zip_dir_find_low().
          
          page_zip_dir_find(): Make use of page_zip_dir_find_low().
        ------------------------------------------------------------
        revno: 0.3.212
        committer: marko
        timestamp: Mon 2006-08-21 18:36:00 +0000
        message:
          branches/zip: Speed up the compression and decompression of leaf pages
          of non-clustered indexes.  On these pages, only the bytes rec[-5..-1]
          will be omitted from the compressed data stream.  Save time by not looking
          for trx_id or externally stored columns.
        ------------------------------------------------------------
        revno: 0.3.211
        committer: marko
        timestamp: Mon 2006-08-21 10:27:15 +0000
        message:
          branches/zip: Assert that only leaf pages of clustered indexes may contain
          externally stored columns.  Make some use of the fact in compression and
          decompression.
          
          rec_init_offsets(): Add ut_ad(dict_index_is_clust(index)) before flagging
          external columns.
          
          page_zip_get_trailer_len(): Assert ut_ad(!page_zip->n_blobs) unless
          dict_index_is_clust(index).
          
          page_zip_get_n_prev_extern(): Add ut_ad(dict_index_is_clust(index)).
          
          page_zip_compress(), page_zip_decompress_low(): Add dict_index_is_clust()
          assertions.  Allow completely external storage of columns.  Simplify
          the computation of "externs".
          
          page_zip_write_rec(): Store leaf node records of non-clustered indexes
          with one memcpy(), avoiding rec_offs_n_extern() and the for loop.
          
          page_zip_write_blob_ptr(): Add ut_ad(dict_index_is_clust(index)).
          Simplify the computation of "externs".
          
          page_zip_clear_rec(): Only attempt to zero out BLOB pointers when
          the record belongs to a leaf page of a clustered index.
          
          page_zip_dir_delete(): Take a fast path when the record is
          not on a leaf page of a clustered index.
          Simplify the computation of "externs".
          
          page_zip_copy(): Assert that n_blobs is zero on anything else than
          leaf pages of clustered indexes.
        ------------------------------------------------------------
        revno: 0.3.210
        committer: marko
        timestamp: Mon 2006-08-21 09:30:48 +0000
        message:
          branches/zip: page_zip_fields_decode(): Set index->type to DICT_CLUSTERED
          if and only if the records on the page contain a trx_id column.
          (Dummy indexes of non-leaf pages will always show up as non-clustered.)
        ------------------------------------------------------------
        revno: 0.3.209
        committer: marko
        timestamp: Mon 2006-08-21 09:27:44 +0000
        message:
          branches/zip: page_zip_dir_insert(): Remove unused parameters index, offsets.
        ------------------------------------------------------------
        revno: 0.3.208
        committer: marko
        timestamp: Mon 2006-08-21 09:08:47 +0000
        message:
          branches/zip: page_zip_decompress(): Initialize page_zip->n_blobs before
          referencing it, to prevent a ut_ad() assertion on page_zip_get_trailer_len()
          from failing.  Promote that assertion to ut_a().
        ------------------------------------------------------------
        revno: 0.3.207
        committer: marko
        timestamp: Mon 2006-08-21 08:41:05 +0000
        message:
          branches/zip: dtuple_convert_big_rec(): Do not attempt to shorten records
          of secondary indexes.  (This is just an optimization; the logic in the
          search loop would never store such records externally.)
        ------------------------------------------------------------
        revno: 0.3.206
        committer: marko
        timestamp: Fri 2006-08-18 19:30:55 +0000
        message:
          branches/zip: page_cur_insert_rec_low(): Replace page_zip_dir_rewrite()
          with page_zip_dir_insert().  Pass page_zip to rec_set_n_owned_new()
          and page_dir_slot_set_n_owned().
          
          page_zip_dir_insert(): New function.  Shift the dense page directory and
          write the inserted record there.
        ------------------------------------------------------------
        revno: 0.3.205
        committer: marko
        timestamp: Fri 2006-08-18 14:34:30 +0000
        message:
          branches/zip: Bug fixes.
          
          data0data.c: Add #include "page0zip.h" that was forgotten from r739.
          
          page_cur_insert_rec_low(): Remove a memory leak when preventing
          extra_size to grow.
        ------------------------------------------------------------
        revno: 0.3.204
        committer: marko
        timestamp: Fri 2006-08-18 10:02:50 +0000
        message:
          branches/zip: Correct the description of DB_TOO_BIG_RECORD.
        ------------------------------------------------------------
        revno: 0.3.203
        committer: marko
        timestamp: Thu 2006-08-17 11:57:51 +0000
        message:
          branches/zip: btr_cur_pessimistic_insert(): Prior to splitting, ensure that
          the record will fit on an empty compressed page.
          
          buf_block_alloc(), buf_block_free(), buf_frame_alloc(), buf_frame_free():
          Make inlined.
        ------------------------------------------------------------
        revno: 0.3.202
        committer: marko
        timestamp: Thu 2006-08-17 08:28:05 +0000
        message:
          branches/zip: btr_page_get_sure_split_rec(): Align the variable declarations
          according to InnoDB formatting rules.
        ------------------------------------------------------------
        revno: 0.3.201
        committer: marko
        timestamp: Thu 2006-08-17 08:14:38 +0000
        message:
          branches/zip: Account for the compressed page size when checking if a
          record will fit or need external storage.
          
          btr_page_get_sure_split_rec(): Estimate the free space of an empty
          compressed page.
          
          page_zip_rec_needs_ext(): New function, to replace existing tests whether
          external storage is needed.
        ------------------------------------------------------------
        revno: 0.3.200
        committer: marko
        timestamp: Wed 2006-08-16 09:35:36 +0000
        message:
          branches/zip: Clean up debug code.
          
          struct mtr_struct: Omit unused field "state" unless #ifdef UNIV_DEBUG.
          
          buf_block_buf_fix_inc_debug(): Remove redundant __attribute__((unused))
          and #ifdef UNIV_SYNC_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.199
        committer: marko
        timestamp: Tue 2006-08-15 14:28:09 +0000
        message:
          branches/zip: Disable unused function ut_dulint_sort().
        ------------------------------------------------------------
        revno: 0.3.198
        committer: marko
        timestamp: Tue 2006-08-15 14:27:19 +0000
        message:
          branches/zip: buf_LRU_print(): Terminate every displayed entry with a newline.
        ------------------------------------------------------------
        revno: 0.3.197
        committer: marko
        timestamp: Tue 2006-08-15 11:55:06 +0000
        message:
          branches/zip: Merge revisions 713:720 from trunk.
        ------------------------------------------------------------
        revno: 0.3.196
        committer: marko
        timestamp: Tue 2006-08-15 11:54:20 +0000
        message:
          branches/zip: Introduce the symbol UNIV_DEBUG_PRINT for enabling debug
          print functions.
          
          buf_LRU_print(), buf_print(): Replace #ifdef UNIV_DEBUG
          with #ifdef UNIV_DEBUG_PRINT.
        ------------------------------------------------------------
        revno: 0.3.195
        committer: marko
        timestamp: Tue 2006-08-15 08:37:54 +0000
        message:
          branches/zip: btr0btr.ic: Add #include "page0zip.h" so that the code
          will compile with inlining disabled.
        ------------------------------------------------------------
        revno: 0.3.194
        committer: marko
        timestamp: Mon 2006-08-14 08:25:46 +0000
        message:
          branches/zip: Allow the code to be built with function inlining enabled.
          
          page0page.h: Add #include "page0zip.h"
          
          page_dir_slot_get_rec(): Avoid void* arithmetics.
          
          trx0undo.ic, trx0sys.ic: Remove unnecessary #include "page0zip.h"
          
          page_zip_write_header(): Move prototype from page0types.h to page0zip.h
        ------------------------------------------------------------
        revno: 0.3.193
        committer: marko
        timestamp: Fri 2006-08-11 11:49:38 +0000
        message:
          branches/zip: Merge revisions 634:713 from trunk.
        ------------------------------------------------------------
        revno: 0.3.192
        committer: marko
        timestamp: Thu 2006-08-10 11:14:00 +0000
        message:
          branches/zip: page_copy_rec_list_start(): Replace the local variable
          "old_end" with "ret".  Otherwise, a page_zip_reorganize() would make
          lock_move_rec_list_start() fail.
        ------------------------------------------------------------
        revno: 0.3.191
        committer: marko
        timestamp: Wed 2006-08-09 11:17:59 +0000
        message:
          branches/zip: page_zip_decompress_low(): Clear the node_ptr during
          initial decompression, in case the record will be deleted and the
          space will be reused by a smaller record.
          
          page_zip_clear_rec_disable: Note the possibility of a page_zip_validate()
          failure when the space of a deleted record is reused by a smaller record.
        ------------------------------------------------------------
        revno: 0.3.190
        committer: marko
        timestamp: Wed 2006-08-09 08:55:00 +0000
        message:
          branches/zip: Improve diagnostics.
          
          buf_LRU_get_free_block(): When zip_size changes, initialize all fields
          of page_zip.  This avoids an assertion failure in page_create_zip() when
          a block with an originally larger zip_size is reallocated.
          
          fsp_get_space_header(): Assert that the stored space id matches.
          
          xdes_get_state(): Assert that the state is valid.
        ------------------------------------------------------------
        revno: 0.3.189
        committer: marko
        timestamp: Mon 2006-08-07 11:35:03 +0000
        message:
          branches/zip: recv_parse_or_apply_log_rec_body(): Note that
          MLOG_COMP_REC_MIN_MARK is allowed on a compressed page.
        ------------------------------------------------------------
        revno: 0.3.188
        committer: marko
        timestamp: Mon 2006-08-07 08:12:39 +0000
        message:
          branches/zip: Minor cleanup.
          
          row_upd_sec_index_entry(): Remove redundant goto.  Replace duplicated
          cleanup code with goto func_exit.
          
          mtr_memo_slot_release(): Eliminate the #else branch of #ifdef UNIV_DEBUG
          by reorganizing the code.
        ------------------------------------------------------------
        revno: 0.3.187
        committer: marko
        timestamp: Mon 2006-08-07 08:07:47 +0000
        message:
          branches/zip: btr_cur_search_to_nth_level(): Do not invoke page_zip_validate()
          if rw_latch == RW_NO_LATCH.
        ------------------------------------------------------------
        revno: 0.3.186
        committer: marko
        timestamp: Fri 2006-08-04 12:35:43 +0000
        message:
          branches/zip: dict_check_tablespaces_and_store_max_id():
          Determine zip_size in kilobytes, pass on in bytes.
        ------------------------------------------------------------
        revno: 0.3.185
        committer: marko
        timestamp: Fri 2006-08-04 11:46:20 +0000
        message:
          branches/zip: Fix the decompression of deleted records containing externally
          stored columns.
          
          page_zip_decompress(): We indeed need to clear the BLOB pointers of deleted
          records twice.  This implies that we also need to invoke rec_get_offsets()
          twice for each record on a leaf page.  Add clarifying comments.
          
          page_zip_clear_rec(): Add the flag page_zip_clear_rec_disable for
          disabling the clearing of deleted records.
        ------------------------------------------------------------
        revno: 0.3.184
        committer: marko
        timestamp: Fri 2006-08-04 08:25:39 +0000
        message:
          branches/zip: Minor cleanup after r690.  One test case still fails.
          
          page_zip_compress_write_log(): Do not invoke page_zip_validate(), since
          this is a static function and the callers already invoke page_zip_validate().
          
          page_zip_decompress_low(): Clear the page #ifdef UNIV_ZIP_DEBUG.
          Optimizations: Remove local variable "last".  Do not clear the BLOB
          pointer until the modification log has been applied.  (Since r690,
          it will be cleared after applying the modification log.)
          Avoid calling rec_get_offsets() a second time if there are no
          uncompressed columns to be restored.
        ------------------------------------------------------------
        revno: 0.3.183
        committer: marko
        timestamp: Thu 2006-08-03 08:06:45 +0000
        message:
          branches/zip: Zero out the BLOB pointers when decoding deleted records.
          Improve diagnostics.
          
          btr_cur_pessimistic_update(): Add page_zip_validate() assertion.
          
          page_zip_decompress(): Initialize all BLOB pointers.
          
          page_zip_clear_rec(): Add page_zip_header_cmp() assertion.
          
          page_delete_rec_list_end(): Add page_zip_validate() assertion.
        ------------------------------------------------------------
        revno: 0.3.182
        committer: marko
        timestamp: Wed 2006-08-02 05:49:15 +0000
        message:
          branches/zip: Fix some crash recovery bugs.
          
          dict_load_table(): Initialize table->flags with zip_size.
          
          mlog_parse_nbytes(), mlog_parse_string(): Add parameter page_zip and
          write the changes also to the compressed page if one is specified.
          Assert that these functions are not called on FIL_PAGE_INDEX pages.
          
          buf_page_io_complete(): Replace block->frame with frame where appropriate.
          
          recv_parse_or_apply_log_rec_body(): Add ut_a(!page_zip) where appropriate.
          
          page_parse_delete_rec_list(): Add parameter page_zip.
        ------------------------------------------------------------
        revno: 0.3.181
        committer: marko
        timestamp: Tue 2006-08-01 12:05:04 +0000
        message:
          branches/zip: buf_flush_init_for_writing(): Invoke page_zip_calc_checksum()
          on page_zip->data, so that the freshly written fields will be included.
          
          page_cur_delete_rec(): Add a page_zip_validate() assertion to the end.
        ------------------------------------------------------------
        revno: 0.3.180
        committer: marko
        timestamp: Tue 2006-08-01 10:11:04 +0000
        message:
          branches/zip: Properly merge records to compressed pages.
        ------------------------------------------------------------
        revno: 0.3.179
        committer: marko
        timestamp: Tue 2006-08-01 08:53:55 +0000
        message:
          branches/zip: Improve debugging.
          
          page_zip_decompress(): Move the function body to page_zip_decompress_low(),
          add the parameter do_validate() to enable page_validate() assertion.  Wrap
          page_zip_decompress_low() with do_validate=TRUE.
          
          page_zip_validate(): Invoke page_zip_decompress_low() with do_validate=FALSE,
          as page_validate() may fail when the compressed page is being updated
          in-place.
          
          page_dir_slot_check(): Replace buf_frame_align() with ut_align_down()
          in order to avoid an assertion failure in page_zip_validate(), which
          will now invoke page_validate() via page_zip_decompress().
        ------------------------------------------------------------
        revno: 0.3.178
        committer: marko
        timestamp: Tue 2006-08-01 07:58:38 +0000
        message:
          branches/zip: Bug fixes.
          
          buf_page_io_complete(): On FIL_PAGE_TYPE_ZBLOB (compressed BLOB pages),
          read the space_id from a different location.
          
          page_zip_compress(), page_zip_write_rec(), page_zip_write_blob_ptr():
          Replace page_simple_validate_new() with page_validate().
          
          page_zip_clear_rec(): When running out of log space, do not attempt to
          recompress the page, because the directory slots might be unbalanced and
          the page_validate() assertion in page_zip_compress() would fail.
          Instead, clear the BLOB pointers of the deleted record on the
          uncompressed page, so that page_zip_validate() will succeed.
          
          page_zip_validate(): Remove the comment about page_zip_clear_rec().
          A mismatch always indicates a serious inconsistency.
        ------------------------------------------------------------
        revno: 0.3.177
        committer: marko
        timestamp: Mon 2006-07-31 18:27:17 +0000
        message:
          branches/zip: Stamp some header fields to compressed BLOB pages.
          
          buf_flush_init_for_writing(): On FIL_PAGE_TYPE_ZBLOB, write to
          page_zip->data instead of page.
          
          page_zip_write_rec(), page_zip_write_blob_ptr(), page_zip_write_node_ptr():
          Add ut_ad(page_simple_validate_new()).
        ------------------------------------------------------------
        revno: 0.3.176
        committer: marko
        timestamp: Mon 2006-07-31 06:43:25 +0000
        message:
          branches/zip: Fix a bug in consistent reads of rows containing BLOB data.
          
          btr_rec_copy_externally_stored_field(): Add parameter zip_size.
          Do not call buf_block_align(rec), because rec can also be in
          dynamically allocated memory.  buf_block_align() can only be invoked
          on addresses inside the buffer pool.
          
          page_zip_clear_rec(): Improve formatting.
        ------------------------------------------------------------
        revno: 0.3.175
        committer: marko
        timestamp: Fri 2006-07-28 07:34:33 +0000
        message:
          branches/zip: page_zip_validate(): Replace buf_frame_alloc() with
          ut_malloc() to avoid breaking the latching order.
          
          page_rec_check(), page_dir_slot_get_rec(): Replace buf_frame_align()
          with ut_align_down() to avoid assertion failures in page_zip_validate().
        ------------------------------------------------------------
        revno: 0.3.174
        committer: marko
        timestamp: Thu 2006-07-27 12:32:12 +0000
        message:
          branches/zip: btr_store_big_rec_extern_fields(),
          btr_free_externally_stored_field(): Replace mlog_write_ulint()
          with mach_write_to_4() when page_zip != NULL.  The operation is
          logged by page_zip_write_blob_ptr().
        ------------------------------------------------------------
        revno: 0.3.173
        committer: marko
        timestamp: Fri 2006-07-07 10:42:41 +0000
        message:
          branches/zip: Remove a bogus page_zip_validate() assertion failure found
          by running index_merge_ror_cpk on 1-kilobyte compressed pages.
          
          page_delete_rec_list_start(): Remove the page_zip_validate() assertion.
          
          btr_page_split_and_insert(): Add page_zip_validate() assertions about
          page and new_page after moving the records.
        ------------------------------------------------------------
        revno: 0.3.172
        committer: marko
        timestamp: Thu 2006-07-06 19:24:53 +0000
        message:
          branches/zip: dict_build_table_def_step(): Refuse to create a compressed
          table in the system tablespace.
        ------------------------------------------------------------
        revno: 0.3.171
        committer: marko
        timestamp: Thu 2006-07-06 11:40:28 +0000
        message:
          branches/zip: page_zip_fields_encode(): Fuse fixed-length fields to a maximum
          of DICT_MAX_INDEX_COL_LEN (768 bytes).
        ------------------------------------------------------------
        revno: 0.3.170
        committer: marko
        timestamp: Thu 2006-07-06 10:39:09 +0000
        message:
          branches/zip: page_zip_fields_encode(): Assign to trx_id_col after
          encoding any pending data.
        ------------------------------------------------------------
        revno: 0.3.169
        committer: marko
        timestamp: Thu 2006-07-06 08:31:26 +0000
        message:
          branches/zip: page_zip_fields_encode(): Do not increment "col" without
          encoding a column.
        ------------------------------------------------------------
        revno: 0.3.168
        committer: marko
        timestamp: Tue 2006-07-04 21:34:25 +0000
        message:
          mlog_parse_index(): Remove an off-by-one error in the bounds check that
          would cause the crash recovery of MLOG_COMP_PAGE_REORGANIZE to fail.
          (Bug #20855)
        ------------------------------------------------------------
        revno: 0.3.167
        committer: marko
        timestamp: Tue 2006-07-04 21:15:30 +0000
        message:
          branches/zip: btr_parse_page_reorganize(): Add parameter page_zip.
        ------------------------------------------------------------
        revno: 0.3.166
        committer: marko
        timestamp: Tue 2006-07-04 11:55:26 +0000
        message:
          branches/zip: Eliminate some duplicated code to release btr_search_latch
          that was found while investigating Bug #19081.
        ------------------------------------------------------------
        revno: 0.3.165
        committer: marko
        timestamp: Mon 2006-07-03 19:12:21 +0000
        message:
          branches/zip: page_cur_insert_rec_low(): Replace page_zip_alloc()
          with page_zip_available() in order to avoid an extra page_zip_compress().
          
          page_zip_available(): Make the function public.
          
          page0zip.ic: Sort the inline function declarations in order to avoid
          forward references, which do not work on some compilers.
        ------------------------------------------------------------
        revno: 0.3.164
        committer: marko
        timestamp: Fri 2006-06-30 11:59:28 +0000
        message:
          branches/zip: page_zip_dir_size(): Remove bogus debug assertion.
          The function will be invoked in page_zip_decompress() before setting
          page_zip->m_start or page_zip->m_end.
        ------------------------------------------------------------
        revno: 0.3.163
        committer: marko
        timestamp: Fri 2006-06-30 09:49:32 +0000
        message:
          branches/zip: Improve assertions related to the linked lists of records
          on B-tree index pages.
          
          page_rec_set_next(): Assert that rec != next.
          
          rec_get_next_ptr(), rec_get_next_offs(): On compact pages, assert that
          there are at least REC_N_NEW_EXTRA_BYTES + 1 between records.
          
          page_cur_insert_rec_write_log(): Replace a buf_frame_align() call
          with ut_align_offset().
          
          page_cur_insert_rec_low(): Assert that current_rec != insert_rec.
        ------------------------------------------------------------
        revno: 0.3.162
        committer: marko
        timestamp: Wed 2006-06-28 12:01:29 +0000
        message:
          branches/zip: Eliminate page corruption in btr_compress() when
          page_zip_reorganize() was invoked.
          
          btr_compress(): Obtain orig_pred and orig_succ after copying the records.
          Add a debug assertion about FIL_PAGE_PREV.
          
          page_copy_rec_list_end(), page_copy_rec_list_start(): Change the return
          type from ibool to rec_t.  Adjust the return value after invoking
          page_zip_reorganize().
        ------------------------------------------------------------
        revno: 0.3.161
        committer: marko
        timestamp: Wed 2006-06-21 12:38:42 +0000
        message:
          branches/zip: buf_page_io_complete(): Copy also uninitialized pages to
          uncompressed storage, to avoid bogus warnings about page number mismatch.
        ------------------------------------------------------------
        revno: 0.3.160
        committer: marko
        timestamp: Wed 2006-06-21 11:24:47 +0000
        message:
          branches/zip: Tighten the assertions about page_zip->m_end.
        ------------------------------------------------------------
        revno: 0.3.159
        committer: marko
        timestamp: Wed 2006-06-21 11:14:11 +0000
        message:
          branches/zip: fsp_fill_free_list(): Replace % with ut_2pow_remainder().
        ------------------------------------------------------------
        revno: 0.3.158
        committer: marko
        timestamp: Wed 2006-06-21 09:15:09 +0000
        message:
          branches/zip: Add debug assertions about page_zip->m_end < paeg_zip->m_size.
        ------------------------------------------------------------
        revno: 0.3.157
        committer: marko
        timestamp: Tue 2006-06-20 19:35:59 +0000
        message:
          branches/zip: Make page_zip_validate() independent of UNIV_DEBUG.
          Replace most occurrences of #if defined UNIV_DEBUG || defined UNIV_ZIP_DEBUG
          with #ifdef UNIV_ZIP_DEBUG.
        ------------------------------------------------------------
        revno: 0.3.156
        committer: marko
        timestamp: Tue 2006-06-20 11:35:41 +0000
        message:
          branches/zip: fil_space_truncate_start(): Fix an incorrect assertion,
          disable unless #ifdef UNIV_LOG_ARCHIVE.
        ------------------------------------------------------------
        revno: 0.3.155
        committer: marko
        timestamp: Tue 2006-06-20 11:32:26 +0000
        message:
          branches/zip: fsp_fill_free_list(): Compute "init_xdes" properly.
        ------------------------------------------------------------
        revno: 0.3.154
        committer: marko
        timestamp: Mon 2006-06-19 11:08:46 +0000
        message:
          branches/zip: Add assertions.
          
          btr_compress(): Invoke page_zip_validate() on the page being compressed.
          
          recv_parse_or_apply_log_rec_body(): Assert that MLOG_WRITE_STRING is
          never used on compressed B-tree pages.
        ------------------------------------------------------------
        revno: 0.3.153
        committer: marko
        timestamp: Mon 2006-06-19 11:07:21 +0000
        message:
          branches/zip: page_zip_reorganize(): On success, write to the redo log.
        ------------------------------------------------------------
        revno: 0.3.152
        committer: marko
        timestamp: Thu 2006-06-15 07:27:13 +0000
        message:
          branches/zip: Add parameter zip_size to fil_io().
          
          fil_read(), fil_write(): Make these inlined functions in fil0fil.c.
          
          fil_write_lsn_and_arch_no_to_file(): Remove the parameter space_id and
          note that this function is to be called on the system tablespace, which
          is uncompressed.
        ------------------------------------------------------------
        revno: 0.3.151
        committer: marko
        timestamp: Wed 2006-06-14 11:19:08 +0000
        message:
          branches/zip: Improve some assertions.
          
          recv_parse_or_apply_log_rec_body(): Assert that mlog_parse_nbytes() is
          never called on compressed B-tree pages.
          
          page_zip_simple_validate(): Correct a typo in a debug assertion.
          
          xdes_calc_descriptor_page(): Fix an incorrect debug assertion.
        ------------------------------------------------------------
        revno: 0.3.150
        committer: marko
        timestamp: Wed 2006-06-14 08:15:44 +0000
        message:
          branches/zip: page_zip_validate(): First compare the page headers
          and obey the added flag page_zip_validate_header_only.
        ------------------------------------------------------------
        revno: 0.3.149
        committer: marko
        timestamp: Wed 2006-06-14 07:47:32 +0000
        message:
          branches/zip: buf_flush_init_for_writing(): Determine zip_size from
          page_zip instead of calling fil_space_get_zip_size().  In
          fil_create_new_single_table_tablespace(), the table space has not yet
          been created.  Handle also FIL_PAGE_TYPE_ALLOCATED.
        ------------------------------------------------------------
        revno: 0.3.148
        committer: marko
        timestamp: Wed 2006-06-14 06:29:41 +0000
        message:
          branches/zip: Fix some bugs in the crash recovery of compressed tablespaces.
          
          fil_node_open_file(): Set node->size correctly for compressed tablespaces.
          
          fsp_header_write_space_id(): Rename to fsp_header_write_fields(),
          add parameter zip_size.
          
          fil_io(): Add UNIV_UNLIKELY hints to assertion-like tests.
        ------------------------------------------------------------
        revno: 0.3.147
        committer: marko
        timestamp: Tue 2006-06-13 20:23:26 +0000
        message:
          branches/zip: Merge revisions 583:634 from trunk.
        ------------------------------------------------------------
        revno: 0.3.146
        committer: marko
        timestamp: Tue 2006-06-13 19:27:40 +0000
        message:
          branches/zip: fsp_try_extend_data_file(): Extend the data file by
          one megabyte at a time, no matter what the compressed page size is.
        ------------------------------------------------------------
        revno: 0.3.145
        committer: marko
        timestamp: Tue 2006-06-13 08:24:26 +0000
        message:
          branches/zip: Add page_zip_validate() assertions and remove a bogus
          page_zip_assertion() failure in page_copy_rec_list_end().
          
          btr_root_raise_and_insert(), btr_lift_page_up(), btr_compress():
          Add page_zip_validate() assertions.
          
          btr_compress(): Only copy FIL_PAGE_PREV when UNIV_BTR_DEBUG is defined.
          
          page_cur_delete_rec(): Document why the page_zip_validate() assertion
          was removed.
          
          page_copy_rec_list_end(): Remove the page_zip_validate() assertion and
          document why.
          
          page_move_rec_list_end(): Add page_zip_validate() assertion.
        ------------------------------------------------------------
        revno: 0.3.144
        committer: marko
        timestamp: Mon 2006-06-12 12:37:54 +0000
        message:
          branches/zip: Add page_zip_validate() checks.
          
          page_cur_delete_rec(): Do not call page_zip_validate() in the beginning,
          because btr_set_min_rec_mark() in btr_cur_pessimistic_delete() will
          cause a temporary mismatch.
          
          Document temporary mismatches caused by btr_set_min_rec_mark() calls
          and explain why they will not cause any problems.
        ------------------------------------------------------------
        revno: 0.3.143
        committer: marko
        timestamp: Wed 2006-06-07 11:23:21 +0000
        message:
          branches/zip: Cleanup suggested by Osku.
          
          ut_is_2pow(): New function for testing if a number is zero or a power of two.
          Use this function instead of bitwise arithmetics or ut_2_power_up() where
          possible.
        ------------------------------------------------------------
        revno: 0.3.142
        committer: marko
        timestamp: Wed 2006-06-07 11:06:12 +0000
        message:
          branches/zip: Replace all ut_ad(page_zip_validate()) assertions with
          ut_a(page_zip_validate()) that are enabled if UNIV_DEBUG or
          UNIV_ZIP_DEBUG is defined.
        ------------------------------------------------------------
        revno: 0.3.141
        committer: marko
        timestamp: Wed 2006-06-07 10:41:58 +0000
        message:
          branches/zip: Remove remaining occurrences of XDES_DESCRIBED_PER_PAGE.
          
          mlog_parse_string(): Remove an off-by-one error in an assertion.
          
          fil_extend_space_to_desired_size(): fsp_header_get_free_limit(),
          fsp_try_extend_data_file(): Replace UNIV_PAGE_SIZE with the actual page size.
          
          PAGE_ZIP_MIN_SIZE: New constant, to be used in assertions.
          
          FSP_SEG_INODES_PER_PAGE: Add parameter zip_size.
          
          fsp_seg_inode_page_get_nth_inode(), fsp_seg_inode_page_find_used(),
          fsp_seg_inode_page_find_free(): Add parameter zip_size.
        ------------------------------------------------------------
        revno: 0.3.140
        committer: marko
        timestamp: Tue 2006-06-06 07:42:04 +0000
        message:
          branches/zip: Remove some more references to XDES_DESCRIBED_PER_PAGE.
          
          ibuf_parse_bitmap_init(), ibuf_bitmap_page_init(),
          ibuf_bitmap_page_get_bits(), ibuf_bitmap_set_bits(),
          ibuf_bitmap_page_no_calc(), ibuf_bitmap_get_map_page(),
          xdes_calc_descriptor_page(), xdes_calc_descriptor_index(),
          fsp_descr_page(): Add parameter zip_size.
        ------------------------------------------------------------
        revno: 0.3.139
        committer: marko
        timestamp: Mon 2006-06-05 09:04:19 +0000
        message:
          branches/zip: When identifying insert buffer bitmap pages, note that the
          pages occur every zip_size pages in compressed tablespaces, instead of
          UNIV_PAGESIZE (or XDES_DESCRIBED_PER_PAGE).
          
          ibuf_bitmap_page(): Add parameter zip_size.
          
          ibuf_fixed_addr_page(): Add parameter space.
        ------------------------------------------------------------
        revno: 0.3.138
        committer: marko
        timestamp: Tue 2006-05-30 09:04:57 +0000
        message:
          branches/zip: Write compressed pages to disk.
          
          os_aio_simulated_handle(): Temporarily disable os_file_check_page_trailers(),
          which cannot be invoked on compressed pages.
          
          dict_table_add_system_columns(): New function, split from
          dict_table_add_to_cache().
          
          mlog_parse_index(): Add system columns to the dummy table and identify
          DB_TRX_ID and DB_ROLL_PTR in the dummy index.
          
          buf_LRU_get_free_block(): Note that page_zip->data should be allocated from
          an aligned memory pool.
          
          buf_flush_buffered_writes(): Write compressed pages to disk.
          
          buf_flush_post_to_doublewrite_buf(): Copy compressed pages to the
          doublewrite buffer.  Zero fill any excess space.
          
          buf_flush_init_for_writing(): Treat all compressed pages the same.
          
          buf_read_page_low(): Read compressed pages from disk.
          
          buf_page_io_complete(): Process compressed pages.
          
          trx_sys_doublewrite_init_or_restore_page(): Process compressed pages.
          
          mlog_write_initial_log_record_fast(): Enable a debug printout
          #ifdef UNIV_LOG_DEBUG.
          
          fsp_header_init(), fsp_fill_free_list(): Pass the compressed page size
          to buf_page_create().
          
          page_zip_compress_write_log(): Flatten the if-else if-else logic.
          
          page_zip_parse_write_blob_ptr(): Do not test page_zip if page==NULL.
          
          page_zip_parse_write_node_ptr(): Do not test page_zip if page==NULL.
          Invoke mlog_close() correctly.
          
          row_sel_store_row_id_to_prebuilt(): Add UNIV_UNLIKELY hint to an
          assertion-like test.
        ------------------------------------------------------------
        revno: 0.3.137
        committer: marko
        timestamp: Wed 2006-05-24 14:35:22 +0000
        message:
          branches/zip: buf_flush_buffered_writes(): Disable the checks on compressed
          pages.
          
          buf_flush_post_to_doublewrite_buf(): Add a TODO comment about compressed pages.
        ------------------------------------------------------------
        revno: 0.3.136
        committer: marko
        timestamp: Mon 2006-05-22 09:30:34 +0000
        message:
          branches/zip: Merge revisions 560:583 from trunk.
        ------------------------------------------------------------
        revno: 0.3.135
        committer: marko
        timestamp: Mon 2006-05-22 09:23:30 +0000
        message:
          branches/zip: buf_flush_buffered_writes(): Replace four occurrences of
          mach_read_from_4(...) != mach_read_from_4(...) with memcmp(..., ..., 4).
        ------------------------------------------------------------
        revno: 0.3.134
        committer: marko
        timestamp: Wed 2006-05-17 12:03:32 +0000
        message:
          branches/zip: Write the compressed page size to SYS_TABLES.TYPE and adjust
          a few places accordingly.
          
          os_aio_simulated_handle(): Add TODO comments about skipping the write
          checks for compressed pages.
          
          dict_create_sys_tables_tuple(): Write the compressed page size to
          the TYPE column.
          
          open_or_create_data_files(): Simplify the fil_node_create() call.
          
          fil_node_create(): Do not touch space->zip_size.  It was already initialized
          by fil_space_create().
          
          fil_reset_too_high_lsns(), buf_flush_buffered_writes(): Add TODO comment
          about compressed pages.
          
          buf_flush_init_for_writing(): Handle pages of type FIL_PAGE_INODE,
          FIL_PAGE_IBUF_BITMAP, and FIL_PAGE_TYPE_FSP_HDR as uncompressed ones.
        ------------------------------------------------------------
        revno: 0.3.133
        committer: marko
        timestamp: Tue 2006-05-16 14:17:43 +0000
        message:
          branches/zip: Try to reorganize the page when compression fails.
          
          page_zip_compress_write_log(): Make static.
          
          page_zip_compress(): Add optional parameter mtr for redo logging.
          
          page_zip_reorganize(): Low-level counterpart of btr_page_reorganize().
          
          page_zip_copy(): Add debug assertions about mtr_memo_contains.
          
          page_cur_insert_rec_low(): Try page_zip_reorganize() and seek to the
          new position of insert_rec if it succeeds.
          
          page_copy_rec_list_end(), page_copy_rec_list_start():
          Try page_zip_reorganize().
          
          page_move_rec_list_end(): Remove bogus comment.
        ------------------------------------------------------------
        revno: 0.3.132
        committer: marko
        timestamp: Tue 2006-05-16 12:01:20 +0000
        message:
          branches/zip: btr_root_raise_and_insert(): Remove a bogus assertion.
        ------------------------------------------------------------
        revno: 0.3.131
        committer: marko
        timestamp: Tue 2006-05-16 07:58:10 +0000
        message:
          branches/zip: Shorten the log record MLOG_ZIP_PAGE_COMPRESS.
          
          page_zip_copy(), page_zip_compress_write_log(): Add parameter 'index'.
          
          page_zip_parse_write_header(): Check for !page_zip only if page != NULL.
          
          page_zip_compress_write_log(), page_zip_parse_compress(): Omit some
          fields in the page header.  Omit the unused bytes between the modification
          log and the page trailer.
          
          parse_or_apply_log_rec_body(): Remove a bogus debug assertion.
        ------------------------------------------------------------
        revno: 0.3.130
        committer: marko
        timestamp: Mon 2006-05-15 11:43:35 +0000
        message:
          branches/zip: btr_page_split_and_insert(): Implement fallbacks for
          page_move_rec_list_start() and page_move_rec_list_end().  Relax the
          conditions on insert_will_fit if page_zip is set.
          
          page_delete_rec_list_start(): Make public.
          
          page_zip_copy(): Clear REC_INFO_MIN_REC_FLAG if FIL_PAGE_PREV != FIL_NULL.
        ------------------------------------------------------------
        revno: 0.3.129
        committer: marko
        timestamp: Fri 2006-05-12 13:49:04 +0000
        message:
          branches/zip: btr_compress(): When merging a compressed page to the right,
          set the FIL_PAGE_PREV field of merge_page to FIL_NULL before copying the
          records in order not to break the assumption of page_zip_compress() that
          min_rec_mark is always set on the first user record of a non-leaf page
          whose FIL_PAGE_PREV field is FIL_NULL, and never otherwise.
        ------------------------------------------------------------
        revno: 0.3.128
        committer: marko
        timestamp: Fri 2006-05-12 11:36:17 +0000
        message:
          branches/zip: Fix a bug that was triggered during purge.
          
          btr_compress(): Defer any tree modifications until the records
          have successfully been copied.
          
          row_purge_remove_sec_if_poss_low(): Simplify the setting of
          the return status.
        ------------------------------------------------------------
        revno: 0.3.127
        committer: marko
        timestamp: Fri 2006-05-12 09:35:56 +0000
        message:
          branches/zip: Remove a potential assertion failure.
          
          btr_lift_page_up(): If page_copy_rec_list_end() fails, resort to
          page_zip_copy().
          
          page_zip_copy(): Validate the copy of the page.
        ------------------------------------------------------------
        revno: 0.3.126
        committer: marko
        timestamp: Thu 2006-05-11 18:23:10 +0000
        message:
          branches/zip: After merge fix, and cleanup.
          
          btr_validate_level(): Add missing parameter to added buf_page_print() calls.
          
          btr_root_raise_and_insert(): Replace low-level code with page_zip_copy().
          
          page_zip_copy(): New function to copy the data payload of a compressed page,
          byte for byte.  The file page header and trailer are not copied, to avoid
          overwriting the fields FIL_PAGE_OFFSET, FIL_PAGE_PREV and FIL_PAGE_NEXT.
        ------------------------------------------------------------
        revno: 0.3.125
        committer: marko
        timestamp: Thu 2006-05-11 17:00:43 +0000
        message:
          branches/zip: Merge revisions 558:560 from trunk.
        ------------------------------------------------------------
        revno: 0.3.124
        committer: marko
        timestamp: Thu 2006-05-11 12:47:23 +0000
        message:
          branches/zip: Merge revisions 536:558 from trunk.
        ------------------------------------------------------------
        revno: 0.3.123
        committer: marko
        timestamp: Thu 2006-05-11 12:31:22 +0000
        message:
          branches/zip: Minor cleanup.
          
          btr_cur_compress_if_useful(): Replace if () return(); return() with return.
          
          page_rec_get_next_low(): New function.
          
          page_rec_get_prev(): Invoke page_is_comp() outside the loop.
          Replace page_rec_get_next() with loop-specific instances of
          page_rec_get_next_low().
          
          page_copy_rec_list_end(): Add some debug assertions.
        ------------------------------------------------------------
        revno: 0.3.122
        committer: marko
        timestamp: Wed 2006-05-10 18:01:41 +0000
        message:
          branches/zip: btr_compress(): Do not modify the node pointer until the
          records have successfully been copied.
        ------------------------------------------------------------
        revno: 0.3.121
        committer: marko
        timestamp: Wed 2006-05-10 13:58:35 +0000
        message:
          branches/zip: Remove GCC 4.0.4 warnings from
          make AM_CFLAGS='-std=c89 -Wall -W -pedantic'
        ------------------------------------------------------------
        revno: 0.3.120
        committer: marko
        timestamp: Wed 2006-05-10 11:28:14 +0000
        message:
          branches/zip: Fix bugs.
          
          btr_root_raise_and_insert(): When copying root to new_page byte for byte,
          restore the page number of new_page afterwards.
          
          buf_flush_init_for_writing(): For FIL_PAGE_INDEX, write the page number
          and space id also to the uncompressed page.
        ------------------------------------------------------------
        revno: 0.3.119
        committer: marko
        timestamp: Wed 2006-05-10 07:15:07 +0000
        message:
          branches/zip: Fix bugs triggered by running out of space.
          
          btr_root_raise_and_insert(): If page_copy_rec_list_end() fails,
          copy the pages byte for byte.
          
          page_zip_compress(): Ensure that the uncompressed storage area will
          fit on the compressed page.
        ------------------------------------------------------------
        revno: 0.3.118
        committer: marko
        timestamp: Tue 2006-05-09 16:09:09 +0000
        message:
          branches/zip: Add detailed debugging output to page_zip_compress().
        ------------------------------------------------------------
        revno: 0.3.117
        committer: marko
        timestamp: Mon 2006-05-08 13:30:46 +0000
        message:
          branches/zip: btr_cur_optimistic_insert(): Fail gracefully if
          reorganizing the page fails when compressed pages are enabled.
        ------------------------------------------------------------
        revno: 0.3.116
        committer: marko
        timestamp: Mon 2006-05-08 12:20:34 +0000
        message:
          branches/zip: Temporarily allow the compressed page size to be specified
          in CREATE TABLE and ALTER TABLE with AVG_ROW_LENGTH={1,2,4,8,16}.
        ------------------------------------------------------------
        revno: 0.3.115
        committer: marko
        timestamp: Mon 2006-05-08 09:37:03 +0000
        message:
          branches/zip: Merge revisions 532:536 from trunk.
        ------------------------------------------------------------
        revno: 0.3.114
        committer: marko
        timestamp: Mon 2006-05-08 06:18:59 +0000
        message:
          branches/zip: Merge revisions 465:532 from trunk.
        ------------------------------------------------------------
        revno: 0.3.113
        committer: marko
        timestamp: Thu 2006-05-04 11:44:49 +0000
        message:
          branches/zip: Minor improvements.
          
          Introduce FIL_PAGE_ZBLOB_DATA as a synonym for FIL_PAGE_FILE_FLUSH_LSN.
          
          btr_store_big_rec_extern_fields(): Make the assertion about
          dict_table_zip_size() more accurate.
          
          buf_LRU_get_free_block(), buf_block_alloc(): Add parameter zip_size.
          
          buf_calc_zblob_page_checksum(): Remove. Replace with page_zip_calc_checksum().
          
          buf_page_init(): Remove parameter zip_size.
          
          buf_page_io_complete(): Add a placeholder for handling compressed pages.
          
          trx_doublewrite_page_inside(): Remove redundant function.
          
          page_zip_write_rec(): Relax an overly tight assertion about blob_no.
        ------------------------------------------------------------
        revno: 0.3.112
        committer: marko
        timestamp: Tue 2006-05-02 11:44:39 +0000
        message:
          branches/zip: Prepare for writing compressed and reading pages.
          
          buf_page_print(): Print also compressed pages.  Add parameter zip_size.
          
          buf_flush_init_for_writing(): Stamp the fields on a compressed B-tree index
          page.
          
          Add the header field FIL_PAGE_ZBLOB_SPACE_ID as an alias of FIL_PAGE_PREV.
          
          page_zip_calc_checksum(): New function.
          
          page_zip_compress(): Avoid copying the fields that are written in
          buf_flush_init_for_writing().
          
          page_zip_header_cmp(): New function for comparing those fields of the
          page header that will not be written in buf_flush_init_for_writing().
        ------------------------------------------------------------
        revno: 0.3.111
        committer: marko
        timestamp: Fri 2006-04-28 10:53:24 +0000
        message:
          branches/zip: page_cur_insert_rec_low(): Write a log record of
          recompressing the page.
        ------------------------------------------------------------
        revno: 0.3.110
        committer: marko
        timestamp: Fri 2006-04-28 09:30:40 +0000
        message:
          branches/zip: Minor improvements.
          
          buf_flush_init_for_writing(): Calculate the checksum with the actual zip_size.
          
          buf_calc_zblob_page_checksum(): Skip the field FIL_PAGE_SPACE_OR_CHKSUM.
          
          trx_sys_doublewrite_init_or_restore_page(): Use the actual zip_size.
          
          page_cur_insert_rec_low(): If page_zip_alloc() fails, try compressing the
          whole page afterwards.
        ------------------------------------------------------------
        revno: 0.3.109
        committer: marko
        timestamp: Thu 2006-04-27 10:48:12 +0000
        message:
          branches/zip: btr_lift_page_up(): Set level before page_zip_compress().
        ------------------------------------------------------------
        revno: 0.3.108
        committer: marko
        timestamp: Wed 2006-04-26 09:35:18 +0000
        message:
          branches/zip: Minor cleanup and bug fixes
          
          btr_page_reorganize_low(): Rename new_page to temp_page.
          
          btr_store_big_rec_extern_fields(): FIL_PAGE_TYPE is 2 bytes, not 4.
          
          buf_page_init(), buf_page_create(), buf_read_page_low(),
          buf_page_init_for_read(): Add parameter zip_size.
          
          buf_page_init_for_backup_restore(),
          recv_apply_log_recs_for_backup(): Enclose in #ifdef UNIV_HOTBACKUP.
          
          Enclose some debug code in #ifdef UNIV_LOG_REPLICATE.
          
          page_zip_write_header_log(): Replace page_zip with a pointer to
          the uncompressed page.
          
          page_zip_write_rec(): Relax an assertion about blob_no + n_ext.
          
          page_copy_rec_list_to_created_page_write_log(): Allow logging to be disabled.
        ------------------------------------------------------------
        revno: 0.3.107
        committer: marko
        timestamp: Tue 2006-04-25 07:12:32 +0000
        message:
          branches/zip: Write the compressed page size to SYS_TABLES.TYPE
          and to the file space header (FSP_PAGE_ZIP_SIZE, renamed from
          FSP_LOWEST_NO_WRITE).
          
          fil_space_struct: Add zip_size.
          
          dict_table_struct: Embed zip_size in flags.
          
          dict_table_zip_size(): Infer zip_size from table->flags.
          
          dict_sys_tables_get_zip_size(): Read zip_size from SYS_TABLES.TYPE.
          
          fil_space_get_zip_size(): Read zip_size from the file space header.
          
          Add the redo log entry type MLOG_ZIP_FILE_CREATE.
        ------------------------------------------------------------
        revno: 0.3.106
        committer: marko
        timestamp: Wed 2006-04-12 12:39:58 +0000
        message:
          branches/zip: Merge revisions 459:465 from trunk.
        ------------------------------------------------------------
        revno: 0.3.105
        committer: marko
        timestamp: Wed 2006-04-12 09:32:17 +0000
        message:
          branches/zip: Merge revisions 265:459 from trunk.
        ------------------------------------------------------------
        revno: 0.3.104
        committer: marko
        timestamp: Tue 2006-04-11 18:40:44 +0000
        message:
          branches/zip: Fix some crash recovery bugs.
          
          page_zip_alloc(): Add parameter "mtr" and log successful calls
          to page_zip_compress().
          
          page_zip_write_blob_ptr(), page_zip_write_node_ptr(): Write the offset on
          the uncompressed page, because mlog_write_initial_log_record_fast()
          does not do so.
          
          page_zip_write_header_log(), page_zip_parse_write_header(): Encode the
          offset in one byte.
        ------------------------------------------------------------
        revno: 0.3.103
        committer: marko
        timestamp: Tue 2006-04-11 12:27:06 +0000
        message:
          branches/zip: Add the redo log type MLOG_ZIP_PAGE_COMPRESS.  Remove
          MLOG_ZIP_LIST_START_COPY and MLOG_ZIP_LIST_END_COPY.
          
          btr_compress(): Simplify a debug assertion.
          
          page_zip_compress_write_log(), page_zip_parse_compress(): New functions.
          
          page_cur_parse_insert_rec(): Simplify the code.
          
          page_parse_create_zip(): Removed.
          
          page_create_zip(), page_copy_rec_list_end(),
          page_copy_rec_list_start(): Invoke page_zip_compress_write_log().
        ------------------------------------------------------------
        revno: 0.3.102
        committer: marko
        timestamp: Tue 2006-04-11 09:02:27 +0000
        message:
          branches/zip: Minor cleanup.  Remove MLOG_ZIP_ROOT_RAISE.
          
          btr_page_create(): Remove parameters "prev" and "next".  The pointers
          to adjacent B-tree pages will be set in the caller before any user
          records are inserted.
          
          Remove the redo log entry type MLOG_ZIP_ROOT_RAISE, since
          btr_root_raise_and_insert() will not defer modifications to
          the compressed page.
          
          btr_attach_half_pages(): Add parameter new_page_zip.
        ------------------------------------------------------------
        revno: 0.3.101
        committer: marko
        timestamp: Tue 2006-04-11 08:12:39 +0000
        message:
          branches/zip: Disable accidentally committed debug code that would break
          crash recovery of uncompressed tables.
        ------------------------------------------------------------
        revno: 0.3.100
        committer: marko
        timestamp: Mon 2006-04-10 19:48:37 +0000
        message:
          branches/zip: Replace the redo log entry types
          MLOG_ZIP_COMPRESS and MLOG_ZIP_DECOMPRESS with higher-level entry types.
          Implement the logging and crash recovery of MLOG_ZIP_PAGE_CREATE.
          
          page_create_zip(): New function for creating a compressed B-tree page.
          
          page_parse_create_zip(): New function for applying a MLOG_ZIP_PAGE_CREATE
          redo log record.
          
          btr_page_create(): Remove the prototype.  Add parameters page_zip, level,
          prev, and next.
          
          btr0btr.c: Eliminate page_zip_compress() calls where possible.
          
          page_zip_alloc(), page_zip_compress(), page_zip_decompress(),
          page_zip_clear_rec(): Remove parameter mtr.
          
          recv_parse_or_apply_log_rec_body(): Handle MLOG_ZIP_PAGE_CREATE.
          Add TODO comments for the other added redo log entry types.
        ------------------------------------------------------------
        revno: 0.3.99
        committer: marko
        timestamp: Mon 2006-04-10 06:54:14 +0000
        message:
          branches/zip: btr_lift_page_up(): Remove return value;
          assume that the operation always succeeds.
        ------------------------------------------------------------
        revno: 0.3.98
        committer: marko
        timestamp: Fri 2006-04-07 12:56:22 +0000
        message:
          branches/zip: Implement crash recovery of writing BLOB pointers.
          
          page_zip_parse_write_blob_ptr(): New function for applying the redo log
          record MLOG_ZIP_WRITE_BLOB_PTR.
          
          page_zip_write_blob_ptr(): Write the necessary information to the redo log.
          
          page0zip.c: Tighten the assertions to ensure that blob_ptr < page_zip->n_blobs.
          
          page_zip_write_node_ptr(): Use memcpy() instead of mach_write_to_4().
        ------------------------------------------------------------
        revno: 0.3.97
        committer: marko
        timestamp: Fri 2006-04-07 11:44:14 +0000
        message:
          branches/zip: Implement crash recovery of writing to the page header.
          
          page_zip_parse_write_header(): New function for applying the redo log of
          MLOG_ZIP_WRITE_HEADER.
          
          page_zip_parse_write_node_ptr(): Mark the log corrupted if !page_zip.
        ------------------------------------------------------------
        revno: 0.3.96
        committer: marko
        timestamp: Fri 2006-04-07 11:04:08 +0000
        message:
          branches/zip: Implement the crash recovery of MLOG_ZIP_WRITE_NODE_PTR.
          
          page_zip_parse_write_node_ptr(): New function to apply a redo log of
          MLOG_ZIP_WRITE_NODE_PTR.
          
          page_zip_write_node_ptr(): Write all needed information to the redo log.
          
          page_zip_write_header_log(): Write all necessary information to the redo log.
        ------------------------------------------------------------
        revno: 0.3.95
        committer: marko
        timestamp: Wed 2006-04-05 13:41:12 +0000
        message:
          branches/zip: Initial steps towards disk-based storage of compressed pages.
          
          dict_mem_table_create(): Account for DICT_TF_COMPRESSED in a debug assertion.
          
          btr_store_big_rec_extern_fields(), btr_free_externally_stored_field(),
          btr_copy_externally_stored_field(): Implement the disk format for
          compressed BLOB pages.
          
          btr_copy_externally_stored_field(): Improve error reporting and handling
          when decompressing BLOB pages.
          
          buf_flush_init_for_writing(), buf_page_is_corrupted(), buf_page_print():
          Account for compressed BLOB pages (FIL_PAGE_TYPE_ZBLOB).
          
          buf_calc_zblob_page_checksum(): New function.
        ------------------------------------------------------------
        revno: 0.3.94
        committer: marko
        timestamp: Tue 2006-04-04 10:42:05 +0000
        message:
          branches/zip: Minor cleanup.
          
          Replace btr_page_get_level() with page_is_leaf() where possible.
          
          row_purge_upd_exist_or_extern(): Remove obsolete TODO comment.
          
          dtuple_convert_big_rec(): Replace a flag variable with goto.
        ------------------------------------------------------------
        revno: 0.3.93
        committer: marko
        timestamp: Mon 2006-04-03 20:33:31 +0000
        message:
          branches/zip: Fix some BLOB handling bugs.
          
          btr_store_big_rec_extern_fields(): Assert that page_zip is non-NULL
          if and only if dict_table_is_zip() holds.
          
          btr_free_externally_stored_field(): Observe dict_table_is_zip().
          Allow page_zip==NULL even if dict_table_is_zip().  Remove the
          related TODO comment in row_purge_upd_exist_or_extern().
          
          page_zip_available(): uncompressed_size already includes
          PAGE_ZIP_DIR_SLOT_SIZE.
          
          page_zip_decompress(): Remove bogus assertion d_stream.next_out == last.
          Do not subtract BTR_EXTERN_FIELD_REF_SIZE from d_stream.avail_in when
          decompressing records, because the records may be deleted later in
          page_zip_apply_log(), and no BLOB pointers are allocated for deleted
          records.
        ------------------------------------------------------------
        revno: 0.3.92
        committer: marko
        timestamp: Mon 2006-04-03 12:40:09 +0000
        message:
          branches/zip: Add TODO comment to
          row_purge_upd_exist_or_extern().
        ------------------------------------------------------------
        revno: 0.3.91
        committer: marko
        timestamp: Mon 2006-04-03 11:19:01 +0000
        message:
          branches/zip: Fix some bugs
          
          btr_page_split_and_insert(): Avoid dereferencing pointers to garbage on
          the old page.
          
          btr_cur_pessimistic_insert(): Pass pointer to big_rec_vec to
          btr_cur_optimistic_insert().
          
          trx_undo_prev_version_build(): Only invoke rec_set_field_extern_bits()
          if n_ext_vect > 0.
          
          row_ins_index_entry_low(): Simplify a debug assertion.
          
          page_copy_rec_list_end_no_locks(): Make the loop slightly more readable.
          
          page_delete_rec_list_end(): Delete records on compressed pages one by one.
        ------------------------------------------------------------
        revno: 0.3.90
        committer: marko
        timestamp: Thu 2006-03-30 11:47:10 +0000
        message:
          branches/zip: Minor fixes for BLOB handling.
          
          page_zip_get_n_prev_extern(): Ignore deleted records.
          
          page_zip_write_rec(): Remove bogus debug assertion about the BLOB pointer
          being zero-filled.  It would fail when reallocating records from the page
          heap or when updating records in place.
        ------------------------------------------------------------
        revno: 0.3.89
        committer: marko
        timestamp: Wed 2006-03-29 14:08:57 +0000
        message:
          branches/zip: Correctly identify deleted records when deciding whether to
          copy BLOB pointers.
          
          page_zip_dir_find_free_low(): New function,
          split from page_zip_dir_find_free().
          
          Add comments about processing the records in heap_no order.
          
          Fix some typographic errors in comments and improve formatting.
          
          page_zip_decompress(): Initialize (clear) the BLOB pointers in deleted records.
          
          page_zip_clear_rec(): Relocate page_zip_validate() assertions, so that they
          will not fail if a record containing BLOB pointers is being deleted.
          
          Note that page_zip_validate() will fail if page_zip_clear_rec() is unable
          to clear the record.
        ------------------------------------------------------------
        revno: 0.3.88
        committer: marko
        timestamp: Tue 2006-03-28 07:57:47 +0000
        message:
          branches/zip: Fix two bugs.
          
          page_zip_decompress(): Pass size = d_stream.avail_in + 1
          to page_zip_apply_log(), since the terminating NUL byte is not included
          in the space reserved for the compressed data stream.
          
          page_zip_clear_rec(): Clear also node pointer fields.
        ------------------------------------------------------------
        revno: 0.3.87
        committer: marko
        timestamp: Mon 2006-03-27 12:30:25 +0000
        message:
          Rename the static page_zip_alloc() to page_zip_malloc() to resolve a clash.
        ------------------------------------------------------------
        revno: 0.3.86
        committer: marko
        timestamp: Mon 2006-03-27 12:27:53 +0000
        message:
          branches/zip: Implement custom memory management for zlib.
          
          Wrap ut_malloc() and ut_free() as page_zip_alloc() and page_zip_free().
        ------------------------------------------------------------
        revno: 0.3.85
        committer: marko
        timestamp: Thu 2006-03-23 08:13:08 +0000
        message:
          branches/zip: Do not clear the records in page_delete_rec_list_end().
          
          page_delete_rec_list_end(): Do not invoke page_zip_clear_rec().
          
          page_zip_clear_rec(): Remove the global declaration.  Add an assertion
          that the record must be on the free list.  Copy onl rec_offs_data_size()
          bytes before attempting to clear the record and to compress the page.
          
          page_zip_compress(), page_zip_write_rec(): Remove debug assertions that
          trx_id, roll_ptr and node_ptr of deleted records be zero-filled.
        ------------------------------------------------------------
        revno: 0.3.84
        committer: marko
        timestamp: Wed 2006-03-22 14:10:09 +0000
        message:
          branches/zip: Remove a bogus assertion.
          
          page_zip_write_rec(): Allow the record to be delete-marked.
        ------------------------------------------------------------
        revno: 0.3.83
        committer: marko
        timestamp: Wed 2006-03-22 10:31:18 +0000
        message:
          branches/zip: Bug fix
          
          page_zip_write_trx_id_and_roll_ptr(): Write roll_ptr after trx_id,
          not over it.
        ------------------------------------------------------------
        revno: 0.3.82
        committer: marko
        timestamp: Wed 2006-03-22 08:05:06 +0000
        message:
          branches/zip: Minor improvements.
          
          page_cur_search_with_match(): Add a page_zip_validate() debug assertion.
          
          page_validate(): Add a missing space to a fprintf() format string.
        ------------------------------------------------------------
        revno: 0.3.81
        committer: marko
        timestamp: Mon 2006-03-20 15:14:38 +0000
        message:
          branches/zip: Minor improvements.
          
          page_zip_compress(): Add a debug check that the trx_id and roll_ptr columns
          of deleted records are zero-filled.  This should provide some detection
          against misdirected writes.
          
          page_zip_decompress(): Correct typos in comments.
        ------------------------------------------------------------
        revno: 0.3.80
        committer: marko
        timestamp: Mon 2006-03-20 13:21:11 +0000
        message:
          branches/zip: Minor improvements
          
          btr_page_get_father_for_rec(): Remove redundant assertion.
          Add UNIV_UNLIKELY to an assertion-like test.
          
          btr_validate_level(): Add debug assertions on page_zip_validate().
          
          page_zip_compress(): Remove bogus assertion.
          
          page_zip_write_rec(): Assert that the record written is neither delete-marked
          nor deleted.
        ------------------------------------------------------------
        revno: 0.3.79
        committer: marko
        timestamp: Fri 2006-03-17 15:36:25 +0000
        message:
          branches/zip: Minor bug fix.  test-insert still does not pass.
          
          page_zip_compress(): Assert that trx_id and roll_ptr are zero for
          deleted records.
          
          page_zip_clear_rec(): Remove comment about need for redo logging.
          This operationg is already logged on a higher level.
          
          page_delete_rec_list_end(): Always invoke page_zip_clear_rec()
          on compressed pages.
        ------------------------------------------------------------
        revno: 0.3.78
        committer: marko
        timestamp: Fri 2006-03-17 14:11:57 +0000
        message:
          branches/zip: Minor fixes
          
          Restore page_zip_clear_rec() to the global scope.
          Invoke it in page_delete_rec_list_end().
          
          Add debug assertions to page0zip.c to guard against overwriting data
          on the compressed page.
        ------------------------------------------------------------
        revno: 0.3.77
        committer: marko
        timestamp: Thu 2006-03-16 14:02:22 +0000
        message:
          branches/zip: Improve the clearing of deleted records.  Try to support
          operations on BLOB columns.  There are some bugs in the code, because
          test-insert and a few other tests fail.
          
          page_mem_free(): Add parameter index.  Decrement PAGE_N_RECS here.
          Move some operations to page_zip_dir_delete().
          
          page_zip_clear_rec(): Make this a static function.
          
          page_zip_dir_delete(): Add parameters index and offsets.
          Decrement PAGE_N_RECS and clear info_bits and n_owned.
          
          page_zip_get_n_prev_extern(): Correct the synopsis and the algorithm.
          Add parameter page_zip.  Search the records in heap_no order instead
          of collation order.
          
          page_zip_compress(), page_zip_decompress(): Only copy BLOB pointers
          and increment n_blobs for records that have not been deleted.
          
          page_zip_clear_rec(): Clear trx_id and roll_ptr on the compressed page.
          
          page_zip_dir_delete(): Decrement PAGE_N_RECS.  Shift the array of
          BLOB pointers.  Call page_zip_clear_rec().
          
          page_zip_dir_add_slot(): Shift the array of BLOB pointers to make
          space of roll_ptr and trx_id.
          
          page_cur_delete_rec(): Do not decrement PAGE_N_RECS or call
          page_zip_clear_rec(), as page_mem_free() already does it.
        ------------------------------------------------------------
        revno: 0.3.76
        committer: marko
        timestamp: Thu 2006-03-16 09:44:52 +0000
        message:
          branches/zip: Minor fixes
          
          trx-undo_prev_version_build(): Pass offsets==NULL to
          rec_set_field_extern_bits().
          
          rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
          Accept offsets==NULL.
          
          row_upd_rec_in_place(): Remove the bogus comment that the function
          would only be invoked on a clustered index.  Remove the related
          debug assertion.
        ------------------------------------------------------------
        revno: 0.3.75
        committer: marko
        timestamp: Tue 2006-03-14 14:38:45 +0000
        message:
          branches/zip: Bug fixes for BLOB handling.  At least one bug remains:
          page_zip_dir_delete() will need to handle BLOBs.
          
          rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
          Add parameter offsets.
          
          rec_offs_set_nth_extern(): New function to set an extern bit in offsets.
          This will be called when an extern bit is set in a record.
          
          page_cur_rec_insert(), page_cur_insert_rec_low(): Document that the
          parameter "offsets" is in/out.
          
          page_zip_dir_delete(): Note that the array of BLOB pointers will need
          to be shifted.
          
          page0zip.ic: Document the entry type for clearing a record.
          
          page_zip_available(): Add parameter "index".  Remove parameters
          "is_leaf" and "is_clustered".
          
          page_zip_get_trailer_len(): New function for computing the trailer length
          of the compressed page.
          
          page_zip_apply_log(): Implement the modification log entry type for
          clearing the data bytes of a record.
          
          page_zip_decompress(): Initialize n_blobs when actually copying the
          BLOB pointers to place.
          
          page_zip_validate(): Add diagnostic messages for failures.  Check
          also m_start, m_end, and n_blobs.
          
          page_zip_write_blob_ptr(): Add page_zip_validate() assertion.
        ------------------------------------------------------------
        revno: 0.3.74
        committer: marko
        timestamp: Mon 2006-03-13 15:02:16 +0000
        message:
          branches/zip: Implement in-place updates of BLOB pointers.
          There are still some bugs in the code.
          
          btr_store_big_rec_extern_fields(): Remove assertion on dict_table_is_zip()
          to ease testing.
          
          btr_free_externally_stored_field(): Test page_zip instead of
          dict_table_is_zip().
          
          page_zip_write_rec(): Add parameter "create".  Try to handle externally
          stored columns.
          
          rec_offs_any_extern(): Correct the function comment.
          
          Add rec_offs_n_extern() and page_zip_get_n_prev_extern().
          
          page_zip_dir_decode(): Replace assertion with if (...) return(FALSE).
          
          page_zip_decompress(): Do not clear page_zip->n_blobs after counting the
          BLOBs.
          
          page_zip_write_blob_ptr(): Use page_zip_get_n_prev_extern().
          Correct an off-by-one error in memcpy().
        ------------------------------------------------------------
        revno: 0.3.73
        committer: marko
        timestamp: Mon 2006-03-13 07:42:31 +0000
        message:
          branches/zip: Minor improvements.
          
          btr_cur_pessimistic_update(): Remove extraneous page_zip_write_rec() call.
          
          btr_cur_set_ownership_of_extern_field(): Simplify the logic.
          
          row_upd_rec_in_place(): Make use of parameter "index" in debug assertions.
          
          page_zip_write_rec(): Remove TODO comment about redo log record.
          The write will already be covered by higher-level log entries.
        ------------------------------------------------------------
        revno: 0.3.72
        committer: marko
        timestamp: Fri 2006-03-10 12:29:22 +0000
        message:
          branches/zip: Remove unused parameter "index" of page_mem_free().
        ------------------------------------------------------------
        revno: 0.3.71
        committer: marko
        timestamp: Fri 2006-03-10 12:10:47 +0000
        message:
          branches/zip: Replace buf_block_align(btr_cur_get_page()) with
          buf_block_align(btr_cur_get_rec()).
        ------------------------------------------------------------
        revno: 0.3.70
        committer: marko
        timestamp: Fri 2006-03-10 10:30:56 +0000
        message:
          branches/zip: Make test-insert --small-test pass.
          
          btr_compress(): Pass the correct page_zip to btr_node_ptr_set_child_page_no().
          
          page_mem_free(): Remove parameter mtr.  Do not call page_zip_clear_rec() here.
          
          page_cur_delete_rec(): Call page_zip_clear_rec() here.  Decrement PAGE_N_RECS
          only after calling page_mem_free().  Assert page_zip_validate().
        ------------------------------------------------------------
        revno: 0.3.69
        committer: marko
        timestamp: Thu 2006-03-09 17:26:02 +0000
        message:
          branches/zip: Note that TRX_ID and ROLL_PTR only exist on B-tree leaf pages
          of clustered indexes.  Previously, parts of the code assumed that these
          columns would exist on all leaf pages.  Simplify the update-in-place of
          these columns.
          
          Add inline function dict_index_is_clust() to replace all tests
          index->type & DICT_CLUSTERED.
          
          Remove the redo log entry types MLOG_ZIP_WRITE_TRX_ID and
          MLOG_ZIP_WRITE_ROLL_PTR, because the modifications to these columns
          are covered by logical logging.
          
          Fuse page_zip_write_trx_id() and page_zip_write_roll_ptr() into
          page_zip_write_trx_id_and_roll_ptr().
          
          page_zip_dir_add_slot(), page_zip_available(): Add flag "is_clustered",
          so that no space will be reserved for TRX_ID and ROLL_PTR on leaf pages
          of secondary indexes.
          
          page_zip_apply_log(): Flag an error when val==0 is encoded with two bytes.
          
          page_zip_write_rec(): Add debug assertions that there is enough space
          available for the entry before copying the data bytes of the record.
        ------------------------------------------------------------
        revno: 0.3.68
        committer: marko
        timestamp: Thu 2006-03-09 16:48:25 +0000
        message:
          branches/zip: Fix a bug in optimistic update.
          
          btr_cur_update_in_place(): Remove the page_zip_write_rec() call,
          because row_upd_rec_in_place() already calls it.
        ------------------------------------------------------------
        revno: 0.3.67
        committer: marko
        timestamp: Thu 2006-03-09 13:35:04 +0000
        message:
          branches/zip: Fix a bug in the insertion of a record.
          
          page_dir_split_slot(): Do not pass page_zip to page_dir_slot_set_n_owned(),
          because the caller will rewrite the dense page directory later.  At this
          point of execution, the dense directory will not contain the newly inserted
          record, which may end up being written to new_slot.
        ------------------------------------------------------------
        revno: 0.3.66
        committer: marko
        timestamp: Wed 2006-03-08 22:19:20 +0000
        message:
          branches/zip: Fix various bugs.
          
          btr_root_raise_and_insert(): Because btr_page_set_level() must not
          change level from non-zero to zero on compressed pages, invoke
          btr_page_set_level() with page_zip==NULL and compress the entire
          root page after creating it from the scratch.
          
          btr_attach_half_pages(): Simplify the computation of lower_page_zip
          and upper_page_zip.  Invoke btr_node_ptr_set_child_page_no() with
          the correct page_zip.
          
          page0page.h: Add __attribute__((const)) to functions testing for
          infimum or supremum.
          
          page_zip_dir_delete(): Note that the third parameter may be NULL.
          Correct offset errors.
          
          page_zip_available(): Use n_heap instead of n_recs.
          
          page_zip_dir_find(), page_zip_dir_find_free(): Fix off-by-one error.
          
          page_zip_fields_encode(), page_zip_fields_decode(): Encode and decode
          index->n_nullable for non-leaf pages.
          
          page_zip_apply_log(): Write REC_NEW_HEAP_NO before calling
          rec_offs_make_valid().
          
          page_zip_write_node_ptr(): Correct off-by-one error.
          
          page_cur_search_with_match(): Make use of page_is_leaf().
          
          page_dir_add_slots(): Replaced with page_dir_add_slot().  Use memmove().
        ------------------------------------------------------------
        revno: 0.3.65
        committer: marko
        timestamp: Wed 2006-03-08 09:57:54 +0000
        message:
          branches/zip: btr_page_reorganize_low(): Assert page_zip_validate()
          before and after the operation.
        ------------------------------------------------------------
        revno: 0.3.64
        committer: marko
        timestamp: Tue 2006-03-07 13:47:33 +0000
        message:
          branches/zip: Minor bug fix
          
          buf_flush_init_for_writing(): Copy FIL_PAGE_LSN to the compressed page.
          
          page_cur_insert_rec_low(): Add debug assertion.
        ------------------------------------------------------------
        revno: 0.3.63
        committer: marko
        timestamp: Tue 2006-03-07 11:41:56 +0000
        message:
          branches/zip: Fix errors in bit arithmetics.
          
          page_zip_fixed_field_encode(), page_zip_fields_encode(),
          page_zip_fields_decode(): Do not waste one bit when encoding quantities
          larger than 127.
          
          page_zip_apply_log(), page_zip_write_rec(): Decode and encode
          heap_no >= 127 correctly.
        ------------------------------------------------------------
        revno: 0.3.62
        committer: marko
        timestamp: Tue 2006-03-07 09:41:31 +0000
        message:
          branches/zip: Correctly restore extra bytes in page_zip_apply_log().
          
          page_zip_apply_log(): Correct an off-by-one error.
          
          page_zip_write_rec(): Correct a debug assertion.
          Encode heap_no as soon as possible.
        ------------------------------------------------------------
        revno: 0.3.61
        committer: marko
        timestamp: Mon 2006-03-06 21:00:05 +0000
        message:
          branches/zip: Fix some bugs in the insertion of records.
          
          row_upd_rec_in_place(), page_zip_write_rec(): Add parameter "index".
          
          page_dir_set_n_heap(): Add a debug assertion that on compressed
          pages, n_heap will always be incremented by one.  Improve code formatting.
          
          page_zip_dir_add_slot(): New function, called from
          page_cur_insert_rec_low() after page_mem_alloc_heap().
          
          rec_set_n_owned_new(): Do not call page_zip_rec_set_owned()
          on the supremum record.
          
          rec_offs_make_valid(): Add debug assertions.
          
          page_zip_dir_user_size(): Correct an off-by-one error in the debug assertion.
          
          page_zip_apply_log(): Add parameter trx_id_col.  Skip trx_id and roll_ptr.
          
          page_zip_decompress(): Simplify the handling of "storage" in the loop that
          copies the uncompressed fields.
          
          page_zip_write_rec(): Store trx_id and roll_ptr separately.
          
          page_zip_write_trx_id(), page_zip_write_roll_ptr(): Fix off-by-one errors.
          
          page_cur_insert_rec_low(): Call page_zip_dir_add_slot() after
          page_mem_alloc_heap().  Remove some redundant assertions.
          Pass page_zip to page_dir_split_slot().
        ------------------------------------------------------------
        revno: 0.3.60
        committer: marko
        timestamp: Fri 2006-03-03 14:43:05 +0000
        message:
          branches/zip: Merge revisions 247:265 from trunk.
        ------------------------------------------------------------
        revno: 0.3.59
        committer: marko
        timestamp: Fri 2006-03-03 14:32:27 +0000
        message:
          branches/zip: Bug fixes
          
          rec_get_offsets_reverse(): Calculate extra_size correctly.
          
          page_zip_apply_log(): Fix an off-by-one error in comparison.
          Replace heap_status with hs where possible.
          Increment the heap_no in heap_status correctly.
          
          page_zip_decompress(): Eliminate the local variable "err".
          Check for Z_STREAM_END only at the start of a record, so that
          incomplete records will always be detected.
          
          page_zip_write_rec(): Calculate the address of "storage" in the
          same way as elsewhere.  Add TODO comments regarding the handling
          of the uncompressed fields (BLOB pointers, trx_id, and roll_ptr).
        ------------------------------------------------------------
        revno: 0.3.58
        committer: marko
        timestamp: Fri 2006-03-03 08:39:20 +0000
        message:
          branches/zip: Merge table->zip to table->flags.  Add dict_table_is_zip().
        ------------------------------------------------------------
        revno: 0.3.57
        committer: marko
        timestamp: Fri 2006-03-03 08:12:59 +0000
        message:
          branches/zip: page_zip_write_rec(): Add a page_zip_validate() assertion.
        ------------------------------------------------------------
        revno: 0.3.56
        committer: marko
        timestamp: Thu 2006-03-02 14:05:32 +0000
        message:
          branches/zip: Fix some bugs in incremental compression.
          
          btr_create(): page_zip_compress() returns FALSE on failure.
          
          page_zip_write_header(): Write to page_zip->data[] instead of page_zip[].
          
          buf_flush_init_for_writing(): Add parameter page_zip and set the fields
          also in the header of the compressed page.
          
          btr_cur_search_to_nth_level(): Add ut_ad() on page_zip_validate().
        ------------------------------------------------------------
        revno: 0.3.55
        committer: marko
        timestamp: Wed 2006-03-01 13:39:56 +0000
        message:
          branches/zip: Identify records in the modification log by heap_no.
          
          page_zip_compress(), page_zip_decompress(), page_zip_write_rec():
          Note that the end marker of the modification log is 1 byte.
          
          page_zip_find_heap_no(): Remove.
          
          page_zip_apply_log(): Remove parameter "page".  Instead of a 2-byte offset
          to the record, decode the heap number using a variable-length code.
          
          page_zip_write_rec(): Check the range of heap_no with debug assertions.
          Encode the heap number instead of an offset to the start of the record.
        ------------------------------------------------------------
        revno: 0.3.54
        committer: marko
        timestamp: Wed 2006-03-01 11:38:25 +0000
        message:
          branches/zip: Move some private functions from page0zip.ic and page0zip.h
          to page0zip.c.
        ------------------------------------------------------------
        revno: 0.3.53
        committer: marko
        timestamp: Wed 2006-03-01 11:29:18 +0000
        message:
          branches/zip: Remove remaining references to relocated records in
          function prototypes and comments.  These changes were accidentally
          forgotten from revision 253.
        ------------------------------------------------------------
        revno: 0.3.52
        committer: marko
        timestamp: Tue 2006-02-28 20:37:29 +0000
        message:
          branches/zip: In page_zip_compress(), do not touch page_zip unless the
          operation succeeds.
          
          page_zip_dir_set(): Remove, as the slots will be written to a temporary
          buffer.
          
          page_zip_dir_encode(): Replace page_zip with buf.  Make some assertions
          more accurate.  Write the dense page directory to buf.
          
          page_zip_compress(): Allocate a temporary buffer for the compressed page
          except the page header.  Make some assertions more accurate.
          
          page_zip_compress(), page_zip_decompress(): Remove 2 bytes of empty space
          adjacent to the area reserved for storing uncompressed columns.
        ------------------------------------------------------------
        revno: 0.3.51
        committer: marko
        timestamp: Mon 2006-02-27 16:03:32 +0000
        message:
          branches/zip: Fix a memory management bug.
          
          page_zip_decompress(): Free index and heap at the end of the function.
          Do not write the index to the MLOG_ZIP_DECOMPRESS record, since it can be
          decoded from the compressed page.
        ------------------------------------------------------------
        revno: 0.3.50
        committer: marko
        timestamp: Mon 2006-02-27 12:38:49 +0000
        message:
          branches/zip: Make page_delete_rec_list_start() work on compressed pages,
          now that deletion of records on compressed pages is guaranteed to succeed.
        ------------------------------------------------------------
        revno: 0.3.49
        committer: marko
        timestamp: Mon 2006-02-27 10:26:59 +0000
        message:
          branches/zip: Remove the possibility to relocate reallocated records
          on a compressed page.
          
          page_zip_get_n_relocated(), page_zip_set_n_relocated(),
          page_zip_get_relocated(): Remove.
          
          page0zip.c, page0zip.ic: Remove all references to n_relocated.
          
          page_cur_insert_rec_low(): On pages that are compressed,
          never relocate records that are allocated from the free list.
        ------------------------------------------------------------
        revno: 0.3.48
        committer: marko
        timestamp: Mon 2006-02-27 09:53:58 +0000
        message:
          branches/zip: Correct bugs found by running ibtestblob.
          
          page_zip_compress(): Add assertions !c_stream.avail_in where appropriate.
          Add assertions on c_stream.next_in.  Correct malformed assertion on
          externs > c_stream.next_in.  Note that there may be trailing garbage after
          the last record.
          
          page_zip_fields_decode(): Correctly decode variable-length fields having
          maximum length greater than 255 bytes.
          
          page_zip_decompress(): Remove the special treatment of the case !n_dense.
          Replace the Z_NO_FLUSH argument of inflate() with Z_SYNC_FLUSH.
          Treat Z_OK return value the same as Z_BUF_ERROR: always check avail_out.
          After decompressing all records, decompress any trailing garbage.
        ------------------------------------------------------------
        revno: 0.3.47
        committer: marko
        timestamp: Mon 2006-02-27 09:33:26 +0000
        message:
          branches/zip: Merge revisions 236:247 from trunk.
        ------------------------------------------------------------
        revno: 0.3.46
        committer: marko
        timestamp: Thu 2006-02-23 19:25:29 +0000
        message:
          branches/zip: Merge revisions 200:236 from trunk.
        ------------------------------------------------------------
        revno: 0.3.45
        committer: marko
        timestamp: Thu 2006-02-23 15:00:45 +0000
        message:
          branches/zip: Add TODO comments about the relocation log.
          
          page_cur_insert_rec_low(): Note that the relocation log
          on the compressed page needs to reflect some changes of extra_size.
        ------------------------------------------------------------
        revno: 0.3.44
        committer: marko
        timestamp: Thu 2006-02-23 14:45:12 +0000
        message:
          branches/zip: When allocating records from the free list,
          do not allow extra_size to decrease on compressed pages.
          
          Split page_mem_alloc() to page_mem_alloc_free() and page_mem_alloc_heap().
          
          page_cur_insert_rec_low(): Remove parameter "tuple".  Implement some of the
          logic from page_mem_alloc().
          
          page_cur_tuple_insert(): Convert the tuple to a record and calculate offsets.
          
          page_zip_validate(): Assert that the page is in compact format.
        ------------------------------------------------------------
        revno: 0.3.43
        committer: marko
        timestamp: Wed 2006-02-22 13:49:05 +0000
        message:
          branches/zip: Minor cleanup.
          
          Remove the declaration of the undefined function
          page_zip_available_noninline().
          
          Make page_zip_available() private to page0zip.c and page0zip.ic.
        ------------------------------------------------------------
        revno: 0.3.42
        committer: marko
        timestamp: Wed 2006-02-22 13:02:40 +0000
        message:
          branches/zip: Try to synchronize the updates of uncompressed and
          compressed pages.
          
          btr_root_raise_and_insert(): Distinguish root_page_zip and new_page_zip.
          
          btr_cur_set_ownership_of_extern_field(): Do not log the write on the
          uncompressed page if it will be logged for page_zip.
          
          lock_rec_insert_check_and_lock(), lock_sec_rec_modify_check_and_lock():
          Update the max_trx_id field also on the compressed page.
          
          mlog_write_ulint(): Add UNIV_UNLIKELY hints.  Remove trailing white space.
          
          mlog_log_string(): Remove trailing white space.
          
          rec_set_field_extern_bits(): Remove parameter mtr, as the write will either
          occur in the heap, or it will be logged at a higher level.
          
          recv_parse_or_apply_log_rec_body(),
          page_zip_write_header(): Add log record type MLOG_ZIP_WRITE_HEADER.
          
          page_header_set_field(): Pass mtr=NULL to page_zip_write_header().
          
          page_header_reset_last_insert(): Pass mtr to page_zip_write_header().
          
          btr_page_set_index_id(), btr_page_set_level(),
          btr_page_set_next(), btr_page_set_prev(): Pass mtr to page_zip_write_header().
          
          row_upd_rec_sys_fields(): Pass mtr=NULL to page_zip_write_trx_id() and
          page_zip_write_roll_ptr(), since the write will be logged at a higher level.
          
          page_zip_write_header(): Add parameter mtr.
          page_zip_write_header_log(): New function.
          
          Remove rec_set_nth_field_extern_bit().
          Make rec_set_nth_field_extern_bit_old() static.
          Rename rec_set_nth_field_extern_bit_new()
          to rec_set_field_extern_bits_new() and make it static.
          
          row_ins_index_entry_low(): Remove bogus TODO comment.
        ------------------------------------------------------------
        revno: 0.3.41
        committer: marko
        timestamp: Tue 2006-02-21 14:43:23 +0000
        message:
          branches/zip: Remove temporary hooks for testing BLOB compression.
          
          dict_mem_table_create(): Initialize table->zip.
          
          btr0cur.c: Distinguish compressed BLOBs based on page_zip or table->zip.
        ------------------------------------------------------------
        revno: 0.3.40
        committer: marko
        timestamp: Tue 2006-02-21 14:15:11 +0000
        message:
          branches/zip:
          Fix the way how btr_free_externally_stored_field() is called in purge.
          
          btr_free_externally_stored_field(): Add parameter field_ref that points
          directly to the BLOB reference.  Use rec, offsets, page_zip, and i
          only for the page_zip_write_blob_ptr() call.
          
          row_purge_upd_exist_or_extern(): Do not assume that the undo log contains
          the entire record.  Only pass the BLOB reference to
          btr_free_externally_stored_field().
        ------------------------------------------------------------
        revno: 0.3.39
        committer: marko
        timestamp: Tue 2006-02-21 10:24:32 +0000
        message:
          branches/zip: Fix bugs in the handling of externally stored columns.
          
          btr_cur_pessimistic_insert(): Pass the "extern storage" flags to
          btr_root_raise_and_insert() or btr_page_split_and_insert().
          
          btr_copy_externally_stored_field(): Include local_len in the returned length.
        ------------------------------------------------------------
        revno: 0.3.38
        committer: marko
        timestamp: Fri 2006-02-17 14:19:39 +0000
        message:
          branches/zip: Merge revisions 79:200 from trunk.
        ------------------------------------------------------------
        revno: 0.3.37
        committer: marko
        timestamp: Fri 2006-02-17 14:14:07 +0000
        message:
          branches/zip:
          
          btr_cur_optimistic_insert(): Replace page_cur_insert_rec_low()
          with page_cur_tuple_insert().
          
          btr_cur_pessimistic_update(): Add the columns of big_rec_vec to ext_vect,
          so that the "extern storage" bits will be set correctly in
          btr_cur_insert_if_possible().
        ------------------------------------------------------------
        revno: 0.3.36
        committer: marko
        timestamp: Fri 2006-02-17 13:44:16 +0000
        message:
          lock_rec_move(): Compute receiver_heap_no correctly.
        ------------------------------------------------------------
        revno: 0.3.35
        committer: marko
        timestamp: Thu 2006-02-16 13:47:20 +0000
        message:
          branches/zip: row_purge_upd_exist_or_extern(): use the offsets correctly
        ------------------------------------------------------------
        revno: 0.3.34
        committer: marko
        timestamp: Thu 2006-02-16 12:58:18 +0000
        message:
          branches/zip: Implement the compression of BLOB columns.
          This has not been extensively tested yet, because some other part of the
          code breaks in "ibtestblob".
          
          btr_free_page_low(): Add parameters "space" and "page_no", because they
          are omitted from compressed BLOB pages.
          
          btr0cur.c: Implement the compression and decompression of BLOB columns,
          enabled at compile-time (#define ZIP_BLOB TRUE) for now.
          
          btr_rec_free_externally_stored_fields(),
          btr_copy_externally_stored_field(): Made static
          
          mlog_log_string(): New function, split from mlog_write_string(), allows
          to avoid a dummy memcpy() of compressed BLOB pages.
        ------------------------------------------------------------
        revno: 0.3.33
        committer: marko
        timestamp: Mon 2006-02-13 14:28:00 +0000
        message:
          branches/zip: Remove in-place updates of the "external storage"
          flag of records.  The flags may only be updated in heap-allocated
          copies of records.
          
          btr_root_raise_and_insert(),
          btr_page_split_and_insert(),
          btr_cur_insert_if_possible(),
          btr_cur_optimistic_insert(),
          btr_cur_pessimistic_insert(),
          page_cur_tuple_insert(),
          page_cur_insert_rec_low(): Add parameters "ext" and "n_ext".
          
          dtuple_convert_big_rec(): Make parameter "ext" const.
        ------------------------------------------------------------
        revno: 0.3.32
        committer: marko
        timestamp: Fri 2006-02-10 15:06:17 +0000
        message:
          branches/zip: Prepare for in-place updates of B-tree node pointers,
          BLOB pointers, trx_id, and roll_ptr.
          
          btr_empty(), btr_create(), page_create(): Add parameter "index", as some
          index information will be encoded on the compressed page.
          
          Define REC_NODE_PTR_SIZE as 4.
          
          Allow btr_page_reorganize() and btr_page_reorganize_low() to fail.
          
          Define the error code DB_ZIP_OVERFLOW.
          
          Make row_ins_index_entry_low() static.
          
          page0zip: Encode the index, log reorganized records, and store uncompressed
          fields separately from the compressed data stream.
        ------------------------------------------------------------
        revno: 0.3.31
        committer: marko
        timestamp: Fri 2006-02-03 14:44:29 +0000
        message:
          branches/zip: Prepare for upcoming implementation of page_zip_compress()
          that will require complete index information.
          
          dict_create_index_step(): invoke dict_index_add_to_cache() before btr_create()
          
          dict_index_remove_from_cache(): make public
          
          dict_index_get_if_in_cache_low(): new function, for holding dict_sys->mutex
          
          buf_flush_init_for_writing(): remove the temporary hook to page_zip_compress()
          
          page_create(): add temporary hook to page_zip_compress()
        ------------------------------------------------------------
        revno: 0.3.30
        committer: marko
        timestamp: Wed 2005-11-30 23:09:36 +0000
        message:
          branches/zip:
          buf_flush_init_for_writing(): The reported dense page directory size was
          4 bytes too much.  Subtract 2 (infimum and supremum) from n_heap.
          
          page_zip_decompress(): When decompressing the last user record, only set
          heap_no and the status bits if there is data to decode, i.e., there
          are user records on the page.
        ------------------------------------------------------------
        revno: 0.3.29
        committer: marko
        timestamp: Wed 2005-11-30 13:57:54 +0000
        message:
          branches/zip: Minor improvements for debugging and testing purposes.
          
          buf_flush_init_for_writing(): Improve the diagnostics and make the
          condition for skipping pages accurate.
          
          univ.i: Introduce UNIV_ZIP_DEBUG for enabling some page_zip_validate() tests.
          
          page0zip.h, page0zip.c: Define and use page_zip_validate() in
          page_zip_compress() and page_zip_write() if UNIV_ZIP_DEBUG or UNIV_DEBUG
          is defined.
        ------------------------------------------------------------
        revno: 0.3.28
        committer: marko
        timestamp: Wed 2005-11-30 13:29:31 +0000
        message:
          branches/zip: Merge revisions 72:79 from trunk.
        ------------------------------------------------------------
        revno: 0.3.27
        committer: marko
        timestamp: Tue 2005-11-29 12:30:46 +0000
        message:
          branches/zip: Merge revisions 9:72 from trunk.
        ------------------------------------------------------------
        revno: 0.3.26
        committer: marko
        timestamp: Tue 2005-11-29 10:24:45 +0000
        message:
          branches/zip: More fixes to problems found in speedc test runs.
          Before the speedc test was interrupted, 121,765 B-tree pages were written.
          
          buf_flush_init_for_writing(): Do not compress other than B-tree pages
          outside the system tablespace.  Report non-B-tree pages.
          
          page_zip_decompress(): Clear the unused heap space on the uncompressed page,
          so that the whole buffer for the uncompressed page will be initialized and
          page_zip_validate() will always succeed.
        ------------------------------------------------------------
        revno: 0.3.25
        committer: marko
        timestamp: Mon 2005-11-28 11:32:52 +0000
        message:
          branches/zip: Fixes to allow the speedc test to run without assertion failures.
          
          page_zip_dir_decode(): Correct the handling of the free list.
          
          page_zip_set_extra_bytes(): Remove off-by-one error in the first loop.
          
          page_zip_apply_log(): Replace parameter end with size, and let end=data+size.
          
          page_zip_decompress(): Properly handle pages where the first user record has
          more than REC_N_NEW_EXTRA_BYTES extra bytes.
          
          page_delete_rec_list_end(): Remove page_zip_temp.  This operation will be
          done completely in-place on page_zip.  If page_zip is specified, clear the
          data bytes and the info and status bits of deleted records and clear the
          removed directory slots.
          
          page_dir_delete_slot(): Clear the last directory slot, which will be removed.
        ------------------------------------------------------------
        revno: 0.3.24
        committer: marko
        timestamp: Fri 2005-11-25 14:17:40 +0000
        message:
          branches/zip: Minor fixes.  Now one non-trivial page compresses and
          decompresses properly.
          
          page_mem_free(): Adjust the temporary condition for zeroing data.
          
          page_zip_compress(): Do not accept Z_STREAM_END from non-final deflate().
          Tighten the assertion on c_stream.avail_in.
          
          page_zip_dir_sort(): Note that the high bound is not inclusive.
          
          page_zip_dir_decode(): Remove off-by-one error in page_zip_dir_sort() call.
          
          page_zip_set_extra_bytes(): Add the termination condition that was forgotten
          from the second for loop.  Simplify the code a little.
          
          page_zip_decompress(): Do not accept Z_STREAM_END from non-final inflate().
          Tighten the assertion on d_stream.avail_out.  Increment heap_status correctly.
        ------------------------------------------------------------
        revno: 0.3.23
        committer: marko
        timestamp: Fri 2005-11-25 12:34:38 +0000
        message:
          branches/zip: Minor fixes to get a page with one record compress/decompress.
          A page with multiple records or deleted records still does not compress
          or decompress properly.
          
          buf_flush_init_for_writing(): Initialize block->page_zip properly so that all
          assertions in page0zip can be enabled.
          
          page_zip_decompress(): Note that corrupt data should not lead to assertions.
          
          page_zip_dir_set(): Correct the interface.  Fix off-by-one error.
          page_zip_dir_get(): Fix off-by-one error.
          
          page0zip.c: Replace n_heap with n_dense and add comments about
          the infimum and supremum records whenever we subtract 2 from heap_no.
          Fix some programming errors.
        ------------------------------------------------------------
        revno: 0.3.22
        committer: marko
        timestamp: Fri 2005-11-25 07:51:28 +0000
        message:
          branches/zip: Minor fixes.  Compression/decompression still fails.
          
          buf0flu.c: Allocate the temporary buffer from buf_frame_alloc().
          
          page_zip_simple_validate(): Do not assert page_zip->m_start >= PAGE_DATA.
          
          page_zip_compress(): Replace some assertions with page_zip_simple_validate(),
          and do not assert anything about page_zip->data contents.
          
          page_zip_validate(): Do not compare the page trailer bytes.
          
          page_zip_write(): Assert that the entire page headers match and
          that page_zip->m_start >= PAGE_DATA.
        ------------------------------------------------------------
        revno: 0.3.21
        committer: marko
        timestamp: Thu 2005-11-24 14:13:10 +0000
        message:
          branches/zip: Implement a more compact page format.
          Add a hook to buf0flu.c for testing compression and decompression.
          TODO: adapt page_zip_write() calls.
        ------------------------------------------------------------
        revno: 0.3.20
        committer: marko
        timestamp: Fri 2005-11-18 07:42:02 +0000
        message:
          branches/zip: Split page_zip_apply_log() from page_zip_decompress().
        ------------------------------------------------------------
        revno: 0.3.19
        committer: marko
        timestamp: Fri 2005-11-18 07:40:34 +0000
        message:
          branches/zip: Remember to update page_zip when updating "extern" flags.
          Add function parameters and TODO comments regarding that.
        ------------------------------------------------------------
        revno: 0.3.18
        committer: marko
        timestamp: Tue 2005-11-15 11:00:37 +0000
        message:
          branches/zip: Attach TODO comments to added btr_page_reorganize() calls
        ------------------------------------------------------------
        revno: 0.3.17
        committer: marko
        timestamp: Mon 2005-11-14 15:46:12 +0000
        message:
          branches/zip: Minor improvements.
          page_dir_slot_set_n_owned(): Check page_zip_available().
          page_dir_add_slots(): Add parameter page_zip.
          btr_attach_half_pages(): Add parameter page_zip.
          btr_node_ptr_set_child_page_no(): Add parameter page_zip.
          Make comments about page_zip modification log usage more accurate.
        ------------------------------------------------------------
        revno: 0.3.16
        committer: marko
        timestamp: Mon 2005-11-14 10:40:02 +0000
        message:
          branches/zip: Minor improvements.
          page_dir_set_n_slots(): Add debug assertion that there will be enough space
          available in the modification log of the compressed page.
          page_trailer_get_len(): Simplify the formula.  Make more use of the function.
        ------------------------------------------------------------
        revno: 0.3.15
        committer: marko
        timestamp: Fri 2005-11-11 21:18:42 +0000
        message:
          branches/zip: Minor improvements.
          
          page_set_max_trx_id(), page_update_max_trx_id(): Add parameter page_zip.
          
          Check that page_zip_decompress() is never called after modifying the
          header or trailer of the compressed page, i.e., that page_zip_decompress()
          will restore the uncompressed page as it was before the failed operation.
        ------------------------------------------------------------
        revno: 0.3.14
        committer: marko
        timestamp: Fri 2005-11-11 13:59:40 +0000
        message:
          branches/zip: Restore left b-tree splits.
          page_move_rec_list_start(): Restored.  Reorganize old page if compressed.
          btr_page_split_and_insert(): Do left page splits.
        ------------------------------------------------------------
        revno: 0.3.13
        committer: marko
        timestamp: Thu 2005-11-10 09:31:10 +0000
        message:
          branches/zip:
          buf_flush_buffered_writes(): Remove bogus assertion failure.
        ------------------------------------------------------------
        revno: 0.3.12
        committer: marko
        timestamp: Wed 2005-11-09 15:43:36 +0000
        message:
          branches/zip: Bug fixes and improvements.
          page_header_reset_last_insert(): Add page_zip parameter.
          rec_get_next_ptr(): Return a pointer to the same page, or NULL.
          page_dir_delete_slot(): Fix off-by-one errors.
        ------------------------------------------------------------
        revno: 0.3.11
        committer: marko
        timestamp: Mon 2005-11-07 14:24:37 +0000
        message:
          branches/zip:
          
          Fix some (not all) bugs found by testing.
        ------------------------------------------------------------
        revno: 0.3.10
        committer: marko
        timestamp: Fri 2005-11-04 12:49:39 +0000
        message:
          branches/zip:
          
          Fix bugs found during testing.
        ------------------------------------------------------------
        revno: 0.3.9
        committer: marko
        timestamp: Fri 2005-11-04 08:50:25 +0000
        message:
          branches/zip:
          
          Add page_zip parameter to page_dir_slot_set_rec().
          Improve the documentation of the page_zip parameters in page0page.
          Add function page_trailer_get_len().
        ------------------------------------------------------------
        revno: 0.3.8
        committer: marko
        timestamp: Wed 2005-11-02 07:51:47 +0000
        message:
          branches/zip:
          
          Slightly improve error handling.
        ------------------------------------------------------------
        revno: 0.3.7
        committer: marko
        timestamp: Fri 2005-10-28 10:45:20 +0000
        message:
          branches/zip:
          
          Implement page_zip_write_header().
          Add page_zip parameter to btr_page_set_ functions.
          Allow page_copy_rec_list_end() to be called with invalid new_page_zip
          if the page has been newly created.
        ------------------------------------------------------------
        revno: 0.3.6
        committer: marko
        timestamp: Thu 2005-10-27 11:48:10 +0000
        message:
          branches/zip:
          
          Initial import of the zip-like compression of B-tree pages.
        ------------------------------------------------------------
        revno: 0.3.5
        committer: marko
        timestamp: Thu 2005-10-27 11:33:12 +0000
        message:
          Create zip branch (LZ77 based compression of B-tree index pages).
        ------------------------------------------------------------
        revno: 0.3.4
        committer: osku
        timestamp: Thu 2005-10-27 09:37:17 +0000
        message:
          include/Makefile.am: Remove reference to removed makefilewin.i.
        ------------------------------------------------------------
        revno: 0.3.3
        committer: osku
        timestamp: Thu 2005-10-27 07:51:34 +0000
        message:
          Add 5.0 -> 5.1 changes.
        ------------------------------------------------------------
        revno: 0.3.2
        committer: osku
        timestamp: Thu 2005-10-27 07:29:40 +0000
        message:
          Import 5.0 code.
        ------------------------------------------------------------
        revno: 0.3.1
        committer: osku
        timestamp: Thu 2005-10-27 07:02:45 +0000
        message:
          Create directory structure.
    ------------------------------------------------------------
    revno: 3351.14.13
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-04-07 15:43:25 +0300
    message:
      Merge from mysql-5.1-innodb
        ------------------------------------------------------------
        revno: 3351.42.1
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Wed 2010-04-07 15:32:51 +0300
        message:
          Merge from mysql-5.1
    ------------------------------------------------------------
    revno: 3351.14.12
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 17:55:07 +0300
    message:
      Convert innodb-consistent-master.opt to Unix EOL
    ------------------------------------------------------------
    revno: 3351.14.11
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 17:50:28 +0300
    message:
      Convert innodb-consistent.test to Unix EOL
    ------------------------------------------------------------
    revno: 3351.14.10
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 17:02:35 +0300
    message:
      Merge from innodb-branches-5.1
        ------------------------------------------------------------
        revno: 0.1.821
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-5.1
        timestamp: Wed 2010-03-31 17:01:38 +0300
        message:
          Merge from SVN
        ------------------------------------------------------------
        revno: 0.2.3
        committer: mmakela
        timestamp: Wed 2010-03-31 11:28:25 +0000
        message:
          branches/5.1: innodb_bug51920.test: Fix a race condition.
    ------------------------------------------------------------
    revno: 3351.14.9
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 16:14:24 +0300
    message:
      Merge from innodb-branches-5.1.
        ------------------------------------------------------------
        revno: 0.1.820
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-5.1
        timestamp: Wed 2010-03-31 16:13:15 +0300
        message:
          Merge from SVN
        ------------------------------------------------------------
        revno: 0.2.2
        committer: mmakela
        timestamp: Wed 2010-03-31 10:33:04 +0000
        message:
          branches/5.1: innodb_bug51920.test: Make the test quicker and more deterministic.
          Suggested by Vasil Dimov.
    ------------------------------------------------------------
    revno: 3351.14.8
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 16:07:55 +0300
    message:
      Rename the newly added mysql-tests from InnoDB to their proper location.
    ------------------------------------------------------------
    revno: 3351.14.7
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 16:06:13 +0300
    message:
      Merge from innodb-branches-5.1
        ------------------------------------------------------------
        revno: 0.1.819
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: innodb-branches-5.1
        timestamp: Wed 2010-03-31 14:31:19 +0300
        message:
          Merge from SVN
        ------------------------------------------------------------
        revno: 0.2.1
        committer: mmakela
        timestamp: Wed 2010-03-31 07:14:51 +0000
        message:
          branches/5.1: Obey KILL during a lock wait (Bug #51920).
          
          srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
          Check trx_is_interrupted() in addition to checking the lock wait timeout.
          
          rb://279 approved by Sunny Bains
    ------------------------------------------------------------
    revno: 3351.14.6
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 16:04:40 +0300
    message:
      Move ./storage/innobase/mysql-test/* into ./mysql-test/* except
      innodb.*, innodb_bug34300* and innodb_bug39438* in order to preserve their
      history from SVN.
    ------------------------------------------------------------
    revno: 3351.14.5
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1-innodb
    timestamp: Wed 2010-03-31 10:17:04 +0300
    message:
      Import branches/5.1@r6912 from SVN on top of storage/innobase
    ------------------------------------------------------------
    revno: 0.1.818
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: innodb-branches-5.1
    timestamp: Wed 2010-03-31 09:47:22 +0300
    message:
      Remove files that are SVN-specific.
    ------------------------------------------------------------
    revno: 0.1.817
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: innodb-branches-5.1
    timestamp: Tue 2010-03-30 19:03:46 +0300
    message:
      Move everything into a subdir in order to workaround a bzr merge bug:
      https://bugs.launchpad.net/bzr/+bug/375898
    ------------------------------------------------------------
    revno: 0.1.816
    committer: vdimov
    timestamp: Tue 2010-03-30 08:18:46 +0000
    message:
      branches/5.1: Whitespace fixup on line 354
    ------------------------------------------------------------
    revno: 0.1.815
    committer: vdimov
    timestamp: Tue 2010-03-30 07:39:02 +0000
    message:
      branches/5.1: Whitespace fixup
    ------------------------------------------------------------
    revno: 0.1.814
    committer: vdimov
    timestamp: Fri 2010-03-26 11:05:03 +0000
    message:
      branches/5.1:
      
      Fix a non-determinism in innodb_bug38231.
      
      Reported by: Sergey Vojtovich <svoj@Sun.COM>
    ------------------------------------------------------------
    revno: 0.1.813
    committer: vasil
    timestamp: Mon 2010-03-15 08:17:31 +0000
    message:
      branches/5.1:
      
      Typecast to silence a compiler warning:
      
      row/row0sel.c: 4548
              C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
      row/row0sel.c: 4553
              C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
      
      Reported by: Jonas Oreland <Jonas.Oreland@Sun.COM>
      Discussed with: Sunny Bains <sunny.bains@oracle.com>
    ------------------------------------------------------------
    revno: 0.1.812
    committer: vasil
    timestamp: Wed 2010-03-10 08:53:21 +0000
    message:
      branches/5.1:
      
      In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
      with a more robust condition which waits for the TRUNCATE and LOCK commands
      to appear in information_schema.processlist. This could also break if there
      are other sessions executing the same SQL commands, but there are none during
      the execution of the mysql test.
    ------------------------------------------------------------
    revno: 0.1.811
    committer: vasil
    timestamp: Wed 2010-03-10 07:04:38 +0000
    message:
      branches/5.1:
      
      Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
      enforced the presence of those recently and the test started failing like:
      
        main.innodb_bug38231                     [ fail ]
                Test ended at 2010-03-10 08:48:32
        
        CURRENT_TEST: main.innodb_bug38231
        mysqltest: At line 49: Cannot run query on connection between send and reap
    ------------------------------------------------------------
    revno: 0.1.810
    committer: jyang
    timestamp: Tue 2010-03-09 15:54:14 +0000
    message:
      branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
      will become out of sync when renaming columns". MySQL does not
      provide new column name information to storage engine to
      update the system table. To avoid column name mismatch, we shall
      just request a table copy for now.
      
      rb://246 approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.809
    committer: vasil
    timestamp: Mon 2010-03-08 17:13:20 +0000
    message:
      branches/5.1:
      
      Whitespace fixup.
    ------------------------------------------------------------
    revno: 0.1.808
    committer: calvin
    timestamp: Wed 2010-03-03 21:56:10 +0000
    message:
      branches/5.1: fix bug#51653: outdated reference to set-variable
      Non functional change.
    ------------------------------------------------------------
    revno: 0.1.807
    committer: jyang
    timestamp: Thu 2010-02-11 10:24:19 +0000
    message:
      branches/5.1: Fix bug #50691, AIX implementation of readdir_r
      causes InnoDB errors. readdir_r() returns an non-NULL value
      in the case of reaching the end of a directory. It should
      not be treated as an error return.
      
      rb://238 approved by Marko
    ------------------------------------------------------------
    revno: 0.1.806
    committer: inaam
    timestamp: Tue 2010-02-09 18:23:09 +0000
    message:
      branches/5.1: Fix Bug #38901
      InnoDB logs error repeatedly when trying to load page into buffer pool
      
      In buf_page_get_gen() if we are unable to read a page (because of
      corruption or some other reason) we keep on retrying. This fills up
      error log with millions of entries in no time and we'd eventually run
      out of disk space. This patch limits the number of attempts that we
      make (currently set to 100) and after that we abort with a message.
      
      rb://241 Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.805
    committer: jyang
    timestamp: Wed 2010-02-03 01:57:32 +0000
    message:
      branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
      incorrect when deadlock detection aborts". Print the correct
      lock owner when recursive function lock_deadlock_recursive()
      exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.
      
      rb://217, approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.804
    committer: sunny
    timestamp: Fri 2010-01-29 22:43:06 +0000
    message:
      branches/5.1: Check *first_value every time against the column max
      value and  set *first_value to next autoinc if it's > col max value.
      ie.  not rely on what is passed in from MySQL.
      
      [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
      rb://236
    ------------------------------------------------------------
    revno: 0.1.803
    committer: sunny
    timestamp: Fri 2010-01-29 22:35:00 +0000
    message:
      branches/5.1: Undo r6536.
    ------------------------------------------------------------
    revno: 0.1.802
    committer: sunny
    timestamp: Fri 2010-01-29 22:13:42 +0000
    message:
      branches/5.1: Check *first_value everytime against the column max
      value and  set *first_value to next autoinc if it's > col max value.
      ie.  not rely on what is passed in from MySQL.
      
      [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
      rb://236
    ------------------------------------------------------------
    revno: 0.1.801
    committer: sunny
    timestamp: Fri 2010-01-29 22:08:40 +0000
    message:
      branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
      if we were unable to initialize the tabe autoinc value. This is required for
      the open to succeed. The only condition we currently treat as a hard error
      is if the autoinc field instance passed in by MySQL is NULL.
      
      Previously if the table autoinc value was 0 and the next value was requested
      we had an assertion that would fail. Change that assertion and treat a value
      of 0 to mean that the autoinc system is unavailable. Generation of next
      value will now return failure.
      
      rb://237
    ------------------------------------------------------------
    revno: 0.1.800
    committer: sunny
    timestamp: Thu 2010-01-21 07:38:35 +0000
    message:
      branches/5.1: Add reference to bug#47621 in the comment.
    ------------------------------------------------------------
    revno: 0.1.799
    committer: sunny
    timestamp: Thu 2010-01-21 00:57:50 +0000
    message:
      branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
      into a separate test/result files.
    ------------------------------------------------------------
    revno: 0.1.798
    committer: sunny
    timestamp: Thu 2010-01-21 00:55:08 +0000
    message:
      branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
      into a separate test/result files.
    ------------------------------------------------------------
    revno: 0.1.797
    committer: calvin
    timestamp: Fri 2010-01-15 23:43:27 +0000
    message:
      branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
      
      Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
      mode and normal server mode.
    ------------------------------------------------------------
    revno: 0.1.796
    committer: marko
    timestamp: Tue 2010-01-12 10:22:19 +0000
    message:
      branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
      the maximum auto-increment value from the table if
      innodb_force_recovery is set to at least 4, so that writes are
      disabled. (Bug #46193)
      
      innobase_get_int_col_max_value(): Move the function definition before
      ha_innobase::innobase_initialize_autoinc(), because that function now
      calls this function.
      
      ha_innobase::innobase_initialize_autoinc(): Change the return type to
      void.  Do not attempt to read the maximum auto-increment value from
      the table if innodb_force_recovery is set to at least 4.  Issue
      ER_AUTOINC_READ_FAILED to the client when the auto-increment value
      cannot be read.
      
      rb://144 by Sunny, revised by Marko
    ------------------------------------------------------------
    revno: 0.1.795
    committer: marko
    timestamp: Tue 2010-01-12 09:34:27 +0000
    message:
      branches/5.1: Non-functional change:
      Make innobase_get_int_col_max_value() a static function.
      It does not access any fields of class ha_innobase.
    ------------------------------------------------------------
    revno: 0.1.794
    committer: jyang
    timestamp: Tue 2010-01-12 05:59:16 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.793
    committer: marko
    timestamp: Tue 2009-12-22 09:11:09 +0000
    message:
      branches/5.1: Remove an obsolete declaration of LOCK_thread_count.
    ------------------------------------------------------------
    revno: 0.1.792
    committer: marko
    timestamp: Tue 2009-12-22 09:09:54 +0000
    message:
      branches/5.1: lock_print_info_summary(): Remove a reference to
      innobase_mysql_end_print_arbitrary_thd() that should have been
      removed in r6347 when removing the function.
    ------------------------------------------------------------
    revno: 0.1.791
    committer: marko
    timestamp: Tue 2009-12-22 08:54:55 +0000
    message:
      branches/5.1: Merge a change from MySQL:
      ------------------------------------------------------------
      revno: 3236
      committer: Satya B <satya.bn@sun.com>
      branch nick: mysql-5.1-bugteam
      timestamp: Tue 2009-12-01 17:48:57 +0530
      message:
        merge to mysql-5.1-bugteam
          ------------------------------------------------------------
          revno: 3234.1.1
          committer: Gleb Shchepa <gshchepa@mysql.com>
          branch nick: mysql-5.1-bugteam
          timestamp: Tue 2009-12-01 14:38:40 +0400
          message:
            Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
      
            manual merge 5.0-->5.1, updating InnoDB plugin.
          ------------------------------------------------------------
          revno: 1810.3968.13
          committer: Gleb Shchepa <gshchepa@mysql.com>
          branch nick: mysql-5.0-bugteam
          timestamp: Tue 2009-12-01 14:24:44 +0400
          message:
            Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
      
            The bug 38816 changed the lock that protects THD::query from
            LOCK_thread_count to LOCK_thd_data, but didn't update the associated
            InnoDB functions.
      
            1. The innobase_mysql_prepare_print_arbitrary_thd and the
            innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
            removed, since now we have a per-thread mutex: now we don't need to wrap
            several inter-thread access tries to THD::query with a single global
            LOCK_thread_count lock, so we can simplify the code.
      
            2. The innobase_mysql_print_thd function has been modified to lock
            LOCK_thd_data in direct way.
    ------------------------------------------------------------
    revno: 0.1.790
    committer: jyang
    timestamp: Thu 2009-12-17 04:54:24 +0000
    message:
      branches/5.1: Fix bug #47814 - Diagnostics are frequently not
      printed after a long lock wait in InnoDB. Separate out the
      lock wait timeout check thread from monitor information
      printing thread.
      
      rb://200 Approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.789
    committer: marko
    timestamp: Tue 2009-12-15 13:23:54 +0000
    message:
      branches/5.1: Merge r4922 from branches/zip.
      
      This the fix for the first part of Bug #41609 from InnoDB Plugin to
      the built-in InnoDB in MySQL 5.1. This allows InnoDB Hot Backup to
      back up a database while the built-in InnoDB in MySQL 5.1 is creating
      temporary tables. (This fix does not address the printouts about
      missing .ibd files for temporary tables at InnoDB startup, which was
      committed to branches/zip in r6252.)
      
      rb://219 approved by Sunny Bains.
      
      branches/zip: Distinguish temporary tables in MLOG_FILE_CREATE.
      This addresses Mantis Issue #23 in InnoDB Hot Backup and some
      of MySQL Bug #41609.
      
      In MLOG_FILE_CREATE, we need to distinguish temporary tables, so that
      InnoDB Hot Backup can work correctly.  It turns out that we can do this
      easily, by using a bit of the previously unused parameter for page number.
      (The page number parameter of MLOG_FILE_CREATE has been written as 0
      ever since MySQL 4.1, which introduced MLOG_FILE_CREATE.)
      
      MLOG_FILE_FLAG_TEMP: A flag for indicating a temporary table in
      the page number parameter of MLOG_FILE_ operations.
      
      fil_op_write_log(): Add the parameter log_flags.
      
      fil_op_log_parse_or_replay(): Add the parameter log_flags.
      Do not replay MLOG_FILE_CREATE when MLOG_FILE_FLAG_TEMP is set in log_flags.
      This only affects ibbackup --apply-log.  InnoDB itself never replays file
      operations.
    ------------------------------------------------------------
    revno: 0.1.788
    committer: calvin
    timestamp: Mon 2009-12-14 13:12:46 +0000
    message:
      branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
      because of different case mode
      
      There is no change to the InnoDB code, only to fix test case by
      changing "T1" to "t1".
    ------------------------------------------------------------
    revno: 0.1.787
    committer: vasil
    timestamp: Fri 2009-11-27 20:07:12 +0000
    message:
      branches/5.1:
      
      Minor changes to support plugin snapshots.
    ------------------------------------------------------------
    revno: 0.1.786
    committer: sunny
    timestamp: Wed 2009-11-25 23:14:42 +0000
    message:
      branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.
      
      This bug is similiar to the negative autoinc filter patch from earlier,
      with the additional handling of filtering out the negative column values
      set explicitly by the user.
      
      rb://184
      Approved by Heikki.
    ------------------------------------------------------------
    revno: 0.1.785
    committer: sunny
    timestamp: Wed 2009-11-25 08:29:03 +0000
    message:
      branches/5.1: This is an interim fix, fix whitepsace issues.
    ------------------------------------------------------------
    revno: 0.1.784
    committer: sunny
    timestamp: Wed 2009-11-25 08:28:35 +0000
    message:
      branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
    ------------------------------------------------------------
    revno: 0.1.783
    committer: sunny
    timestamp: Wed 2009-11-25 08:27:39 +0000
    message:
      branches/5.1: This is an interim fix, fix white space errors.
    ------------------------------------------------------------
    revno: 0.1.782
    committer: sunny
    timestamp: Wed 2009-11-25 08:26:27 +0000
    message:
      branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.
      
      We use the appropriate function to read the column value for non-integer
      autoinc column types, namely float and double.
      
      rb://208. Approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.781
    committer: sunny
    timestamp: Tue 2009-11-24 21:52:43 +0000
    message:
      branches/5.1: Fix autoinc failing test results.
      (this should be skipped when merging 5.1 into zip)
    ------------------------------------------------------------
    revno: 0.1.780
    committer: jyang
    timestamp: Fri 2009-11-20 07:38:43 +0000
    message:
      branches/5.1: Non-functional change, fix formatting.
    ------------------------------------------------------------
    revno: 0.1.779
    committer: jyang
    timestamp: Fri 2009-11-20 05:55:48 +0000
    message:
      branches/5.1: Add a special case to handle the Duplicated Key error
      and return DB_ERROR instead. This is to avoid a possible SIGSEGV
      by mysql error handling re-entering the storage layer for dup key
      info without proper table handle.
      This is to prevent a server crash when error situation in bug
      #45961 "DDL on partitioned innodb tables leaves data dictionary
      in an inconsistent state" happens.
      
      rb://157 approved by Sunny Bains.
    ------------------------------------------------------------
    revno: 0.1.778
    committer: jyang
    timestamp: Thu 2009-11-19 13:12:22 +0000
    message:
      branches/5.1: Use btr_free_root() instead of fseg_free() for
      the fix of bug #48469, because fseg_free() is not defined
      in the zip branch. And we could save one mini-trasaction started
      by fseg_free().
      
      Approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.777
    committer: vasil
    timestamp: Thu 2009-11-19 10:14:23 +0000
    message:
      branches/5.1:
      
      White space fixup - indent under the opening (
    ------------------------------------------------------------
    revno: 0.1.776
    committer: jyang
    timestamp: Wed 2009-11-18 05:14:23 +0000
    message:
      branches/5.1: Fix bug #48526 "Data type for float and
      double is incorrectly reported in InnoDB table monitor".
      Certain datatypes are not printed correctly in
      dtype_print().
      
      rb://204 Approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.775
    committer: jyang
    timestamp: Wed 2009-11-18 03:27:30 +0000
    message:
      branches/5.1: Fix bug #48469 "when innodb tablespace is
      configured too small, crash and corruption!". Function
      btr_create() did not check the return status of fseg_create(),
      and continue the index creation even there is no sufficient
      space.
      
      rb://205 Approved by Marko
    ------------------------------------------------------------
    revno: 0.1.774
    committer: vasil
    timestamp: Wed 2009-11-11 12:52:14 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      (this has been reviewed by Calvin and Marko, and Calvin says Luis has
      incorporated Marko's suggestions)
      
        ------------------------------------------------------------
        revno: 3092.5.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Thu 2009-09-24 15:52:52 +0100
        message:
          BUG#42829: binlogging enabled for all schemas regardless of
          binlog-db-db / binlog-ignore-db
                
          InnoDB will return an error if statement based replication is used
          along with transaction isolation level READ-COMMITTED (or weaker),
          even if the statement in question is filtered out according to the
          binlog-do-db rules set. In this case, an error should not be printed.
                
          This patch addresses this issue by extending the existing check in
          external_lock to take into account the filter rules before deciding to
          print an error. Furthermore, it also changes decide_logging_format to
          take into consideration whether the statement is filtered out from
          binlog before decision is made.
        added:
          mysql-test/suite/binlog/r/binlog_stm_do_db.result
          mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
          mysql-test/suite/binlog/t/binlog_stm_do_db.test
        modified:
          sql/sql_base.cc
          sql/sql_class.cc
          storage/innobase/handler/ha_innodb.cc
          storage/innobase/handler/ha_innodb.h
          storage/innodb_plugin/handler/ha_innodb.cc
          storage/innodb_plugin/handler/ha_innodb.h
    ------------------------------------------------------------
    revno: 0.1.773
    committer: calvin
    timestamp: Wed 2009-11-11 00:51:18 +0000
    message:
      branches/5.1: fix bug#3139: Mysql crashes: 'windows error 995'
      after several selects on a large DB
      
      During stress environment, Windows AIO may fail with error code
      ERROR_OPERATION_ABORTED. InnoDB does not handle the error, rather
      crashes. The cause of the error is unknown, but likely due to
      faulty hardware or driver.
      
      This patch introduces a new error code OS_FILE_OPERATION_ABORTED,
      which maps to Windows ERROR_OPERATION_ABORTED (995). When the error
      is detected during AIO, the InnoDB will issue a synchronous retry
      (read/write).
      
      This patch has been extensively tested by MySQL support.
      
      Approved by: Marko
      rb://196
    ------------------------------------------------------------
    revno: 0.1.772
    committer: vasil
    timestamp: Tue 2009-11-10 13:30:20 +0000
    message:
      branches/5.1:
      
      White space fixup.
    ------------------------------------------------------------
    revno: 0.1.771
    committer: vasil
    timestamp: Mon 2009-11-09 09:43:31 +0000
    message:
      branches/5.1:
      
      Merge a part of r2911.5.5 from MySQL:
      (the other part of this was merged in c5700)
      
        ------------------------------------------------------------
        revno: 2911.5.5
        committer: Vladislav Vaintroub <vvaintroub@mysql.com>
        branch nick: 5.1-innodb_plugin
        timestamp: Wed 2009-06-10 10:59:49 +0200
        message:
          Backport WL#3653 to 5.1 to enable bundled innodb plugin.
          Remove custom DLL loader code from innodb plugin code, use
          symbols exported from mysqld.
        removed:
          storage/innodb_plugin/handler/handler0vars.h
          storage/innodb_plugin/handler/win_delay_loader.cc
        added:
          storage/mysql_storage_engine.cmake
          win/create_def_file.js
        modified:
          CMakeLists.txt
          include/m_ctype.h
          include/my_global.h
          include/my_sys.h
          include/mysql/plugin.h
          libmysqld/CMakeLists.txt
          mysql-test/mysql-test-run.pl
          mysql-test/t/plugin.test
          mysql-test/t/plugin_load-master.opt
          mysys/charset.c
          sql/CMakeLists.txt
          sql/handler.h
          sql/mysql_priv.h
          sql/mysqld.cc
          sql/sql_class.cc
          sql/sql_class.h
          sql/sql_list.h
          sql/sql_profile.h
          storage/Makefile.am
          storage/archive/CMakeLists.txt
          storage/blackhole/CMakeLists.txt
          storage/csv/CMakeLists.txt
          storage/example/CMakeLists.txt
          storage/federated/CMakeLists.txt
          storage/heap/CMakeLists.txt
          storage/innobase/CMakeLists.txt
          storage/innobase/handler/ha_innodb.cc
          storage/innodb_plugin/CMakeLists.txt
          storage/innodb_plugin/handler/ha_innodb.cc
          storage/innodb_plugin/handler/handler0alter.cc
          storage/innodb_plugin/handler/i_s.cc
          storage/innodb_plugin/plug.in
          storage/myisam/CMakeLists.txt
          storage/myisammrg/CMakeLists.txt
          win/Makefile.am
          win/configure.js
    ------------------------------------------------------------
    revno: 0.1.770
    committer: vasil
    timestamp: Mon 2009-11-09 09:15:01 +0000
    message:
      branches/5.1:
      
      Followup to r5700: Adjust the changes so they are the same as in the BZR
      repository.
    ------------------------------------------------------------
    revno: 0.1.769
    committer: marko
    timestamp: Wed 2009-11-04 10:28:10 +0000
    message:
      branches/5.1: Port r6134 from branches/zip:
      
        ------------------------------------------------------------------------
        r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines
      
        branches/zip: innobase_convert_identifier(): Convert table names with
        explain_filename() to address Bug #32430: 'show innodb status'
        causes errors Invalid (old?) table or database name in logs.
      
        rb://134 approved by Sunny Bains
        ------------------------------------------------------------------------
      
      innobase_print_identifier(): Replace with innobase_convert_name().
      
      innobase_convert_identifier(): New function, called by innobase_convert_name().
    ------------------------------------------------------------
    revno: 0.1.768
    committer: vasil
    timestamp: Fri 2009-10-30 15:14:22 +0000
    message:
      branches/5.1:
      
      Revert a change to Makefile.am that sneaked unnoticed in c6127.
    ------------------------------------------------------------
    revno: 0.1.767
    committer: vasil
    timestamp: Fri 2009-10-30 09:18:25 +0000
    message:
      branches/5.1:
      
      Backport c6121 from branches/zip:
      
        ------------------------------------------------------------------------
        r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
        Changed paths:
           M /branches/zip/mysql-test/innodb-autoinc.result
        
        branches/zip: This test has been problematic for sometime now. The underlying
        bug is that the data dictionaries get out of sync. In the AUTOINC code we
        try and apply salve to the symptoms. In the past MySQL made some unrelated
        change and the dictionaries stopped getting out of sync and this test started
        to fail. Now, it seems they have reverted that changed and the test is
        passing again. I suspect this is not he last time that this test will change.
        
        ------------------------------------------------------------------------
    ------------------------------------------------------------
    revno: 0.1.766
    committer: vasil
    timestamp: Fri 2009-10-30 08:31:23 +0000
    message:
      branches/5.1:
      
      White-space fixup.
    ------------------------------------------------------------
    revno: 0.1.765
    committer: jyang
    timestamp: Fri 2009-10-30 03:43:06 +0000
    message:
      branches/5.1: In os_mem_alloc_large(), if we fail to attach
      the shared memory, reset memory pointer ptr to NULL, and
      allocate memory from conventional pool. This is a port
      from branches/zip.
      Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
      rb://198  Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.764
    committer: jyang
    timestamp: Fri 2009-10-30 03:18:38 +0000
    message:
      branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
      for push_warning_printf() call in innodb.
      Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
      
      rb://170 approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.763
    committer: vasil
    timestamp: Wed 2009-10-14 15:30:12 +0000
    message:
      branches/5.1:
      
      Fix typo.
    ------------------------------------------------------------
    revno: 0.1.762
    committer: sunny
    timestamp: Mon 2009-10-12 03:37:49 +0000
    message:
      branches/5.1: Copy the maximum AUTOINC value from the old table to the new
      table when MySQL does a CREATE INDEX ON T. This is required because MySQL
      does a table copy, rename and drops the old table.
      Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
      rb://168
    ------------------------------------------------------------
    revno: 0.1.761
    committer: sunny
    timestamp: Mon 2009-10-12 03:09:56 +0000
    message:
      branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
      the test results too.
      rb://164
    ------------------------------------------------------------
    revno: 0.1.760
    committer: sunny
    timestamp: Mon 2009-10-12 03:05:00 +0000
    message:
      branches/5.1: Ignore negative values supplied by the user when calculating the
      next value to store in dict_table_t. Setting autoincrement columns top negative
      values is undefined behavior and this change should bring the behavior of
      InnoDB closer to what users expect. Added several tests to check.
      rb://162
    ------------------------------------------------------------
    revno: 0.1.759
    committer: jyang
    timestamp: Wed 2009-10-07 22:27:08 +0000
    message:
      branches/5.1: Fix bug #47777. Treat the Geometry data same as
      Binary BLOB in ha_innobase::store_key_val_for_row(), since the
      Geometry data is stored as Binary BLOB in Innodb.
      
      Review: rb://180 approved by Marko Makela.
    ------------------------------------------------------------
    revno: 0.1.758
    committer: vasil
    timestamp: Thu 2009-10-01 11:55:49 +0000
    message:
      branches/5.1:
      
      Fix Bug#38996 Race condition in ANALYZE TABLE
      
      by serializing ANALYZE TABLE inside InnoDB.
      
      Approved by: Heikki (rb://175)
    ------------------------------------------------------------
    revno: 0.1.757
    committer: calvin
    timestamp: Tue 2009-09-22 15:45:07 +0000
    message:
      branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
      
      For embedded server, MySQL may pass in full path, which is
      currently disallowed. It is needed to relax the condition by
      accepting full paths in the embedded case.
      
      Approved by: Heikki (on IM)
    ------------------------------------------------------------
    revno: 0.1.756
    committer: jyang
    timestamp: Mon 2009-09-14 23:39:21 +0000
    message:
      branches/5.1: Disallow creating index with the name of
      "GEN_CLUST_INDEX" which is reserved for the default system
      primary index. (Bug #46000) rb://149 approved by Marko Makela.
    ------------------------------------------------------------
    revno: 0.1.755
    committer: jyang
    timestamp: Thu 2009-09-10 20:43:05 +0000
    message:
      branches/5.1: Block creating table with column name conflicting
      with Innodb reserved key words. (Bug #44369) rb://151 approved
      by Sunny Bains.
    ------------------------------------------------------------
    revno: 0.1.754
    committer: vasil
    timestamp: Thu 2009-09-10 04:41:48 +0000
    message:
      branches/5.1:
      
      Fix a compilation warning caused by c5799:
      
      handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
      handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
    ------------------------------------------------------------
    revno: 0.1.753
    committer: calvin
    timestamp: Wed 2009-09-09 16:47:31 +0000
    message:
      branches/5.1: fix bug#46256
      
      Allow tables to be dropped even if the collation is not found,
      but issue a warning.
      
      Could not find an easy way to add mysql-test since it requires
      changes to charsets and restarting the server. Tests were
      executed manually.
      
      Approved by: Heikki (on IM)
    ------------------------------------------------------------
    revno: 0.1.752
    committer: calvin
    timestamp: Wed 2009-09-09 14:26:29 +0000
    message:
      branches/5.1: merge change from 5.1.38
      
      HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
    ------------------------------------------------------------
    revno: 0.1.751
    committer: jyang
    timestamp: Fri 2009-09-04 03:07:34 +0000
    message:
      branches/5.1: This is to revert change 5741. A return status for
      create_table_def() needs to be fixed.
    ------------------------------------------------------------
    revno: 0.1.750
    committer: jyang
    timestamp: Fri 2009-09-04 00:26:13 +0000
    message:
      branches/5.1: Revert change in 5740. Making the fix in a subsequent
      check in.
    ------------------------------------------------------------
    revno: 0.1.749
    committer: jyang
    timestamp: Thu 2009-09-03 03:16:01 +0000
    message:
      branches/5.1: Block creating table with column name conflicting
      with Innodb reserved key words. (Bug #44369) rb://151 approved
      by Sunny Bains.
    ------------------------------------------------------------
    revno: 0.1.748
    committer: jyang
    timestamp: Thu 2009-09-03 02:33:47 +0000
    message:
      branches/5.1: Disallow creating index with the name of
      "GEN_CLUST_INDEX" which is reserved for the default system
      primary index. (Bug #46000) rb://149 approved by Sunny Bains.
    ------------------------------------------------------------
    revno: 0.1.747
    committer: calvin
    timestamp: Wed 2009-08-26 20:05:35 +0000
    message:
      branches/5.1:
      
      Merge PART OF r2911.5.5 from MySQL:
      
      adjust CMakeLists.txt to work with MySQL 5.1.38
      and beyond.
      
      MySQL changed how the build works on Windows starting from 5.1.38.
      All shared properties are defined in mysql_storage_engine.cmake.
      And the top level CMakeLists.txt determines what engines to build
      and how (static vs. dynamic).
      
      log message from BZR:
      
        ------------------------------------------------------------
        revno: 2911.5.5
        committer: Vladislav Vaintroub <vvaintroub@mysql.com>
        branch nick: 5.1-innodb_plugin
        timestamp: Wed 2009-06-10 10:59:49 +0200
        message:
          Backport WL#3653 to 5.1 to enable bundled innodb plugin.
          Remove custom DLL loader code from innodb plugin code, use
          symbols exported from mysqld.
        removed:
          storage/innodb_plugin/handler/handler0vars.h
          storage/innodb_plugin/handler/win_delay_loader.cc
        added:
          storage/mysql_storage_engine.cmake
          win/create_def_file.js
        modified:
          CMakeLists.txt
          include/m_ctype.h
          include/my_global.h
          include/my_sys.h
          include/mysql/plugin.h
          libmysqld/CMakeLists.txt
          mysql-test/mysql-test-run.pl
          mysql-test/t/plugin.test
          mysql-test/t/plugin_load-master.opt
          mysys/charset.c
          sql/CMakeLists.txt
          sql/handler.h
          sql/mysql_priv.h
          sql/mysqld.cc
          sql/sql_class.cc
          sql/sql_class.h
          sql/sql_list.h
          sql/sql_profile.h
          storage/Makefile.am
          storage/archive/CMakeLists.txt
          storage/blackhole/CMakeLists.txt
          storage/csv/CMakeLists.txt
          storage/example/CMakeLists.txt
          storage/federated/CMakeLists.txt
          storage/heap/CMakeLists.txt
          storage/innobase/CMakeLists.txt
          storage/innobase/handler/ha_innodb.cc
          storage/innodb_plugin/CMakeLists.txt
          storage/innodb_plugin/handler/ha_innodb.cc
          storage/innodb_plugin/handler/handler0alter.cc
          storage/innodb_plugin/handler/i_s.cc
          storage/innodb_plugin/plug.in
          storage/myisam/CMakeLists.txt
          storage/myisammrg/CMakeLists.txt
          win/Makefile.am
          win/configure.js
    ------------------------------------------------------------
    revno: 0.1.746
    committer: vasil
    timestamp: Mon 2009-08-03 11:27:00 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2988
        committer: Satya B <satya.bn@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Wed 2009-07-01 11:06:05 +0530
        message:
          Fix build failure after applying Innodb snapshot 5.1-ss5282
          
          After applying Innodb snapshot 5.1-ss5282, build was broken
          because of missing header file.
          
          Adding the header file to Makefile.am after informing the
          innodb developers.
        modified:
          storage/innobase/Makefile.am
    ------------------------------------------------------------
    revno: 0.1.745
    committer: vasil
    timestamp: Mon 2009-07-20 07:29:47 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2874.2.1
        committer: Anurag Shekhar <anurag.shekhar@sun.com>
        branch nick: mysql-5.1-bugteam-windows-warning
        timestamp: Wed 2009-05-13 15:41:24 +0530
        message:
          Bug #39802 On Windows, 32-bit time_t should be enforced
          
          This patch fixes compilation warning, "conversion from 'time_t' to 'ulong',
          possible loss of data".
          The fix is to typecast time_t to ulong before assigning it to ulong.
          Backported this from 6.0-bugteam tree.
        modified:
          storage/archive/ha_archive.cc
          storage/federated/ha_federated.cc
          storage/innobase/handler/ha_innodb.cc
          storage/myisam/ha_myisam.cc
    ------------------------------------------------------------
    revno: 0.1.744
    committer: vasil
    timestamp: Thu 2009-07-09 15:16:44 +0000
    message:
      branches/5.1:
      
      Fix Bug#21704 Renaming column does not update FK definition
      
      by checking whether a column that participates in a FK definition is being
      renamed and denying the ALTER in this case.
      
      The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
      http://lists.mysql.com/commits/77714
      and was later adjusted to conform to InnoDB coding style by me (Vasil),
      I also added some more comments and moved the bug specific mysql-test to
      a separate file to make it more manageable and flexible.
    ------------------------------------------------------------
    revno: 0.1.743
    committer: vasil
    timestamp: Thu 2009-07-02 06:46:45 +0000
    message:
      branches/5.1:
      
      Adjust the failing innodb-autoinc test to conform to the latest behavior
      of the MySQL code. The idea and the comment in innodb-autoinc.test come
      from Sunny.
    ------------------------------------------------------------
    revno: 0.1.742
    committer: vasil
    timestamp: Tue 2009-06-30 09:04:29 +0000
    message:
      branches/5.1:
      
      Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
      
      by changing the URL from
      http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
      http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
    ------------------------------------------------------------
    revno: 0.1.741
    committer: marko
    timestamp: Thu 2009-06-25 12:11:57 +0000
    message:
      branches/5.1: Merge r5418 from branches/zip:
      
        ------------------------------------------------------------------------
        r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
        Changed paths:
           M /branches/zip/ChangeLog
           M /branches/zip/handler/ha_innodb.cc
           M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
           M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
           M /branches/zip/mysql-test/innodb_bug42101.result
           M /branches/zip/mysql-test/innodb_bug42101.test
        
        branches/zip: Fix a race condition caused by
        SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
        When innodb_commit_concurrency is initially set nonzero,
        DEFAULT would change it back to 0, triggering Bug #42101.
        rb://139 approved by Heikki Tuuri.
        ------------------------------------------------------------------------
    ------------------------------------------------------------
    revno: 0.1.740
    committer: marko
    timestamp: Wed 2009-06-24 18:26:34 +0000
    message:
      branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
      when compiling with -DUNIV_MUST_NOT_INLINE.
    ------------------------------------------------------------
    revno: 0.1.739
    committer: marko
    timestamp: Wed 2009-06-17 08:11:49 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.738
    committer: marko
    timestamp: Wed 2009-06-17 07:01:37 +0000
    message:
      branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
      with -DUNIV_MUST_NOT_INLINE.
    ------------------------------------------------------------
    revno: 0.1.737
    committer: vasil
    timestamp: Fri 2009-06-05 06:29:16 +0000
    message:
      branches/5.1:
      
      Remove the word "Error" from the printout because the mysqltest suite
      interprets it as an error and thus the innodb-autoinc test fails.
      
      Approved by: Sunny (via IM)
    ------------------------------------------------------------
    revno: 0.1.736
    committer: sunny
    timestamp: Thu 2009-06-04 06:16:24 +0000
    message:
      branches/5.1: The version of the result file checked in was broken in r5243.
    ------------------------------------------------------------
    revno: 0.1.735
    committer: sunny
    timestamp: Wed 2009-06-03 23:17:14 +0000
    message:
      branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
      the bug fix we would assert on missing autoinc columns. With this fix we allow
      MySQL to open the table but set the next autoinc value for the column to the
      MAX value. This effectively disables the next value generation. INSERTs will
      fail with a generic AUTOINC failure. However, the user should be able to
      read/dump the table, set the column values explicitly, use ALTER TABLE to
      set the next autoinc value and/or sync the two data dictionaries to resume
      normal operations.
      
      Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
      index (PRIMARY)
      
      rb://118
    ------------------------------------------------------------
    revno: 0.1.734
    committer: marko
    timestamp: Wed 2009-06-03 11:12:44 +0000
    message:
      branches/5.1: Merge the test case from r5232 from branches/5.0:
        ------------------------------------------------------------------------
        r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
      
        branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
        (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
      
        Also, add a test case for Bug #40565.
      
        rb://128 approved by Heikki Tuuri
        ------------------------------------------------------------------------
    ------------------------------------------------------------
    revno: 0.1.733
    committer: vasil
    timestamp: Sat 2009-05-30 13:46:05 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL (this fixes the failing innodb_mysql test):
      
        ------------------------------------------------------------
        revno: 1810.3894.10
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-5.0-bugteam
        timestamp: Tue 2009-05-19 11:32:21 +0500
        message:
          Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value
          Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
          Suggested fix is to add '\'' symbol check for quotation condition
          (dict_strip_comments() function).
        modified:
          innobase/dict/dict0dict.c
          mysql-test/r/innodb_mysql.result
          mysql-test/t/innodb_mysql.test
    ------------------------------------------------------------
    revno: 0.1.732
    committer: vasil
    timestamp: Wed 2009-05-27 14:56:03 +0000
    message:
      branches/5.1:
      
      Whitespace fixup.
    ------------------------------------------------------------
    revno: 0.1.731
    committer: vasil
    timestamp: Tue 2009-05-26 13:26:37 +0000
    message:
      branches/5.1:
      
      Fix Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
      
      Do not write redo log for the pages in the doublewrite buffer. Also, do not
      make a dummy change to the page because this is not needed.
    ------------------------------------------------------------
    revno: 0.1.730
    committer: vasil
    timestamp: Tue 2009-05-26 13:05:43 +0000
    message:
      branches/5.1:
      
      Preparation for the fix of
      Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
      
      Do not include unnecessary headers mtr0log.h and fut0lst.h in trx0sys.h
      and include fsp0fsp.h just before it is needed. This is needed in order
      to be able to use TRX_SYS_SPACE in mtr0log.ic.
    ------------------------------------------------------------
    revno: 0.1.729
    committer: vasil
    timestamp: Tue 2009-05-26 12:57:12 +0000
    message:
      branches/5.1:
      
      Preparation for the fix of
      Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
      
      Non-functional change: move FSP_* macros from fsp0fsp.h to a new file
      fsp0types.h. This is needed in order to be able to use FSP_EXTENT_SIZE
      in mtr0log.ic.
    ------------------------------------------------------------
    revno: 0.1.728
    committer: marko
    timestamp: Thu 2009-05-14 11:04:55 +0000
    message:
      branches/5.1: Prevent a race condition in innobase_commit() by ensuring
      that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
      
      srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
      
      innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
      is not changed from or to 0 at run time.  This is needed, because
      innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
      Without this limitation, the checks for innodb_commit_concurrency>0
      in innobase_commit() should be removed and that function would have to
      acquire and release commit_cond_m at least twice per invocation.
      Normally, innodb_commit_concurrency=0, and introducing the mutex operations
      would mean significant overhead.
      
      innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
      
      rb://123 approved by Heikki Tuuri
    ------------------------------------------------------------
    revno: 0.1.727
    committer: marko
    timestamp: Wed 2009-05-13 11:44:54 +0000
    message:
      branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
      innodb_table_monitor output.  It was accidentally omitted due to an
      off-by-one loop condition.  (Bug #44320)
      
      rb://116 approved by Heikki Tuuri
    ------------------------------------------------------------
    revno: 0.1.726
    committer: vasil
    timestamp: Fri 2009-04-17 20:32:08 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2728.10.2
        committer: Ignacio Galarza <iggy@mysql.com>
        branch nick: mysql-5.1-bugteam-bug29125
        timestamp: Fri 2009-02-13 11:41:47 -0500
        message:
          Bug#29125 Windows Server X64: so many compiler warnings
          - Remove bothersome warning messages.  This change focuses on the warnings
          that are covered by the ignore file: support-files/compiler_warnings.supp.
          - Strings are guaranteed to be max uint in length
        modified:
          client/mysql_upgrade.c
          client/mysqladmin.cc
          client/mysqlbinlog.cc
          client/mysqlcheck.c
          client/mysqldump.c
          client/mysqlslap.c
          client/mysqltest.cc
          client/sql_string.cc
          extra/comp_err.c
          extra/yassl/src/buffer.cpp
          extra/yassl/taocrypt/include/block.hpp
          extra/yassl/taocrypt/src/algebra.cpp
          extra/yassl/taocrypt/src/asn.cpp
          include/config-win.h
          libmysql/libmysql.c
          mysys/array.c
          mysys/base64.c
          mysys/charset.c
          mysys/checksum.c
          mysys/default.c
          mysys/default_modify.c
          mysys/hash.c
          mysys/mf_keycache.c
          mysys/mf_tempdir.c
          mysys/my_append.c
          mysys/my_compress.c
          mysys/my_conio.c
          mysys/my_copy.c
          mysys/my_getwd.c
          mysys/my_pread.c
          mysys/my_quick.c
          mysys/my_read.c
          mysys/safemalloc.c
          mysys/string.c
          server-tools/instance-manager/buffer.cc
          server-tools/instance-manager/instance.cc
          server-tools/instance-manager/options.cc
          server-tools/instance-manager/parse.h
          sql-common/client.c
          sql-common/my_user.c
          sql/event_data_objects.cc
          sql/event_parse_data.cc
          sql/events.cc
          sql/gen_lex_hash.cc
          sql/item.h
          sql/item_func.cc
          sql/item_strfunc.cc
          sql/item_timefunc.cc
          sql/lock.cc
          sql/log_event.cc
          sql/log_event.h
          sql/log_event_old.cc
          sql/net_serv.cc
          sql/sp_head.h
          sql/spatial.h
          sql/sql_class.h
          sql/sql_connect.cc
          sql/sql_crypt.cc
          sql/sql_error.cc
          sql/sql_insert.cc
          sql/sql_lex.cc
          sql/sql_lex.h
          sql/sql_load.cc
          sql/sql_prepare.cc
          sql/sql_profile.cc
          sql/sql_repl.cc
          sql/sql_servers.cc
          sql/sql_string.cc
          sql/sql_table.cc
          sql/sql_trigger.cc
          sql/sql_udf.cc
          sql/sql_view.cc
          sql/udf_example.c
          sql/uniques.cc
          storage/archive/azio.c
          storage/archive/azlib.h
          storage/csv/ha_tina.cc
          storage/csv/ha_tina.h
          storage/csv/transparent_file.h
          storage/federated/ha_federated.cc
          storage/federated/ha_federated.h
          storage/heap/hp_write.c
          storage/innobase/handler/ha_innodb.cc
          storage/innobase/include/pars0pars.h
          storage/myisam/ha_myisam.cc
          storage/myisam/mi_check.c
          storage/myisam/mi_packrec.c
          storage/myisam/mi_search.c
          storage/myisam/rt_index.c
          storage/myisammrg/ha_myisammrg.cc
          strings/ctype.c
          strings/my_vsnprintf.c
          tests/bug25714.c
          tests/mysql_client_test.c
    ------------------------------------------------------------
    revno: 0.1.725
    committer: vasil
    timestamp: Wed 2009-04-15 07:55:18 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL (looks like this is against 5.0 but they later
      merged it to 5.1):
      
        ------------------------------------------------------------
        revno: 1810.3846.1
        committer: Alexey Botchkov <holyfoot@mysql.com>
        branch nick: 31435
        timestamp: Tue 2008-11-11 14:42:32 +0400
        message:
          Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
              I think we don't need to issue an error statement in the convert_search_mode_to_innobase().
              Returning the PAGE_CUR_UNSUPP value is enough as allows to handle this
              case depending on the requirements.
          
          per-file comments:
            sql/ha_innodb.cc
          Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
               no error issued in convert_search_mode_to_innobase.
               ha_innobase::records_in_range() returns HA_POS_ERROR if search mode isn't supported.
        modified:
          sql/ha_innodb.cc
    ------------------------------------------------------------
    revno: 0.1.724
    committer: vasil
    timestamp: Tue 2009-04-14 10:30:13 +0000
    message:
      branches/5.1:
      
      When using the random function, first take the modulus by the number of pages
      and then typecast to ulint.
      
      This is a followup to r4699 - the fix of Bug#43660.
    ------------------------------------------------------------
    revno: 0.1.723
    committer: vasil
    timestamp: Thu 2009-04-09 10:01:52 +0000
    message:
      branches/5.1:
      
      Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for indexes
      of InnoDB table
      
      by replacing the PRNG that is used to pick random pages with a better
      one.
      
      This is based on r4670 but also adds a new configuration option and
      enables the fix only if this option is changed. Please skip the present
      revision when merging.
      
      Approved by: Heikki (via email)
    ------------------------------------------------------------
    revno: 0.1.722
    committer: vasil
    timestamp: Mon 2009-04-06 11:34:51 +0000
    message:
      branches/5.1:
      
      Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
      
      Add an explanatory comment, as suggested by Patrick Crews in the bug report.
    ------------------------------------------------------------
    revno: 0.1.721
    committer: vasil
    timestamp: Mon 2009-03-30 12:25:10 +0000
    message:
      branches/5.1:
      
      Revert a change to Makefile.am that I committed accidentally in c4574.
    ------------------------------------------------------------
    revno: 0.1.720
    committer: vasil
    timestamp: Mon 2009-03-30 11:55:31 +0000
    message:
      branches/5.1:
      
      Fix Bug#43309 Test main.innodb can't be run twice
      
      Make the innodb mysql-test more flexible by inspecting how much a
      variable of interest has changed since the start of the test. Do not
      assume the variables have zero values at the start of the test.
    ------------------------------------------------------------
    revno: 0.1.719
    committer: vasil
    timestamp: Mon 2009-03-30 10:27:08 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.718
    committer: vasil
    timestamp: Mon 2009-03-30 10:17:13 +0000
    message:
      branches/5.1:
      
      Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
    ------------------------------------------------------------
    revno: 0.1.717
    committer: marko
    timestamp: Thu 2009-03-19 13:01:48 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.716
    committer: marko
    timestamp: Thu 2009-03-12 08:06:44 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.715
    committer: marko
    timestamp: Thu 2009-03-12 07:38:05 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.714
    committer: vasil
    timestamp: Thu 2009-03-05 19:42:01 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2747
        committer: Timothy Smith <timothy.smith@sun.com>
        branch nick: 51
        timestamp: Fri 2009-01-16 17:49:07 +0100
        message:
          Add another cast to ignore int/ulong difference in error types, silence warning on Win64
        modified:
          storage/innobase/handler/ha_innodb.cc
    ------------------------------------------------------------
    revno: 0.1.713
    committer: vasil
    timestamp: Thu 2009-03-05 19:21:10 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2728.19.1
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2009-02-03 11:36:46 +0000
        message:
          BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
                
          There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
          (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
          of type 'ulint' while mysql uses an 'int'.
                
          To fix the problem the function manipulates an error variable of
          type 'ulint' and only casts it into 'int' when needs to return the value.
        modified:
          storage/innobase/handler/ha_innodb.cc
    ------------------------------------------------------------
    revno: 0.1.712
    committer: sunny
    timestamp: Mon 2009-03-02 00:28:52 +0000
    message:
      branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
      It was not a SIGSEGV but an assertion failure. The assertion was checking
      the invariant that *first_value passed in by MySQL doesn't contain a value
      that is greater than the max value for that type. The assertion has been
      changed to a check and if the value is greater than the max we report a
      generic AUTOINC failure.
      
      rb://93
      Approved by Heikki
    ------------------------------------------------------------
    revno: 0.1.711
    committer: sunny
    timestamp: Wed 2009-02-25 03:32:01 +0000
    message:
      branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
      changes to the autoinc handling.
      
      1. To fix the immediate problem from the bug report, we must ensure that the
         value written to the table is always less than the max value stored in
         dict_table_t.
      
      2. The second related change is that according to MySQL documentation when
         the offset is greater than the increment, we should ignore the offset.
    ------------------------------------------------------------
    revno: 0.1.710
    committer: calvin
    timestamp: Wed 2009-02-11 23:34:27 +0000
    message:
      branches/5.1: minor non-functional changes.
    ------------------------------------------------------------
    revno: 0.1.709
    committer: vasil
    timestamp: Sun 2009-02-08 19:54:25 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
      [looks like the changes to innodb-autoinc.test were made as part of
      the following huge merge, but we are merging only changes to that file]
      
        ------------------------------------------------------------
        revno: 2546.47.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: 5.1-rpl
        timestamp: Fri 2009-01-23 13:22:05 +0100
        message:
          merge: 5.1 -> 5.1-rpl
          conflicts:
            Text conflict in client/mysqltest.cc
            Text conflict in mysql-test/include/wait_until_connected_again.inc
            Text conflict in mysql-test/lib/mtr_report.pm
            Text conflict in mysql-test/mysql-test-run.pl
            Text conflict in mysql-test/r/events_bugs.result
            Text conflict in mysql-test/r/log_state.result
            Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
            Text conflict in mysql-test/r/mysqlcheck.result
            Text conflict in mysql-test/r/query_cache.result
            Text conflict in mysql-test/r/status.result
            Text conflict in mysql-test/suite/binlog/r/binlog_index.result
            Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
            Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
            Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
            Text conflict in mysql-test/t/disabled.def
            Text conflict in mysql-test/t/events_bugs.test
            Text conflict in mysql-test/t/log_state.test
            Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
            Text conflict in mysql-test/t/mysqlcheck.test
            Text conflict in mysql-test/t/query_cache.test
            Text conflict in mysql-test/t/rpl_init_slave_func.test
            Text conflict in mysql-test/t/status.test
        removed:
          mysql-test/suite/parts/r/partition_bit_ndb.result
          mysql-test/suite/parts/t/partition_bit_ndb.test
          mysql-test/suite/parts/t/partition_sessions.test
          mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
          mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
          mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
          mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
          mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
          mysql-test/t/log_bin_trust_function_creators_func-master.opt
          mysql-test/t/rpl_init_slave_func-slave.opt
        added:
          mysql-test/include/check_events_off.inc
          mysql-test/include/cleanup_fake_relay_log.inc
          mysql-test/include/have_simple_parser.inc
          mysql-test/include/no_running_event_scheduler.inc
          mysql-test/include/no_running_events.inc
          mysql-test/include/running_event_scheduler.inc
          mysql-test/include/setup_fake_relay_log.inc
          mysql-test/include/wait_condition_sp.inc
          mysql-test/r/fulltext_plugin.result
          mysql-test/r/have_simple_parser.require
          mysql-test/r/innodb_bug38231.result
          mysql-test/r/innodb_bug39438.result
          mysql-test/r/innodb_mysql_rbk.result
          mysql-test/r/partition_innodb_semi_consistent.result
          mysql-test/r/query_cache_28249.result
          mysql-test/r/status2.result
          mysql-test/std_data/bug40482-bin.000001
          mysql-test/suite/binlog/r/binlog_innodb_row.result
          mysql-test/suite/binlog/t/binlog_innodb_row.test
          mysql-test/suite/rpl/r/rpl_binlog_corruption.result
          mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
          mysql-test/suite/rpl/t/rpl_binlog_corruption.test
          mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
          mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
          mysql-test/t/fulltext_plugin-master.opt
          mysql-test/t/fulltext_plugin.test
          mysql-test/t/innodb_bug38231.test
          mysql-test/t/innodb_bug39438-master.opt
          mysql-test/t/innodb_bug39438.test
          mysql-test/t/innodb_mysql_rbk-master.opt
          mysql-test/t/innodb_mysql_rbk.test
          mysql-test/t/partition_innodb_semi_consistent-master.opt
          mysql-test/t/partition_innodb_semi_consistent.test
          mysql-test/t/query_cache_28249.test
          mysql-test/t/status2.test
        renamed:
          mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
          mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
        modified:
          .bzr-mysql/default.conf
          CMakeLists.txt
          client/mysql.cc
          client/mysql_upgrade.c
          client/mysqlcheck.c
          client/mysqltest.cc
          configure.in
          extra/resolve_stack_dump.c
          extra/yassl/include/openssl/ssl.h
          include/config-win.h
          include/m_ctype.h
          include/my_global.h
          mysql-test/extra/binlog_tests/database.test
          mysql-test/extra/rpl_tests/rpl_auto_increment.test
          mysql-test/include/commit.inc
          mysql-test/include/have_32bit.inc
          mysql-test/include/have_64bit.inc
          mysql-test/include/index_merge1.inc
          mysql-test/include/linux_sys_vars.inc
          mysql-test/include/windows_sys_vars.inc
          mysql-test/lib/mtr_report.pm
          mysql-test/mysql-test-run.pl
          mysql-test/r/alter_table.result
          mysql-test/r/commit_1innodb.result
          mysql-test/r/create.result
          mysql-test/r/csv.result
          mysql-test/r/ctype_ucs.result
          mysql-test/r/date_formats.result
          mysql-test/r/events_bugs.result
          mysql-test/r/events_scheduling.result
          mysql-test/r/fulltext.result
          mysql-test/r/func_if.result
          mysql-test/r/func_in.result
          mysql-test/r/func_str.result
          mysql-test/r/func_time.result
          mysql-test/r/grant.result
          mysql-test/r/index_merge_myisam.result
          mysql-test/r/information_schema.result
          mysql-test/r/innodb-autoinc.result
          mysql-test/r/innodb.result
          mysql-test/r/innodb_mysql.result
          mysql-test/r/log_bin_trust_function_creators_func.result
          mysql-test/r/log_state.result
          mysql-test/r/myisampack.result
          mysql-test/r/mysql.result
          mysql-test/r/mysqlcheck.result
          mysql-test/r/partition_datatype.result
          mysql-test/r/partition_mgm.result
          mysql-test/r/partition_pruning.result
          mysql-test/r/query_cache.result
          mysql-test/r/read_buffer_size_basic.result
          mysql-test/r/read_rnd_buffer_size_basic.result
          mysql-test/r/rpl_init_slave_func.result
          mysql-test/r/select.result
          mysql-test/r/status.result
          mysql-test/r/strict.result
          mysql-test/r/temp_table.result
          mysql-test/r/type_bit.result
          mysql-test/r/type_date.result
          mysql-test/r/type_float.result
          mysql-test/r/warnings_engine_disabled.result
          mysql-test/r/xml.result
          mysql-test/suite/binlog/r/binlog_database.result
          mysql-test/suite/binlog/r/binlog_index.result
          mysql-test/suite/binlog/r/binlog_innodb.result
          mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
          mysql-test/suite/binlog/t/binlog_innodb.test
          mysql-test/suite/funcs_1/r/is_columns_is.result
          mysql-test/suite/funcs_1/r/is_engines.result
          mysql-test/suite/funcs_1/r/storedproc.result
          mysql-test/suite/funcs_1/storedproc/param_check.inc
          mysql-test/suite/funcs_2/t/disabled.def
          mysql-test/suite/ndb/t/disabled.def
          mysql-test/suite/parts/r/partition_bit_innodb.result
          mysql-test/suite/parts/r/partition_bit_myisam.result
          mysql-test/suite/parts/r/partition_special_innodb.result
          mysql-test/suite/parts/t/disabled.def
          mysql-test/suite/parts/t/partition_special_innodb.test
          mysql-test/suite/parts/t/partition_value_innodb.test
          mysql-test/suite/parts/t/partition_value_myisam.test
          mysql-test/suite/parts/t/partition_value_ndb.test
          mysql-test/suite/rpl/r/rpl_auto_increment.result
          mysql-test/suite/rpl/r/rpl_packet.result
          mysql-test/suite/rpl/r/rpl_row_create_table.result
          mysql-test/suite/rpl/r/rpl_slave_skip.result
          mysql-test/suite/rpl/r/rpl_trigger.result
          mysql-test/suite/rpl/t/disabled.def
          mysql-test/suite/rpl/t/rpl_packet.test
          mysql-test/suite/rpl/t/rpl_row_create_table.test
          mysql-test/suite/rpl/t/rpl_slave_skip.test
          mysql-test/suite/rpl/t/rpl_trigger.test
          mysql-test/suite/rpl_ndb/t/disabled.def
          mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
          mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
          mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
          mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
          mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
          mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
          mysql-test/t/alter_table.test
          mysql-test/t/create.test
          mysql-test/t/csv.test
          mysql-test/t/ctype_ucs.test
          mysql-test/t/date_formats.test
          mysql-test/t/disabled.def
          mysql-test/t/events_bugs.test
          mysql-test/t/events_scheduling.test
          mysql-test/t/fulltext.test
          mysql-test/t/func_if.test
          mysql-test/t/func_in.test
          mysql-test/t/func_str.test
          mysql-test/t/func_time.test
          mysql-test/t/grant.test
          mysql-test/t/information_schema.test
          mysql-test/t/innodb-autoinc.test
          mysql-test/t/innodb.test
          mysql-test/t/innodb_mysql.test
          mysql-test/t/log_bin_trust_function_creators_func.test
          mysql-test/t/log_state.test
          mysql-test/t/myisam_data_pointer_size_func.test
          mysql-test/t/myisampack.test
          mysql-test/t/mysql.test
          mysql-test/t/mysqlcheck.test
          mysql-test/t/partition_innodb_stmt.test
          mysql-test/t/partition_mgm.test
          mysql-test/t/partition_pruning.test
          mysql-test/t/query_cache.test
          mysql-test/t/rpl_init_slave_func.test
          mysql-test/t/select.test
          mysql-test/t/status.test
          mysql-test/t/strict.test
          mysql-test/t/temp_table.test
          mysql-test/t/type_bit.test
          mysql-test/t/type_date.test
          mysql-test/t/type_float.test
          mysql-test/t/warnings_engine_disabled.test
          mysql-test/t/xml.test
          mysys/my_getopt.c
          mysys/my_init.c
          scripts/mysql_install_db.sh
          sql-common/my_time.c
          sql/field.cc
          sql/field.h
          sql/filesort.cc
          sql/ha_partition.cc
          sql/ha_partition.h
          sql/item.cc
          sql/item_cmpfunc.cc
          sql/item_func.h
          sql/item_strfunc.cc
          sql/item_sum.cc
          sql/item_timefunc.cc
          sql/item_timefunc.h
          sql/log.cc
          sql/log.h
          sql/log_event.cc
          sql/log_event.h
          sql/mysql_priv.h
          sql/mysqld.cc
          sql/opt_range.cc
          sql/partition_info.cc
          sql/repl_failsafe.cc
          sql/rpl_constants.h
          sql/set_var.cc
          sql/slave.cc
          sql/spatial.h
          sql/sql_acl.cc
          sql/sql_base.cc
          sql/sql_binlog.cc
          sql/sql_class.h
          sql/sql_cursor.cc
          sql/sql_delete.cc
          sql/sql_lex.cc
          sql/sql_lex.h
          sql/sql_locale.cc
          sql/sql_parse.cc
          sql/sql_partition.cc
          sql/sql_plugin.cc
          sql/sql_plugin.h
          sql/sql_profile.cc
          sql/sql_repl.cc
          sql/sql_select.cc
          sql/sql_select.h
          sql/sql_show.cc
          sql/sql_table.cc
          sql/sql_trigger.cc
          sql/sql_trigger.h
          sql/table.cc
          sql/table.h
          sql/unireg.cc
          storage/csv/ha_tina.cc
          storage/federated/ha_federated.cc
          storage/heap/ha_heap.cc
          storage/innobase/Makefile.am
          storage/innobase/btr/btr0sea.c
          storage/innobase/buf/buf0lru.c
          storage/innobase/dict/dict0dict.c
          storage/innobase/dict/dict0mem.c
          storage/innobase/handler/ha_innodb.cc
          storage/innobase/handler/ha_innodb.h
          storage/innobase/include/btr0sea.h
          storage/innobase/include/dict0dict.h
          storage/innobase/include/dict0mem.h
          storage/innobase/include/ha_prototypes.h
          storage/innobase/include/lock0lock.h
          storage/innobase/include/row0mysql.h
          storage/innobase/include/sync0sync.ic
          storage/innobase/include/ut0ut.h
          storage/innobase/lock/lock0lock.c
          storage/innobase/os/os0file.c
          storage/innobase/plug.in
          storage/innobase/row/row0mysql.c
          storage/innobase/row/row0sel.c
          storage/innobase/srv/srv0srv.c
          storage/innobase/srv/srv0start.c
          storage/innobase/ut/ut0ut.c
          storage/myisam/ft_boolean_search.c
          strings/ctype.c
          strings/xml.c
          tests/mysql_client_test.c
          win/configure.js
          mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
    ------------------------------------------------------------
    revno: 0.1.708
    committer: vasil
    timestamp: Sun 2009-02-08 19:36:45 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2709.20.31
        committer: Timothy Smith <timothy.smith@sun.com>
        branch nick: 51
        timestamp: Fri 2008-12-19 01:28:51 +0100
        message:
          Disable part of innodb-autoinc.test, because the MySQL server asserts when
          compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
          increment > 1".  This change should be reverted when that bug is fixed (and a
          a few other minor changes to the test as described in comments).
        modified:
          mysql-test/r/innodb-autoinc.result
          mysql-test/t/innodb-autoinc.test
    ------------------------------------------------------------
    revno: 0.1.707
    committer: sunny
    timestamp: Tue 2009-02-03 20:06:52 +0000
    message:
      branches/5.1: Add the ULL suffix otherwise there is an overflow.
    ------------------------------------------------------------
    revno: 0.1.706
    committer: sunny
    timestamp: Thu 2009-01-29 14:01:36 +0000
    message:
      branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
      is only defined for integer columns. This caused an assertion failure when
      we checked for the maximum value of a column type. We now calculate the
      max value for floating-point autoinc columns too.
      
      Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
      rb://84 and Mantis issue://162
    ------------------------------------------------------------
    revno: 0.1.705
    committer: vasil
    timestamp: Mon 2009-01-26 15:26:25 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL:
      
        ------------------------------------------------------------
        revno: 2646.161.4
        committer: Tatiana A. Nurnberg <azundris@mysql.com>
        branch nick: 51-31177v2
        timestamp: Mon 2009-01-12 06:32:49 +0100
        message:
          Bug#31177: Server variables can't be set to their current values
          
          Bounds-checks and blocksize corrections were applied to user-input,
          but constants in the server were trusted implicitly. If these values
          did not actually meet the requirements, the user could not set change
          a variable, then set it back to the (wonky) factory default or maximum
          by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
          
          Now checks also apply to the server's presets. Wonky values and maxima
          get corrected at startup. Consequently all non-offsetted values the user
          sees are valid, and users can set the variable to that exact value if
          they so desire.
    ------------------------------------------------------------
    revno: 0.1.704
    committer: marko
    timestamp: Fri 2009-01-23 13:43:51 +0000
    message:
      branches/5.1: Merge r4031 from branches/5.0:
      
      btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
      returns NULL.  The page may have been evicted from the buffer pool
      between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
      because the buffer pool mutex will be released between these two calls.
      (Bug #42279)
      
      rb://82 approved by Heikki Tuuri
    ------------------------------------------------------------
    revno: 0.1.703
    committer: marko
    timestamp: Tue 2009-01-20 14:22:36 +0000
    message:
      branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
      accessing table->locks and release kernel_mutex before returning from
      the function.  This fixes a portential race condition in the
      "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
      and OPTIMIZE TABLE. (Bug #42152)
      
      rb://80 approved by Heikki Tuuri
    ------------------------------------------------------------
    revno: 0.1.702
    committer: marko
    timestamp: Tue 2009-01-20 14:19:00 +0000
    message:
      branches/5.1: Merge r4003 from branches/5.0:
      
      rec_set_nth_field(): When the field already is SQL null,
      do nothing when it is being changed to SQL null. (Bug #41571)
      
      Normally, MySQL does not pass "do-nothing" updates to the storage engine.
      When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
      is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
      without this fix.
      
      rb://81 approved by Heikki Tuuri
    ------------------------------------------------------------
    revno: 0.1.701
    committer: marko
    timestamp: Wed 2009-01-14 13:51:30 +0000
    message:
      branches/5.1: dict_load_table(): If dict_load_indexes() fails,
      invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
      so that the data dictionary will not point to freed data.
      (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
    ------------------------------------------------------------
    revno: 0.1.700
    committer: sunny
    timestamp: Tue 2009-01-13 12:15:24 +0000
    message:
      branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
      InnoDB previously treated savepoints as a stack e.g.,
        SAVEPOINT a;
        SAVEPOINT b;
        SAVEPOINT c;
        SAVEPOINT b; <- This would delete b and c.
      
      This fix changes the behavior to:
        SAVEPOINT a;
        SAVEPOINT b;
        SAVEPOINT c;
        SAVEPOINT b; <- Does not delete savepoint c
    ------------------------------------------------------------
    revno: 0.1.699
    committer: marko
    timestamp: Mon 2008-12-22 14:05:19 +0000
    message:
      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 COMMITTED mode.
      (Bug #41671, Issue #146)
      
      rb://67 approved by Heikki Tuuri
    ------------------------------------------------------------
    revno: 0.1.698
    committer: marko
    timestamp: Mon 2008-12-22 13:28:03 +0000
    message:
      branches/5.1: ibuf_delete_rec(): When the record cannot be found and
      the tablespace has been dropped, commit the mini-transaction, so that
      InnoDB will not hold the insert buffer tree latch in exclusive mode,
      causing a potential deadlock.  This bug was introduced in the fix of
      Bug #27276 in r2924.
    ------------------------------------------------------------
    revno: 0.1.697
    committer: marko
    timestamp: Thu 2008-12-18 13:33:36 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.696
    committer: inaam
    timestamp: Thu 2008-12-18 12:26:54 +0000
    message:
      branches/5.1
      
      It is a bug in unused code. If we don't calculate the hash value when
      calculating the mutex number then two pages which map to same hash
      value can get two different mutex numbers.
      
      Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.695
    committer: calvin
    timestamp: Wed 2008-12-10 21:30:05 +0000
    message:
      branches/5.1: change .result file eol-style to LF
      
      mysql-test-run only takes LF style even on Windows.
    ------------------------------------------------------------
    revno: 0.1.694
    committer: vasil
    timestamp: Tue 2008-12-09 09:21:08 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
      
        main.innodb_bug34300           [ fail ]
        
        mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
        
        Aborting: main.innodb_bug34300 failed in default mode.
      
      The changeset is this:
      
        ------------------------------------------------------------
        revno: 2709.1.10
        committer: Staale Smedseng <staale.smedseng@sun.com>
        branch nick: b22891-51-bugteam
        timestamp: Thu 2008-11-20 08:51:48 +0100
        message:
          A fix for Bug#22891 "session level max_allowed_packet can be
          set but is ignored".
        
          This patch makes @@session.max_allowed_packed and
          @@session.net_buffer_length read-only as suggested in the bug
          report. The user will have to use SET GLOBAL (and reconnect)
          to alter the session values of these variables.
        
          The error string ER_VARIABLE_IS_READONLY is introduced.
        
          Tests are modified accordingly.
        modified:
          mysql-test/r/func_compress.result
          mysql-test/r/max_allowed_packet_basic.result
          mysql-test/r/max_allowed_packet_func.result
          mysql-test/r/net_buffer_length_basic.result
          mysql-test/r/packet.result
          mysql-test/r/union.result
          mysql-test/r/variables.result
          mysql-test/t/func_compress.test
          mysql-test/t/innodb_bug34300.test
          mysql-test/t/max_allowed_packet_basic.test
          mysql-test/t/max_allowed_packet_func.test
          mysql-test/t/net_buffer_length_basic.test
          mysql-test/t/packet.test
          mysql-test/t/union.test
          mysql-test/t/variables.test
          sql/set_var.cc
          sql/set_var.h
          sql/share/errmsg.txt
        ------------------------------------------------------------
    ------------------------------------------------------------
    revno: 0.1.693
    committer: vasil
    timestamp: Fri 2008-12-05 08:46:18 +0000
    message:
      branches/5.1:
      
      Add the traditional 2 spaces after the timestamp so the message does
      not look like:
      
      070223 13:26:01InnoDB: Warning: canno....
    ------------------------------------------------------------
    revno: 0.1.692
    committer: calvin
    timestamp: Thu 2008-12-04 17:00:20 +0000
    message:
      branches/5.1: revert the changes in r2933
      
      The changes in r2933 causes test failure on Linux.
      More investigation is needed for Windows.
      
      Change the followings in innodb-autoinc.result:
        auto-increment-increment
        auto-increment-offset
      
      back to:
        auto_increment_increment
        auto_increment_offset
    ------------------------------------------------------------
    revno: 0.1.691
    committer: inaam
    timestamp: Mon 2008-11-24 20:06:50 +0000
    message:
      branches/5.1:
      
      Fix Bug#40760 "set global innodb_thread_concurrency = 0;" is not safe
      
      The config param innodb_thread_concurrency is dynamically set and is
      read when a thread enters/exits innodb. If the value is changed between
      the enter and exit time the behaviour becomes erratic.
      The fix is not to use srv_thread_concurrency when exiting, instead use
      the flag trx->declared_to_be_inside_innodb.
      
      rb://57
      
      Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.690
    committer: calvin
    timestamp: Fri 2008-11-14 18:31:48 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.689
    committer: marko
    timestamp: Fri 2008-11-07 12:54:10 +0000
    message:
      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).
    ------------------------------------------------------------
    revno: 0.1.688
    committer: calvin
    timestamp: Thu 2008-10-30 00:57:31 +0000
    message:
      branches/5.1: correct the result file innodb-autoinc.result
      
      Change the followings:
        auto_increment_increment
        auto_increment_offset
      
      to
        auto-increment-increment
        auto-increment-offset
    ------------------------------------------------------------
    revno: 0.1.687
    committer: marko
    timestamp: Wed 2008-10-29 19:26:14 +0000
    message:
      branches/5.1: dtype_get_sql_null_size(): return the correct storage
      size of a SQL NULL column. (Bug #40369)
      
      When MySQL Bug #20877 was fixed in r834, this function was
      accidentally modified to return 0 or 1. Apparently, the only impact of
      this bug is that fixed-length columns cannot be updated in-place from
      or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
      fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
      storage size as they should, no matter if NULL or non-NULL.  The bug
      caused fixed-length NULL columns to occupy 1 byte.
      
      rb://37 approved by Heikki over IM.
    ------------------------------------------------------------
    revno: 0.1.686
    committer: marko
    timestamp: Wed 2008-10-29 08:07:48 +0000
    message:
      branches/5.1: Merge revision 2866 from branches/zip:
      
      ibuf_delete_rec(): When the cursor to the insert buffer record cannot be
      restored, do not complain if the tablespace does not exist. (Bug #27276)
      
      Approved by Sunny Bains (rb://34)
    ------------------------------------------------------------
    revno: 0.1.685
    committer: vasil
    timestamp: Tue 2008-10-28 10:10:25 +0000
    message:
      branches/5.1:
      
      Fix Bug#38189 innodb_stats_on_metadata missing
      
      Make the variable innodb_stats_on_metadata visible to the users and
      also settable at runtime. Previously it was only "visible" as a command
      line startup option to mysqld.
      
      Approved by: Marko (https://svn.innodb.com/rb/r/36)
    ------------------------------------------------------------
    revno: 0.1.684
    committer: calvin
    timestamp: Mon 2008-10-27 09:09:18 +0000
    message:
      branches/5.1: port the fix of Bug#19424 - InnoDB: Possibly a memory
      overrun of the buffer being freed with 64-bit Microsoft Visual C++.
      
      The changed file:
      
      CMakeLists.txt: Removing Win64 compiler optimizations for all
      innodb/mem/* files.
    ------------------------------------------------------------
    revno: 0.1.683
    committer: sunny
    timestamp: Thu 2008-10-23 04:30:32 +0000
    message:
      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.
      
      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
      rb://16
    ------------------------------------------------------------
    revno: 0.1.682
    committer: sunny
    timestamp: Wed 2008-10-22 21:42:24 +0000
    message:
      branches/5.1: Backport r2724 from branches/zip
      
      Check column value against the col max value before updating the table's
      global autoinc counter value. This is part of simplifying the AUTOINC
      sub-system. We extract the type info from MySQL data structures at runtime.
      
      This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
    ------------------------------------------------------------
    revno: 0.1.681
    committer: sunny
    timestamp: Wed 2008-10-22 08:01:18 +0000
    message:
      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
      
      Bug#40224 New AUTOINC changes mask reporting of deadlock/timeout errors
    ------------------------------------------------------------
    revno: 0.1.680
    committer: vasil
    timestamp: Tue 2008-10-21 08:07:44 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL (this fixes the failing innodb and
      innodb-semi-consistent tests):
      
        revno: 2757
        committer: Georgi Kodinov <kgeorge@mysql.com>
        branch nick: B39812-5.1-5.1.29-rc
        timestamp: Fri 2008-10-03 15:24:19 +0300
        message:
          Bug #39812: Make statement replication default for 5.1 (to match 5.0)
          
          Make STMT replication default for 5.1.
          Add a default of MIXED into the config files
          Fix the tests that needed MIXED replication mode.
        modified:
          mysql-test/include/mix1.inc
          mysql-test/r/innodb-semi-consistent.result
          mysql-test/r/innodb.result
          mysql-test/r/innodb_mysql.result
          mysql-test/r/tx_isolation_func.result
          mysql-test/t/innodb-semi-consistent.test
          mysql-test/t/innodb.test
          mysql-test/t/tx_isolation_func.test
          sql/mysqld.cc
          support-files/my-huge.cnf.sh
          support-files/my-innodb-heavy-4G.cnf.sh
          support-files/my-large.cnf.sh
          support-files/my-medium.cnf.sh
          support-files/my-small.cnf.sh
    ------------------------------------------------------------
    revno: 0.1.679
    committer: vasil
    timestamp: Tue 2008-10-21 06:08:30 +0000
    message:
      branches/5.1:
      
      In ha_innobase::info():
      
      Replace sql_print_warning() which prints to mysqld error log with
      push_warning_printf() which sends the error message to the client.
      
      Suggested by: Marko, Sunny, Michael
      Objected by: Inaam
    ------------------------------------------------------------
    revno: 0.1.678
    committer: vasil
    timestamp: Mon 2008-10-20 10:09:01 +0000
    message:
      branches/5.1:
      
      Non-functional change: use a single tab instead of 12 spaces between
      variable type and variable name.
    ------------------------------------------------------------
    revno: 0.1.677
    committer: marko
    timestamp: Mon 2008-10-13 10:21:02 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.676
    committer: marko
    timestamp: Thu 2008-10-09 06:53:09 +0000
    message:
      branches/5.1: ha_innobase::delete_all_rows(): In response to a user asking
      <http://forums.innodb.com/read.php?4,215,215> why DELETE FROM t is not
      mapped to TRUNCATE TABLE t as it is in MyISAM, note in a comment that
      DELETE is transactional while TRUNCATE is not.
    ------------------------------------------------------------
    revno: 0.1.675
    committer: inaam
    timestamp: Wed 2008-10-08 18:02:15 +0000
    message:
      branches/5.1:
      
      Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in
      buf_LRU_invalidate_tablespace()
      
      Improve implementation of buf_LRU_invalidate_tablespace by attempting
      hash index drop in batches instead of doing it one by one.
      
      Reviewed by: Heikki, Sunny, Marko
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.674
    committer: sunny
    timestamp: Fri 2008-10-03 22:48:04 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.673
    committer: sunny
    timestamp: Fri 2008-10-03 22:08:23 +0000
    message:
      branches/5.1: We need to send the messages to the client because
      handler::get_auto_increment() doesn't allow a way to return the
      specific error for why it failed.
      
      rb://18
    ------------------------------------------------------------
    revno: 0.1.672
    committer: vasil
    timestamp: Fri 2008-10-03 15:52:39 +0000
    message:
      branches/5.1:
      
      Print a warning if an attempt is made to get the free space for a table
      whose .ibd file is missing or the tablespace has been discarded. This is a
      followup to r2719.
      
      Suggested by: Inaam
    ------------------------------------------------------------
    revno: 0.1.671
    committer: vasil
    timestamp: Fri 2008-10-03 14:17:28 +0000
    message:
      branches/5.1:
      
      Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
      
      In ha_innobase::info() - do not try to get the free space for a tablespace
      which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the
      .ibd file is missing for some other reason.
      
      ibd_file_missing and tablespace_discarded are manipulated only in
      row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql()
      and the manipulation is protected/surrounded by
      row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we
      do the same in ha_innobase::info() when checking the values of those members
      to avoid race conditions. I have tested the code-path with UNIV_DEBUG and
      UNIV_SYNC_DEBUG.
      
      Looks like it is not possible to avoid mysqld printing warnings in the
      mysql-test case and thus this test innodb_bug39438 must be added to the
      list of exceptional test cases that are allowed to print warnings. For this,
      the following patch must be applied to the mysql source tree:
      
        --- cut ---
        === modified file 'mysql-test/lib/mtr_report.pl'
        --- mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +0000
        +++ mysql-test/lib/mtr_report.pl 2008-10-01 11:57:41 +0000
        @@ -412,7 +412,10 @@
         
                         # When trying to set lower_case_table_names = 2
                         # on a case sensitive file system. Bug#37402.
        -                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./
        +                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./ or
        +
        +                # this test is expected to print warnings
        +                ($testname eq 'main.innodb_bug39438')
          )
                     {
                       next;                       # Skip these lines
        
        --- cut ---
      
      The mysql-test is currently somewhat disabled (see inside
      innodb_bug39438.test), after the above patch has been applied to the mysql
      source tree, the test can be enabled.
      
      rb://20
      
      Reviewed by: Inaam, Calvin
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.670
    committer: vasil
    timestamp: Wed 2008-10-01 10:13:58 +0000
    message:
      branches/5.1:
      
      Silence a compilation warning in UNIV_DEBUG.
      
      Approved by: Marko (via IM)
    ------------------------------------------------------------
    revno: 0.1.669
    committer: vasil
    timestamp: Wed 2008-10-01 06:13:13 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.668
    committer: sunny
    timestamp: Tue 2008-09-30 07:41:56 +0000
    message:
      branches/5.1: Since handler::get_auto_increment() doesn't allow us
      to return the cause of failure we have to inform MySQL using the
      sql_print_warning() function to return the cause for autoinc failure.
      Previously we simply printed the error code, this patch prints the
      text string representing the following two error codes:
      
      DB_LOCK_WAIT_TIMEOUT
      DB_DEADLOCK.
      
      Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
      
      Approved by Marko.
    ------------------------------------------------------------
    revno: 0.1.667
    committer: vasil
    timestamp: Thu 2008-09-18 05:47:00 +0000
    message:
      export.sh:
      Instead of doing "svn log" for every revision between $START_REV and $END_REV,
      lookup the revisions which actually contain changes to this branch and do
      "svn log" and "svn diff" only for them.
      
      This makes the script many times faster.
      
      I have checked that both old and new variant create identical snapshots.
    ------------------------------------------------------------
    revno: 0.1.666
    committer: inaam
    timestamp: Tue 2008-09-16 15:11:26 +0000
    message:
      branches/5.1   bug#39483 InnoDB hang on adaptive hash because of out
      of order ::open() call by MySQL
      
      Forward port of r2629
      
      Under some conditions MySQL calls ::open with search_latch leading
      to a deadlock as we try to acquire dict_sys->mutex inside ::open
      breaking the latching order. The fix is to release search_latch.
      
      Reviewed by: Heikki
    ------------------------------------------------------------
    revno: 0.1.665
    committer: vasil
    timestamp: Tue 2008-09-09 11:46:17 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL (fix the failing innodb test):
      
        ------------------------------------------------------------
        revno: 2646.12.1
        committer: Mattias Jonsson <mattiasj@mysql.com>
        branch nick: wl4176_2-51-bugteam
        timestamp: Mon 2008-08-11 20:02:03 +0200
        message:
          Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
          partition is corrupt
          
          The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
          PARTITION took another code path (over mysql_alter_table instead of
          mysql_admin_table) which differs in two ways:
          1) alter table opens the tables in a different way than admin tables do
             resulting in returning with error before it tried the command
          2) alter table does not start to send any diagnostic rows to the client
             which the lower admin functions continue to use -> resulting in
             assertion crash
          
          The fix:
          Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
          the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
          Adding check in mysql_admin_table to setup the partition list for
          which partitions that should be used.
          
          
          Partitioned tables will still not work with
          REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
          to tables, REPAIR TABLE t USE_FRM, and check that the data still
          fulfills the partitioning function and then move the table back to
          being a partition.
          
          NOTE: I have removed the following functions from the handler
          interface:
          analyze_partitions, check_partitions, optimize_partitions,
          repair_partitions
          Since they are not longer needed.
          THIS ALTERS THE STORAGE ENGINE API
      
      I have verified that OPTIMIZE TABLE actually rebuilds the table
      and calls ANALYZE.
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.664
    committer: sunny
    timestamp: Sat 2008-08-23 21:19:05 +0000
    message:
      branches/5.1: Fix for MySQL Bug#38839. Reset the statement level last
      value field in prebuilt. This field tracks the last value in an autoincrement
      interval. We use this value to check whether we need to update a table's
      AUTOINC counter, if the value written to a table is less than this value
      then we avoid updating the table's AUTOINC value in order to reduce
      mutex contention. If it's not reset (e.g., after a DELETE statement) then
      there is the possibility of missing updates to the table's AUTOINC counter
      resulting in a subsequent duplicate row error message under certain
      conditions (see the test case for details).
      
      Bug #38839 - auto increment does not work properly with InnoDB after update
    ------------------------------------------------------------
    revno: 0.1.663
    committer: marko
    timestamp: Thu 2008-08-21 12:25:05 +0000
    message:
      branches/5.1: Identify SELECT statements by thd_sql_command() == SQLCOM_SELECT
      instead of parsing the query string.  This fixes MySQL Bug #37885 without
      us having to implement lexical analysis of SQL comments in yet another place.
      
      thd_is_select(): A new predicate.
      
      row_search_for_mysql(): Use thd_is_select().
      
      Approved by Heikki.
    ------------------------------------------------------------
    revno: 0.1.662
    committer: vasil
    timestamp: Fri 2008-07-25 13:24:23 +0000
    message:
      branches/5.1:
      
      Fix Bug#38185 ha_innobase::info can hold locks even when called with HA_STATUS_NO_LOCK
      
      The fix is to call fsp_get_available_space_in_free_extents() from
      ha_innobase::info() only if HA_STATUS_NO_LOCK is not present in the flag
      *AND*
      change get_schema_tables_record() in MySQL's sql/sql_show.cc to call
      ::info() *without* HA_STATUS_NO_LOCK whenever a user issues SELECT FROM
      information_schema.tables;
      
      Without the change to sql/sql_show.cc this patch would lead to Bug#32440
      resurfacing. I.e. delete_length would never be updated in ::info() and
      will remain 0 forever, resulting in the free space not being shown
      anywhere.
      
      This is the change to sql/sql_show.cc for reference, it needs to be
      committed to the MySQL repo before or at the same time with this change
      to ha_innodb.cc:
      
       --- patch begins here ---
       --- sql/sql_show.cc.orig 2008-07-23 09:32:14.000000000 +0300
       +++ sql/sql_show.cc 2008-07-23 09:32:19.000000000 +0300
       @@ -3549,8 +3549,7 @@ static int get_schema_tables_record(THD
        
            if(file)
            {
       -      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO |
       -                 HA_STATUS_NO_LOCK);
       +      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO);
              enum row_type row_type = file->get_row_type();
              switch (row_type) {
              case ROW_TYPE_NOT_USED:
       --- patch ends here ---
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.661
    committer: inaam
    timestamp: Tue 2008-07-22 14:57:43 +0000
    message:
      branches/5.1:
      
      Removed UNIV_INLINE qualifier from btr_search_info_get_ref_count().
      Otherwise compilation failed on non-debug builds.
      
      Pointed by: Vasil
    ------------------------------------------------------------
    revno: 0.1.660
    committer: inaam
    timestamp: Tue 2008-07-15 16:46:03 +0000
    message:
      branches/5.1   issue# 4
      
      Fixed a timing hole where a thread dropping an index can free the
      in-memory index struct while another thread is still using
      that structure to remove entries from adaptive hash index belonging
      to one of the pages that belongs to the index being dropped.
      
      The fix is to have a reference counter in the index struct and to
      wait for this counter to drop to zero beforing freeing the struct.
      
      Reviewed by: Heikki
    ------------------------------------------------------------
    revno: 0.1.659
    committer: vasil
    timestamp: Tue 2008-07-01 06:37:34 +0000
    message:
      branches/5.1:
      
      Merge a change from MySQL (this fixes the failing innodb-replace test):
      
        revno: 2659
        committer: Mattias Jonsson <mattiasj@mysql.com>
        branch nick: b31210-51-bugteam
        timestamp: Tue 2008-06-03 13:25:41 +0200
        message:
          Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
            
          Problem was an unclear error message since it could suggest that
          MyISAM did not support INSERT DELAYED.
          Changed the error message to say that DELAYED is not supported by the
          table, instead of the table's storage engine.
          The confusion is that a partitioned table is in somewhat sense using
          the partitioning storage engine, which in turn uses the ordinary
          storage engine. By saying that the table does not support DELAYED we
          do not give any extra informantion about the storage engine or if it
          is partitioned.
        modified:
          mysql-test/r/innodb-replace.result
          mysql-test/t/innodb-replace.test
          mysql-test/t/merge.test
          mysql-test/t/partition_hash.test
          sql/share/errmsg.txt
          sql/sql_insert.cc
    ------------------------------------------------------------
    revno: 0.1.658
    committer: vasil
    timestamp: Thu 2008-06-26 13:39:01 +0000
    message:
      branches/5.1:
       
      Fix Bug#36942 Performance problem in lock_get_n_rec_locks (SHOW INNODB STATUS)
      by not calling lock_get_n_rec_locks() from lock_print_info_summary() on
      production builds.
       
      Approved by: Heikki (via IM)
    ------------------------------------------------------------
    revno: 0.1.657
    committer: vasil
    timestamp: Thu 2008-06-26 13:38:02 +0000
    message:
      branches/5.1:
       
      Fix Bug#36941 Performance problem in ha_print_info (SHOW INNODB STATUS)
      by disabling some of the code in ha_print_info() in production builds.
       
      Approved by: Heikki (via IM)
    ------------------------------------------------------------
    revno: 0.1.656
    committer: sunny
    timestamp: Thu 2008-06-26 12:55:43 +0000
    message:
      branches/5.1: Add test cases and fix a bug where the last AUTOINC cached value
      was not reset to 0 when the table was truncated.
      
      Bug #37531 : After truncate, auto_increment behaves incorrectly for InnoDB
    ------------------------------------------------------------
    revno: 0.1.655
    committer: vasil
    timestamp: Mon 2008-06-09 10:16:51 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL (this fixes the failing innodb test):
      
        ChangeSet@1.2628  2008-05-13 17:01:02+05:00  gshchepa@host.loc
          Merge host.loc:/work/bugs/5.0-bugteam-30059
          into  host.loc:/work/bk/5.1-bugteam
      
      NOTE: the diff for mysql-test/r/innodb.result in this ChangeSet looks
      empty but the line:
      
      Data truncated for column 'c' at row 1
      
      is present in annotated mysql-test/r/innodb.result@1.215 [1]
      and not present in annotated mysql-test/r/innodb.result@1.216 [2] so it
      must have been deleted in the above ChangeSet.
      
      [1] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=4825e033JNz_463Ha9pwInSjqLvIQg
      [2] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=482982fcUoskWjhU2xMH2BZ4Gyukfg
    ------------------------------------------------------------
    revno: 0.1.654
    committer: vasil
    timestamp: Mon 2008-06-09 09:53:12 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL (this almost fixes the failing innodb test):
      
        ChangeSet@1.2613, 2008-05-07 09:58:21+04:00, sergefp@mysql.com +5 -0
          BUG#35850 "Performance regression in 5.1.23/5.1.24"
          - Disable the "prefer full scan on clustered primary key over full scan
            of any secondary key" rule introduced by BUG#35850.
          - Update test results accordingly
          (bk trigger: file this for BUG#35850)
        
          mysql-test/r/innodb.result@1.214, 2008-05-07 09:57:31+04:00, sergefp@mysql.com +15 -15
            BUG#35850 "Performance regression in 5.1.23/5.1.24"
            - Update test results
    ------------------------------------------------------------
    revno: 0.1.653
    committer: vasil
    timestamp: Wed 2008-05-28 12:01:14 +0000
    message:
      branches/5.1:
      
      Fix Bug#36149 Read buffer overflow in srv0start.c found during "make test"
      
      Use strncmp(3) instead of memcmp(3) to avoid reading past end of the string
      if it is empty (*str == '\0'). This bug is _not_ a buffer overflow.
      
      Discussed with: Sunny (via IM)
    ------------------------------------------------------------
    revno: 0.1.652
    committer: sunny
    timestamp: Wed 2008-05-28 08:18:35 +0000
    message:
      branches/5.1: Fix for Bug#35602, "Failed to read auto-increment value from
      storage engine". The test for REPLACE was an error of ommission since it's
      classified as a simple INSERT. For REPLACE statements we don't acquire
      the special AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix.
    ------------------------------------------------------------
    revno: 0.1.651
    committer: vasil
    timestamp: Tue 2008-05-27 07:40:07 +0000
    message:
      branches/5.1:
      
      Fix Bug#36819 ut_usectime does not handle errors from gettimeofday
      
      by retrying gettimeofday() several times if it fails in ut_usectime().
      If it fails on all calls then return error to the caller to be handled
      at higher level.
      
      Update the variable innodb_row_lock_time_max in SHOW STATUS output only
      if ut_usectime() was successful.
    ------------------------------------------------------------
    revno: 0.1.650
    committer: sunny
    timestamp: Fri 2008-05-23 04:29:08 +0000
    message:
      branches/5.1: Fix for bug# 36793. This is a back port from branches/zip. This
      code has been tested on a big-endian machine too.
    ------------------------------------------------------------
    revno: 0.1.649
    committer: calvin
    timestamp: Mon 2008-05-19 21:37:14 +0000
    message:
      branches/5.1:
      
      Fix Bug#11894 innodb_file_per_table crashes w/ Windows .sym symbolic
      link hack
      
      The crash was due to un-handled error 3 (path not found). In the case
      of file per table, change the call to os_file_handle_error_no_exit()
      from os_file_handle_error(). Also, checks for full path pattern during
      table create (Windows only), which is used in symbolic link and temp
      table creation.
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.648
    committer: vasil
    timestamp: Mon 2008-05-19 13:59:42 +0000
    message:
      branches/5.1:
      
      Fix Bug#36600 SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number
      
      by removing the Innodb_buffer_pool_pages_latched variable from
      SHOW STATUS output in non-UNIV_DEBUG compilation.
       
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.647
    committer: vasil
    timestamp: Wed 2008-04-30 16:36:11 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.646
    committer: vasil
    timestamp: Wed 2008-04-30 15:15:46 +0000
    message:
      branches/5.1:
      
      Non-functional white space change in Makefile.am:
      Use tabs for indentation and be consistent about spaces around the
      equal sign.
    ------------------------------------------------------------
    revno: 0.1.645
    committer: vasil
    timestamp: Wed 2008-04-30 15:04:36 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.644
    committer: vasil
    timestamp: Wed 2008-04-30 14:45:44 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.643
    committer: vasil
    timestamp: Wed 2008-04-30 08:02:35 +0000
    message:
      branches/5.1:
      
      Add vim modeline to hint it that plug.in is a config file
      so it can be colorized.
    ------------------------------------------------------------
    revno: 0.1.642
    committer: vasil
    timestamp: Wed 2008-04-30 07:58:38 +0000
    message:
      branches/5.1:
      
      Non-functional change: use tabs for indentation in plug.in.
    ------------------------------------------------------------
    revno: 0.1.641
    committer: vasil
    timestamp: Wed 2008-04-30 07:54:49 +0000
    message:
      branches/5.1:
      
      Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
    ------------------------------------------------------------
    revno: 0.1.640
    committer: vasil
    timestamp: Wed 2008-04-30 07:48:35 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.639
    committer: vasil
    timestamp: Wed 2008-04-30 07:19:06 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.638
    committer: vasil
    timestamp: Thu 2008-04-24 12:00:30 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.637
    committer: calvin
    timestamp: Thu 2008-04-24 11:32:30 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.636
    committer: calvin
    timestamp: Thu 2008-04-24 11:25:30 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.635
    committer: vasil
    timestamp: Wed 2008-04-23 15:08:06 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.634
    committer: vasil
    timestamp: Thu 2008-03-27 12:02:34 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.633
    committer: vasil
    timestamp: Thu 2008-03-27 06:49:05 +0000
    message:
      branches/5.1:
      
      Check whether *trx->mysql_query_str is != NULL in addition to
      trx->mysql_query_str. This adds more safety.
      
      This may or may not fix Bug#35226 RBR event crashes slave.
    ------------------------------------------------------------
    revno: 0.1.632
    committer: vasil
    timestamp: Thu 2008-03-27 05:45:02 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL (this fixes the failing innodb test):
      
      ChangeSet@1.1810.3601.4, 2008-02-07 02:33:21+04:00, gshchepa@host.loc +9 -0
        Fixed bug#30059.
        Server handles truncation for assignment of too-long values
        into CHAR/VARCHAR/TEXT columns in a different ways when the
        truncated characters are spaces:
        1. CHAR(N) columns silently ignore end-space truncation;
        2. TEXT columns post a truncation warning/error in the
           non-strict/strict mode.
        3. VARCHAR columns always post a truncation note in
           any mode.
      
        Space truncation processing has been synchronised over
        CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR
        columns has been propagated as standard.
      
        Binary-encoded string/BLOB columns are not affected.
    ------------------------------------------------------------
    revno: 0.1.631
    committer: vasil
    timestamp: Wed 2008-03-26 16:26:54 +0000
    message:
      branches/5.1:
      
      Fix Bug#34300 Tinyblob & tinytext fields currupted after export/import and alter in 5.1
      
      Copy the BLOB fields, that are stored internally, to a safe place
      (prebuilt->blob_heap) when converting a row from InnoDB format to
      MySQL format in row_sel_store_mysql_rec().
      
      The bug was introduced in:
      
       ------------------------------------------------------------------------
       r587 | osku | 2006-05-23 15:35:58 +0300 (Tue, 23 May 2006) | 3 lines
       
       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.
       ------------------------------------------------------------------------
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.630
    committer: vasil
    timestamp: Wed 2008-03-26 07:35:22 +0000
    message:
      branches/5.1:
      
      Fix typo in comment.
    ------------------------------------------------------------
    revno: 0.1.629
    committer: sunny
    timestamp: Fri 2008-03-21 03:03:56 +0000
    message:
      branches/5.1: Fix for Bug# 35352. We've added a heuristic that checks
      the size of the UNDO slots cache lists (insert and upate). If either of
      cached lists has more than 500 entries then we add any UNDO slots that are
      freed, to the common free list instead of the cache list, this is to avoid
      the case where all the free slots end up in only one of the lists on startup
      after a crash.
      
      Tested with test case for 26590 and passes all mysql-test(s).
    ------------------------------------------------------------
    revno: 0.1.628
    committer: vasil
    timestamp: Wed 2008-03-19 16:48:00 +0000
    message:
      branches/5.1:
       
      Fix Bug#34823:
      fsync() occasionally returns ENOLCK and causes InnoDB to restart mysqld
      
      Create a wrapper to fsync(2) that retries the operation if the error is
      ENOLCK. Use that wrapper instead of fsync(2).
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.627
    committer: vasil
    timestamp: Tue 2008-03-18 07:35:30 +0000
    message:
      branches/5.1:
       
      Fix Bug#35220 ALTER TABLE too picky on reserved word "foreign".
       
      In ALTER TABLE, change the internal parser to search for
      ``FOREIGN[[:space:]]'' instead of only ``FOREIGN'' when parsing
      ALTER TABLE ... DROP FOREIGN KEY ...; otherwise it could be mistaken
      with ALTER TABLE ... DROP foreign_col;
       
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.626
    committer: marko
    timestamp: Mon 2008-03-17 08:23:03 +0000
    message:
      branches/5.1: ha_innobase::check_if_incompatible_data(): Check
      HA_CREATE_USED_ROW_FORMAT before comparing row_type.  Previously,
      the comparison was incorrectly guarded by the presence of an
      AUTO_INCREMENT attribute.
    ------------------------------------------------------------
    revno: 0.1.625
    committer: sunny
    timestamp: Wed 2008-03-12 07:08:09 +0000
    message:
      branches/5.1: Remove the innodb_flush_method fdatasync option since it was
      not being used and there was a potential it could mislead users.
    ------------------------------------------------------------
    revno: 0.1.624
    committer: vasil
    timestamp: Tue 2008-03-11 16:50:50 +0000
    message:
      branches/5.1:
      
      Merge changes from MySQL AB.
    ------------------------------------------------------------
    revno: 0.1.623
    committer: sunny
    timestamp: Tue 2008-03-11 14:20:59 +0000
    message:
      branches/5.1: Checked in the wrong test results in r2353. This commit has
      the correct result set.
    ------------------------------------------------------------
    revno: 0.1.622
    committer: sunny
    timestamp: Wed 2008-03-05 20:23:39 +0000
    message:
      branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
      new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
      the assertion where it crashed previously, since the type has now changed
      to unsigned, it doesn't make sense to check for < 0. Added new tests, to
      check for overflow, for the different INT types supported for both
      signed and unsigned.
      
      Fixes Bug# 34335
    ------------------------------------------------------------
    revno: 0.1.621
    committer: sunny
    timestamp: Mon 2008-03-03 22:50:15 +0000
    message:
      branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
      counter for ALTER TABLE statements too.
    ------------------------------------------------------------
    revno: 0.1.620
    committer: vasil
    timestamp: Mon 2008-02-11 15:51:03 +0000
    message:
      branches/5.1:
      
      Merge r2294 from branches/5.0:
      
      Fix typo and add comma in comment.
    ------------------------------------------------------------
    revno: 0.1.619
    committer: vasil
    timestamp: Thu 2008-02-07 12:02:06 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.618
    committer: vasil
    timestamp: Tue 2008-02-05 14:30:41 +0000
    message:
      branches/5.1:
      
      Fix typo in comment.
    ------------------------------------------------------------
    revno: 0.1.617
    committer: vasil
    timestamp: Tue 2008-02-05 13:29:30 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.616
    committer: inaam
    timestamp: Sun 2008-02-03 19:52:44 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.615
    committer: marko
    timestamp: Mon 2008-01-28 14:37:09 +0000
    message:
      branches/5.1:
      
      innodb.result: Fix results after merging changes from MySQL.  Maybe some
      changes were incorrectly merged in the past?
    ------------------------------------------------------------
    revno: 0.1.614
    committer: marko
    timestamp: Mon 2008-01-28 14:07:57 +0000
    message:
      branches/5.1: Merge a change from MySQL AB:
      
      ChangeSet@2007-11-27 09:25:45+01:00, istruewing@stella.local
      Bug#32754 - InnoDB tests do not prepare or clean up correctly
          
      Some test cases were missing preparation to deal with failed
      predecessor test cases.
             
      Added preparation (drop table if exists) to some test cases.
      
      innodb-semi-consistent.test: Added preparation (drop table if exists).
    ------------------------------------------------------------
    revno: 0.1.613
    committer: marko
    timestamp: Mon 2008-01-28 14:04:10 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.612
    committer: vasil
    timestamp: Wed 2008-01-16 13:50:51 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.611
    committer: inaam
    timestamp: Tue 2008-01-15 03:22:37 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.610
    committer: vasil
    timestamp: Fri 2008-01-04 15:38:59 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL AB:
      
      ChangeSet@1.2639, 2007-11-23 12:51:14+01:00, mkindahl@dl145h.mysql.com +7 -0
        Post-merge fixes.
      
        mysql-test/r/innodb.result@1.206, 2007-11-23 12:51:10+01:00, mkindahl@dl145h.mysql.com +1 -1
          Result change.
    ------------------------------------------------------------
    revno: 0.1.609
    committer: vasil
    timestamp: Fri 2008-01-04 15:29:32 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL AB:
      
      ChangeSet@1.2616, 2007-12-01 19:55:06+01:00, tnurnberg@mysql.com +8 -0
        Bug#31177: Server variables can't be set to their current values
       
        5.1+ specific fixes (plugins etc.)
      
        mysql-test/r/innodb.result@1.204, 2007-12-01 19:55:04+01:00, tnurnberg@mysql.com +2 -2
          we throw warnings to the client, yea, verily
    ------------------------------------------------------------
    revno: 0.1.608
    committer: vasil
    timestamp: Fri 2008-01-04 15:17:59 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL AB:
      
      ChangeSet@1.2557, 2007-11-28 19:43:50+01:00, tnurnberg@mysql.com +21 -0
        Bug#31177: Server variables can't be set to their current values
      
        Default values of variables were not subject to upper/lower bounds
        and step, while setting variables was. Bounds and step are also
        applied to defaults now; defaults are corrected quietly, values
        given by the user are corrected, and a correction-warning is thrown
        as needed. Lastly, very large values could wrap around, starting
        from 0 again. They are bounded at the maximum value for the
        respective data-type now if no lower maximum is specified in the
        variable's definition.
      
        mysql-test/r/innodb.result@1.171, 2007-11-28 19:43:48+01:00, tnurnberg@mysql.com +4 -0
          We throw a warning now when we adjust out of range parameters.
    ------------------------------------------------------------
    revno: 0.1.607
    committer: vasil
    timestamp: Fri 2008-01-04 14:45:16 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL AB:
      
      ChangeSet@1.2612, 2007-11-07 19:59:58+04:00, ramil@mysql.com +6 -0
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB
        and auto_increment keys
      
        Problems:
          1. ALTER TABLE ... ORDER BY... doesn't make sence if there's a
             user-defined clustered index in the table.
          2. using a secondary index is slower than using a clustered one
             for a table scan.
      
        Fixes:
          1. raise a warning.
          2. use the clustered index.
      
        mysql-test/r/innodb.result@1.203, 2007-11-07 19:59:56+04:00, ramil@mysql.com +15 -15
          Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB
          and auto_increment keys
            - results adjusted.
    ------------------------------------------------------------
    revno: 0.1.606
    committer: vasil
    timestamp: Fri 2008-01-04 14:18:29 +0000
    message:
      branches/5.1:
      
      Merge change from MySQL AB:
      
      ChangeSet@1.2541, 2007-10-13 15:49:42+03:00, aelkin@koti.dsl.inet.fi +10 -0
        Bug #29136 erred multi-delete on trans table does not rollback the statement
       
        similar to bug_27716, but it was stressed on in the synopsis on that there is another
        side of the artifact affecting behaviour in transaction.
      
        Fixed with deploying multi_delete::send_error() - otherwise never called - and refining its logic
        to perform binlogging job if needed.
      
        The changeset includes the following side effects:
        - added tests to check bug_23333's scenarios on the mixture of tables for multi_update;
        - fixes bug@30763 with two-liner patch and a test coinciding to one added for bug_23333.
        
        mysql-test/r/innodb.result@1.171, 2007-10-13 15:49:36+03:00, aelkin@koti.dsl.inet.fi +15 -2
          results changed
      
        mysql-test/t/innodb.test@1.145, 2007-10-13 15:49:37+03:00, aelkin@koti.dsl.inet.fi +32 -0
          trans table specific test added
    ------------------------------------------------------------
    revno: 0.1.605
    committer: sunny
    timestamp: Wed 2007-12-19 03:58:36 +0000
    message:
      branches/5.1: Remove unused field can_be_too_old from read_view_struct.
    ------------------------------------------------------------
    revno: 0.1.604
    committer: vasil
    timestamp: Thu 2007-12-13 14:05:51 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.603
    committer: vasil
    timestamp: Tue 2007-12-11 14:12:10 +0000
    message:
      branches/5.1:
      
      Merge r2166:2168 from trunk/:
      
      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.
    ------------------------------------------------------------
    revno: 0.1.602
    committer: vasil
    timestamp: Thu 2007-12-06 08:21:22 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.601
    committer: marko
    timestamp: Tue 2007-12-04 08:33:27 +0000
    message:
      branches/5.1: Merge r2154 from trunk:
      
      innodb.result, innodb.test: Revert the changes in r2145.
      
      The tests that were removed by MySQL
      
      ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
      
      were moved to a new test, innodb_autoinc_lock_mode_zero, which is
      kept in the MySQL BitKeeper tree.
    ------------------------------------------------------------
    revno: 0.1.600
    committer: marko
    timestamp: Fri 2007-11-30 12:47:33 +0000
    message:
      branches/5.1: Copy from trunk.  From now on, trunk will refer to
      MySQL/InnoDB version 6.0, and any changes to MySQL/InnoDB 5.1 will
      be made in branches/5.1.
    ------------------------------------------------------------
    revno: 0.1.599
    committer: marko
    timestamp: Fri 2007-11-30 12:20:56 +0000
    message:
      convert_error_code_to_mysql(): Do not call thd_mark_transaction_to_rollback()
      when thd is NULL.
    ------------------------------------------------------------
    revno: 0.1.598
    committer: marko
    timestamp: Fri 2007-11-30 12:02:40 +0000
    message:
      Revert the changes that were reverted in r2144 to get a source tree that
      is an exact match of a MySQL BitKeeper tree.
      
      Apply r2116:
      ------------------------------------------------------------------------
      r2116 | vasil | 2007-11-23 19:10:17 +0200 (pe, 23 marras 2007) | 6 lines
      
      Set trx->mysql_query_str to NULL at transaction commit.
      It could be a problem if someone looks at it after that because MySQL may
      have free()d it then.
      
      Approved by:    Heikki (via IM)
      ------------------------------------------------------------------------
      
      innodb.test, innodb.result:
      Add some tests that were apparently accidentally removed in
      ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
      Apply snapshot innodb-5.1-ss1989
      
      ha_innodb.cc: Add a decorative comment.
    ------------------------------------------------------------
    revno: 0.1.597
    committer: marko
    timestamp: Fri 2007-11-30 11:45:26 +0000
    message:
      Make our 5.1 tree an exact copy of the MySQL source tree.
      
      Revert r2116:
      ------------------------------------------------------------------------
      r2116 | vasil | 2007-11-23 19:10:17 +0200 (pe, 23 marras 2007) | 6 lines
      
      Set trx->mysql_query_str to NULL at transaction commit.
      It could be a problem if someone looks at it after that because MySQL may
      have free()d it then.
      
      Approved by:    Heikki (via IM)
      ------------------------------------------------------------------------
      
      innodb.test, innodb.result:
      Remove some tests that were apparently accidentally removed in
      ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
      Apply snapshot innodb-5.1-ss1989
      
      ha_innodb.cc: Remove a decorative comment.
      
      This tree should be an exact match of the following MySQL source tree:
      
      bk://mysql.bkbits.net/mysql-5.1
      ROOTKEY=3985cf0cwNRCED_XNSCA7RvkLPer2Q
      TIPKEY=47447c7cTrSPx22mH8PXNmurrycaaw
      
      bkf changes | head
      
      ChangeSet@1.2634.1.2, 2007-11-21 19:42:50+01:00, df@pippilotta.erinye.com +1 -0
        Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
        into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
        MERGE: 1.1810.3425.2
      
      ChangeSet@1.1810.3425.2, 2007-11-21 19:41:13+01:00, df@pippilotta.erinye.com +1 -0
        add wrong warning to suppression file
      
      ChangeSet@1.2634.1.1, 2007-11-21 19:33:27+01:00, df@pippilotta.erinye.com +1 -0
        Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
        into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
        MERGE: 1.1810.3425.1
      
      ChangeSet@1.1810.3425.1, 2007-11-21 18:11:08+01:00, df@pippilotta.erinye.com +1 -0
        ignore readline warnings
      
      ChangeSet@1.2635, 2007-11-21 15:06:38+01:00, mleich@five.local.lan +6 -0
        Merge five.local.lan:/work/merge/mysql-5.0-build-30418
        into  five.local.lan:/work/merge/mysql-5.1-build-31610
        MERGE: 1.1810.3284.72
    ------------------------------------------------------------
    revno: 0.1.596
    committer: marko
    timestamp: Fri 2007-11-30 11:41:22 +0000
    message:
      ha_innobase::get_auto_increment(): Add a comment that was accidentally
      removed in r2137, when merging a change from MySQL AB.
    ------------------------------------------------------------
    revno: 0.1.595
    committer: marko
    timestamp: Fri 2007-11-30 09:59:17 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2528.124.3  2007-08-14 15:35:19-06:00  tsmith@hindu.god
      
      Updates to allow innodb.test to be run with --embedded-server,
      including a small change to build_table_filename().
      
      innodb.test, innodb.result:
      
      Updates to allow innodb.test to be run with --embedded-server
    ------------------------------------------------------------
    revno: 0.1.594
    committer: marko
    timestamp: Fri 2007-11-30 09:52:49 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2598.6.1  2007-11-07 12:59:22-07:00  tsmith@hindu.god
      
      Cast away compiler warning on Windows.
      
      ha_innodb.cc:
      
      Cast away a compiler warning; some functions return ulong or ulint for
      errors, and some use int.  Let's hope these all fit in an int.
    ------------------------------------------------------------
    revno: 0.1.593
    committer: marko
    timestamp: Fri 2007-11-30 09:44:34 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2528.116.44  2007-09-12 18:16:50-07:00  antony@xiphis.org
      
      Changes for pushbuild test runs and VSC compile warnings
      
      ha_innodb.cc:
      
      resolve a VSC++ typecast compile warning.
    ------------------------------------------------------------
    revno: 0.1.592
    committer: marko
    timestamp: Fri 2007-11-30 09:43:06 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2528.116.43  2007-09-12 13:35:39-07:00  antony@xiphis.org
      
      undo unneccessary change to ha_innodb.cc
      remove 'drop database' from new tests.
      
      ha_innodb.cc:
      
      undo unneccessary edits.
    ------------------------------------------------------------
    revno: 0.1.591
    committer: marko
    timestamp: Fri 2007-11-30 09:40:20 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2528.116.42  2007-09-08 20:26:12-07:00  antony@xiphis.org
      
      Bug#30919
        "Rows not deleted from innodb partitioned tables if
        --innodb_autoinc_lock_mode=0"
      
        Due to a previous bugfix which initializes a previously uninitialized
        variable, ha_partition::get_auto_increment() may fail to operate
        correctly when the storage engine reports that it is only reserving
        one value and one or more partitions have a different 'next-value'.
        Currently, only affects Innodb's new-style auto-increment code which
        reserves larger blocks of values and has less inter-thread contention.
      
      ha_innodb.cc:
      Bug30919
        Only set *first_value if it is less than autoinc value. This allows
        a higher value to be hinted when operating as a partitioned table.
    ------------------------------------------------------------
    revno: 0.1.590
    committer: marko
    timestamp: Fri 2007-11-30 09:36:27 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2528.116.40  2007-09-08 11:19:35-07:00  acurtis@xiphis.org
      
      Bug#30907
        "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
      Bug#28430
        "Failure in replication of innodb partitioned tables on row/mixed format"
      Bug#30888
        "Innodb table + stored procedure + row deletion = server crash"
      
        Apply Oracle patch from Sunny
        Include tests cases by Omer
        Ensure that innobase_read_and_init_auto performs table autoinc lock when
        lock_mode = 0
        No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
        it already performs same check.
        Make autoinc_lock_mode variable read-only for duration of running
        mysqld process.
      
      ha_innodb.cc:
      Bug30907/28430
        "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
        "Failure in replication of innodb partitioned tables on row/mixed format"
        Apply Oracle patch from Sunny
        Ensure that innobase_read_and_init_auto performs table autoinc lock when
        lock_mode = 0
        No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
        it already performs same check.
        Make autoinc_lock_mode variable read-only for duration of running
        mysqld process.
    ------------------------------------------------------------
    revno: 0.1.589
    committer: marko
    timestamp: Fri 2007-11-30 09:25:46 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2528.24.43  2007-08-02 02:22:31-06:00  tsmith@hindu.god
      
      Post-merge fix, add InnoDB compatibility hook (defined for
      InnoDB only), thd_mark_transaction_to_rollback().
    ------------------------------------------------------------
    revno: 0.1.588
    committer: vasil
    timestamp: Fri 2007-11-23 17:10:17 +0000
    message:
      Set trx->mysql_query_str to NULL at transaction commit.
      It could be a problem if someone looks at it after that because MySQL may
      have free()d it then.
      
      Approved by: Heikki (via IM)
    ------------------------------------------------------------
    revno: 0.1.587
    committer: marko
    timestamp: Fri 2007-11-16 13:03:21 +0000
    message:
      convert_search_mode_to_innobase(): Add the missing case label
      HA_READ_MBR_EQUAL that was forgotten in r2088.
    ------------------------------------------------------------
    revno: 0.1.586
    committer: marko
    timestamp: Fri 2007-11-16 12:59:33 +0000
    message:
      Remove the unused function innobase_convert_from_filename() that was
      inadvertently added in r590.
    ------------------------------------------------------------
    revno: 0.1.585
    committer: vasil
    timestamp: Wed 2007-11-14 13:15:24 +0000
    message:
      Non-functional change: convert the switch in convert_search_mode_to_innobase()
      to the InnoDB coding style.
    ------------------------------------------------------------
    revno: 0.1.584
    committer: vasil
    timestamp: Wed 2007-11-14 12:49:24 +0000
    message:
      Fix Bug#32125 (http://bugs.mysql.com/32125)
      "Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
      
      When unknown find_flag is encountered in convert_search_mode_to_innobase()
      do not call assert(0); instead queue a MySQL error using my_error() and
      return the error code PAGE_CUR_UNSUPP. Change the functions that call
      convert_search_mode_to_innobase() to handle that error code by "canceling"
      execution and returning appropriate error code further upstream.
      
      Approved by: Heikki (via IM)
    ------------------------------------------------------------
    revno: 0.1.583
    committer: vasil
    timestamp: Wed 2007-10-31 08:27:53 +0000
    message:
      * Make ./setup.sh sh compliant by avoiding bash-specific syntax.
      * Make the heading line #!/bin/sh. /bin/bash is non-standard.
      
      Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.582
    committer: sunny
    timestamp: Fri 2007-10-26 16:51:40 +0000
    message:
      Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
      autoincrement columns can't contain negative values. With the fix, the
      autoincrement table counter is set to 0 if the maximum value read from
      the autoinc column index is negative.
      
      Add test for the bug fix but the test is not really useful as the server
      needs to be restarted half way through the test. It has been added for
      reference only.
    ------------------------------------------------------------
    revno: 0.1.581
    committer: sunny
    timestamp: Thu 2007-10-25 01:17:40 +0000
    message:
      Remove ut_print_timestamp(), this should have been removed when the following
      changes were made by MySQL.
      
       ChangeSet@1.1810.467.1  2005-08-11 19:19:20+03:00  jani@omakaista.fi
      
      Fix error message so that it conforms to "  InnoDB: Error: ...".
    ------------------------------------------------------------
    revno: 0.1.580
    committer: marko
    timestamp: Wed 2007-10-24 11:35:23 +0000
    message:
      Use "InnoDB:" prefix in error messages.
    ------------------------------------------------------------
    revno: 0.1.579
    committer: marko
    timestamp: Wed 2007-10-24 10:49:11 +0000
    message:
      UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Remove warnings on 64-bit systems.
    ------------------------------------------------------------
    revno: 0.1.578
    committer: sunny
    timestamp: Wed 2007-10-17 11:44:41 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.577
    committer: marko
    timestamp: Wed 2007-10-17 05:36:42 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.576
    committer: sunny
    timestamp: Tue 2007-10-16 11:08:35 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.575
    committer: sunny
    timestamp: Fri 2007-10-12 16:40:42 +0000
    message:
      Prevent loading of tables that have unsupported features most notably
      FTS indexes.
    ------------------------------------------------------------
    revno: 0.1.574
    committer: marko
    timestamp: Fri 2007-10-12 08:29:45 +0000
    message:
      ibuf_insert_to_index_page(): Fix typos in diagnostic output.
    ------------------------------------------------------------
    revno: 0.1.573
    committer: marko
    timestamp: Fri 2007-10-05 09:53:22 +0000
    message:
      UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display also __FILE__ and __LINE__
      when these Valgrind checks fail.
    ------------------------------------------------------------
    revno: 0.1.572
    committer: marko
    timestamp: Wed 2007-10-03 08:36:20 +0000
    message:
      mem_heap_free_top(): Remove a bogus Valgrind warning.
    ------------------------------------------------------------
    revno: 0.1.571
    committer: marko
    timestamp: Wed 2007-10-03 07:36:33 +0000
    message:
      ut_print_buf(): Add a Valgrind check that the buffer is wholly defined.
    ------------------------------------------------------------
    revno: 0.1.570
    committer: marko
    timestamp: Fri 2007-09-28 05:56:09 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.569
    committer: sunny
    timestamp: Tue 2007-09-25 07:16:56 +0000
    message:
      Add debug lock checks to autoinc functions. Add lock guards around an
      invocation of dict_table_autoinc_initialize().
    ------------------------------------------------------------
    revno: 0.1.568
    committer: marko
    timestamp: Mon 2007-09-24 11:28:51 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.567
    committer: marko
    timestamp: Mon 2007-09-24 11:26:57 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.566
    committer: marko
    timestamp: Mon 2007-09-24 11:23:24 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.565
    committer: marko
    timestamp: Mon 2007-09-24 11:18:41 +0000
    message:
      Merge changes from MySQL to the MySQL-owned file CMakeLists.txt:
      
      ChangeSet@1.2528.109.1  2007-08-06 23:16:01+02:00  kent@(none)
        Additional changes for bug#29903
    ------------------------------------------------------------
    revno: 0.1.564
    committer: vasil
    timestamp: Fri 2007-09-21 13:35:00 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.563
    committer: vasil
    timestamp: Thu 2007-09-20 14:37:03 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.562
    committer: vasil
    timestamp: Wed 2007-09-19 17:13:46 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.561
    committer: vasil
    timestamp: Mon 2007-09-17 18:15:44 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.560
    committer: vasil
    timestamp: Fri 2007-09-14 08:19:48 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.559
    committer: marko
    timestamp: Thu 2007-09-13 09:08:58 +0000
    message:
      Remove the prototypes of some functions inside #if 0.
      The function definitions were removed in r1746.
    ------------------------------------------------------------
    revno: 0.1.558
    committer: sunny
    timestamp: Wed 2007-09-12 23:24:49 +0000
    message:
      Add test for Bug# 21409, the actual bug was fixed in r1334.
    ------------------------------------------------------------
    revno: 0.1.557
    committer: sunny
    timestamp: Mon 2007-09-10 20:26:01 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.556
    committer: marko
    timestamp: Mon 2007-09-10 08:44:51 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.555
    committer: sunny
    timestamp: Sun 2007-09-09 22:41:42 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.554
    committer: sunny
    timestamp: Sat 2007-09-08 20:40:10 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.553
    committer: marko
    timestamp: Fri 2007-09-07 12:41:42 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.552
    committer: sunny
    timestamp: Fri 2007-09-07 00:04:10 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.551
    committer: sunny
    timestamp: Thu 2007-09-06 23:50:26 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.550
    committer: marko
    timestamp: Thu 2007-09-06 12:46:50 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.549
    committer: marko
    timestamp: Wed 2007-09-05 13:02:36 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.548
    committer: marko
    timestamp: Mon 2007-09-03 08:32:32 +0000
    message:
      innodb.result: Revert r1655, which should have been reverted as part of r1781.
    ------------------------------------------------------------
    revno: 0.1.547
    committer: marko
    timestamp: Sat 2007-09-01 17:52:03 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.546
    committer: marko
    timestamp: Sat 2007-09-01 17:28:31 +0000
    message:
      ut_print_namel(): Do not assume that all '/' are separators between
      database and table names.
      
      Approved by Heikki.
    ------------------------------------------------------------
    revno: 0.1.545
    committer: marko
    timestamp: Fri 2007-08-31 06:39:46 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.544
    committer: marko
    timestamp: Thu 2007-08-30 14:27:47 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.543
    committer: marko
    timestamp: Thu 2007-08-30 12:28:23 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2536.10.2  2007-07-25 10:44:45+02:00  jperkin@mysql.com
      
      Fix for bug#29641 - $CC on Open Server is set to contain arguments
      for enabling threads.  However, duplicate AC_PROG_* macros in the
      innobase plug.in file were resetting $CC and causing link errors.
      
      As AC_PROG_* macros are already used in the main configure.in file
      there should be no need for them to be duplicated here too.
      
      plug.in:
      
      Remove AC_PROG_* macros
    ------------------------------------------------------------
    revno: 0.1.542
    committer: marko
    timestamp: Thu 2007-08-30 09:01:24 +0000
    message:
      Correct the function comments of row_create_table_for_mysql() and
      row_drop_table_for_mysql().
    ------------------------------------------------------------
    revno: 0.1.541
    committer: sunny
    timestamp: Thu 2007-08-30 08:08:04 +0000
    message:
      Add comment that the variable dest should be word aligned. After discussion
      on IM with Heikki.
    ------------------------------------------------------------
    revno: 0.1.540
    committer: sunny
    timestamp: Thu 2007-08-30 07:06:27 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.539
    committer: sunny
    timestamp: Thu 2007-08-30 05:46:21 +0000
    message:
      Fix a bug that handles the case where the host specific byte order matches
      the InnoDB storage byte order, which is big-endian.
    ------------------------------------------------------------
    revno: 0.1.538
    committer: marko
    timestamp: Thu 2007-08-23 09:24:38 +0000
    message:
      Enclose rw_lock_validate() in #ifdef UNIV_DEBUG.  It is only called by
      debug assertions.
    ------------------------------------------------------------
    revno: 0.1.537
    committer: marko
    timestamp: Thu 2007-08-23 06:39:41 +0000
    message:
      rw_lock_s_lock_func(): Correct a typo in a comment.
    ------------------------------------------------------------
    revno: 0.1.536
    committer: sunny
    timestamp: Thu 2007-08-23 03:40:42 +0000
    message:
      We check whether the AUTOINC sub-system has been initialized (first) by
      holding the AUTOINC mutex and if initialization is required then we
      initialize using our normal procedure. This change is related to Bug#27950.
    ------------------------------------------------------------
    revno: 0.1.535
    committer: sunny
    timestamp: Thu 2007-08-23 03:37:37 +0000
    message:
      Add a table level counter that tracks the number of AUTOINC locks that are
      pending and/or granted on a table. We peek at this value to determine whether
      a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to
      acquire the AUTOINC lock or not. This change is related to Bug# 16979.
    ------------------------------------------------------------
    revno: 0.1.534
    committer: marko
    timestamp: Wed 2007-08-22 18:28:26 +0000
    message:
      Correct an outdated comment about dict_table_t:col_names that should have
      been adjusted in r1719, or r1264 in branches/zip.
    ------------------------------------------------------------
    revno: 0.1.533
    committer: marko
    timestamp: Wed 2007-08-22 11:36:55 +0000
    message:
      Remove some code from ha_innodb.cc that was already enclosed in #if 0.
      The code was related to replication and group commit, and it was
      unreachable already as of MySQL 5.0.
      
      Approved by Heikki
    ------------------------------------------------------------
    revno: 0.1.532
    committer: marko
    timestamp: Wed 2007-08-22 08:19:06 +0000
    message:
      Merge r1739 from branches/zip:
      
      mem_heap_free_heap_top(): Declare the memory freed with UNIV_MEM_FREE().
      Before this change, the memory freed by mem_heap_empty() was not completely
      flagged free in UNIV_DEBUG_VALGRIND builds.  After this change, Valgrind
      will hopefully catch all errors caught by UNIV_MEM_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.531
    committer: marko
    timestamp: Wed 2007-08-22 06:50:16 +0000
    message:
      trx_sys_print_mysql_binlog_offset_from_page(): Enclose the definition
      in #ifdef UNIV_HOTBACKUP, to match the function declaration.
    ------------------------------------------------------------
    revno: 0.1.530
    committer: marko
    timestamp: Wed 2007-08-22 06:49:07 +0000
    message:
      Remove some unused fields of trx_t: mysql_master_log_file_name,
      mysql_master_log_pos, repl_wait_binlog_name, repl_wait_binlog_pos.
      
      Approved by Heikki.
    ------------------------------------------------------------
    revno: 0.1.529
    committer: sunny
    timestamp: Mon 2007-08-20 21:48:16 +0000
    message:
      Add variable "innodb_autoinc_lock_mode"  to control the behavior of the
      AUTOINC locking. There are three modes, 0 for backward compatibility, 1 for the
      new style locking (default, safe for statement-based replication) and
      2 for no AUTOINC locking (unsafe for statement-based replication).
    ------------------------------------------------------------
    revno: 0.1.528
    committer: marko
    timestamp: Wed 2007-08-15 12:41:46 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.527
    committer: marko
    timestamp: Wed 2007-08-15 12:29:46 +0000
    message:
      Replace mysql_byte with uchar and remove the #define mysql_byte from
      ha_innodb.cc.  This cleanup was made possible as of r1550:
      
      Merge changes from MySQL AB:
      
      ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com
        WL#3817: Simplify string / memory area types and make things more consistent
        (first part)
        
        The following type conversions was done:
        
        - Changed byte to uchar
      ...
    ------------------------------------------------------------
    revno: 0.1.526
    committer: marko
    timestamp: Wed 2007-08-15 06:06:52 +0000
    message:
      ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low()
      that was inadvertently added in r832.
    ------------------------------------------------------------
    revno: 0.1.525
    committer: vasil
    timestamp: Tue 2007-08-14 08:32:12 +0000
    message:
      Fix typo in comment.
    ------------------------------------------------------------
    revno: 0.1.524
    committer: marko
    timestamp: Wed 2007-08-01 10:35:06 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.523
    committer: marko
    timestamp: Tue 2007-07-31 18:46:55 +0000
    message:
      check_trx_exists(): Remove a redundant function call and assignment that
      was added by someone at MySQL.
    ------------------------------------------------------------
    revno: 0.1.522
    committer: marko
    timestamp: Tue 2007-07-31 07:55:06 +0000
    message:
      recv_init_crash_recovery(): remove trailing white space
    ------------------------------------------------------------
    revno: 0.1.521
    committer: marko
    timestamp: Tue 2007-07-31 06:45:39 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.1810.3176.1  2007-07-20 14:17:15+03:00  gkodinov@magare.gmz
      
      Bug #29644: alter table hangs if records locked in share mode
      by long running transaction
      
      On Windows opened files can't be deleted. There was a special
      upgraded lock mode (TL_WRITE instead of TL_WRITE_ALLOW_READ)
      in ALTER TABLE to make sure nobody has the table opened
      when deleting the old table in ALTER TABLE. This special mode
      was causing ALTER TABLE to hang waiting on a lock inside InnoDB.
      This special lock is no longer necessary as the server is
      closing the tables it needs to delete in ALTER TABLE.
      Fixed by removing the special lock.
      Note that this also reverses the fix for bug 17264 that deals with
      another consequence of this special lock mode being used.
      
      ha_innodb.cc@1.202.46.1  2007-07-20 14:17:14+03:00  gkodinov@magare.gmz
      
      Bug #29644: reverse the (now excessive) fix
      for bug 17264 (but leave the test case).
    ------------------------------------------------------------
    revno: 0.1.520
    committer: marko
    timestamp: Tue 2007-07-31 06:24:44 +0000
    message:
      Fix the innodb.test failure mentioned in r1654.
    ------------------------------------------------------------
    revno: 0.1.519
    committer: marko
    timestamp: Tue 2007-07-31 05:56:17 +0000
    message:
      Merge changes from MySQL AB, as of the following changeset:
      
      ChangeSet@1.2567, 2007-07-27 14:44:31+05:00, svoj@june.mysql.com +3 -0
        Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
        into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines
        MERGE: 1.1810.2871.44
      
      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
    ------------------------------------------------------------
    revno: 0.1.518
    committer: marko
    timestamp: Mon 2007-07-30 18:51:59 +0000
    message:
      lock_queue_iterator_get_prev(): Remove the unused local variable bit_no.
    ------------------------------------------------------------
    revno: 0.1.517
    committer: vasil
    timestamp: Tue 2007-07-24 06:45:26 +0000
    message:
      * Use START_REV instead of $(($1 + 1)) and END_REV instead of $2
      * Use standard while-loop instead of the seq command
    ------------------------------------------------------------
    revno: 0.1.516
    committer: sunny
    timestamp: Tue 2007-07-24 01:42:16 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.515
    committer: vasil
    timestamp: Tue 2007-07-17 15:08:04 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.514
    committer: vasil
    timestamp: Tue 2007-07-17 13:58:16 +0000
    message:
      Convert date to an unambiguous format.
    ------------------------------------------------------------
    revno: 0.1.513
    committer: vasil
    timestamp: Tue 2007-07-17 13:41:51 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.512
    committer: vasil
    timestamp: Tue 2007-07-17 12:43:09 +0000
    message:
      Convert date to an unambiguous format.
    ------------------------------------------------------------
    revno: 0.1.511
    committer: vasil
    timestamp: Tue 2007-07-17 07:42:43 +0000
    message:
      Add include/lock0priv.h to noinst_HEADERS in Makefile.am.
    ------------------------------------------------------------
    revno: 0.1.510
    committer: vasil
    timestamp: Mon 2007-07-16 13:49:20 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.509
    committer: vasil
    timestamp: Mon 2007-07-16 12:48:45 +0000
    message:
      Wrap to 72 chars.
    ------------------------------------------------------------
    revno: 0.1.508
    committer: vasil
    timestamp: Mon 2007-07-16 11:36:01 +0000
    message:
      Add "const" qualifiers to lock_get_type() and lock_get_mode().
      
      Approved by: Sunny
    ------------------------------------------------------------
    revno: 0.1.507
    committer: vasil
    timestamp: Fri 2007-07-13 12:15:14 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.506
    committer: vasil
    timestamp: Fri 2007-07-13 11:09:57 +0000
    message:
      Cosmetic: indent comments so all of them start on one column.
      
      Suggested by: Sunny
    ------------------------------------------------------------
    revno: 0.1.505
    committer: vasil
    timestamp: Fri 2007-07-13 11:04:53 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.504
    committer: sunny
    timestamp: Tue 2007-07-10 21:29:56 +0000
    message:
      Fix change missed as part of Bug# 15815. Use a function to check if a block
      needs to be made younger.
    ------------------------------------------------------------
    revno: 0.1.503
    committer: vasil
    timestamp: Mon 2007-07-09 13:19:51 +0000
    message:
      Fix typo in comment.
    ------------------------------------------------------------
    revno: 0.1.502
    committer: vasil
    timestamp: Wed 2007-06-27 13:56:34 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.501
    committer: inaam
    timestamp: Tue 2007-06-26 16:54:07 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.500
    committer: vasil
    timestamp: Tue 2007-06-26 13:08:11 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.499
    committer: vasil
    timestamp: Thu 2007-06-21 12:29:42 +0000
    message:
      Add some comments.
      
      Approved by: Heikki (via IM)
    ------------------------------------------------------------
    revno: 0.1.498
    committer: marko
    timestamp: Thu 2007-06-21 12:14:04 +0000
    message:
      trx_commit_for_mysql(): Avoid acquiring and releasing kernel_mutex when
      trx->sess or trx_dummy_sess is non-NULL.
    ------------------------------------------------------------
    revno: 0.1.497
    committer: marko
    timestamp: Thu 2007-06-14 08:34:23 +0000
    message:
      Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
    ------------------------------------------------------------
    revno: 0.1.496
    committer: marko
    timestamp: Wed 2007-06-13 10:18:12 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.495
    committer: marko
    timestamp: Wed 2007-06-13 09:02:58 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.494
    committer: marko
    timestamp: Tue 2007-06-12 09:51:03 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.493
    committer: vasil
    timestamp: Tue 2007-06-12 06:53:29 +0000
    message:
      Fix some in:/out: comments.
      
      Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.492
    committer: marko
    timestamp: Wed 2007-06-06 12:13:59 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.491
    committer: marko
    timestamp: Wed 2007-06-06 11:18:33 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.490
    committer: vasil
    timestamp: Mon 2007-06-04 14:00:44 +0000
    message:
      Fix Bug#20090 as suggested in the bug followup by Heikki.
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.489
    committer: marko
    timestamp: Mon 2007-06-04 12:25:32 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.488
    committer: marko
    timestamp: Mon 2007-06-04 08:45:27 +0000
    message:
      Merge changes from MySQL AB:
      
      ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com
        WL#3817: Simplify string / memory area types and make things more consistent
        (first part)
        
        The following type conversions was done:
        
        - Changed byte to uchar
        - Changed gptr to uchar*
        - Change my_string to char *
        - Change my_size_t to size_t
        - Change size_s to size_t
        
        Removed declaration of byte, gptr, my_string, my_size_t and size_s.
      [...]
      ha_innodb.cc:
        Removed some old types
        Updated hash-get-key function arguments
        Added missing casts for alloc() and printf()
        Removed some not needed casts
      
      ha_innodb.h:
        Removed some old types
    ------------------------------------------------------------
    revno: 0.1.487
    committer: marko
    timestamp: Fri 2007-06-01 06:01:15 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.486
    committer: inaam
    timestamp: Tue 2007-05-29 13:16:47 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.485
    committer: vasil
    timestamp: Tue 2007-05-29 12:38:20 +0000
    message:
      Change the comment to a more appropriate one. Discussed with Heikki on IM.
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.484
    committer: marko
    timestamp: Tue 2007-05-29 12:10:44 +0000
    message:
      Document that DICT_MAX_INDEX_COL_LEN must not be changed.
    ------------------------------------------------------------
    revno: 0.1.483
    committer: marko
    timestamp: Tue 2007-05-29 08:45:31 +0000
    message:
      logs_empty_and_mark_files_at_shutdown(): Remove trailing whitespace that
      was added in r1521.
    ------------------------------------------------------------
    revno: 0.1.482
    committer: marko
    timestamp: Tue 2007-05-29 08:41:59 +0000
    message:
      srv_lock_timeout_and_monitor_thread(): Correct the indentation that was
      broken in r1521.
    ------------------------------------------------------------
    revno: 0.1.481
    committer: marko
    timestamp: Tue 2007-05-29 07:25:16 +0000
    message:
      rec_get_converted_size_new(): Simplify and move a debug assertion.
    ------------------------------------------------------------
    revno: 0.1.480
    committer: marko
    timestamp: Mon 2007-05-28 11:29:45 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.479
    committer: marko
    timestamp: Mon 2007-05-28 11:10:41 +0000
    message:
      Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
    ------------------------------------------------------------
    revno: 0.1.478
    committer: marko
    timestamp: Mon 2007-05-28 11:07:03 +0000
    message:
      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"'.
    ------------------------------------------------------------
    revno: 0.1.477
    committer: inaam
    timestamp: Fri 2007-05-25 18:00:57 +0000
    message:
      Undo bad space formatting introduced in earlier commit r1521
      
      spotted by: Marko
    ------------------------------------------------------------
    revno: 0.1.476
    committer: marko
    timestamp: Wed 2007-05-23 09:58:05 +0000
    message:
      trx0trx.c: Add missing #include "ha_prototypes.h".
    ------------------------------------------------------------
    revno: 0.1.475
    committer: inaam
    timestamp: Wed 2007-05-23 01:23:34 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.474
    committer: vasil
    timestamp: Mon 2007-05-21 13:43:36 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.473
    committer: vasil
    timestamp: Tue 2007-05-15 14:53:04 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.472
    committer: vasil
    timestamp: Mon 2007-05-14 12:41:47 +0000
    message:
      Add a test about the behavior introduced in r1497.
    ------------------------------------------------------------
    revno: 0.1.471
    committer: vasil
    timestamp: Mon 2007-05-14 12:40:21 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.470
    committer: marko
    timestamp: Mon 2007-05-14 11:25:41 +0000
    message:
      ha_innobase::extra(): Replace references to prebuilt->trx with
      thd_to_trx(ha_thd()), in order to avoid potential memory corruption.
    ------------------------------------------------------------
    revno: 0.1.469
    committer: marko
    timestamp: Mon 2007-05-14 11:08:44 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.468
    committer: marko
    timestamp: Mon 2007-05-14 07:12:31 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.467
    committer: vasil
    timestamp: Fri 2007-05-11 15:38:34 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.466
    committer: vasil
    timestamp: Fri 2007-05-11 11:26:30 +0000
    message:
      Fix typo in comment.
    ------------------------------------------------------------
    revno: 0.1.465
    committer: marko
    timestamp: Fri 2007-05-11 08:43:06 +0000
    message:
      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).
    ------------------------------------------------------------
    revno: 0.1.464
    committer: marko
    timestamp: Thu 2007-05-10 12:09:03 +0000
    message:
      thd_to_trx(), check_trx_exists(): Remove the handlerton parameter.  It is a
      singleton object whose address is stored into innodb_hton_ptr.
    ------------------------------------------------------------
    revno: 0.1.463
    committer: marko
    timestamp: Thu 2007-05-10 11:31:36 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.462
    committer: vasil
    timestamp: Wed 2007-05-09 14:09:57 +0000
    message:
      Fix typo in comment.
      
      Spotted by: Marko
    ------------------------------------------------------------
    revno: 0.1.461
    committer: vasil
    timestamp: Tue 2007-05-08 13:34:35 +0000
    message:
      Improve the comment for trx_struct::undo_no.
      
      Suggested by: Heikki
    ------------------------------------------------------------
    revno: 0.1.460
    committer: marko
    timestamp: Tue 2007-05-08 10:51:03 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.459
    committer: vasil
    timestamp: Tue 2007-05-08 07:20:02 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.458
    committer: vasil
    timestamp: Thu 2007-05-03 12:27:08 +0000
    message:
      Fix typo in comment: the exact prototype is in
      include/data0type.ic, not in data/data0type.ic
    ------------------------------------------------------------
    revno: 0.1.457
    committer: vasil
    timestamp: Fri 2007-04-27 09:09:23 +0000
    message:
      Fix typo in comment.
    ------------------------------------------------------------
    revno: 0.1.456
    committer: vasil
    timestamp: Wed 2007-04-25 04:47:10 +0000
    message:
      Fix typo in the comment.
    ------------------------------------------------------------
    revno: 0.1.455
    committer: sunny
    timestamp: Mon 2007-04-23 02:00:46 +0000
    message:
      Fix Bug#22819, remove assertion. (http://bugs.mysql.com/bug.php?id=22819)
    ------------------------------------------------------------
    revno: 0.1.454
    committer: vasil
    timestamp: Fri 2007-04-20 22:51:55 +0000
    message:
      Reindent with tabs instead of spaces.
      
      Spotted by: Marko
    ------------------------------------------------------------
    revno: 0.1.453
    committer: vasil
    timestamp: Fri 2007-04-20 17:51:54 +0000
    message:
      Bugfix: only call innobase_release_temporary_latches() in case of current_thd
      is not NULL, otherwise we get NULL pointer dereferencing.
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.452
    committer: vasil
    timestamp: Fri 2007-04-20 14:41:06 +0000
    message:
      Fix phantom reads (http://bugs.mysql.com/27197) following Heikki's
      patch in the bug followup.
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.451
    committer: marko
    timestamp: Thu 2007-04-19 13:02:21 +0000
    message:
      ha_innodb.cc: Remove ../storage/innobase/include/ prefix from #include
      directives.  This could and should have been done when sql/ha_innodb.cc
      was renamed to storage/innobase/handler/ha_innodb.cc.
    ------------------------------------------------------------
    revno: 0.1.450
    committer: marko
    timestamp: Thu 2007-04-19 11:44:07 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@2007-04-03 16:13:27+05:00, gluh@mysql.com
        Bug#21432 Database/Table name limited to 64 bytes, not chars,
        problems with multi-byte
      
      ==== storage/innobase/handler/ha_innodb.cc ====
      2007-04-03 16:13:25+05:00, gluh@mysql.com +2 -2
        removed unnecessary multiplication
    ------------------------------------------------------------
    revno: 0.1.449
    committer: marko
    timestamp: Thu 2007-04-19 11:29:38 +0000
    message:
      Merge a change from MySQL AB, to fix a mistake made
      in Makefile.am in r1353 by marko (shame on him):
      
      ChangeSet@2007-03-30 06:57:58+02:00, msvensson@pilot.blaudden
        Add missing \ causing CMakelists.txt etc not to be included in dist
    ------------------------------------------------------------
    revno: 0.1.448
    committer: vasil
    timestamp: Wed 2007-04-18 11:35:51 +0000
    message:
      Fix typo which was causing bogus symbolic link *.opt to be created and
      make install (in mysql dir) to fail.
    ------------------------------------------------------------
    revno: 0.1.447
    committer: vasil
    timestamp: Mon 2007-04-16 16:27:41 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.446
    committer: vasil
    timestamp: Thu 2007-04-12 11:19:36 +0000
    message:
      Fix typo.
    ------------------------------------------------------------
    revno: 0.1.445
    committer: vasil
    timestamp: Wed 2007-04-11 17:59:31 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.444
    committer: sunny
    timestamp: Wed 2007-04-11 06:04:11 +0000
    message:
      Fix code indentation from r1424.
    ------------------------------------------------------------
    revno: 0.1.443
    committer: sunny
    timestamp: Wed 2007-04-11 05:35:12 +0000
    message:
      Fixed a missing function decoration that slipped into r1422.
    ------------------------------------------------------------
    revno: 0.1.442
    committer: sunny
    timestamp: Wed 2007-04-11 04:12:40 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.441
    committer: sunny
    timestamp: Wed 2007-04-11 02:43:56 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.440
    committer: sunny
    timestamp: Wed 2007-04-11 01:34:33 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.439
    committer: vasil
    timestamp: Tue 2007-04-10 19:15:03 +0000
    message:
      Fix the innodb test by shifting some of the contents of the .result file.
      
      Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.438
    committer: marko
    timestamp: Tue 2007-04-10 17:58:27 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.437
    committer: marko
    timestamp: Mon 2007-04-02 07:20:23 +0000
    message:
      Report the current value of the AUTO_INCREMENT counter to MySQL.
      (Bug #23313, Bug #21404)
      
      ha_innobase::update_create_info(): New function, to report
      the auto_increment_value.
    ------------------------------------------------------------
    revno: 0.1.436
    committer: vasil
    timestamp: Thu 2007-03-29 19:05:09 +0000
    message:
      * Fix Bug#26662 by not open(2)ing with O_DIRECT but rather calling fcntl(2)
      to set this flag immediately after open(2)ing. This way an error caused by
      O_DIRECT not being supported can easily be ignored.
      
      * Add support for skipping the OS caching on Solaris by calling directio()
      instead of fcntl().
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.435
    committer: vasil
    timestamp: Thu 2007-03-29 08:37:21 +0000
    message:
      Merge the bodies of os_file_handle_error() and os_file_handle_error_no_exit()
      into a generic function which is called from both os_file_handle_error() and
      os_file_handle_error_no_exit()
      
      Approved by: Marko
    ------------------------------------------------------------
    revno: 0.1.434
    committer: marko
    timestamp: Tue 2007-03-27 17:59:15 +0000
    message:
      innobase_commit(): Correct the comments and formatting that were broken when
      innodb_commit_concurrency was implemented.
    ------------------------------------------------------------
    revno: 0.1.433
    committer: marko
    timestamp: Tue 2007-03-27 13:17:47 +0000
    message:
      Remove ha_innobase::last_query_id and references to thd->query_id.
      
      MySQL calls external_lock at the beginning and end of a statement
      when it is not calling start_stmt or commit or rollback.  Thus,
      statement boundaries can be (and are already) detected without
      monitoring thd->query_id.
      
      The function innobase_commit() seemingly lacks the call to
      innobase_release_stat_resources(), which should be called at
      the end of every SQL statement.  The call was replaced by
      equivalent statements by Vadim Tkachenko when he implemented
      innodb_commit_concurrency in MySQL 5.0:
      
      http://mysql.bkbits.net:8080/mysql-5.0/?PAGE=patch&REV=1.1886.70.1
    ------------------------------------------------------------
    revno: 0.1.432
    committer: marko
    timestamp: Tue 2007-03-27 08:22:27 +0000
    message:
      Add static qualifiers to some symbols in ha_innodb.cc that are not
      referenced from other modules.
    ------------------------------------------------------------
    revno: 0.1.431
    committer: marko
    timestamp: Tue 2007-03-27 06:03:03 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet
        2007/03/20 10:22:15-04:00 iggy@recycle.(none)
        Post Merge Fix.
      
      storage/innobase/CMakeLists.txt
        2007/03/20 10:22:13-04:00 iggy@recycle.(none) +2 -2
        Post Merge Fix.
    ------------------------------------------------------------
    revno: 0.1.430
    committer: marko
    timestamp: Tue 2007-03-27 05:49:15 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet
        2007/02/14 22:06:41-08:00 igor@olga.mysql.com
        Fixed bug #25971: indexes on text columns were ignored when ref accesses
        were evaluated.
        According to the new rules for string comparison partial indexes on text
        columns can be used in the same cases when partial indexes on varchar
        columns can be used.
      
      mysql-test/r/innodb.result
        2007/02/14 22:06:39-08:00 igor@olga.mysql.com +1 -1
        Adjusted results after the fix for bug #25971.
    ------------------------------------------------------------
    revno: 0.1.429
    committer: marko
    timestamp: Tue 2007-03-27 05:45:32 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet
        2007/02/15 15:39:03+01:00 guilhem@gbichot3.local
        Fix for BUG#25507 "multi-row insert delayed + auto increment causes
        duplicate key entries on slave" (two concurrrent connections doing
        multi-row INSERT DELAYED to insert into an auto_increment column,
        caused replication slave to stop with "duplicate key error" (and
        binlog was wrong)), and BUG#26116 "If multi-row INSERT
        DELAYED has errors, statement-based binlogging breaks" (the binlog
        was not accounting for all rows inserted, or slave could stop).
        The fix is that: if (statement-based) binlogging is on, a multi-row
        INSERT DELAYED is silently converted to a non-delayed INSERT.
        Note: it is not possible to test BUG#25507 in 5.0 (requires mysqlslap),
        so it is tested only in the changeset for 5.1. However, BUG#26116
        is tested here, and the fix for BUG#25507 is the same code change.
      
      mysql-test/r/innodb-replace.result
        2007/02/15 15:39:01+01:00 guilhem@gbichot3.local +2 -2
        result update
      
      mysql-test/t/innodb-replace.test
        2007/02/15 15:39:01+01:00 guilhem@gbichot3.local +2 -2
        now that multi-row delayed inserts are converted to normal inserts
        if the statement-based binlog is enabled,
        no error is issued even if this engine does not support INSERT DELAYED,
        as the insert does not go through the INSERT DELAYED code.
        To preserve the goal of this test, we change the statements to single-
        row inserts.
    ------------------------------------------------------------
    revno: 0.1.428
    committer: marko
    timestamp: Tue 2007-03-27 05:37:36 +0000
    message:
      Port r1372 from branches/5.0: Merge a change from MySQL AB, and remove
      the innodb_gis test case.
      
      ChangeSet
        2007/02/19 13:57:06+03:00 kaa@polly.local
        Bug#18743: Several test cases fails if "classic" configuration in 5.0
        The problem happened because those tests were using "cp932" and "ucs2"
        without checking whether these character sets are available.
        This fix moves test parts to make character set specific parts be
        tested only if they are:
        - some parts were moved to "ctype_ucs.test" and "ctype_cp932.test"
        - some parts were moved to the newly added tests "innodb-ucs2.test",
        "mysqlbinglog-cp932.test" and "sp-ucs2.test"
      
      mysql-test/t/innodb.test
        2007/02/19 13:57:02+03:00 kaa@polly.local +0 -222
        Moved ucs2-specific test cases to innodb-ucs2.test
    ------------------------------------------------------------
    revno: 0.1.427
    committer: marko
    timestamp: Mon 2007-03-26 08:16:35 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2409.1.83  2007-03-06 10:36:15-07:00  tsmith@hindu.god
      Bug #26598: Create variable to allow turning off of statistic gathering
      on metadata commands
      
      Add innodb_stats_on_metadata option, which enables gathering
      index statistics when processing metadata commands such as
      SHOW TABLE STATUS.  Default behavior of the server does not
      change (this option is enabled by default).
    ------------------------------------------------------------
    revno: 0.1.426
    committer: vasil
    timestamp: Sun 2007-03-25 18:32:51 +0000
    message:
      Fix Bug#27381 by calling os_file_handle_error_no_exit() instead of
      os_file_handle_error().
      
      Approved by: Heikki
    ------------------------------------------------------------
    revno: 0.1.425
    committer: marko
    timestamp: Wed 2007-03-21 10:02:00 +0000
    message:
      Minor cleanup.
      
      innobase_query_caching_of_table_permitted(): Make static.
      
      ha_innobase::register_query_cache_table(): Move the function
      definition from ha_innodb.h to ha_innodb.cc.  Add comments.
    ------------------------------------------------------------
    revno: 0.1.424
    committer: marko
    timestamp: Mon 2007-03-19 09:28:49 +0000
    message:
      class ha_innobase: Replace statistic_increment() with ha_statistic_increment().
      
      ha_innobase::change_active_index(): Do not call current_thd unless
      UNIV_DEBUG is defined.
    ------------------------------------------------------------
    revno: 0.1.423
    committer: marko
    timestamp: Thu 2007-03-15 20:47:58 +0000
    message:
      Makefile.am: EXTRA_DIST: Add the grammar source files to the
      source distribution of MySQL.
    ------------------------------------------------------------
    revno: 0.1.422
    committer: vasil
    timestamp: Thu 2007-03-15 15:00:11 +0000
    message:
      Fix typo in comment in os/os0file.c
      
      Approved by: heikki
    ------------------------------------------------------------
    revno: 0.1.421
    committer: marko
    timestamp: Wed 2007-03-14 13:45:49 +0000
    message:
      Lock the data dictionary during rollback.  This removes the rare
      debug assertion failure ut_ad(mutex_own(&(dict_sys->mutex))) in
      dict_table_get_on_id() after the rollback following crash recovery.
    ------------------------------------------------------------
    revno: 0.1.420
    committer: marko
    timestamp: Thu 2007-03-08 10:10:28 +0000
    message:
      Rename the Boolean field trx->type to trx->is_purge
      and remove the constants TRX_USER and TRX_PURGE.
    ------------------------------------------------------------
    revno: 0.1.419
    committer: marko
    timestamp: Thu 2007-03-08 10:08:35 +0000
    message:
      trx_sig_struct: Remove state.  It is always assigned to TRX_SIG_WAITING
      and never tested.
    ------------------------------------------------------------
    revno: 0.1.418
    committer: marko
    timestamp: Thu 2007-03-08 07:54:54 +0000
    message:
      Minor cleanup in ha_innodb.cc.
      
      Remove the unused constants HA_INNOBASE_ROWS_IN_TABLE and
      HA_INNOBASE_RANGE_COUNT.  Declare innobase_active_counter static.
    ------------------------------------------------------------
    revno: 0.1.417
    committer: marko
    timestamp: Mon 2007-03-05 15:43:58 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.416
    committer: marko
    timestamp: Mon 2007-03-05 14:26:34 +0000
    message:
      rec_offs_nth_size(): Treat n==0 as a special case.  (Bug #26835)
    ------------------------------------------------------------
    revno: 0.1.415
    committer: sunny
    timestamp: Mon 2007-03-05 00:37:57 +0000
    message:
      Fix for Bug# 21409. At low transaction isolation levels we let each
      consistent read set its own snapshot
    ------------------------------------------------------------
    revno: 0.1.414
    committer: marko
    timestamp: Fri 2007-03-02 14:55:52 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.413
    committer: marko
    timestamp: Fri 2007-03-02 14:35:55 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.412
    committer: marko
    timestamp: Fri 2007-03-02 13:23:21 +0000
    message:
      Merge changes from MySQL AB to mysql-test directives.
      The results are not affected.
    ------------------------------------------------------------
    revno: 0.1.411
    committer: marko
    timestamp: Thu 2007-03-01 15:24:14 +0000
    message:
      Merge a change from MySQL AB:
      
      ChangeSet@1.2456.1.3, 2007-02-27 20:06:37+02:00, monty@mysql.com +2 -0
        Fix (last) compiler warnings
      
        storage/innobase/pars/lexyy.c@1.23, 2007-02-27 20:06:36+02:00, monty@mysql.com +1 -1
          Fix compiler warnings (fix is also in pars0lex.l)
    ------------------------------------------------------------
    revno: 0.1.410
    committer: marko
    timestamp: Thu 2007-03-01 15:21:12 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.409
    committer: marko
    timestamp: Thu 2007-03-01 13:28:36 +0000
    message:
      ha_innodb.cc: Remove the unused innobase_repl_ variables.
    ------------------------------------------------------------
    revno: 0.1.408
    committer: marko
    timestamp: Thu 2007-03-01 09:59:37 +0000
    message:
      Add a test case for r1316 (Bug #25927).
    ------------------------------------------------------------
    revno: 0.1.407
    committer: marko
    timestamp: Thu 2007-03-01 08:21:16 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.406
    committer: marko
    timestamp: Thu 2007-02-15 14:10:41 +0000
    message:
      ha_innodb.cc: Replace thd->tablespace_op with thd_tablespace_op(thd).
      Plugins must treat class THD as an opaque type.
    ------------------------------------------------------------
    revno: 0.1.405
    committer: marko
    timestamp: Thu 2007-02-15 14:09:49 +0000
    message:
      ha_innodb.cc: Replace thd->in_lock_tables with thd_in_lock_tables(thd).
      Plugins must treat class THD as an opaque type.
    ------------------------------------------------------------
    revno: 0.1.404
    committer: marko
    timestamp: Wed 2007-02-14 20:03:58 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.403
    committer: sunny
    timestamp: Mon 2007-02-12 23:15:38 +0000
    message:
      Fixed inline asm code, it didn't work with GCC > ver 3.x.
    ------------------------------------------------------------
    revno: 0.1.402
    committer: marko
    timestamp: Mon 2007-02-12 13:08:02 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.401
    committer: marko
    timestamp: Wed 2007-02-07 10:10:13 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.400
    committer: marko
    timestamp: Wed 2007-02-07 09:57:17 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.399
    committer: marko
    timestamp: Wed 2007-02-07 09:48:42 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.398
    committer: marko
    timestamp: Fri 2007-02-02 11:14:02 +0000
    message:
      Merge changes from MySQL AB:
      
      Rename some FIELD_TYPE_ constants to MYSQL_TYPE_.
      
      Change the scope of a type cast of two dividends.
    ------------------------------------------------------------
    revno: 0.1.397
    committer: marko
    timestamp: Fri 2007-02-02 10:52:40 +0000
    message:
      Rename hash_create to hash0_create by a #define.  This fixes a
      symbol collision when building PHP with IMAP and MySQL (Bug #13859).
      The bug was originally fixed by MySQL in a more obtrusive way, by
      replacing all occurrences of hash_create with hash0_create.  This
      change was applied to the MySQL tree as follows:
      
      ChangeSet@1.1616.2924.6, 2007-01-11 12:31:52+01:00, kent@mysql.com +9 -0
        Many files:
          Reverted change for bug#13859, applied smaller patch from Marko
    ------------------------------------------------------------
    revno: 0.1.396
    committer: sunny
    timestamp: Wed 2007-01-24 23:05:06 +0000
    message:
      Fix for Bug# 23666. On Windows ut_usectime returns secs
      and usecs relative to the UNIX epoch (which is Jan, 1 1970).
    ------------------------------------------------------------
    revno: 0.1.395
    committer: osku
    timestamp: Mon 2007-01-22 09:03:59 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.394
    committer: marko
    timestamp: Fri 2007-01-19 12:22:24 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.393
    committer: marko
    timestamp: Thu 2007-01-18 21:27:31 +0000
    message:
      Merge r1239 from
      branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.392
    committer: marko
    timestamp: Thu 2007-01-18 20:33:47 +0000
    message:
      Remove the unused function mem_strdupq().
    ------------------------------------------------------------
    revno: 0.1.391
    committer: osku
    timestamp: Fri 2007-01-12 12:18:53 +0000
    message:
      Delete innodb_mysql.[test|result], as keeping them in our codebase achieves
      nothing but more merge work for us.
    ------------------------------------------------------------
    revno: 0.1.390
    committer: osku
    timestamp: Thu 2007-01-11 14:24:53 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.389
    committer: osku
    timestamp: Thu 2007-01-11 11:45:58 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.388
    committer: marko
    timestamp: Thu 2007-01-11 09:36:27 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.387
    committer: marko
    timestamp: Tue 2007-01-09 07:40:40 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.386
    committer: marko
    timestamp: Tue 2007-01-02 21:37:41 +0000
    message:
      buf_flush_batch(): Remove the test page_count != ULINT_UNDEFINED.
      The variable is initialized to zero, and after that it is only added to.
      Maybe the one who introduced the variable srv_buf_pool_flushed overlooked
      that there is a separate return statement for returning ULINT_UNDEFINED?
    ------------------------------------------------------------
    revno: 0.1.385
    committer: marko
    timestamp: Tue 2007-01-02 14:07:54 +0000
    message:
      ut_2_power_up(): Add __attribute__((const)), because otherwise this function
      is repeatedly called in buf_flush_free_margin() due to the definitions
      of BUF_READ_AHEAD_AREA and other macros starting with BUF_READ_AHEAD_.
    ------------------------------------------------------------
    revno: 0.1.384
    committer: sunny
    timestamp: Fri 2006-12-22 20:18:44 +0000
    message:
      Modify que_fork_start_command() to do only one pass over the thread list
      instead of three.
    ------------------------------------------------------------
    revno: 0.1.383
    committer: sunny
    timestamp: Fri 2006-12-15 04:23:43 +0000
    message:
      Fix a potential bug in ha_innodb.cc:innobase_query_is_update() where the
      function can be called with "current_thd == NULL". Minor non-functional fix
      in log0recv.c
    ------------------------------------------------------------
    revno: 0.1.382
    committer: osku
    timestamp: Tue 2006-12-12 09:37:18 +0000
    message:
      Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
      adding a second parameter, adjust callers.
    ------------------------------------------------------------
    revno: 0.1.381
    committer: osku
    timestamp: Thu 2006-12-07 12:45:26 +0000
    message:
      ha_innodb.cc: Remove unused define MAX_ULONG_BIT.
    ------------------------------------------------------------
    revno: 0.1.380
    committer: heikki
    timestamp: Fri 2006-12-01 15:38:56 +0000
    message:
      Fix bug #24712: SHOW TABLE STATUS for file-per-table showing incorrect
      time fields
    ------------------------------------------------------------
    revno: 0.1.379
    committer: marko
    timestamp: Thu 2006-11-30 10:24:10 +0000
    message:
      Replace the Latin abbreviation "cf." in comments.
    ------------------------------------------------------------
    revno: 0.1.378
    committer: marko
    timestamp: Wed 2006-11-29 14:51:54 +0000
    message:
      Remove the unused constants SYNC_INFINITE_TIME and SYNC_TIME_EXCEEDED.
    ------------------------------------------------------------
    revno: 0.1.377
    committer: marko
    timestamp: Wed 2006-11-29 14:03:47 +0000
    message:
      univ.i: Document the debug flags (UNIV_DEBUG et al).
    ------------------------------------------------------------
    revno: 0.1.376
    committer: heikki
    timestamp: Tue 2006-11-28 16:14:12 +0000
    message:
      Merge r1079 from branches/5.0:
      
      recv_recovery_from_checkpoint_finish(): Add 1 sec delay
      before switching on the sync order checks in crash recovery, so that
      file I/O threads have time to suspend themselves.
    ------------------------------------------------------------
    revno: 0.1.375
    committer: heikki
    timestamp: Tue 2006-11-28 14:37:05 +0000
    message:
      Merge r1067:1077 from branches/5.0:
      
      innobase_start_or_create_for_mysql(): Remove unnecessary delay now that
      we moved the setting sync_order_checks_on=TRUE to log0recv.c,
      to the start of the rollback phase in crash recovery.
      
      Fix assertion failure sync0sync.c line 1239
      (the latter ut_error in sync_thread_reset_level())
      in crash recovery when UNIV_SYNC_DEBUG is enabled.
    ------------------------------------------------------------
    revno: 0.1.374
    committer: heikki
    timestamp: Mon 2006-11-27 15:14:35 +0000
    message:
      Remove another accidentally committed change to srv0start.c.
      The change was accidentally committed with the merge in r1068.
      This revision corresponds to r1051 with a properly merged
      r1067 of branches/5.0.
    ------------------------------------------------------------
    revno: 0.1.373
    committer: heikki
    timestamp: Mon 2006-11-27 15:09:50 +0000
    message:
      Remove an accidentally committed change to srv0start.c.
      The change was accidentally committed with the merge in r1068.
    ------------------------------------------------------------
    revno: 0.1.372
    committer: heikki
    timestamp: Mon 2006-11-27 15:06:43 +0000
    message:
      Merge r1067 from branches/5.0:
      
      trx_rollback_for_mysql(), trx_commit_for_mysql():
      Protect the creation of trx_dummy_sess with kernel_mutex.
      This error was introduced in r1046 and r1050.
    ------------------------------------------------------------
    revno: 0.1.371
    committer: heikki
    timestamp: Thu 2006-11-23 13:25:12 +0000
    message:
      Merge r1048:1050 from branches/5.0:
      
      trx_rollback_for_mysql(): Fix the comment introduced in r1046.
      
      trx_commit_for_mysql(): Use the dummy trx->sess also for committing a prepared
      transaction in XA recovery, just in case our code would need the session
      object also in that case (does not seem to need it right now).
    ------------------------------------------------------------
    revno: 0.1.370
    committer: heikki
    timestamp: Thu 2006-11-23 13:08:16 +0000
    message:
      Merge r1048 from branches/5.0:
      
      trx_rollback_for_mysql(): Do not set trx->sess back to NULL.
      This bug was introduced in r1046.
    ------------------------------------------------------------
    revno: 0.1.369
    committer: heikki
    timestamp: Thu 2006-11-23 12:55:55 +0000
    message:
      Merge r1046 from branches/5.0:
      
      branches/5.0: trx_rollback_for_mysql(): Ensure that trx->sess is non-NULL
      when calling trx_general_rollback_for_mysql().  This removes a segmentation
      fault when rolling back a prepared transaction in XA recovery.  (Bug #21468)
    ------------------------------------------------------------
    revno: 0.1.368
    committer: marko
    timestamp: Thu 2006-11-23 12:25:51 +0000
    message:
      buf_page_init_for_read(): Correct the indentation.
    ------------------------------------------------------------
    revno: 0.1.367
    committer: marko
    timestamp: Tue 2006-11-21 13:56:18 +0000
    message:
      Port r1034 from branches/zip: Remove some instrumentation and reduce
      the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
    ------------------------------------------------------------
    revno: 0.1.366
    committer: marko
    timestamp: Tue 2006-11-21 13:53:48 +0000
    message:
      Port r983 from branches/zip: Enclose some more debug code in
      #ifdef UNIV_SYNC_DEBUG to allow the code to be built
      with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.365
    committer: marko
    timestamp: Tue 2006-11-21 13:53:05 +0000
    message:
      Port r972 from branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
      The code was previously unused in non-debug builds.
    ------------------------------------------------------------
    revno: 0.1.364
    committer: marko
    timestamp: Thu 2006-11-16 15:05:23 +0000
    message:
      Merge a change from MySQL AB.
      
      ChangeSet
        2006/11/10 17:22:43+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
        Bug #24190  many exportable definitions of field_in_record_is_null
        
        mysql had several(2) exportable definitions of field_in_record_is_null function.
        
        Fixed with adding static.
      
      storage/innobase/handler/ha_innodb.cc
        2006/11/10 17:22:36+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi +1 -1
        made static
    ------------------------------------------------------------
    revno: 0.1.363
    committer: osku
    timestamp: Fri 2006-11-10 10:39:00 +0000
    message:
      Remove duplicate printing of row lock counts in SHOW INNODB STATUS, and in
      the remaining print, add a comma so it doesn't get combined with the heap
      size. Both problems were introduced in r383.
    ------------------------------------------------------------
    revno: 0.1.362
    committer: marko
    timestamp: Fri 2006-11-10 10:09:41 +0000
    message:
      Minor cleanup.
      
      ha_innobase::rnd_pos(): Use correct format in DBUG_PRINT statements.
      
      buf_page_release(): Remove the local variable buf_fix_count.
    ------------------------------------------------------------
    revno: 0.1.361
    committer: marko
    timestamp: Thu 2006-11-09 16:50:10 +0000
    message:
      Merge changes from MySQL AB to innodb_mysql.result.
    ------------------------------------------------------------
    revno: 0.1.360
    committer: marko
    timestamp: Thu 2006-11-09 12:52:45 +0000
    message:
      Introduce #define UNIV_LIST_DEBUG for enabling the debug code in
      UT_LIST_REMOVE_CLEAR().
    ------------------------------------------------------------
    revno: 0.1.359
    committer: marko
    timestamp: Wed 2006-11-08 14:31:47 +0000
    message:
      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).
    ------------------------------------------------------------
    revno: 0.1.358
    committer: marko
    timestamp: Wed 2006-11-08 13:33:24 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.357
    committer: marko
    timestamp: Wed 2006-11-08 12:49:15 +0000
    message:
      Reduce buffer pool mutex contention under >= 4 big concurrent
      CPU-bound SELECT queries.  (Bug #15815)
      
      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.
    ------------------------------------------------------------
    revno: 0.1.356
    committer: osku
    timestamp: Fri 2006-11-03 11:44:29 +0000
    message:
      Merge changes from MySQL to get the code compiling again:
      
       Change return type of ha_innobase::info to int.
      
       plug.in: Add MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS.
    ------------------------------------------------------------
    revno: 0.1.355
    committer: marko
    timestamp: Mon 2006-10-30 13:15:46 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.354
    committer: marko
    timestamp: Mon 2006-10-30 08:46:53 +0000
    message:
      sync_thread_add_level(): When level == SYNC_TREE_NODE, allow the latching
      order to be violated if the thread holds dict_operation_lock, whose level is
      SYNC_DICT_OPERATION.  This removes the assertion failure of TRUNCATE TABLE
      #ifdef UNIV_SYNC_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.353
    committer: marko
    timestamp: Thu 2006-10-26 11:37:56 +0000
    message:
      innodb.result, innodb_mysql.result: Merge changes from MySQL AB:
      
      ChangeSet
        2006/10/09 19:51:41+04:00 gkodinov@macbook.local
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         Currently SQL_BIG_RESULT is checked only at compile time.
         However, additional optimizations may take place after
         this check that change the sort method from 'filesort'
         to sorting via index. As a result the actual plan
         executed is not the one specified by the SQL_BIG_RESULT
         hint. Similarly, there is no such test when executing
         EXPLAIN, resulting in incorrect output.
         The patch corrects the problem by testing for
         SQL_BIG_RESULT both during the explain and execution
         phases.
    ------------------------------------------------------------
    revno: 0.1.352
    committer: osku
    timestamp: Thu 2006-10-19 10:43:14 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.351
    committer: marko
    timestamp: Wed 2006-10-18 11:24:58 +0000
    message:
      dict_print_info_on_foreign_key_in_create_format(): Use ut_print_name()
      instead of passing the wrong length to ut_print_namel().  (Bug #23368)
      
      ut_print_name(), ut_print_namel(): Document the special treatment of '/'.
      
      ut_print_namel(): Replace strchr() with memchr(), as the string might
      not be NUL-terminated.
    ------------------------------------------------------------
    revno: 0.1.350
    committer: marko
    timestamp: Mon 2006-10-16 12:19:36 +0000
    message:
      ha_innobase::store_lock(): When downgrading table locks, do not
      check thd->in_lock_tables but test if
      thd->lex->sql_command == SQLCOM_LOCK_TABLES
      instead.  Otherwise, stored functions will use table locks.  (Bug #18077)
      
      This patch is from Heikki.
    ------------------------------------------------------------
    revno: 0.1.349
    committer: marko
    timestamp: Mon 2006-10-16 07:29:59 +0000
    message:
      btr_page_get_father_for_rec(): Remove bogus comment about removed dict_tree_t.
    ------------------------------------------------------------
    revno: 0.1.348
    committer: marko
    timestamp: Thu 2006-10-12 10:26:25 +0000
    message:
      Send all SHOW ENGINE INNODB STATUS information to the client also when
      UNIV_SYNC_DEBUG is defined.
      
      rw_lock_list_print_info(): Add parameter "file".
      
      mutex_list_print_info(): Add parameter "file".  Make the function static.
    ------------------------------------------------------------
    revno: 0.1.347
    committer: marko
    timestamp: Tue 2006-10-10 09:58:47 +0000
    message:
      mem0dbg.c: Enclose some more function definitions in #ifdef UNIV_MEM_DEBUG.
      The declarations were already enclosed in #ifdef UNIV_MEM_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.346
    committer: marko
    timestamp: Tue 2006-10-10 08:27:08 +0000
    message:
      Enclose some mem debug functions in #ifdef UNIV_DEBUG or #ifdef UNIV_MEM_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.345
    committer: marko
    timestamp: Mon 2006-10-09 11:47:02 +0000
    message:
      dict_index_get_if_in_cache(): Enclose in #ifdef UNIV_DEBUG.
      Replace the search loop with a call to dict_index_find_on_id_low().
    ------------------------------------------------------------
    revno: 0.1.344
    committer: marko
    timestamp: Mon 2006-10-09 09:45:47 +0000
    message:
      mem0pool.c: Remove obsolete comments about the dictionary cache being
      managed with an LRU algorithm.
    ------------------------------------------------------------
    revno: 0.1.343
    committer: marko
    timestamp: Mon 2006-10-09 09:08:50 +0000
    message:
      Merge changes from MySQL AB, and remove two compilation warnings.
      
      ha_innodb.cc: innodb_mutex_show_status(): Add (ulong) casts to
      ulonglong expressions being passed to fprintf %lu.  The warnings
      were apparently introduced by MySQL AB developers.
      
      mysql_declare_plugin(innobase): Add PLUGIN_LICENSE_GPL.
      
      have_innodb.inc: Merge changes from MySQL AB.
    ------------------------------------------------------------
    revno: 0.1.342
    committer: marko
    timestamp: Fri 2006-10-06 19:51:33 +0000
    message:
      univ.i: Indent some of the directives, and remove conditions about Windows
      in the "#else" branch of "#if building on Windows".
    ------------------------------------------------------------
    revno: 0.1.341
    committer: marko
    timestamp: Thu 2006-10-05 11:00:06 +0000
    message:
      Merge changes from MySQL AB.
      
      dict_col_copy_type_noninline(): Remove the return statement.
      Some compilers do not allow return expressions of void type.
      
      innobase_start_or_create_for_mysql(): Do not cap srv_max_threads to 1000
      on Windows.
      
      Makefile.am (EXTRA_DIST): Add plug.in
    ------------------------------------------------------------
    revno: 0.1.340
    committer: marko
    timestamp: Thu 2006-10-05 09:07:49 +0000
    message:
      Merge changes to mysql-test from MySQL AB.
      
      innodb_unsafe_binlog, innodb_handler, innodb-big, innodb_cache-master,
      innodb-deadlock, innodb_cache: Remove.  These have been renamed in the
      MySQL tree.
      
      innodb_mysql: Update.
    ------------------------------------------------------------
    revno: 0.1.339
    committer: marko
    timestamp: Tue 2006-10-03 12:46:23 +0000
    message:
      storage/innobase/handler: Merge changes from MySQL AB:
      
      ChangeSet
        2006/09/30 18:44:42-07:00 brian@zim.(none)
        Merge zim.(none):/home/brian/mysql/merge-5.1
        into  zim.(none):/home/brian/mysql/arch-5.1
      
      ChangeSet
        2006/09/30 12:49:46-07:00 brian@zim.(none)
        This patch adds handlerton passing to functions. NDB and Innodb still require a global hanlderton in the main code due to the nature of the sql_cache call back function (should be solveable... another patch).
        Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call.
      
      ChangeSet
        2006/09/29 17:19:02-07:00 brian@zim.(none)
        This removes the passing of global hton to engine instance.
      
      ChangeSet
        2006/09/28 13:22:56+02:00 gbichot@dl145h.mysql.com
        Merge gbichot@bk-internal:/home/bk/mysql-5.1-arch
        into  dl145h.mysql.com:/users/gbichot/mysql-5.1-arch
      
      ChangeSet
        2006/09/28 13:19:43+02:00 gbichot@dl145h.mysql.com
        In the handlerton, cursor creation function don't have an argument
        and so the engine calls current_thd to derive transaction information;
        instead we now pass THD to those functions, it looks more logical
        (it makes the implicit current_thd parameter more visible).
        Approved by Brian and Monty.
      
      ChangeSet
        2006/09/26 22:51:53-07:00 brian@zim.(none)
        Merge zim.(none):/home/brian/mysql/merge-5.1
        into  zim.(none):/home/brian/mysql/arch-5.1
    ------------------------------------------------------------
    revno: 0.1.338
    committer: marko
    timestamp: Tue 2006-10-03 12:20:10 +0000
    message:
      setup.sh: Once more.  Remember that the glob expansion works relative to
      the current directory.
    ------------------------------------------------------------
    revno: 0.1.337
    committer: marko
    timestamp: Tue 2006-10-03 12:17:28 +0000
    message:
      setup.sh: Correctly link the test files.  This was broken in r882.
    ------------------------------------------------------------
    revno: 0.1.336
    committer: marko
    timestamp: Mon 2006-10-02 09:02:03 +0000
    message:
      Make storage/innobase the working directory of Subversion.
    ------------------------------------------------------------
    revno: 0.1.335
    committer: marko
    timestamp: Tue 2006-09-26 11:37:58 +0000
    message:
      row_purge_parse_undo_rec(): Correct a faulty condition.  Luckily, this
      bug would only surface if the InnoDB SQL interpreter were used for
      updating fixed-length columns.  Currently (as the UPD_NODE_NO_SIZE_CHANGE
      flag is never set), cmpl_info can only be 0 or UPD_NODE_NO_ORD_CHANGE.
      Luckily, UPD_NODE_NO_ORD_CHANGE is 1, and the condition was simplified
      to !cmpl_info.
    ------------------------------------------------------------
    revno: 0.1.334
    committer: marko
    timestamp: Tue 2006-09-26 07:08:48 +0000
    message:
      mtr_print(), mtr_memo_contains(): Disable unless #ifdef UNIV_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.333
    committer: marko
    timestamp: Fri 2006-09-22 06:48:56 +0000
    message:
      row_build_index_entry(): Declare variables in the beginning of a block,
      to comply with ISO/IEC 9899:1989.  This error was made in r834.  (Bug #22575)
    ------------------------------------------------------------
    revno: 0.1.332
    committer: osku
    timestamp: Thu 2006-09-21 09:44:03 +0000
    message:
      export.sh: Adapt to ha_innodb now living in storage/innobase in the MySQL
      tree.
    ------------------------------------------------------------
    revno: 0.1.331
    committer: osku
    timestamp: Wed 2006-09-20 11:05:12 +0000
    message:
      row_upd_sec_step(): Fix false comment.
    ------------------------------------------------------------
    revno: 0.1.330
    committer: marko
    timestamp: Wed 2006-09-20 10:52:02 +0000
    message:
      Merge changes from MySQL AB to the innodb_mysql test.
    ------------------------------------------------------------
    revno: 0.1.329
    committer: marko
    timestamp: Wed 2006-09-20 09:38:09 +0000
    message:
      Merge code from MySQL AB:
      
      Make innobase_hton a pointer.
    ------------------------------------------------------------
    revno: 0.1.328
    committer: marko
    timestamp: Wed 2006-09-20 08:52:00 +0000
    message:
      ha_innobase::start_stmt(): Remove the check for
      prebuilt->stored_select_lock_type being LOCK_X or LOCK_S.
      This would cause false alarms with INSERT ... SELECT, which would use
      LOCK_NONE in innodb_locks_unsafe_for_binlog mode.  (Bug #10746)
    ------------------------------------------------------------
    revno: 0.1.327
    committer: osku
    timestamp: Wed 2006-09-20 06:41:30 +0000
    message:
      Split long lines with [] operators better.
    ------------------------------------------------------------
    revno: 0.1.326
    committer: osku
    timestamp: Tue 2006-09-19 07:22:21 +0000
    message:
      Revamp the line splits done in r763 and r764 that can now be done better,
      thanks to r826.
    ------------------------------------------------------------
    revno: 0.1.325
    committer: marko
    timestamp: Tue 2006-09-19 05:55:10 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.324
    committer: osku
    timestamp: Tue 2006-09-19 04:36:56 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.323
    committer: marko
    timestamp: Mon 2006-09-18 12:02:43 +0000
    message:
      Change the recently introduced ulint bit-fields to unsigned.
    ------------------------------------------------------------
    revno: 0.1.322
    committer: marko
    timestamp: Mon 2006-09-18 11:51:38 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.321
    committer: marko
    timestamp: Mon 2006-09-18 10:31:51 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.320
    committer: osku
    timestamp: Mon 2006-09-18 09:46:05 +0000
    message:
      Add dict_table_get_col_name() in preparation for getting rid of
      dict_col_t::name, and use it instead of col->name everywhere.
    ------------------------------------------------------------
    revno: 0.1.319
    committer: marko
    timestamp: Mon 2006-09-18 08:50:31 +0000
    message:
      Add dict_col_get_clust_pos_noninline(), which was forgotten from r820.
    ------------------------------------------------------------
    revno: 0.1.318
    committer: marko
    timestamp: Mon 2006-09-18 07:14:41 +0000
    message:
      page_align(ptr): New utility function to replace
      ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
    ------------------------------------------------------------
    revno: 0.1.317
    committer: heikki
    timestamp: Fri 2006-09-15 12:43:40 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.316
    committer: marko
    timestamp: Fri 2006-09-15 11:04:01 +0000
    message:
      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".
    ------------------------------------------------------------
    revno: 0.1.315
    committer: osku
    timestamp: Fri 2006-09-15 07:37:10 +0000
    message:
      Make dict_index_find_cols() always succeed.
    ------------------------------------------------------------
    revno: 0.1.314
    committer: osku
    timestamp: Fri 2006-09-15 07:32:15 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.313
    committer: sunny
    timestamp: Fri 2006-09-15 06:09:20 +0000
    message:
      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).
    ------------------------------------------------------------
    revno: 0.1.312
    committer: marko
    timestamp: Thu 2006-09-14 20:42:46 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.311
    committer: marko
    timestamp: Thu 2006-09-14 20:37:15 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.310
    committer: marko
    timestamp: Thu 2006-09-14 13:10:46 +0000
    message:
      Turn ha_innobase::build_template() from a non-static member function
      to a static plain function.
    ------------------------------------------------------------
    revno: 0.1.309
    committer: marko
    timestamp: Thu 2006-09-14 12:06:43 +0000
    message:
      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().
    ------------------------------------------------------------
    revno: 0.1.308
    committer: marko
    timestamp: Thu 2006-09-14 11:51:34 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.307
    committer: marko
    timestamp: Thu 2006-09-14 11:49:09 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.306
    committer: marko
    timestamp: Thu 2006-09-14 11:46:47 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.305
    committer: osku
    timestamp: Thu 2006-09-14 09:19:41 +0000
    message:
      btr0pcur.h: Change FIXME to TODO.
    ------------------------------------------------------------
    revno: 0.1.304
    committer: osku
    timestamp: Thu 2006-09-14 09:07:54 +0000
    message:
      Remove more remnants of mixed indexes.
    ------------------------------------------------------------
    revno: 0.1.303
    committer: marko
    timestamp: Wed 2006-09-13 18:41:13 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.302
    committer: marko
    timestamp: Wed 2006-09-13 11:35:34 +0000
    message:
      mysql_declare_plugin(innobase): Initialize the fields
      reserved1 (apparently the system variables) and
      reserved2 (apparently the configuration options).
    ------------------------------------------------------------
    revno: 0.1.301
    committer: marko
    timestamp: Tue 2006-09-12 14:06:46 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.300
    committer: marko
    timestamp: Mon 2006-09-11 08:58:43 +0000
    message:
      Merge code cleanup from MySQL AB:
      
      ChangeSet
        2006/09/07 08:23:58-07:00 brian@zim.(none)
        Moves Innodb handler to the Innodb storage directory.
      
      storage/innobase/handler/ha_innodb.cc
        2006/09/07 08:23:53-07:00 brian@zim.(none) +2 -3
        Adjusted include files, also disabled replication code which was not
        being used.
      
      ChangeSet
        2006/09/07 12:34:12-07:00 brian@zim.(none)
        Fix for a compile problem in Windows.
      
      storage/innobase/handler/ha_innodb.cc
        2006/09/07 12:34:10-07:00 brian@zim.(none) +0 -28
        Removed some dead code (Marko approved)
    ------------------------------------------------------------
    revno: 0.1.299
    committer: marko
    timestamp: Mon 2006-09-11 08:51:46 +0000
    message:
      Move ha_innodb.cc and ha_innodb.h from sql to storage/innobase/handler.
      This was submitted by Marko to MySQL AB and merged to the MySQL tree by
      Brian Aker in the following two changesets:
      
      ChangeSet
        2006/09/07 08:23:58-07:00 brian@zim.(none)
        Moves Innodb handler to the Innodb storage directory.
      
      ChangeSet
        2006/09/07 16:17:16-07:00 brian@zim.(none)
        Warning fixes for Windows, and an include fix for Windows for Innodb.
      
      storage/innobase/CMakeLists.txt
        2006/09/07 16:17:13-07:00 brian@zim.(none) +6 -1
        Fixed includes for Windows
    ------------------------------------------------------------
    revno: 0.1.298
    committer: marko
    timestamp: Wed 2006-09-06 09:23:47 +0000
    message:
      On data tuples being updated or inserted (but not searched for),
      set type->len to the prefix_len of the index column, if it is a prefix index.
      This should prevent bugs similar to Bug #21638 from occurring.
      
      dict_index_copy_types(): Set type->len to prefix_len if prefix_len != 0.
      
      row_build_index_entry(): Set type->len to prefix_len if prefix_len != 0,
      also when the column in the tuple is SQL NULL, because the type information
      may be used for interpreting other records during btr_page_reorganize().
    ------------------------------------------------------------
    revno: 0.1.297
    committer: marko
    timestamp: Tue 2006-09-05 19:29:18 +0000
    message:
      Merge changes to the "innodb_mysql" test from MySQL AB
    ------------------------------------------------------------
    revno: 0.1.296
    committer: marko
    timestamp: Tue 2006-09-05 19:25:38 +0000
    message:
      Merge change from MySQL AB:
      
      ChangeSet
        2006/08/23 15:12:42-07:00 brian@zim.(none)
        This is a cleanup of warnings that windows is complaining about.
      
      sql/ha_innodb.cc
        2006/08/23 15:12:39-07:00 brian@zim.(none) +0 -1
        Removed unused variables
    ------------------------------------------------------------
    revno: 0.1.295
    committer: marko
    timestamp: Tue 2006-09-05 12:18:27 +0000
    message:
      Merge changes from MySQL AB to the innodb_mysql test files.
    ------------------------------------------------------------
    revno: 0.1.294
    committer: marko
    timestamp: Tue 2006-09-05 11:43:42 +0000
    message:
      ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
      when prefix_len is specified.  Otherwise, btr_page_reorganize() during
      insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
    ------------------------------------------------------------
    revno: 0.1.293
    committer: marko
    timestamp: Mon 2006-09-04 19:18:52 +0000
    message:
      setup.sh: Do not bail out if BUILD/compile-innodb* exist already.
    ------------------------------------------------------------
    revno: 0.1.292
    committer: marko
    timestamp: Mon 2006-09-04 10:48:23 +0000
    message:
      Merge code from MySQL AB:
      
      ChangeSet
        2006/08/25 13:31:15-07:00 brian@zim.(none)
        Cleanup of unused variables.
      
      sql/ha_innodb.h
        2006/08/25 13:31:11-07:00 brian@zim.(none) +0 -6
        Unused variable
    ------------------------------------------------------------
    revno: 0.1.291
    committer: marko
    timestamp: Mon 2006-09-04 10:45:05 +0000
    message:
      Merge code from MySQL AB:
      
      ChangeSet
        2006/08/22 16:24:12-07:00 brian@zim.(none)
        This changest:
        Plugins now when compiled or not compiled work correctly with status variables.
        Status variables from plugins now set their own names (removed bit where plugin name was pre-appended this broke Innodb and Cluster)
        A few Makefile cleanups.
      
      sql/ha_innodb.cc
        2006/08/22 16:24:08-07:00 brian@zim.(none) +16 -6
        Cleanup to make status variables directly in engine
    ------------------------------------------------------------
    revno: 0.1.290
    committer: marko
    timestamp: Mon 2006-09-04 10:40:43 +0000
    message:
      ha_innodb.cc: Adjust the comment related to r784.  Apparently it was
      changed after review on the MySQL side.
    ------------------------------------------------------------
    revno: 0.1.289
    committer: marko
    timestamp: Fri 2006-09-01 08:29:44 +0000
    message:
      Merge a patch from MySQL AB:
      
      ChangeSet@1.2288, 2006-08-29 15:35:05+02:00, guilhem@gbichot3.local +2 -0
        Fix for BUG#20866 "show table status on innodb raises assertion"
        and its duplicate BUG#19057 "Test 'rpl_row_func003' fails on SuSE SLES9 x86".
        It was an assertion failure, only in debug builds, not present
        in released versions (nothing to document).
        It happened when doing SHOW TABLE STATUS on an InnoDB table
        having an auto_increment column, right after creating the table.
      
        sql/ha_innodb.cc@1.288, 2006-08-29 15:35:02+02:00, guilhem@gbichot3.local +7 -1
          Before a val_() calls on a Field object, if that field was not marked
          for read, we need to mark it. This is explained here:
          ChangeSet 1.2119.601.1 2006/06/04 18:52:22 monty@mysql.com
          quoting the changeset's comment:
          
            - If a handler needs to call Field->val() or Field->store() on columns
              that are not used in the query, one should install a temporary
              all-columns-used map while doing so. For this, we provide the following
              functions:
            
              my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
              field->val();
              dbug_tmp_restore_column_map(table->read_set, old_map);
            
              and similar for the write map:
            
              my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->write_set);
              field->val();
              dbug_tmp_restore_column_map(table->write_set, old_map);
            
              If this is not done, you will sooner or later hit a DBUG_ASSERT
              in the field store() / val() functions.
              (For not DBUG binaries, the dbug_tmp_restore_column_map() and
              dbug_tmp_restore_column_map() are inline dummy functions and should
              be optimized away be the compiler).
          
          Note that I verified that the bug didn't exist in non-debug builds.
    ------------------------------------------------------------
    revno: 0.1.288
    committer: marko
    timestamp: Fri 2006-09-01 08:19:47 +0000
    message:
      Revert the hunk on ha_innobase::innobase_read_and_init_auto_inc()
      that was accidentally committed in r782.
    ------------------------------------------------------------
    revno: 0.1.287
    committer: heikki
    timestamp: Thu 2006-08-31 19:52:25 +0000
    message:
      Fix bug #21784 of a crash in DROP TABLE with concurrent queries on the table
    ------------------------------------------------------------
    revno: 0.1.286
    committer: heikki
    timestamp: Thu 2006-08-31 19:19:22 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.285
    committer: osku
    timestamp: Thu 2006-08-31 11:01:15 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.284
    committer: marko
    timestamp: Thu 2006-08-31 10:47:31 +0000
    message:
      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.
      
      row_build(): Remove type==ROW_COPY_ALSO_EXTERNALS, because it is never
      passed.
    ------------------------------------------------------------
    revno: 0.1.283
    committer: marko
    timestamp: Thu 2006-08-31 09:36:45 +0000
    message:
      compile-innodb, compile-innodb-debug:
      Replace max-no-ndb compilation flags with --with-plugin=innobase.
    ------------------------------------------------------------
    revno: 0.1.282
    committer: marko
    timestamp: Thu 2006-08-31 07:26:30 +0000
    message:
      Adapt the InnoDB build scripts to r772.
      
      setup.sh: Create symbolic links to the build scripts instead of copying them.
    ------------------------------------------------------------
    revno: 0.1.281
    committer: marko
    timestamp: Wed 2006-08-30 20:29:01 +0000
    message:
      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.
      
      Makefile.i, Makefile.am: Change directory paths.
      
      configure.in: Delete.
      
      plug.in: New file, included from the top-level configure.in.
      
      setup.sh: Replace configure.in with plug.in.
    ------------------------------------------------------------
    revno: 0.1.280
    committer: marko
    timestamp: Tue 2006-08-29 12:11:56 +0000
    message:
      Remove dict_col_t::aux, which was only used when copying an index definition
      to the data dictionary cache.
    ------------------------------------------------------------
    revno: 0.1.279
    committer: marko
    timestamp: Tue 2006-08-29 08:27:56 +0000
    message:
      Split lines before binary operators, not after them.
    ------------------------------------------------------------
    revno: 0.1.278
    committer: marko
    timestamp: Tue 2006-08-29 07:33:51 +0000
    message:
      Split lines before an opening parenthesis, not after one.
      
      Replace some printf(...) in debug builds with fprintf(stderr, ...).
    ------------------------------------------------------------
    revno: 0.1.277
    committer: marko
    timestamp: Mon 2006-08-28 17:42:45 +0000
    message:
      Reindent the code base (except for ha_innodb.{cc,h} and generated parser
      and lexer files).  From now on, the following Emacs cc-mode settings apply
      when indenting C function bodies in InnoDB:
      
      (setq c-basic-offset 8)
      (setq c-label-minimum-indentation 0)
      (add-to-list 'c-offsets-alist '(c . 0))
      (add-to-list 'c-offsets-alist '(label . [0]))
      
      The indentation rules for function declarations still have not been
      formalized, and they must be formatted manually.
      
      Try to limit all lines to at most 79 characters (assuming TAB stops every
      8 characters) by splitting lines before opening parenthesis, or at
      string constants.
      
      Fix some grammar mistakes in diagnostic output:
       match to, match with -> match
       found from -> found in
       trying rename -> trying to rename
      
      Fix an error in page_check_dir(): it said "supremum not pointed to"
      when the infimum was not pointed to.
      
      Enclose commented-out code snippets in #if 0 ... #endif instead of /* ... */.
      Add (void*) casts to some %p parameters in fprintf() calls.  Try to
      split lines before a binary operator, not after one.  (These three fixes
      were not made everywhere.)
    ------------------------------------------------------------
    revno: 0.1.276
    committer: osku
    timestamp: Mon 2006-08-28 07:07:13 +0000
    message:
      page_validate(): Add missing space to error print, for real this time,
      following an error in r761.
    ------------------------------------------------------------
    revno: 0.1.275
    committer: osku
    timestamp: Mon 2006-08-28 06:15:42 +0000
    message:
      btr_cur_search_to_nth_level(): Document where cursor is left at in
      PAGE_CUR_LE searches.
      
      page_validate(): Add missing space to error print.
    ------------------------------------------------------------
    revno: 0.1.274
    committer: marko
    timestamp: Tue 2006-08-22 07:20:52 +0000
    message:
      Merge a patch from MySQL AB (Mats Kindal):
      
      Lock and unlock prepare_commit_mutex under the same conditions.
    ------------------------------------------------------------
    revno: 0.1.273
    committer: marko
    timestamp: Thu 2006-08-17 12:46:19 +0000
    message:
      dfield_print_raw(): Make static.  Print at most 1000 bytes to avoid
      excessive space usage of the error log.
    ------------------------------------------------------------
    revno: 0.1.272
    committer: marko
    timestamp: Thu 2006-08-17 08:51:42 +0000
    message:
      srv_master_thread(): Add OS_THREAD_DUMMY_RETURN to get rid of a compiler
      warning "no return value from a function returning non-void".
    ------------------------------------------------------------
    revno: 0.1.271
    committer: osku
    timestamp: Wed 2006-08-16 08:01:37 +0000
    message:
      Remove all traces of the obsolete concept of replicate spaces.
    ------------------------------------------------------------
    revno: 0.1.270
    committer: marko
    timestamp: Mon 2006-08-14 11:18:18 +0000
    message:
      row_vers_build_for_semi_consistent_read(): rec_trx_id was uninitialized
      in a comparison.  Initialize it.
    ------------------------------------------------------------
    revno: 0.1.269
    committer: osku
    timestamp: Mon 2006-08-14 10:36:58 +0000
    message:
      btr_cur_get_page(): Remove buggy assertion.
    ------------------------------------------------------------
    revno: 0.1.268
    committer: marko
    timestamp: Mon 2006-08-14 07:52:28 +0000
    message:
      innodb.result: Adjust Innodb_rows_inserted and Innodb_rows_updated
      to reflect the deleted statements in r420, which somehow reappeared
      in the MySQL tree.
    ------------------------------------------------------------
    revno: 0.1.267
    committer: marko
    timestamp: Mon 2006-08-14 07:34:26 +0000
    message:
      Merge code from MySQL:
      
      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.
    ------------------------------------------------------------
    revno: 0.1.266
    committer: marko
    timestamp: Fri 2006-08-11 09:20:10 +0000
    message:
      Merge changes to test files from MySQL AB.  The suite innodb.test fails
      due to this MySQL change to row0mysql.c not being merged:
      
      http://mysql.bkbits.net:8080/mysql-5.1/diffs/storage/innobase/row/row0mysql.c@1.126.1.1
    ------------------------------------------------------------
    revno: 0.1.265
    committer: marko
    timestamp: Fri 2006-08-11 08:44:10 +0000
    message:
      ha_innobase::delete_all_rows(): Correct an error introduced in r705:
      Replace the local variable "trx" with "prebuilt->trx".
      
      Also, replace the second invocation of the macro current_thd with
      the local variable thd.
    ------------------------------------------------------------
    revno: 0.1.264
    committer: marko
    timestamp: Fri 2006-08-11 08:08:54 +0000
    message:
      Merge a change from MySQL AB:
      
      # ChangeSet
      #   2006/07/30 05:16:08+04:00 aivanov@mysql.com
      #   Make innodb_thread_concurrency 0 by default.
      #    Fixing test result.
      #
      # mysql-test/r/innodb.result
      #   2006/07/30 05:16:05+04:00 aivanov@mysql.com +1 -1
      #   Make innodb_thread_concurrency 0 by default.
      #    Fixing test result.
    ------------------------------------------------------------
    revno: 0.1.263
    committer: marko
    timestamp: Fri 2006-08-11 08:05:40 +0000
    message:
      Merge a change from MySQL AB (originally implemented by Marko
      in the 5.0 tree and now merged to the 5.1 tree):
      
      # ChangeSet
      #   2006/07/29 07:17:33+04:00 aivanov@mysql.com
      #   Make innodb_flush_log_at_trx_commit a settable global variable.
      #
      # sql/ha_innodb.cc
      #   2006/07/29 07:17:29+04:00 aivanov@mysql.com +1 -3
      #   Remove innobase_flush_log_at_trx_commit
      #   (set srv_flush_log_at_trx_commit directly).
      #
      # sql/ha_innodb.h
      #   2006/07/29 07:17:29+04:00 aivanov@mysql.com +1 -1
      #   Remove innobase_flush_log_at_trx_commit.
      #   Declare srv_flush_log_at_trx_commit.
      #
      # storage/innobase/include/srv0srv.h
      #   2006/07/29 07:17:30+04:00 aivanov@mysql.com +1 -1
      #   Change the type of srv_flush_log_at_trx_commit.
      #
      # storage/innobase/srv/srv0srv.c
      #   2006/07/29 07:17:30+04:00 aivanov@mysql.com +1 -1
      #   Change the type of srv_flush_log_at_trx_commit.
      #
    ------------------------------------------------------------
    revno: 0.1.262
    committer: marko
    timestamp: Fri 2006-08-11 08:02:26 +0000
    message:
      Merge a change from MySQL AB:
      
      # ChangeSet
      #   2006/07/28 21:27:01+04:00 sergefp@mysql.com
      #   BUG#14940 "MySQL choose wrong index", v.2
      # mysql-test/r/innodb_gis.result
      #   2006/07/28 21:26:56+04:00 sergefp@mysql.com +15 -15
      #   BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
    ------------------------------------------------------------
    revno: 0.1.261
    committer: heikki
    timestamp: Tue 2006-08-08 11:38:34 +0000
    message:
      Remove redundant check_trx_exists() and ut_a() from r701,
      as suggested by Marko
    ------------------------------------------------------------
    revno: 0.1.260
    committer: marko
    timestamp: Tue 2006-08-08 11:33:49 +0000
    message:
      setup.sh: Link also CMakeLists.txt.
    ------------------------------------------------------------
    revno: 0.1.259
    committer: marko
    timestamp: Tue 2006-08-08 10:54:57 +0000
    message:
      Correct all URLs pointing to the MySQL manual. (Bug #21467)
    ------------------------------------------------------------
    revno: 0.1.258
    committer: heikki
    timestamp: Mon 2006-08-07 15:39:40 +0000
    message:
      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
    ------------------------------------------------------------
    revno: 0.1.257
    committer: heikki
    timestamp: Mon 2006-08-07 15:23:32 +0000
    message:
      Fix Bug #20493 : we must prepare prebuilt->trx to point to the trx of this thd before using it
    ------------------------------------------------------------
    revno: 0.1.256
    committer: heikki
    timestamp: Mon 2006-08-07 15:18:22 +0000
    message:
      Fix Bug#20213 and its duplicates: stress test crashes of InnoDB-5.1
    ------------------------------------------------------------
    revno: 0.1.255
    committer: marko
    timestamp: Wed 2006-08-02 08:01:41 +0000
    message:
      Remove non-varying variable ibuf->meter and related constant IBUF_THRESHOLD.
    ------------------------------------------------------------
    revno: 0.1.254
    committer: marko
    timestamp: Wed 2006-08-02 06:52:44 +0000
    message:
      After ut_print_timestamp(), always display "  InnoDB:" (note two spaces).
    ------------------------------------------------------------
    revno: 0.1.253
    committer: osku
    timestamp: Tue 2006-08-01 10:20:14 +0000
    message:
      ut_dbg_assertion_failed(): Print space between timestamp and start of error
      message.
    ------------------------------------------------------------
    revno: 0.1.252
    committer: marko
    timestamp: Mon 2006-07-31 11:17:32 +0000
    message:
      innodb.result: Set the default value of innodb_thread_concurrency to 8.
      This has already been changed in the MySQL source code tree.
    ------------------------------------------------------------
    revno: 0.1.251
    committer: marko
    timestamp: Mon 2006-07-31 11:05:14 +0000
    message:
      row_rename_table_for_mysql(): Restore the row_mysql_unlock_data_dictionary()
      call that was accidentally removed in r674.
    ------------------------------------------------------------
    revno: 0.1.250
    committer: marko
    timestamp: Fri 2006-07-28 10:17:55 +0000
    message:
      ha_innobase::start_stmt(): patch from Heikki:
      Do not call read_view_close_for_mysql().  (Bug #19834)
    ------------------------------------------------------------
    revno: 0.1.249
    committer: marko
    timestamp: Thu 2006-07-27 18:41:37 +0000
    message:
      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)
    ------------------------------------------------------------
    revno: 0.1.248
    committer: osku
    timestamp: Fri 2006-07-21 05:15:49 +0000
    message:
      Make the tablespace cache hash size 100 or 1000 times bigger. Fixes bug
      #21112.
    ------------------------------------------------------------
    revno: 0.1.247
    committer: osku
    timestamp: Fri 2006-07-21 05:14:14 +0000
    message:
      ibuf_print(): Don't print redundant information. Fixes bug #21113.
    ------------------------------------------------------------
    revno: 0.1.246
    committer: osku
    timestamp: Thu 2006-06-15 04:43:58 +0000
    message:
      Makefile.am: Add some missing files to EXTRA_DIST.
    ------------------------------------------------------------
    revno: 0.1.245
    committer: osku
    timestamp: Thu 2006-06-15 04:41:52 +0000
    message:
      mem_heap_cat(): Remove void* arithmetic.
    ------------------------------------------------------------
    revno: 0.1.244
    committer: osku
    timestamp: Thu 2006-06-15 04:41:15 +0000
    message:
      Add -Wpointer-arith to CFLAGS when using GCC.
    ------------------------------------------------------------
    revno: 0.1.243
    committer: marko
    timestamp: Tue 2006-06-13 12:50:11 +0000
    message:
      Merge changes from MySQL AB:
      
      innodb_mysql.test, innodb_mysql.result:
        Bug #16798: Uninitialized row buffer reads in ref-or-null optimizer
        Bug #12882: min/max inconsistent on empty table
        Test of behaviour with CREATE ... SELECT
       Moved from group_min_max.test:
        Bug #12672: primary key implicitly included in every innodb index
        Bug #6142: a problem with empty innodb table
        Bug #9798: group by with rollup
      
      ChangeSet@2006/06/01 21:47:15+03:00 bell@sanja.is.com.ua
      #   interface for transaction log management added to handlerton
      #   iterators creation interface added to handlerton
      ha_innodb.cc: Add get_log_status = create_iterator = NULL
      
      ChangeSet@2006/06/04 18:52:22+03:00 monty@mysql.com
      #   This changeset is largely a handler cleanup changeset (WL#3281),
      #   but includes fixes and cleanups that was found necessary while
      #   testing the handler changes
      # sql/ha_innodb.h
      #   2006/06/04 18:52:09+03:00 monty@mysql.com +6 -13
      #   Update to 'newer' table handler interface
      #   - table_flags are now ulonglong
      #   - Added reset() method
      #   - Removed not needed ha_retrieve_all_cols() and ha_retrieve_all_pk()
      #     columns.
      #   - Made build_template() a class function to be able to easier access
      #     class variables
      # sql/ha_innodb.cc
      #   2006/06/04 18:52:09+03:00 monty@mysql.com +37 -44
      #   Update to 'newer' table handler interface
      #   - Update innobase_create_handler() to new interface
      #   - Removed HA_NOT_EXACT_COUNT (not needed)
      #   - Renamed HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
      #     to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION.
      #   - Prefixed base status variables with 'stats'
      #   - Use table column bitmaps instead of ha_get_bit_in_read_set()
      #   - Added ::reset(), with code from ::extra(HA_EXTRA_RESET)
      #   - Removed HA_EXTRA_RETRIVE_ALL_COLS and HA_EXTRA_RETRIEVE_PRIMARY_KEY as
      #     the table->read_set and table->write_set bitmaps now are accurate
      
      ChangeSet@2006/06/02 22:21:32+02:00 guilhem@mysql.com
      #   First push for WL#3146 "less locking in auto_increment". It is a
      #   0-real-change patch.
      #   New prototype for get_auto_increment() (but new arguments not yet used),
      #   to be able to reserve a finite interval of auto_increment values from
      #   cooperating engines.
      #   A hint on how many values to reserve is found in
      #   handler::estimation_rows_to_insert,
      #   filled by ha_start_bulk_insert(), new wrapper around start_bulk_insert().
      #   NOTE: this patch changes nothing, for all engines.
      #   But it makes the API ready for those
      #   engines which will want to do reservation.
      #   More csets will come to complete WL#3146.
      ha_innodb.h, ha_innodb.cc: update to new prototype of get_auto_increment
      
      ChangeSet@2006/05/28 14:51:01+02:00 serg@sergbook.mysql.com
      #   handlerton cleanup:
      #   duplicate fields removed, st_mysql_storage_engine added to support
      #   run-time handlerton initialization (no compiler warnings), handler API
      #   is now tied to MySQL version, handlerton->plugin mapping added
      #   (slot-based), dummy default_hton removed, plugin-type-specific
      #   initialization generalized, built-in plugins are now initialized too,
      #   --default-storage-engine no longer needs a list of storage engines
      #   in handle_options().
      #   
      # sql/ha_innodb.h
      #   2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +1 -1
      #   handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
      #   initialize handlerton run-time to avoid compiler warnings
      #
      # sql/ha_innodb.cc
      #   2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +37 -52
      #   handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
      #   initialize handlerton run-time to avoid compiler warnings
      
      ChangeSet@2006/06/01 23:59:34+02:00 serg@serg.mylan
      #   second patch for make distcheck
      ha_innodb.cc: enclose in #ifdef WITH_INNOBASE_STORAGE_ENGINE / #endif
    ------------------------------------------------------------
    revno: 0.1.242
    committer: marko
    timestamp: Fri 2006-06-09 19:57:03 +0000
    message:
      dtype_get_max_size(): Remove UNIV_INLINE qualifier, as the function is
      defined inside a .c file rather than an .ic file.
    ------------------------------------------------------------
    revno: 0.1.241
    committer: marko
    timestamp: Fri 2006-06-09 19:54:58 +0000
    message:
      btr_cur_search_to_nth_level(): Reacquire btr_search_latch after inserting
      to the insert buffer.  This was noticed while analyzing Bug #19081, but
      this should not fix Bug #19081, since according to Heikki, btr_search_latch
      is not reserved during an insert.
    ------------------------------------------------------------
    revno: 0.1.240
    committer: marko
    timestamp: Fri 2006-06-09 10:14:20 +0000
    message:
      rw_lock_s_unlock_func(): Change a debug assertion to a production assertion
      in order to track down Bug #19081.
    ------------------------------------------------------------
    revno: 0.1.239
    committer: osku
    timestamp: Fri 2006-06-09 06:37:41 +0000
    message:
      Revert r622 (innodb_sql table) as it was decided it's not appropriate for
      the GPL InnoDB version.
    ------------------------------------------------------------
    revno: 0.1.238
    committer: osku
    timestamp: Thu 2006-06-08 06:14:09 +0000
    message:
      Don't take unnecessary 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.
    ------------------------------------------------------------
    revno: 0.1.237
    committer: osku
    timestamp: Thu 2006-06-08 06:12:29 +0000
    message:
      Add special 'innodb_sql' table that can be used to pass SQL commands to
      InnoDB through MySQL.
    ------------------------------------------------------------
    revno: 0.1.236
    committer: osku
    timestamp: Thu 2006-06-08 06:08:23 +0000
    message:
      Add support for lock waits in the SQL parser.
    ------------------------------------------------------------
    revno: 0.1.235
    committer: marko
    timestamp: Mon 2006-06-05 11:38:05 +0000
    message:
      Merge r614 from branches/5.0: Merge r32 from innodb-4.1:
      
      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.
    ------------------------------------------------------------
    revno: 0.1.234
    committer: osku
    timestamp: Fri 2006-06-02 07:22:40 +0000
    message:
      From MySQL:
      
      Rename cmakelists.txt to CMakeLists.txt.
    ------------------------------------------------------------
    revno: 0.1.233
    committer: osku
    timestamp: Fri 2006-06-02 07:10:14 +0000
    message:
      From MySQL:
      
      Fix bug #17264. For alter table on win32 for succesful operation completion
      it is used TL_WRITE(=10) lock instead of TL_WRITE_ALLOW_READ(=6), however in
      InnoDB handler TL_WRITE is lifted to TL_WRITE_ALLOW_WRITE, which causes race
      condition when several clients do alter table simultaneously.
    ------------------------------------------------------------
    revno: 0.1.232
    committer: osku
    timestamp: Thu 2006-06-01 09:25:31 +0000
    message:
      Make dict_remove_db_name non-static.
    ------------------------------------------------------------
    revno: 0.1.231
    committer: osku
    timestamp: Thu 2006-06-01 07:19:16 +0000
    message:
      SQL parser: Modify syntax so that the only valid top-level statement is a
      procedure definition, since it's the only the one that actually works.
    ------------------------------------------------------------
    revno: 0.1.230
    committer: osku
    timestamp: Wed 2006-05-31 10:20:38 +0000
    message:
      pars_sql(): Remove redundant call to strlen.
    ------------------------------------------------------------
    revno: 0.1.229
    committer: marko
    timestamp: Wed 2006-05-31 07:35:02 +0000
    message:
      Document better the "bool table_id" flags introduced in r590.
    ------------------------------------------------------------
    revno: 0.1.228
    committer: osku
    timestamp: Wed 2006-05-31 06:00:56 +0000
    message:
      trx_sig_send() always succeeds or asserts, so remove return value and adjust
      callers.
    ------------------------------------------------------------
    revno: 0.1.227
    committer: osku
    timestamp: Wed 2006-05-31 05:35:50 +0000
    message:
      Revert r598, it is incompatible with the upcoming support for lock waits in
      InnoDB's SQL parser.
    ------------------------------------------------------------
    revno: 0.1.226
    committer: osku
    timestamp: Wed 2006-05-31 05:34:18 +0000
    message:
      Changes to InnoDB's 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".
    ------------------------------------------------------------
    revno: 0.1.225
    committer: osku
    timestamp: Tue 2006-05-30 06:16:32 +0000
    message:
      que_run_threads(): Check we haven't accidentally left an active transaction
      in e.g. TRX_LOCK_WAIT state.
    ------------------------------------------------------------
    revno: 0.1.224
    committer: marko
    timestamp: Mon 2006-05-29 12:02:24 +0000
    message:
      Merge r596 from branches/5.0: 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.
    ------------------------------------------------------------
    revno: 0.1.223
    committer: osku
    timestamp: Fri 2006-05-26 11:01:39 +0000
    message:
      Disable prefetch and adaptive hash index for tables with rows over 1024
      bytes in InnoDB's SQL parser.
    ------------------------------------------------------------
    revno: 0.1.222
    committer: marko
    timestamp: Fri 2006-05-26 09:14:54 +0000
    message:
      Clean up r590:
      
      dict_scan_table_name(): Remove fallback to differently encoded name when
      the table is not found.  The encoding is handled at a higher level.
      
      innodb.result: Adjust the results for changes in the foreign key error
      messages.
    ------------------------------------------------------------
    revno: 0.1.221
    committer: osku
    timestamp: Fri 2006-05-26 05:52:59 +0000
    message:
      Add max_row_size to dict_table_t.
    ------------------------------------------------------------
    revno: 0.1.220
    committer: marko
    timestamp: Wed 2006-05-24 10:58:43 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.219
    committer: marko
    timestamp: Wed 2006-05-24 10:27:17 +0000
    message:
      Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1.
      
      ut_print_name(), ut_print_namel(): Add parameter table_id for distinguishing
      names of tables from other identifiers (names of indexes, columns and
      constraints).
      
      innobase_convert_from_table_id(), innobase_convert_from_id(),
      innobase_convert_from_filename(), innobase_get_charset(): New functions.
      
      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 the 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_string() call.
      Pass the statement to InnoDB in the connection character set
      and let InnoDB convert the identifiers to UTF-8.
    ------------------------------------------------------------
    revno: 0.1.218
    committer: osku
    timestamp: Tue 2006-05-23 11:35:58 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.217
    committer: osku
    timestamp: Tue 2006-05-23 05:49:17 +0000
    message:
      Fetch externally stored fields when using InnoDB's internal SQL parser.
    ------------------------------------------------------------
    revno: 0.1.216
    committer: marko
    timestamp: Mon 2006-05-22 08:11:38 +0000
    message:
      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() in this case, unless
      UNIV_SYNC_DEBUG is defined.  This should allow the compiler to
      generate more compact code for assertions.
    ------------------------------------------------------------
    revno: 0.1.215
    committer: osku
    timestamp: Mon 2006-05-22 07:50:05 +0000
    message:
      btr_copy_externally_stored_field(): Only set the 'offset' variable when
      needed.
    ------------------------------------------------------------
    revno: 0.1.214
    committer: osku
    timestamp: Mon 2006-05-22 07:29:00 +0000
    message:
      row_sel_store_mysql_rec(): Remove useless call to rec_get_nth_field
      when handling an externally stored column.
    ------------------------------------------------------------
    revno: 0.1.213
    committer: osku
    timestamp: Thu 2006-05-18 10:02:01 +0000
    message:
      Add ib_list_create_heap().
    ------------------------------------------------------------
    revno: 0.1.212
    committer: marko
    timestamp: Tue 2006-05-16 06:47:06 +0000
    message:
      recv_parse_or_apply_log_rec_body(): Remove bogus debug assertion.
    ------------------------------------------------------------
    revno: 0.1.211
    committer: marko
    timestamp: Fri 2006-05-12 19:25:18 +0000
    message:
      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 function.
    ------------------------------------------------------------
    revno: 0.1.210
    committer: osku
    timestamp: Fri 2006-05-12 11:13:18 +0000
    message:
      Move trx_commit_for_mysql(trx) calls in row0mysql.c before calls to
      row_mysql_unlock_data_dictionary(trx), fixing bug #19727.
    ------------------------------------------------------------
    revno: 0.1.209
    committer: marko
    timestamp: Thu 2006-05-11 16:59:18 +0000
    message:
      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.
    ------------------------------------------------------------
    revno: 0.1.208
    committer: marko
    timestamp: Thu 2006-05-11 12:44:01 +0000
    message:
      Improve the documentation of FIL_PAGE_PREV, FIL_PAGE_NEXT,
      and REC_INFO_MIN_REC_FLAG.
    ------------------------------------------------------------
    revno: 0.1.207
    committer: osku
    timestamp: Thu 2006-05-11 04:55:18 +0000
    message:
      Add mem_heap_printf() and mem_heap_cat().
    ------------------------------------------------------------
    revno: 0.1.206
    committer: osku
    timestamp: Thu 2006-05-11 04:51:52 +0000
    message:
      Add innobase_convert_string wrapper function to ha_innodb.cc, and a new file
      ha_prototypes.h.
    ------------------------------------------------------------
    revno: 0.1.205
    committer: osku
    timestamp: Wed 2006-05-10 06:37:13 +0000
    message:
      Add support for DATA_CHAR type in bound literals in the SQL parser.
    ------------------------------------------------------------
    revno: 0.1.204
    committer: marko
    timestamp: Tue 2006-05-09 08:37:14 +0000
    message:
      Port r543 from innodb/branches/5.0: Port r29 from innodb-4.1/trunk:
      
      export.sh: Generate the files to-mysql/patches/r$REV.patch
      containing the output of "svn log" and "svn diff" for each change.
    ------------------------------------------------------------
    revno: 0.1.203
    committer: osku
    timestamp: Tue 2006-05-09 06:37:11 +0000
    message:
      Increment statistic counter in ha_innobase::index_prev(). Fixes bug #19542.
    ------------------------------------------------------------
    revno: 0.1.202
    committer: marko
    timestamp: Mon 2006-05-08 09:33:28 +0000
    message:
      Merge a change from MySQL AB to Makefile.am:
      ChangeSet@2006/04/29 09:33:34-07:00 serg@sergbook.mysql.com
      make distcheck and cosmetic fixes
    ------------------------------------------------------------
    revno: 0.1.201
    committer: marko
    timestamp: Mon 2006-05-08 08:08:27 +0000
    message:
      Merge changes by MySQL AB to ha_innodb.cc:
      
      WL#2257 REFERENTIAL_CONSTRAINTS view
      WL#3201 pluggable storage engines
    ------------------------------------------------------------
    revno: 0.1.200
    committer: osku
    timestamp: Mon 2006-05-08 05:13:09 +0000
    message:
      Add support for bound ids in InnoDB's SQL parser.
    ------------------------------------------------------------
    revno: 0.1.199
    committer: marko
    timestamp: Fri 2006-05-05 15:19:32 +0000
    message:
      buf_page_io_complete(): Write to the error log if the page number or the
      space id on the disk do not match those in the 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.
    ------------------------------------------------------------
    revno: 0.1.198
    committer: marko
    timestamp: Fri 2006-05-05 12:52:08 +0000
    message:
      Port r529 of branches/5.0: Port r27 of innodb-4.1/trunk: Check the page
      trailers also after writing to disk.
      This improves the chances of diagnosing Bug #18886.
      
      os_file_check_page_trailers(): New function for checking that the two
      copies of the LSN stamped on the pages match.
      
      os_aio_simulated_handle(): Call os_file_check_page_trailers() before
      and after os_file_write().
    ------------------------------------------------------------
    revno: 0.1.197
    committer: marko
    timestamp: Fri 2006-05-05 11:39:44 +0000
    message:
      ibuf_count_get(), ibuf_counts[], ibuf_counts_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.
    ------------------------------------------------------------
    revno: 0.1.196
    committer: marko
    timestamp: Fri 2006-05-05 11:28:25 +0000
    message:
      Improve the comments of the space low address map.
    ------------------------------------------------------------
    revno: 0.1.195
    committer: osku
    timestamp: Fri 2006-05-05 07:24:03 +0000
    message:
      row_fetch_print: Handle SQL NULL values without crashing.
    ------------------------------------------------------------
    revno: 0.1.194
    committer: marko
    timestamp: Thu 2006-05-04 11:25:58 +0000
    message:
      Fix a typo in a comment.
    ------------------------------------------------------------
    revno: 0.1.193
    committer: osku
    timestamp: Sat 2006-04-29 04:43:37 +0000
    message:
      srv_master_thread(): Remove unreachable code.
    ------------------------------------------------------------
    revno: 0.1.192
    committer: osku
    timestamp: Fri 2006-04-28 11:57:13 +0000
    message:
      Add parens to return statements where they are missing (except in
      ha_innodb.cc).
    ------------------------------------------------------------
    revno: 0.1.191
    committer: osku
    timestamp: Fri 2006-04-28 05:49:59 +0000
    message:
      Add 'level' parameter to rw_lock_create(), remove rw_lock_set_level().
    ------------------------------------------------------------
    revno: 0.1.190
    committer: osku
    timestamp: Fri 2006-04-28 05:43:08 +0000
    message:
      Add 'level' parameter to mutex_create(), remove mutex_set_level().
      
      Rename SYNC_LEVEL_NONE to SYNC_LEVEL_VARYING, add comment clarifying what it
      is used for.
    ------------------------------------------------------------
    revno: 0.1.189
    committer: osku
    timestamp: Fri 2006-04-28 05:35:56 +0000
    message:
      univ.i: Make debug checks easily togglable.
    ------------------------------------------------------------
    revno: 0.1.188
    committer: osku
    timestamp: Wed 2006-04-26 12:17:36 +0000
    message:
      Add mem_heap_dup().
    ------------------------------------------------------------
    revno: 0.1.187
    committer: osku
    timestamp: Wed 2006-04-26 12:14:50 +0000
    message:
      Add a work queue implementation.
    ------------------------------------------------------------
    revno: 0.1.186
    committer: osku
    timestamp: Wed 2006-04-26 11:58:07 +0000
    message:
      Add a normal linked-list implementation.
    ------------------------------------------------------------
    revno: 0.1.185
    committer: osku
    timestamp: Wed 2006-04-26 07:08:21 +0000
    message:
      From MySQL:
      
      Add innodb_mysql.[test|result].
    ------------------------------------------------------------
    revno: 0.1.184
    committer: osku
    timestamp: Mon 2006-04-24 11:58:30 +0000
    message:
      From MySQL:
      
      Updates to innodb.[test|result].
    ------------------------------------------------------------
    revno: 0.1.183
    committer: osku
    timestamp: Mon 2006-04-24 11:34:49 +0000
    message:
      From MySQL:
      
      Added new function to handlerton.
    ------------------------------------------------------------
    revno: 0.1.182
    committer: osku
    timestamp: Mon 2006-04-24 11:33:51 +0000
    message:
      From MySQL:
      
      Refactored some code to remove ifdef and removed dead code related to
      un-useable sync code.
    ------------------------------------------------------------
    revno: 0.1.181
    committer: osku
    timestamp: Mon 2006-04-24 11:33:00 +0000
    message:
      From MySQL:
      
      After merge fixes.
    ------------------------------------------------------------
    revno: 0.1.180
    committer: osku
    timestamp: Mon 2006-04-24 09:39:13 +0000
    message:
      Remove remnants of the obsolete concept of memoryfixing tables and indexes.
      
      Remove unused dict_table_LRU_trim().
      
      Remove unused 'trx' parameter from the functions dict_table_get_on_id_low,
      dict_table_get and dict_table_get_and_increment_handle_count.
    ------------------------------------------------------------
    revno: 0.1.179
    committer: osku
    timestamp: Mon 2006-04-24 05:18:28 +0000
    message:
      From MySQL:
      
      Add cmakelists.txt to Makefile.Am.
    ------------------------------------------------------------
    revno: 0.1.178
    committer: osku
    timestamp: Fri 2006-04-21 12:09:12 +0000
    message:
      Add platform-specific os_thread_ret_t and OS_THREAD_DUMMY_RETURN, and
      convert thread start functions to use them.
    ------------------------------------------------------------
    revno: 0.1.177
    committer: osku
    timestamp: Fri 2006-04-21 12:06:23 +0000
    message:
      Make 'thread_id' parameter in os_thread_create() optional.
    ------------------------------------------------------------
    revno: 0.1.176
    committer: marko
    timestamp: Fri 2006-04-21 08:00:26 +0000
    message:
      Merge r487 from branches/5.0:
      dict_load_indexes(): pass comp=0 to rec_get_deleted_flag(),
      because SYS_INDEXES always is in ROW_FORMAT=REDUNDANT.  (Bug #19217)
    ------------------------------------------------------------
    revno: 0.1.175
    committer: osku
    timestamp: Fri 2006-04-21 07:04:02 +0000
    message:
      Remove srv_sys->operational since it is unused.
    ------------------------------------------------------------
    revno: 0.1.174
    committer: osku
    timestamp: Thu 2006-04-20 11:06:41 +0000
    message:
      Remove obsolete and unused global variables from srv0srv.c.
    ------------------------------------------------------------
    revno: 0.1.173
    committer: osku
    timestamp: Tue 2006-04-18 07:16:14 +0000
    message:
      dict_remove_db_name: Remove useless 'if'.
    ------------------------------------------------------------
    revno: 0.1.172
    committer: osku
    timestamp: Tue 2006-04-18 06:48:47 +0000
    message:
      export.sh:
      
       Automate snapshot creation process.
      
       Update "files internal to innobase" list.
    ------------------------------------------------------------
    revno: 0.1.171
    committer: osku
    timestamp: Tue 2006-04-18 06:33:03 +0000
    message:
      Remove temporary work-arounds from innodb.result now that ALTER TABLE DROP
      FOREIGN KEY works once again.
    ------------------------------------------------------------
    revno: 0.1.170
    committer: osku
    timestamp: Mon 2006-04-17 08:14:04 +0000
    message:
      Use bound literals in row_rename_table_for_mysql.
    ------------------------------------------------------------
    revno: 0.1.169
    committer: osku
    timestamp: Mon 2006-04-17 08:13:07 +0000
    message:
      Add mem_heap_strcat().
    ------------------------------------------------------------
    revno: 0.1.168
    committer: osku
    timestamp: Sat 2006-04-15 14:58:17 +0000
    message:
      pars_info_add_*(): In debug builds (UNIV_DEBUG), check that the given name
      is not already used.
    ------------------------------------------------------------
    revno: 0.1.167
    committer: osku
    timestamp: Thu 2006-04-13 11:02:52 +0000
    message:
      Use que_eval_sql() in dict_create_or_check_foreign_constraint_tables.
    ------------------------------------------------------------
    revno: 0.1.166
    committer: osku
    timestamp: Thu 2006-04-13 06:22:52 +0000
    message:
      Use bound literals in row_discard_tablespace_for_mysql.
    ------------------------------------------------------------
    revno: 0.1.165
    committer: osku
    timestamp: Wed 2006-04-12 18:17:47 +0000
    message:
      Use bound literals in row_drop_table_for_mysql.
    ------------------------------------------------------------
    revno: 0.1.164
    committer: osku
    timestamp: Wed 2006-04-12 18:14:06 +0000
    message:
      Use bound literals in row_truncate_table_for_mysql.
    ------------------------------------------------------------
    revno: 0.1.163
    committer: marko
    timestamp: Wed 2006-04-12 12:37:48 +0000
    message:
      dict_table_copy_types(): Remove a bogus debug assertion.
      DICT_UNIVERSAL can be set for index->type, not for table->type.
    ------------------------------------------------------------
    revno: 0.1.162
    committer: marko
    timestamp: Wed 2006-04-12 12:18:54 +0000
    message:
      dict_table_t: Remove the field "type".
      
      dict_load_table(): Refuse to load tables with other TYPE than
      DICT_TABLE_ORDINARY.
    ------------------------------------------------------------
    revno: 0.1.161
    committer: jan
    timestamp: Wed 2006-04-12 10:40:22 +0000
    message:
      Add general function to evaluate a sql query. Add function to evaluate
      dulints in host variables.
    ------------------------------------------------------------
    revno: 0.1.160
    committer: osku
    timestamp: Tue 2006-04-11 14:01:17 +0000
    message:
      Fix bug #18934, "InnoDB crashes when table uses column names like
      DB_ROW_ID", by refusing tables that use reserved column names.
      
      Add dict_mem_table_free(), use it instead of duplicating the code everywhere.
      
      Use already existing dict_mem_index_free().
      
      Fix memory leaks in row_create_table_for_mysql() in rare corner cases.
    ------------------------------------------------------------
    revno: 0.1.159
    committer: osku
    timestamp: Tue 2006-04-11 13:56:12 +0000
    message:
      Print dictionary memory size in SHOW INNODB STATUS.
    ------------------------------------------------------------
    revno: 0.1.158
    committer: marko
    timestamp: Tue 2006-04-11 12:53:18 +0000
    message:
      sync_array_detect_deadlock(): Remove bogus debug assertion.
    ------------------------------------------------------------
    revno: 0.1.157
    committer: marko
    timestamp: Tue 2006-04-11 12:51:34 +0000
    message:
      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 and CLUSTER_NAME=NULL
      when inserting into SYS_TABLES.
      
      dict_tree_check_search_tuple(): Enclose in #ifdef UNIV_DEBUG.
    ------------------------------------------------------------
    revno: 0.1.156
    committer: osku
    timestamp: Tue 2006-04-11 06:53:19 +0000
    message:
      row_mysql_is_system_table(): Use strncmp, not memcmp, since we don't know
      how long the input string is.
    ------------------------------------------------------------
    revno: 0.1.155
    committer: osku
    timestamp: Mon 2006-04-10 14:54:05 +0000
    message:
      Remove too strict assertions from some dict_table_t accessor functions.
    ------------------------------------------------------------
    revno: 0.1.154
    committer: osku
    timestamp: Mon 2006-04-10 12:05:03 +0000
    message:
      Allow access to system columns like DB_ROW_ID in InnoDB's SQL parser.
    ------------------------------------------------------------
    revno: 0.1.153
    committer: osku
    timestamp: Fri 2006-04-07 07:15:03 +0000
    message:
      Add row_fetch_store_uint4().
    ------------------------------------------------------------
    revno: 0.1.152
    committer: osku
    timestamp: Fri 2006-04-07 07:12:42 +0000
    message:
      Add ib_uint32_t typedef.
    ------------------------------------------------------------
    revno: 0.1.151
    committer: osku
    timestamp: Fri 2006-04-07 05:27:02 +0000
    message:
      From MySQL:
      
      Add Windows makefile 'cmakelists.txt' (Note that I had to add ut0vec.c to
      it.)
      
      Modify univ.i to not include ib_config.h on Windows.
    ------------------------------------------------------------
    revno: 0.1.150
    committer: osku
    timestamp: Thu 2006-04-06 15:13:17 +0000
    message:
      univ.i: Remove unused 'utfloat' typedef.
    ------------------------------------------------------------
    revno: 0.1.149
    committer: osku
    timestamp: Thu 2006-04-06 10:02:44 +0000
    message:
      Rename ib_vector typedef to ib_vector_t.
    ------------------------------------------------------------
    revno: 0.1.148
    committer: osku
    timestamp: Thu 2006-04-06 07:52:14 +0000
    message:
      Since the function 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.
    ------------------------------------------------------------
    revno: 0.1.147
    committer: osku
    timestamp: Thu 2006-04-06 05:22:33 +0000
    message:
      dict0crea.c: Use bound literals in all SQL statements instead of elaborately
      constructing correctly allocated and quoted strings to pass the data in in
      ASCII form.
    ------------------------------------------------------------
    revno: 0.1.146
    committer: osku
    timestamp: Thu 2006-04-06 05:20:59 +0000
    message:
      Rewrite pars_info datatypes and APIs, add a few helper functions.
    ------------------------------------------------------------
    revno: 0.1.145
    committer: osku
    timestamp: Thu 2006-04-06 05:20:06 +0000
    message:
      Add ib_vector datatype.
    ------------------------------------------------------------
    revno: 0.1.144
    committer: jan
    timestamp: Wed 2006-04-05 10:11:00 +0000
    message:
      Make innodb_unsafe_binlog test case 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. Remove unnecessary option
      --loose_innodb_lock_wait_timeout.
    ------------------------------------------------------------
    revno: 0.1.143
    committer: osku
    timestamp: Wed 2006-04-05 09:47:17 +0000
    message:
      Decrease amount of rows inserted in a certain test in innodb.test. This has
      no effect on the effectiveness of the test and reduces the running time by
      ~10 seconds on my machine.
    ------------------------------------------------------------
    revno: 0.1.142
    committer: jan
    timestamp: Wed 2006-04-05 09:37:01 +0000
    message:
      Make innodb test case 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.
    ------------------------------------------------------------
    revno: 0.1.141
    committer: osku
    timestamp: Tue 2006-04-04 05:05:19 +0000
    message:
      Allow bound literals of type non-INTEGER to be of length 0.
    ------------------------------------------------------------
    revno: 0.1.140
    committer: marko
    timestamp: Mon 2006-04-03 11:29:59 +0000
    message:
      sym_tab_add_bound_lit(): Remove warning about possibly uninitialized 'len'.
    ------------------------------------------------------------
    revno: 0.1.139
    committer: marko
    timestamp: Mon 2006-04-03 11:28:43 +0000
    message:
      Disable the statistics 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.
    ------------------------------------------------------------
    revno: 0.1.138
    committer: osku
    timestamp: Sat 2006-04-01 09:41:58 +0000
    message:
      Support DATA_VARCHAR for bound literals.
      
      pars_bound_lit_t: Change 'address' from 'void*' to 'const void*'.
    ------------------------------------------------------------
    revno: 0.1.137
    committer: osku
    timestamp: Sat 2006-04-01 06:06:59 +0000
    message:
      Add support for bound literals in the SQL parser.
    ------------------------------------------------------------
    revno: 0.1.136
    committer: osku
    timestamp: Fri 2006-03-31 11:28:59 +0000
    message:
      dtype_print():
      
       Recognize DATA_FIXBINARY and DATA_BLOB types.
      
       Print known flags from prtype.
      
       Use a switch statement, not an else-if chain.
    ------------------------------------------------------------
    revno: 0.1.135
    committer: osku
    timestamp: Fri 2006-03-31 07:43:13 +0000
    message:
      Add revert_gen.sh.
    ------------------------------------------------------------
    revno: 0.1.134
    committer: osku
    timestamp: Fri 2006-03-31 05:50:42 +0000
    message:
      pars_set_dfield_type():
      
       Remove never-reached duplicate code.
      
       Replace "if (!cond) ut_error" with "ut_a(cond)".
    ------------------------------------------------------------
    revno: 0.1.133
    committer: osku
    timestamp: Fri 2006-03-31 04:58:45 +0000
    message:
      Add comment clarifying the difference between 'alias' and 'indirection'
      fields in sym_node_t.
    ------------------------------------------------------------
    revno: 0.1.132
    committer: osku
    timestamp: Fri 2006-03-31 04:58:02 +0000
    message:
      Move calling of thr_local_free() from trx_free_for_mysql() to
      innobase_close_connection().
    ------------------------------------------------------------
    revno: 0.1.131
    committer: jan
    timestamp: Wed 2006-03-29 11:23:10 +0000
    message:
      Port r388 from trunk: Remove assertion ut_error which crashes the mysqld
      server if it prints a warning about the adaptive latch.
    ------------------------------------------------------------
    revno: 0.1.130
    committer: osku
    timestamp: Wed 2006-03-29 11:20:29 +0000
    message:
      Support user-function callbacks for processing results of FETCH statements
      in InnoDB's SQL parser.
    ------------------------------------------------------------
    revno: 0.1.129
    committer: osku
    timestamp: Wed 2006-03-29 11:18:20 +0000
    message:
      Support quoted identifiers in InnoDB's SQL parser. Original patch by marko,
      testing and a few fixes by me.
    ------------------------------------------------------------
    revno: 0.1.128
    committer: jan
    timestamp: Wed 2006-03-29 07:18:44 +0000
    message:
      Print approximate number or record locks (bits set in the bitmap) for
      this transaction to innodb_lock_monitor and show innodb status. Since
      delete-marked records maybe removed, the record count will not be precise.
    ------------------------------------------------------------
    revno: 0.1.127
    committer: osku
    timestamp: Tue 2006-03-28 09:35:33 +0000
    message:
      sym_tab_add_id(): Fix bug where we generated a string one character too
      long.
    ------------------------------------------------------------
    revno: 0.1.126
    committer: osku
    timestamp: Tue 2006-03-28 09:32:48 +0000
    message:
      Add make_flex.sh and update lexer/parser generation documentation.
    ------------------------------------------------------------
    revno: 0.1.125
    committer: osku
    timestamp: Tue 2006-03-28 06:41:31 +0000
    message:
      Port r371 and r372 from branches/fts:
      
      Add support for the EXIT keyword in InnoDB's SQL parser.
      
      Add short introduction to query graphs.
    ------------------------------------------------------------
    revno: 0.1.124
    committer: jan
    timestamp: Tue 2006-03-28 06:34:12 +0000
    message:
      Port r375 from branches/5.0: Fix bug #15650 additional error InnoDB:
      Error: unlock row could not find a 0 mode lock on the record.
    ------------------------------------------------------------
    revno: 0.1.123
    committer: jan
    timestamp: Mon 2006-03-27 05:33:30 +0000
    message:
      Setting a 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 almost 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.
    ------------------------------------------------------------
    revno: 0.1.122
    committer: osku
    timestamp: Wed 2006-03-22 13:23:07 +0000
    message:
      fetch_step(): Print a more useful error message when the cursor is closed.
    ------------------------------------------------------------
    revno: 0.1.121
    committer: heikki
    timestamp: Wed 2006-03-22 12:28:19 +0000
    message:
      Remove yet another typo from my last commit.
    ------------------------------------------------------------
    revno: 0.1.120
    committer: heikki
    timestamp: Wed 2006-03-22 09:47:01 +0000
    message:
      Fix yet another typo in my previous commit.
    ------------------------------------------------------------
    revno: 0.1.119
    committer: heikki
    timestamp: Tue 2006-03-21 16:08:43 +0000
    message:
      Fix a typo in my previous commit.
    ------------------------------------------------------------
    revno: 0.1.118
    committer: heikki
    timestamp: Tue 2006-03-21 15:57:55 +0000
    message:
      Fix MySQL-5.1 bug http://bugs.mysql.com/bug.php?id=17992 and its
      duplicate http://bugs.mysql.com/bug.php?id=17134 : MySQL's partitioned
      table code does not set prebuilt->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 slightly.
    ------------------------------------------------------------
    revno: 0.1.117
    committer: jan
    timestamp: Tue 2006-03-21 10:00:30 +0000
    message:
      Merge r357 from branches/5.0: Fix bug #18350 Use consistent read in
      CREATE ... SELECT... if innodb_locks_unsafe_for_binlog is used.
      This patch is from Heikki.
    ------------------------------------------------------------
    revno: 0.1.116
    committer: marko
    timestamp: Tue 2006-03-21 09:15:28 +0000
    message:
      Merge r355 from branches/5.0: Remove a memory leak when trying to insert
      a duplicate record to a clustered index comprising
      more than about 90 columns.  (Bug #18384)
      
      row_ins_duplicate_error_in_clust(): Call mem_heap_free(heap) at func_exit
      if needed.
    ------------------------------------------------------------
    revno: 0.1.115
    committer: osku
    timestamp: Fri 2006-03-17 12:44:34 +0000
    message:
      Add support for UNSIGNED types in InnoDB's SQL parser.
      
      Remove trailing whitespace from flex/bison input files.
    ------------------------------------------------------------
    revno: 0.1.114
    committer: osku
    timestamp: Fri 2006-03-17 11:36:16 +0000
    message:
      Add "-Werror-implicit-function-declaration" to CFLAGS when using gcc.
    ------------------------------------------------------------
    revno: 0.1.113
    committer: marko
    timestamp: Fri 2006-03-17 08:20:14 +0000
    message:
      Merge r328:340 from branches/5.0:
      
      r340: Fix http://bugs.mysql.com/bug.php?id=18283 in ha_innodb.cc and
      http://bugs.mysql.com/bug.php?id=18238 in InnoDB
      
      r339: Remove disk space leak on update of BLOB columns (Bug #18252).
      
      btr_cur_pessimistic_update(): Invoke rec_get_offsets() after
      rec_set_field_extern_bits().
      
      btr_store_big_rec_extern_fields(): Note that offsets will no longer be
      valid after calling this function.
      
      r338: Fix bug 18238 : check in pessimistic insert and update if the buffer
      pool is exhausted by locks
    ------------------------------------------------------------
    revno: 0.1.112
    committer: osku
    timestamp: Thu 2006-03-16 07:47:55 +0000
    message:
      Add (void*) casts when using the %p printf format specifier.
      
      When using GCC, use __inline__ instead of inline.
      
      Add disabled-by-default logic to configure.in to switch GCC to a strict
      C89-mode.
    ------------------------------------------------------------
    revno: 0.1.111
    committer: marko
    timestamp: Wed 2006-03-15 11:02:14 +0000
    message:
      Merge r328 from branches/5.0:
      Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
      
      page_rec_is_comp(): Remove the bounds check.
      
      row_sel_field_store_in_mysql_format(): Turn the assertions on mbminlen,
      mbmaxlen and templ->type into debug assertions.
    ------------------------------------------------------------
    revno: 0.1.110
    committer: osku
    timestamp: Tue 2006-03-14 07:58:35 +0000
    message:
      Fix compilation problem with non-C99 compilers in btr0sea.c.
    ------------------------------------------------------------
    revno: 0.1.109
    committer: jan
    timestamp: Mon 2006-03-13 09:51:38 +0000
    message:
      Forward port r315 from branches/5.0:
      
      Fix a bug #18077 InnoDB uses full explicit table locks in
      stored FUNCTION.
    ------------------------------------------------------------
    revno: 0.1.108
    committer: marko
    timestamp: Mon 2006-03-13 09:27:34 +0000
    message:
      Do not use inlined functions in ha_innodb.cc.
      
      Add dict_table_is_comp_noninline().  Replace calls to dict_table_is_comp()
      in ha_innodb.cc with dict_table_is_comp_noninline().
    ------------------------------------------------------------
    revno: 0.1.107
    committer: marko
    timestamp: Fri 2006-03-10 14:41:44 +0000
    message:
      Replace buf_block_align(btr_cur_get_page()) with
      buf_block_align(btr_cur_get_rec()).
    ------------------------------------------------------------
    revno: 0.1.106
    committer: marko
    timestamp: Fri 2006-03-10 14:26:08 +0000
    message:
      Merge changes from MySQL that were identified when merging r269 to MySQL.
    ------------------------------------------------------------
    revno: 0.1.105
    committer: osku
    timestamp: Fri 2006-03-10 11:06:33 +0000
    message:
      Port parts of r297 from branches/fts:
      
      row_upd_index_replace_new_col_vals_index_pos(): Add a parameter, "ibool
      order_only", for limiting the replacement to the ordering fields of the
      index. Adjust callers.
      
       In this port, the comment for the parameter was adjusted to make it clear
       that it only supports clustered indexes.
    ------------------------------------------------------------
    revno: 0.1.104
    committer: osku
    timestamp: Fri 2006-03-10 11:01:41 +0000
    message:
      Port parts of r262 from branches/fts:
      
      Add HASH_MIGRATE().
    ------------------------------------------------------------
    revno: 0.1.103
    committer: osku
    timestamp: Fri 2006-03-10 11:00:58 +0000
    message:
      Port parts of r211 from branches/fts:
      
      Add ut_strcount() and ut_strreplace().
    ------------------------------------------------------------
    revno: 0.1.102
    committer: osku
    timestamp: Fri 2006-03-10 10:58:58 +0000
    message:
      Port parts of r211 from branches/fts:
      
      Add dict_table_get_low_noninlined().
    ------------------------------------------------------------
    revno: 0.1.101
    committer: osku
    timestamp: Wed 2006-03-08 13:30:54 +0000
    message:
      Port r292 from branches/fts:
      
      Move printing of dfield_t values from dtuple_print to a new function,
      dfield_print_raw.
    ------------------------------------------------------------
    revno: 0.1.100
    committer: osku
    timestamp: Tue 2006-03-07 14:04:52 +0000
    message:
      Print dict_index_t->n_uniq in table monitor.
    ------------------------------------------------------------
    revno: 0.1.99
    committer: osku
    timestamp: Tue 2006-03-07 12:57:02 +0000
    message:
      sync0arr.c: Fix compilation error on some systems by introducing all
      variables at the start of a block.
    ------------------------------------------------------------
    revno: 0.1.98
    committer: osku
    timestamp: Mon 2006-03-06 12:51:50 +0000
    message:
      Remove two redundant casts from calls to ut_print_buf.
    ------------------------------------------------------------
    revno: 0.1.97
    committer: osku
    timestamp: Mon 2006-03-06 09:45:04 +0000
    message:
      Change ut_print_buf() and mem_analyze_corruption() to take a void*, not a
      byte*. Remove redundant casts from callers.
    ------------------------------------------------------------
    revno: 0.1.96
    committer: jan
    timestamp: Thu 2006-03-02 07:57:10 +0000
    message:
      Remove trailing whitespaces and fix style on function comments.
    ------------------------------------------------------------
    revno: 0.1.95
    committer: osku
    timestamp: Thu 2006-03-02 07:35:23 +0000
    message:
      row0mysql.c: Replace tabs within strings with spaces.
    ------------------------------------------------------------
    revno: 0.1.94
    committer: jan
    timestamp: Wed 2006-03-01 07:47:14 +0000
    message:
      Fix for bug #12456: Cursor shows incorrect data - DML does not affect,
      probably caching. Fixed test results.
      
      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.
    ------------------------------------------------------------
    revno: 0.1.93
    committer: osku
    timestamp: Tue 2006-02-28 13:32:12 +0000
    message:
      Fix assert in HASH_DELETE so it actually tests something useful.
    ------------------------------------------------------------
    revno: 0.1.92
    committer: osku
    timestamp: Mon 2006-02-27 09:11:57 +0000
    message:
      Remove "ibool comp" from dict_table_t and replace it with "ulint flags"
      which can contain the new flag DICT_TF_COMPACT. Change dict_mem_table_create
      to take a flags argument. Add dict_table_is_comp(). Adapt all users.
      
      Change some places to explicitly assume that system tables do not use the
      compact page format.
    ------------------------------------------------------------
    revno: 0.1.91
    committer: osku
    timestamp: Fri 2006-02-24 09:53:01 +0000
    message:
      Fix invalid brace positioning and spaces before tabs.
    ------------------------------------------------------------
    revno: 0.1.90
    committer: osku
    timestamp: Fri 2006-02-24 09:41:20 +0000
    message:
      Remove tabs from within printed strings and two instances of trailing
      whitespace.
    ------------------------------------------------------------
    revno: 0.1.89
    committer: osku
    timestamp: Fri 2006-02-24 07:18:44 +0000
    message:
      Add TAGS to svn:ignore.
    ------------------------------------------------------------
    revno: 0.1.88
    committer: marko
    timestamp: Thu 2006-02-23 13:12:36 +0000
    message:
      Add dummy return statements to the #ifdef UNIV_HOTBACKUP branches of some
      functions that are excluded from InnoDB Hot Backup builds.
    ------------------------------------------------------------
    revno: 0.1.87
    committer: osku
    timestamp: Thu 2006-02-23 11:35:28 +0000
    message:
      Fix wrong placement of static keyword in a few places.
    ------------------------------------------------------------
    revno: 0.1.86
    committer: marko
    timestamp: Wed 2006-02-22 20:57:10 +0000
    message:
      Merge r103 from hotbackup/trunk.
      
      os_file_create_tmpfile(): Remove the implementation #ifdef UNIV_HOTBACKUP.
    ------------------------------------------------------------
    revno: 0.1.85
    committer: osku
    timestamp: Wed 2006-02-22 12:48:49 +0000
    message:
      Port r225 from branches/5.0:
      
      Fix memory allocation bug (by changing MY_WME to MY_FAE) in
      ha_innodb.cc:get_share.
    ------------------------------------------------------------
    revno: 0.1.84
    committer: osku
    timestamp: Tue 2006-02-21 12:37:54 +0000
    message:
      Style cleanups: Convert spaces to tabs, remove trailing whitespace, other
      misc cleanups.
    ------------------------------------------------------------
    revno: 0.1.83
    committer: marko
    timestamp: Tue 2006-02-21 08:43:31 +0000
    message:
      Merge r102 from hotbackup/trunk.
      
      Corrected some comments.
      
      os_file_create_tmpfile(): Remove the implementation from InnoDB Hot Backup.
      
      In InnoDB Hot Backup builds, do not define dict_casedn_str(),
      which is invoked in fil_load_single_table_tablespace() on
      Windows.  This function depends on innobase_casedn_str() and
      my_casedn_str().
      
      Define btr_check_node_ptr() and data_error only #ifdef UNIV_DEBUG.
      They are only being used in ut_ad() assertions.
      
      Replace the occurrences of the type uint with ulint, because InnoDB
      Hot Backup does not define any uint data type.
      
      Disable lock_validate() in InnoDB Hot Backup builds.
      
      Disable some unused static variables of srv0srv.c in InnoDB Hot Backup builds.
      
      Disable some srv_table_...() functions in InnoDB Hot Backup builds.
      
      Disable some unused static variables in srv0start.c in
      InnoDB Hot Backup builds.
      
      Disable io_handler_thread() in InnoDB Hot Backup builds.
      
      Disable srv_calc_low32() and srv_calc_high32() in InnoDB Hot Backup builds
      to avoid warnings about unused functions.
      
      In fil_node_open_file(), avoid bogus assertions in InnoDB Hot Backup builds.
      
      In fil_load_single_table_tablespace(), remove the call to dict_casedn_str(),
      as it depends on MySQL code.
      
      Copy the code of recv_reset_log_files_for_backup() from InnoDB Hot Backup.
      
      Disable innobase_mysql_cmp(), cmp_whole_field(), cmp_data_data_slow(),
      cmp_dtuple_rec_with_match() and cmp_rec_rec_with_match()
      in InnoDB Hot Backup builds, as they depend on MySQL code.
      
      Adapt dtype_set_mblen() and dtype_get_fixed_size() for InnoDB Hot Backup
      builds, assuming that they will only be called on system tables, which
      do not contain multi-byte characters.
      
      Disable the static functions row_ins_set_exclusive_rec_lock() and
      row_ins_dupl_error_with_rec() in InnoDB Hot Backup builds
      to avoid warnings about unused functions.
      
      In row_sel_field_store_in_mysql_format(), disable some UTF-8 related
      assertions #ifndef UNIV_RELEASE_NOT_YET_STABLE.
    ------------------------------------------------------------
    revno: 0.1.82
    committer: marko
    timestamp: Mon 2006-02-20 15:51:49 +0000
    message:
      Fix typo in r216: replace 5.1.19 with 5.1.7
    ------------------------------------------------------------
    revno: 0.1.81
    committer: marko
    timestamp: Mon 2006-02-20 15:42:49 +0000
    message:
      Set FIL_PAGE_TYPE for every page, so that the field can be relied on in
      new tablespaces created from now on.
      
      btr_store_big_rec_extern_fields(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_BLOB.
      
      buf_page_print(): Decode FIL_PAGE_TYPE.  Replace if-else with switch().
      
      buf_page_create(): Set FIL_PAGE_PREV, FIL_PAGE_NEXT and FIL_PAGE_TYPE.
      
      trx_sysf_create(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_TRX_SYS.
      Initialize TRX_SYS_RSEG_SPACE.
      
      FIL_PAGE_TYPE: Document that the field cannot be relied on in older
      versions of MySQL/InnoDB.  Add new type codes.
      
      ibuf_bitmap_page_init(): Document that the rest of the page is uninitialized.
      
      ibuf_add_free_page(): Log the setting of FIL_PAGE_TYPE.
      
      fsp_header_init(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_FSP_HDR.
      Initialize FSP_NOT_USED.
      
      fsp_fill_free_list(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_XDES.
      
      fsp_alloc_seg_inode_page(): Set FIL_PAGE_TYPE to FIL_PAGE_INODE.
      
      fseg_create_general(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_SYS.
    ------------------------------------------------------------
    revno: 0.1.80
    committer: osku
    timestamp: Mon 2006-02-20 12:38:10 +0000
    message:
      Remove the concept of "field order", as we will not support descending order
      indexes.
    ------------------------------------------------------------
    revno: 0.1.79
    committer: osku
    timestamp: Mon 2006-02-20 12:12:22 +0000
    message:
      Fix all function declarations to have the correct number of '=' characters.
    ------------------------------------------------------------
    revno: 0.1.78
    committer: osku
    timestamp: Mon 2006-02-20 07:51:37 +0000
    message:
      Enhance InnoDB SQL parser:
      
       Add support for NOT NULL in column definitions.
      
       Support INTEGER as an alias for INT.
      
       Add pars/make_bison.sh to automate parser generation.
    ------------------------------------------------------------
    revno: 0.1.77
    committer: osku
    timestamp: Fri 2006-02-17 12:58:39 +0000
    message:
      dtype_print(): Fix printing of prtype.
    ------------------------------------------------------------
    revno: 0.1.76
    committer: jan
    timestamp: Fri 2006-02-17 07:37:51 +0000
    message:
      Merge r199 from branches/5.0:
      
      Port a change from MySQL.
      
      Bug#8841 - CHECKSUM TABLE is broken in MyISAM
      Fixed test results.
    ------------------------------------------------------------
    revno: 0.1.75
    committer: jan
    timestamp: Fri 2006-02-17 07:10:22 +0000
    message:
      Port a change from MySQL:
      
      WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
      Change "duplicate key" message to print key name
      instead of key number.
    ------------------------------------------------------------
    revno: 0.1.74
    committer: osku
    timestamp: Thu 2006-02-16 14:01:42 +0000
    message:
      Add support for BINARY(n) and BLOB types in the InnoDB SQL parser.
    ------------------------------------------------------------
    revno: 0.1.73
    committer: marko
    timestamp: Thu 2006-02-16 07:27:54 +0000
    message:
      buf_block_init(): Reset magic_n, buf_fix_count and io_fix to avoid
      testing uninitialized variables.  (Bug #17405)
    ------------------------------------------------------------
    revno: 0.1.72
    committer: marko
    timestamp: Wed 2006-02-15 09:15:54 +0000
    message:
      sync_thread_add_level(): Replace the if-else if-else if-...-else
      chain with an equivalent switch block.
    ------------------------------------------------------------
    revno: 0.1.71
    committer: marko
    timestamp: Wed 2006-02-15 09:00:03 +0000
    message:
      Replace assertions on constant conditions with preprocessor conditions.
    ------------------------------------------------------------
    revno: 0.1.70
    committer: marko
    timestamp: Mon 2006-02-13 12:07:01 +0000
    message:
      Revert the changes to os0file.c that were accidentally committed in r181:
      
      os_file_create_tmpfile(): Replace the UNIV_HOTBACKUP specific
      implementation with a run-time assertion failure.
    ------------------------------------------------------------
    revno: 0.1.69
    committer: marko
    timestamp: Mon 2006-02-13 11:57:38 +0000
    message:
      Revert r148 until MySQL AB has finally merged the code to the 5.1 tree:
      
      Port r146 from branches/5.0:
      
      Make innodb_flush_log_at_trx_commit a settable global variable.
    ------------------------------------------------------------
    revno: 0.1.68
    committer: osku
    timestamp: Mon 2006-02-13 09:44:33 +0000
    message:
      Fix failing innodb.test (missing "connection default;").
    ------------------------------------------------------------
    revno: 0.1.67
    committer: marko
    timestamp: Fri 2006-02-10 10:16:50 +0000
    message:
      Merge r175 from branches/5.0:
      
      fil_extend_space_to_desired_size(): in UNIV_HOTBACKUP builds,
      do not touch srv_data_file_sizes[] or srv_n_data_files.
    ------------------------------------------------------------
    revno: 0.1.66
    committer: osku
    timestamp: Fri 2006-02-10 09:16:35 +0000
    message:
      Apply InnoDB-specific parts of the fix for bug #9680, wrong error from
      cascading update.
    ------------------------------------------------------------
    revno: 0.1.65
    committer: osku
    timestamp: Thu 2006-02-09 15:44:27 +0000
    message:
      Port r172 from branches/5.0:
      
      Fix bug #17126, CHECK TABLE blocking other queries, by releasing the
      btr_search_latch periodically during the adaptive hash table validation.
    ------------------------------------------------------------
    revno: 0.1.64
    committer: osku
    timestamp: Thu 2006-02-09 12:46:53 +0000
    message:
      Port r170 from branches/5.0:
      
      Fix bug #16827, better error message if ibdata files omitted from my.cnf.
    ------------------------------------------------------------
    revno: 0.1.63
    committer: marko
    timestamp: Tue 2006-02-07 13:08:46 +0000
    message:
      Remove the unused field fixed_offs from dict_field_t.
    ------------------------------------------------------------
    revno: 0.1.62
    committer: marko
    timestamp: Mon 2006-02-06 10:36:04 +0000
    message:
      Merge r167 from branches/5.0: Add a missing newline to the
      LAST FOREIGN KEY ERROR section in SHOW INNODB STATUS output (Bug #16814).
      
      dict_foreign_error_report(): Always print a newline after invoking
      dict_print_info_on_foreign_key_in_create_format().
    ------------------------------------------------------------
    revno: 0.1.61
    committer: marko
    timestamp: Mon 2006-02-06 09:08:58 +0000
    message:
      Port r165 from branches/5.0: Port a change from MySQL:
      
      innodb_cache.test: save and restore query_cache_size
    ------------------------------------------------------------
    revno: 0.1.60
    committer: marko
    timestamp: Fri 2006-01-27 14:43:12 +0000
    message:
      Port r161 from branches/5.0: Avoid breaking --with-debug builds on QNX
      and other systems whose compiler pretends to be GCC 2.
      
      univ.i: Outside __WIN__, define UNIV_INLINE as static inline.
    ------------------------------------------------------------
    revno: 0.1.59
    committer: marko
    timestamp: Fri 2006-01-27 10:17:02 +0000
    message:
      Import mysql-5.1-new changeset 1.1945.48.1 (Anthony Curtis):
      Finalize storage engine plugins
      
      ha_innodb.cc: remove unwanted handlerton entries; changes for show status
    ------------------------------------------------------------
    revno: 0.1.58
    committer: marko
    timestamp: Fri 2006-01-27 09:57:01 +0000
    message:
      Import mysql-5.1-new changeset 1.2012.1.8 (Sergei Golubchik):
      WL#2935 - SHOW STATUS support in plugins
      
      ha_innodb.cc, ha_innodb.h: s/struct show_var_st/SHOW_VAR/
    ------------------------------------------------------------
    revno: 0.1.57
    committer: marko
    timestamp: Fri 2006-01-27 09:45:57 +0000
    message:
      Import mysql-5.1-new changeset 1.2012.1.6 (Sergei Golubchik):
      
      Remove the declaration of innodb_export_status(), as it will
      from now on be invoked via a function pointer in innobase_hton.
    ------------------------------------------------------------
    revno: 0.1.56
    committer: marko
    timestamp: Fri 2006-01-27 09:41:19 +0000
    message:
      Import mysql-5.1-new changeset 1.2011.1.1 (Alexander Barkov):
      WL#1324 table name to file name encoding
      
      ha_innobase::create(): do not remove .frm extension
      
      row_is_mysql_tmp_table_name(): replace '#' with '@0023'
    ------------------------------------------------------------
    revno: 0.1.55
    committer: marko
    timestamp: Fri 2006-01-27 09:34:55 +0000
    message:
      Import those changes from mysql-5.1-new ChangeSet 1.1979 (Lars Thalmann)
      that were not part of r154.  (Bug #3300)
      
      innodb.test, innodb.result: Remove binlog related tests, because they
      are not InnoDB specific; they merely require a transactional table.
      
      ha_innobase::ha_innobase(): Add HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
      to table_flags.
      
      ha_innobase::rnd_init(): Disable semi-consistent read for random access.
    ------------------------------------------------------------
    revno: 0.1.54
    committer: marko
    timestamp: Thu 2006-01-26 13:12:11 +0000
    message:
      Port r142 of branches/5.0 (from MySQL):
      
      NetWare specific change to increase thread stack size.
    ------------------------------------------------------------
    revno: 0.1.53
    committer: marko
    timestamp: Thu 2006-01-26 10:45:27 +0000
    message:
      Implement semi-consistent read to reduce lock conflicts at the cost
      of breaking serializability.  (Bug #3300)
      
      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
    ------------------------------------------------------------
    revno: 0.1.52
    committer: marko
    timestamp: Tue 2006-01-24 12:13:44 +0000
    message:
      Port r152 from branches/5.0: Account for a race condition when dropping the
      adaptive hash index for a B-tree page.  (Bug #16582)
      
      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.  This fix is from Heikki.
      
      btr_search_info_update_hash(), btr_search_info_update_slow():
      Document the parameter "info" as in/out.
    ------------------------------------------------------------
    revno: 0.1.51
    committer: marko
    timestamp: Mon 2006-01-23 13:47:55 +0000
    message:
      Port r150 from branches/5.0: Port r19 from innodb-4.1/trunk:
      
      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.  (Bug #15653)
      
      fil_flush_file_spaces(): Only flush unflushed file spaces.
      
      fil_space_t, fil_system_t: Add a list of unflushed spaces.
    ------------------------------------------------------------
    revno: 0.1.50
    committer: osku
    timestamp: Fri 2006-01-20 17:20:52 +0000
    message:
      Sync array optimizations, most importantly signal_object changed to not
      call os_event_set while holding the sync array mutex.
      
      Idea by Heikki, implementation by Osku, bug-fixes and other changes by
      Heikki, and final review and cleanup by Osku.
    ------------------------------------------------------------
    revno: 0.1.49
    committer: marko
    timestamp: Thu 2006-01-19 13:31:02 +0000
    message:
      Port r146 from branches/5.0:
      
      Make innodb_flush_log_at_trx_commit a settable global variable.
    ------------------------------------------------------------
    revno: 0.1.48
    committer: marko
    timestamp: Thu 2006-01-19 13:30:20 +0000
    message:
      Port r145 from branches/5.0:
      
      Make innodb_thread_concurrency 0 by default, and extend the useable
      range from 0 to 1000 (0 disables the thread throttling).
      
      Remove SRV_CONCURRENCY_THRESHOLD (20).  The magic value to
      disable the thread throttling is 0 from now on.
    ------------------------------------------------------------
    revno: 0.1.47
    committer: osku
    timestamp: Wed 2006-01-18 10:56:36 +0000
    message:
      Do not reset cell->wait_object to NULL when a cell in sync array is freed
      since this can lead to problems.
    ------------------------------------------------------------
    revno: 0.1.46
    committer: osku
    timestamp: Wed 2006-01-18 10:52:53 +0000
    message:
      Port r139 from branches/5.0:
      
      From MySQL:
      
      Fix bug #15108 (mysqld crashes when innodb_log_file_size is set > 4GB).
    ------------------------------------------------------------
    revno: 0.1.45
    committer: osku
    timestamp: Tue 2006-01-17 14:49:11 +0000
    message:
      Remove incorrect warning printed in sync0arr.c.
    ------------------------------------------------------------
    revno: 0.1.44
    committer: osku
    timestamp: Tue 2006-01-17 14:02:20 +0000
    message:
      Port r136 from branches/5.0 (slightly tweaked for 5.1):
      
      Add BUILD/compile-innodb script.
    ------------------------------------------------------------
    revno: 0.1.43
    committer: jan
    timestamp: Tue 2006-01-17 13:08:48 +0000
    message:
      Forward port r133 from branches/5.0:
      
      Remember to use noninlined versions of the functions
      on ha_innodb.cc !
    ------------------------------------------------------------
    revno: 0.1.42
    committer: marko
    timestamp: Thu 2006-01-12 16:48:34 +0000
    message:
      Port r132 from branches/5.0: Port r15 from innodb-4.1:
      
      Do not mistake TABLENAME_ibfk_0 for auto-generated id (Bug #16387).
      
      dict_table_get_highest_foreign_id(): Ignore foreign constraint identifiers
      starting with the pattern TABLENAME_ibfk_0.
      
      innodb.test, innodb.result: Add test case.
    ------------------------------------------------------------
    revno: 0.1.41
    committer: osku
    timestamp: Thu 2006-01-12 09:20:15 +0000
    message:
      Forward port r123 from branches/5.0:
      
      Replace goto in os_event_wait with a normal loop.
    ------------------------------------------------------------
    revno: 0.1.40
    committer: jan
    timestamp: Thu 2006-01-12 09:16:11 +0000
    message:
      Forward port r127 from branches/5.0:
      
      Fixed a bug #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(). Added test cases for a bug. Fixed some code style errors.
    ------------------------------------------------------------
    revno: 0.1.39
    committer: jan
    timestamp: Thu 2006-01-12 08:58:56 +0000
    message:
      Forward port r108 from from branches/5.0:
      
      Fixed bug #15308: Problem of Order with Enum Column in
      Primary Key. Added a new test case for bug #14056.
    ------------------------------------------------------------
    revno: 0.1.38
    committer: jan
    timestamp: Thu 2006-01-12 08:42:46 +0000
    message:
      Forward port r120 from branches/5.0:
      
      Added diagnostic code trx_print() to
      innobase_query_caching_of_table_permitted() to find reason
      why we are holding adaptive search latch.
    ------------------------------------------------------------
    revno: 0.1.37
    committer: marko
    timestamp: Wed 2006-01-11 13:19:16 +0000
    message:
      Port r125 from branches/5.0:
      
      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.  (Bug #16298)
    ------------------------------------------------------------
    revno: 0.1.36
    committer: osku
    timestamp: Tue 2006-01-10 11:38:47 +0000
    message:
      Forward port r121 from branches/5.0:
      
      Optimize sync array behavior by not having the woken threads reserve the
      sync array mutex.
    ------------------------------------------------------------
    revno: 0.1.35
    committer: marko
    timestamp: Thu 2006-01-05 07:54:34 +0000
    message:
      Port r118 from branches/5.0:
      
      Remove some declarations of unused global variables and member variables
      of class ha_innobase.
    ------------------------------------------------------------
    revno: 0.1.34
    committer: osku
    timestamp: Wed 2006-01-04 12:52:45 +0000
    message:
      Forward port r115 from branches/5.0:
      
      Fix bug #16157, a crash when innodb_log_group_home_dir is set to an empty
      string. This patch is from Heikki.
    ------------------------------------------------------------
    revno: 0.1.33
    committer: marko
    timestamp: Tue 2006-01-03 13:54:05 +0000
    message:
      Port r114 from branches/5.0:
      
      lock_rec_unlock(): Initialize local variable release_lock, in order to avoid
      dereferencing an uninitialized pointer when no lock exists on rec.
      
      This bug was introduced in r103 of branches/5.0, ported as r104 to trunk.
    ------------------------------------------------------------
    revno: 0.1.32
    committer: marko
    timestamp: Tue 2006-01-03 13:36:55 +0000
    message:
      Merge r112 from branches/5.0:
      
      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.  (Bug #15991)
    ------------------------------------------------------------
    revno: 0.1.31
    committer: marko
    timestamp: Fri 2005-12-30 12:39:17 +0000
    message:
      Port r110 from branches/5.0:
      Do not log empty binlog file name at transaction commit.
      
      trx_commit_off_kernel(): Do not write empty trx->mysql_log_file_name.
    ------------------------------------------------------------
    revno: 0.1.30
    committer: marko
    timestamp: Tue 2005-12-20 15:22:49 +0000
    message:
      Port r106 from branches/5.0:
      
      Protect the increment and decrement operations on the statistic variables
      os_n_pending_writes and os_n_pending_reads with os_file_count_mutex.
    ------------------------------------------------------------
    revno: 0.1.29
    committer: osku
    timestamp: Tue 2005-12-20 09:41:30 +0000
    message:
      From MySQL:
      
      Restore "make dist" for the header files in "innobase/include".
    ------------------------------------------------------------
    revno: 0.1.28
    committer: jan
    timestamp: Fri 2005-12-16 07:21:33 +0000
    message:
      Port r103 from braches/5.0 to trunk.
      
      Fixed a bug on unlock_row. In a unlock_row we may unlock
      only the latest lock granted to this transaction to the row.
    ------------------------------------------------------------
    revno: 0.1.27
    committer: osku
    timestamp: Thu 2005-12-15 10:53:54 +0000
    message:
      From MySQL:
      
      Fix for BUG#11704: "Found locks from different thread" warnings:
       The source of warnings was this scenario in OPTIMIZE:
      
           thr1: lock table with TL_WRITE_ONLY (InnoDB converts lock to
           TL_WRITE_ALLOW_WRITE)
      
           thr2: (UPDATE command) obtains a TL_WRITE_ALLOW_WRITE lock
      
           thr1: call mysql_lock_abort(). This function sets type of thr'1 lock
           to TL_WRITE_ONLY
      
           thr2: try to release thr2's lock. See two locks: TL_WRITE_ONLY,
           TL_WRITE_ALLOW_WRITE and produce a warning.
         
      The fix: Make InnoDB not to convert TL_WRITE_ONLY locks to
      TL_WRITE_ALLOW_WRITE in OPTIMIZE TABLE.
    ------------------------------------------------------------
    revno: 0.1.26
    committer: jan
    timestamp: Thu 2005-12-15 07:00:12 +0000
    message:
      Port r100 from branches/5.0 to trunk.
    ------------------------------------------------------------
    revno: 0.1.25
    committer: marko
    timestamp: Wed 2005-12-14 14:05:34 +0000
    message:
      Port r98 from branches/5.0: INCOMPATIBLE CHANGE:
      Do not pad VARBINARY or BINARY columns. (Bug #14189)
      
      innodb.test, innodb.result: Add test cases for foreign key constraints
      between VARBINARY and BINARY columns, and between VARCHAR BINARY and
      CHAR BINARY columns.
      
      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.
    ------------------------------------------------------------
    revno: 0.1.24
    committer: osku
    timestamp: Mon 2005-12-12 12:42:41 +0000
    message:
      Port r95 and r96 from branches/5.0 to trunk:
      
      Add tests for >1K keys on 32-bit platforms.
      
      Clean up innodb_gis.test.
    ------------------------------------------------------------
    revno: 0.1.23
    committer: jan
    timestamp: Mon 2005-12-12 11:18:31 +0000
    message:
      trunk: Port a fix for bug #15308 Problem of Order with Enum Column in Primary
      Key from branches/5.0.
    ------------------------------------------------------------
    revno: 0.1.22
    committer: marko
    timestamp: Fri 2005-12-09 12:57:48 +0000
    message:
      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.
      (Bug #15550)
      
      innodb.test, innodb.result: Add test cases for foreign key errors.
    ------------------------------------------------------------
    revno: 0.1.21
    committer: marko
    timestamp: Fri 2005-12-09 07:46:45 +0000
    message:
      trunk: Remove error introduced in r87 of branches/5.0, ported in r88:
      In row_ins_set_detailed(), truncate the tmpfile by os_file_set_eof(), because
      trx_set_detailed_error_from_file() does not call ftell() to determine
      the actual length of the file.  This bug resulted in trash being appended
      to foreign key error messages.
    ------------------------------------------------------------
    revno: 0.1.20
    committer: osku
    timestamp: Thu 2005-12-08 14:27:09 +0000
    message:
      Port r87 from branches/5.0:
      
      Work around Bug #12071: Do not call os_file_create_tmpfile() at runtime.
      Instead, create all tempfiles at startup and guard access to them with
      mutexes.
    ------------------------------------------------------------
    revno: 0.1.19
    committer: osku
    timestamp: Fri 2005-12-02 08:22:49 +0000
    message:
      innodb.result: Fix things to match with latest MySQL changes.
    ------------------------------------------------------------
    revno: 0.1.18
    committer: osku
    timestamp: Thu 2005-12-01 14:20:36 +0000
    message:
      Reintroduce geometry support that was temporarily removed in r4.
    ------------------------------------------------------------
    revno: 0.1.17
    committer: osku
    timestamp: Wed 2005-11-30 12:31:55 +0000
    message:
      From MySQL:
      
      We new use TABLE_SHARE instead of TABLE when creating engine handlers.
    ------------------------------------------------------------
    revno: 0.1.16
    committer: osku
    timestamp: Wed 2005-11-30 12:30:36 +0000
    message:
      From MySQL:
      
      innobase_savepoint():
        Replaced check which always failed due to similar check in caller
        with assertion.
    ------------------------------------------------------------
    revno: 0.1.15
    committer: osku
    timestamp: Wed 2005-11-30 12:29:46 +0000
    message:
      From MySQL:
      
      Fixed compiler error for Win32 build.
    ------------------------------------------------------------
    revno: 0.1.14
    committer: osku
    timestamp: Tue 2005-11-29 11:10:15 +0000
    message:
      Support >4GB buffer pool and log files on 64-bit Windows. Fixes bug
      #12701.
      
      Synced from MySQL.
    ------------------------------------------------------------
    revno: 0.1.13
    committer: marko
    timestamp: Thu 2005-11-17 09:00:25 +0000
    message:
      Port r53 from branches/5.0:
      
      Make comments about buf_block_t::index more accurate.
    ------------------------------------------------------------
    revno: 0.1.12
    committer: marko
    timestamp: Wed 2005-11-16 15:10:37 +0000
    message:
      Merge patch to MySQL/InnoDB 5.0: Fix Bug #14747.
      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.
    ------------------------------------------------------------
    revno: 0.1.11
    committer: osku
    timestamp: Wed 2005-11-16 07:26:20 +0000
    message:
      Forward-port r46 from branches/5.0:
      
      Mostly fix bug #13778, when FOREIGN_KEY_CHECKS=0 we still need to check
      that datatypes between foreign key references are compatible.
      
      Add test cases (also for bug #9802).
    ------------------------------------------------------------
    revno: 0.1.10
    committer: osku
    timestamp: Mon 2005-11-07 13:52:11 +0000
    message:
      export.sh: Store log messages in export directory and refactor operations
      to avoid warnings.
    ------------------------------------------------------------
    revno: 0.1.9
    committer: osku
    timestamp: Fri 2005-11-04 14:20:11 +0000
    message:
      Fix comments for memory allocation functions and add some extra checks.
      Adapt callers.
    ------------------------------------------------------------
    revno: 0.1.8
    committer: osku
    timestamp: Fri 2005-11-04 10:57:22 +0000
    message:
      Check index column sizes in a better way (bug #13315).
    ------------------------------------------------------------
    revno: 0.1.7
    committer: osku
    timestamp: Fri 2005-11-04 07:53:04 +0000
    message:
      Add compile-innodb-debug and modify setup.sh to copy it to ../BUILD.
    ------------------------------------------------------------
    revno: 0.1.6
    committer: osku
    timestamp: Fri 2005-11-04 07:44:33 +0000
    message:
      Delete db/db0err.h and db directory.
    ------------------------------------------------------------
    revno: 0.1.5
    committer: marko
    timestamp: Thu 2005-11-03 11:23:49 +0000
    message:
      Remove include/Makefile.am and the references to it.
    ------------------------------------------------------------
    revno: 0.1.4
    committer: osku
    timestamp: Thu 2005-10-27 09:37:17 +0000
    message:
      include/Makefile.am: Remove reference to removed makefilewin.i.
    ------------------------------------------------------------
    revno: 0.1.3
    committer: osku
    timestamp: Thu 2005-10-27 07:51:34 +0000
    message:
      Add 5.0 -> 5.1 changes.
    ------------------------------------------------------------
    revno: 0.1.2
    committer: osku
    timestamp: Thu 2005-10-27 07:29:40 +0000
    message:
      Import 5.0 code.
    ------------------------------------------------------------
    revno: 0.1.1
    committer: osku
    timestamp: Thu 2005-10-27 07:02:45 +0000
    message:
      Create directory structure.
------------------------------------------------------------
revno: 3365
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Mon 2010-05-03 18:14:39 +0200
message:
  Bug#50373 --secure-file-priv=""
  
  Iterative patch improvement. Previously committed patch
  caused wrong result on Windows. The previous patch also
  broke secure_file_priv for symlinks since not all file
  paths which must be compared against this variable are
  normalized using the same norm.
  
  The server variable opt_secure_file_priv wasn't
  normalized properly and caused the operations
  LOAD DATA INFILE .. INTO TABLE ..
  and
  SELECT load_file(..)
  to do different interpretations of the
  --secure-file-priv option.
       
  The patch moves code to the server initialization
  routines so that the path always is normalized
  once and only once.
        
  It was also intended that setting the option
  to an empty string should be equal to
  lifting all previously set restrictions. This
  is also fixed by this patch.
------------------------------------------------------------
revno: 3364
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Fri 2010-04-30 15:27:17 +0400
message:
  Automerge.
    ------------------------------------------------------------
    revno: 3351.41.1
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: my51-bug48419
    timestamp: Fri 2010-04-30 15:10:48 +0400
    message:
      Bug #48419: another explain crash..
      
      WHERE predicates containing references to empty tables in a
      subquery were handled incorrectly by the optimizer when
      executing EXPLAIN. As a result, the optimizer could try to
      evaluate such predicates rather than just stop with
      "Impossible WHERE noticed after reading const tables" as
      it would do in a non-subquery case. This led to valgrind
      errors and crashes.
      
      Fixed the code checking the above condition so that subqueries
      are not excluded and hence are handled in the same way as top
      level SELECTs.
------------------------------------------------------------
revno: 3363
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: mysql-5.1-bugteam
timestamp: Thu 2010-04-29 20:18:19 -0300
message:
  Manual merge.
    ------------------------------------------------------------
    revno: 1810.3987.14
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 50974-5.0
    timestamp: Thu 2010-04-29 10:28:16 -0300
    message:
      Bug#50974: Server keeps receiving big (> max_allowed_packet) packets indefinitely.
      
      The server could be tricked to read packets indefinitely if it
      received a packet larger than the maximum size of one packet.
      This problem is aggravated by the fact that it can be triggered
      before authentication.
      
      The solution is to no skip big packets for non-authenticated
      sessions. If a big packet is sent before a session is authen-
      ticated, a error is returned and the connection is closed.
------------------------------------------------------------
revno: 3362
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: 50755-5.1
timestamp: Thu 2010-04-01 10:15:22 -0300
message:
  Bug#50755: Crash if stored routine def contains version comments
  
  The problem was that a syntactically invalid trigger could cause
  the server to crash when trying to list triggers. The crash would
  happen due to a mishap in the backup/restore procedure that should
  protect parser items which are not associated with the trigger. The
  backup/restore is used to isolate the parse tree (and context) of
  a statement from the load (and parsing) of a trigger. In this case,
  a error during the parsing of a trigger could cause the improper
  backup/restore sequence.
  
  The solution is to properly restore the original statement context
  before the parser is exited due to syntax errors in the trigger body.
------------------------------------------------------------
revno: 3361
committer: Ramil Kalimullin <ramil@mysql.com>
branch nick: mysql-5.1-bugteam
timestamp: Thu 2010-04-29 08:54:09 +0400
message:
  Manual merge.
    ------------------------------------------------------------
    revno: 1810.3987.13
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: b53237-5.0-bugteam
    timestamp: Thu 2010-04-29 08:42:32 +0400
    message:
      Fix for bug #53237: mysql_list_fields/COM_FIELD_LIST stack smashing
      
      Problem: "COM_FIELD_LIST is an old command of the MySQL server, before there was real move to only
      SQL. Seems that the data sent to COM_FIELD_LIST( mysql_list_fields() function) is not
      checked for sanity. By sending long data for the table a buffer is overflown, which can
      be used deliberately to include code that harms".
      
      Fix: check incoming data length.
------------------------------------------------------------
revno: 3360
committer: Georgi Kodinov <joro@sun.com>
branch nick: B47453-5.1-bugteam
timestamp: Wed 2010-04-28 15:55:54 +0300
message:
  Bug #47453: InnoDB incorrectly changes TIMESTAMP columns when JOINed
  during an UPDATE
  
  Extended the fix for bug 29310 to multi-table update:
  
  When a table is being updated it has two set of fields - fields required for
  checks of conditions and fields to be updated. A storage engine is allowed
  not to retrieve columns marked for update. Due to this fact records can't
  be compared to see whether the data has been changed or not. This makes the
  server always update records independently of data change.
    
  Now when an auto-updatable timestamp field is present and server sees that
  a table handle isn't going to retrieve write-only fields then all of such
  fields are marked as to be read to force the handler to retrieve them.
------------------------------------------------------------
revno: 3359
committer: Vladislav Vaintroub <vvaintroub@mysql.com>
branch nick: mysql-5.1-bugteam
timestamp: Tue 2010-04-27 11:29:45 +0200
message:
  merge
    ------------------------------------------------------------
    revno: 3357.1.1
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-04-27 00:46:52 +0400
    message:
      Null merge.
    ------------------------------------------------------------
    revno: 1810.3987.12
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Tue 2010-04-27 00:06:00 +0400
    message:
      Backport of the fix for bug #50335 to 5.0.
      
      The problem was in an incorrect debug assertion. The expression
      used in the failing assertion states that when finding
      references matching ORDER BY expressions, there can be only one
      reference to a single table. But that does not make any sense,
      all test cases for this bug are valid examples with multiple
      identical WHERE expressions referencing the same table which
      are also present in the ORDER BY list.
      
      Fixed by removing the failing assertion. We also have to take
      care of the 'found' counter so that we count multiple
      references only once. We rely on this fact later in
      eq_ref_table().
------------------------------------------------------------
revno: 3358
committer: Vladislav Vaintroub <vvaintroub@mysql.com>
branch nick: mysql-5.1-bugteam
timestamp: Mon 2010-04-26 23:59:50 +0200
message:
  Bug #48042 The description for Event ID ( 100 ) in Source ( MySQL ) cannot be found.
  
  The problem is that message resource  (message.rc) is compiled as part of static library
  sql.lib rather than with executable mysqld.exe. resource files do not work in static
  libraries.
  
  The fix is to add message.rc to mysqld.exe source files list.
------------------------------------------------------------
revno: 3357
committer: Ramil Kalimullin <ramil@mysql.com>
branch nick: b50946-5.1-bugteam
timestamp: Sun 2010-04-25 15:06:40 +0400
message:
  Fix for bug#50946: fast index creation still seems to copy the table
  
  Problem: ALTER TABLE ADD INDEX may lead to table copying if there's
  numeric field(s) with non-default display width modificator specified.
  
  Fix: compare numeric field's storage lenghts when we decide whether
  they can be considered 'equal' for table alteration purposes.
------------------------------------------------------------
revno: 3356
committer: Staale Smedseng <staale.smedseng@sun.com>
branch nick: 46261-51
timestamp: Thu 2010-04-22 15:52:00 +0200
message:
  Bug#46261 Plugins can be installed with --skip-grant-tables
  
  Previously installed dynamic plugins are explicitly not loaded
  on startup with --skip-grant-tables enabled. However, INSTALL
  PLUGIN/UNINSTALL PLUGIN commands are allowed, and result in
  inconsistent error messages (reporting duplicate plugin or
  plugin does not exist).
  
  This patch adds a check for --skip-grant-tables mode, and
  returns error ER_OPTION_PREVENTS_STATEMENT to the user when
  the above commands are attempted.
------------------------------------------------------------
revno: 3355
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Tue 2010-04-20 20:19:20 +0200
message:
  automerge
    ------------------------------------------------------------
    revno: 3353.1.1
    committer: Staale Smedseng <staale.smedseng@sun.com>
    branch nick: 51591-51
    timestamp: Mon 2010-04-19 15:48:37 +0200
    message:
      Bug#51591 deadlock in the plugins+status+variables
      
      Unlocking/locking of LOCK_plugin in ha_ndbcluster.cc not
      needed anymore (but missing from the initial patch).
------------------------------------------------------------
revno: 3354
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Tue 2010-04-20 16:17:34 +0200
message:
  Bug#50373 --secure-file-priv=""
  
  Correcting a patch misstake. The converted file path is placed in 'buff' not in opt_secure_file_priv.
------------------------------------------------------------
revno: 3353
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Fri 2010-04-16 16:56:16 +0200
message:
  Automerge
    ------------------------------------------------------------
    revno: 3351.1.106
    committer: Staale Smedseng <staale.smedseng@sun.com>
    branch nick: 51591-51
    timestamp: Fri 2010-04-16 15:02:23 +0200
    message:
      Bug#51591 deadlock in the plugins+status+variables
            
      Potential deadlock situation involving LOCK_plugin,
      LOCK_global_system_variables and LOCK_status.
            
      This patch backports the fix from next-mr, unlocking
      LOCK_plugin before calling plugin->init() and
      add_status_vars().
    ------------------------------------------------------------
    revno: 3351.1.105
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-04-16 16:42:34 +0500
    message:
      Bug#52124 memory leaks like a sieve in datetime, timestamp, time, date fields + warnings
      Arg_comparator initializes 'comparators' array in case of
      ROW comparison and does not free this array on destruction.
      It leads to memory leaks.
      The fix:
      -added Arg_comparator::cleanup() method which frees
       'comparators' array.
      -added Item_bool_func2::cleanup() method which calls
       Arg_comparator::cleanup() method
    ------------------------------------------------------------
    revno: 3351.1.104
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B52629-5.1-bugteam
    timestamp: Fri 2010-04-16 10:30:53 +0300
    message:
      Bug #52629: memory leak from sys_var_thd_dbug in binlog.binlog_write_error
      
      When re-setting (SET GLOBAL debug='') the GLOBAL debug settings the
      server was not freeing the data elements from the top (initial) frame
      before setting them to 0 without freeing the underlying memory. As these
      are global settings there's a chance that something is there already.
      Fixed by :
      1. making sure the allocated data are cleaned up before re-setting them
      while parsing a debug string
      2. making sure the stuff allocated in the global settings is freed on
      shutdown.
    ------------------------------------------------------------
    revno: 3351.1.103
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam-push
    timestamp: Fri 2010-04-16 01:59:21 +0100
    message:
      automerge: merged bug clone into latest mysql-5.1-bugteam.
        ------------------------------------------------------------
        revno: 3351.40.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Mon 2010-03-22 09:51:16 +0000
        message:
          BUG#51987: revoke privileges logs wrong error code
          
          A failed REVOKE statement is logged with error=0, thus causing
          the slave to stop. The slave should not stop as this was an
          expected error. Given that the execution failed on the master as
          well the error code should be logged so that the slave can replay
          the statement, get an error and compare with the master's
          execution outcome. If errors match, then slave can proceed with
          replication, as the error it got, when replaying the statement,
          was expected.
          
          In this particular case, the bug surfaces because the error code
          is pushed to the THD diagnostics area after writing the event to
          the binary log. Therefore, it would be logged with the THD
          diagnostics area clean, hence its error code would not contain
          the correct code.
          
          We fix this by moving the error reporting ahead of the call to
          the routine that writes the event to the binary log.
    ------------------------------------------------------------
    revno: 3351.1.102
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: vers_upd-5.1-bugteam
    timestamp: Thu 2010-04-15 14:00:07 +0300
    message:
      merge
        ------------------------------------------------------------
        revno: 3351.39.2
        author: sunanda.menon@sun.com
        committer: MySQL Build Team <build@mysql.com>
        branch nick: mysql-5.1
        timestamp: Mon 2010-04-12 12:12:20 +0200
        message:
          Merge from mysql-5.1.43sp1-release
            ------------------------------------------------------------
            revno: 3314.2.13
            tags: mysql-5.1.43sp1
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Thu 2010-03-25 11:17:29 +0100
            message:
              Backport of "Bug #50409 Solaris 8 compatibility broken by assumption about printstack() being present"
            ------------------------------------------------------------
            revno: 3314.2.12
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:53:23 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3345.2.1
              > revision-id: joro@sun.com-20100218084815-53nb9oonzd7r4gmj
              > parent: sergey.glukhov@sun.com-20100217121457-jqx19u6x387rgk7e
              > committer: Georgi Kodinov <joro@sun.com>
              > branch nick: fix-5.1-bugteam
              > timestamp: Thu 2010-02-18 10:48:15 +0200
              > message:
              >   Bug #51049: main.bug39022 fails in mysql-trunk-merge
              >   
              >   Fixed the test to behave correctly with ps-protocol
              >   and binlog format row.
              
              > ------------------------------------------------------------
              > revno: 3333.1.6
              > revision-id: joro@sun.com-20100129093628-sze9cv0neu0xbabm
              > parent: davi.arnaut@sun.com-20100128215140-x0w6fe2de0b28opp
              > committer: Georgi Kodinov <joro@sun.com>
              > branch nick: B49552-5.1-bugteam
              > timestamp: Fri 2010-01-29 11:36:28 +0200
              > message:
              >   Bug #49552 : sql_buffer_result cause crash + not found records
              >     in multitable delete/subquery
              >   
              >   SQL_BUFFER_RESULT should not have an effect on non-SELECT
              >   statements according to our documentation.
              >   Fixed by not passing it through to multi-table DELETE (similarly
              >   to how it's done for multi-table UPDATE).
            ------------------------------------------------------------
            revno: 3314.2.11
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:50:26 +0100
            message:
              Backporting for 5.1.43sp1 ,file added mysql-test/include/not_binlog_format_row.inc
            ------------------------------------------------------------
            revno: 3314.2.10
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:18:38 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3333.1.31
              > revision-id: joro@sun.com-20091223104518-o29t0i3thgs7wgm1
              > parent: sergey.glukhov@sun.com-20100205093946-bx1hsljxlm12h7uf
              > committer: Georgi Kodinov <joro@sun.com>
              > branch nick: B39022-5.1-bugteam
              > timestamp: Wed 2009-12-23 12:45:18 +0200
              > message:
              >   Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees
              >   
              >   flush_cached_records() was not correctly checking for errors after calling
              >   Item::val_xxx() methods. The expressions may contain subqueries
              >   or stored procedures that cause errors that should stop the statement.
              >   Fixed by correctly checking for errors and propagating them up the call stack.
              
              > ------------------------------------------------------------
              > revno: 3358
              > revision-id: sergey.glukhov@sun.com-20100226113925-mxwn1hfxe3l8khc4
              > parent: gshchepa@mysql.com-20100225191311-1x71dkk0h5e1alvx
              > committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
              > branch nick: mysql-5.1-bugteam
              > timestamp: Fri 2010-02-26 15:39:25 +0400
              > message:
              >   Bug#50995 Having clause on subquery result produces incorrect results.
              >   The problem is that cond->fix_fields(thd, 0) breaks
              >   condition(cuts off 'having'). The reason of that is
              >   that NULL valued Item pointer is present in the
              >   middle of Item list and it breaks the Item processing
              >   loop.
            ------------------------------------------------------------
            revno: 3314.2.9
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:16:49 +0100
            message:
              Backporting of 5.1.43sp1 release, files mysql-test/r/bug39022.result, mysql-test/t/bug39022.test added
            ------------------------------------------------------------
            revno: 3314.2.8
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:11:57 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3333.1.11 [merge]
              > revision-id: joro@sun.com-20100201115030-hgvq6489bt0w3rty
              > parent: li-bing.song@sun.com-20100130124925-o6sfex42b6noyc6x
              > parent: joro@sun.com-20100201114016-jylx4hivgqbs0vg2
              > committer: Georgi Kodinov <joro@sun.com>
              > branch nick: test-5.1-bugteam
              > timestamp: Mon 2010-02-01 13:50:30 +0200
              > message:
              >   merge
              > ------------------------------------------------------------
              > Use --include-merges or -n0 to see merged revisions.
            ------------------------------------------------------------
            revno: 3314.2.7
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:10:21 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3333.1.7 [merge]
              > revision-id: ramil@mysql.com-20100129110849-1nm85j95594epnme
              > parent: joro@sun.com-20100129093628-sze9cv0neu0xbabm
              > parent: ramil@mysql.com-20100129091757-81r640na2t5bzbiz
              > committer: Ramil Kalimullin <ramil@mysql.com>
              > branch nick: mysql-5.1-bugteam
              > timestamp: Fri 2010-01-29 15:08:49 +0400
              > message:
              >   Auto-merge.
              > ------------------------------------------------------------
              > Use --include-merges or -n0 to see merged revisions.
            ------------------------------------------------------------
            revno: 3314.2.6
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:08:44 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3329.2.3
              > revision-id: svoj@sun.com-20100122095702-e18xzhmyll1e5s25
              > parent: svoj@sun.com-20100122095632-j8ssd5csnlzp1zpf
              > committer: Sergey Vojtovich <svoj@sun.com>
              > branch nick: mysql-5.1-bugteam
              > timestamp: Fri 2010-01-22 13:57:02 +0400
              > message:
              >   Applying InnoDB snapshot, fixes BUG#46193.
              >   
              >   Detailed revision comments:
              >   
              >   r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
              >   branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
              >   the maximum auto-increment value from the table if
              >   innodb_force_recovery is set to at least 4, so that writes are
              >   disabled. (Bug #46193)
              >   
              >   innobase_get_int_col_max_value(): Move the function definition before
              >   ha_innobase::innobase_initialize_autoinc(), because that function now
              >   calls this function.
              >   
              >   ha_innobase::innobase_initialize_autoinc(): Change the return type to
              >   void.  Do not attempt to read the maximum auto-increment value from
              >   the table if innodb_force_recovery is set to at least 4.  Issue
              >   ER_AUTOINC_READ_FAILED to the client when the auto-increment value
              >   cannot be read.
              >   
              >   rb://144 by Sunny, revised by Marko
            ------------------------------------------------------------
            revno: 3314.2.5
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:06:50 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3324
              > revision-id: joro@sun.com-20091223151122-ada73up1yydh0emt
              > parent: joro@sun.com-20100119124841-38vva51cuq3if7dc
              > committer: Georgi Kodinov <joro@sun.com>
              > branch nick: B49512-5.1-bugteam
              > timestamp: Wed 2009-12-23 17:11:22 +0200
              > message:
              >   Bug #49512 : subquery with aggregate function crash
              >     subselect_single_select_engine::exec()
              >   
              >   When a subquery doesn't need to be evaluated because
              >   it returns only aggregate functions and these aggregates
              >   can be calculated from the metadata about the table it
              >   was not updating all the relevant members of the JOIN
              >   structure to reflect that this is a constant query.
              >   This caused problems to the enclosing subquery
              >   ('<> SOME' in the test case above) trying to read some
              >   data about the tables.
              >   
              >   Fixed by setting const_tables to the number of tables
              >   when the SELECT is optimized away.
            ------------------------------------------------------------
            revno: 3314.2.4
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:05:17 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3315.1.1
              > revision-id: mattias.jonsson@sun.com-20100118164918-afjah8vmey4ya4ox
              > parent: joro@sun.com-20100115090646-0g4tjrmqf20axlpv
              > committer: Mattias Jonsson <mattias.jonsson@sun.com>
              > branch nick: b47343-51-bt
              > timestamp: Mon 2010-01-18 17:49:18 +0100
              > message:
              >   Bug#47343: InnoDB fails to clean-up after lock wait timeout on
              >              REORGANIZE PARTITION
              >   
              >   There were several problems which lead to this this,
              >   all related to bad error handling.
              >   
              >   1) There was several bugs preventing the ddl-log to be used for
              >      cleaning up created files on error.
              >   
              >   2) The error handling after the copy partition rows did not close
              >      and unlock the tables, resulting in deletion of partitions
              >      which were in use, which lead InnoDB to put the partition to
              >      drop in a background queue.
              
              > ------------------------------------------------------------
              > revno: 3325
              > revision-id: mattias.jonsson@sun.com-20100119160251-0xvcgzw0y08xwk6r
              > parent: joro@sun.com-20091223151122-ada73up1yydh0emt
              > committer: Mattias Jonsson <mattias.jonsson@sun.com>
              > branch nick: topush-51-bugteam
              > timestamp: Tue 2010-01-19 17:02:51 +0100
              > message:
              >   post-push patch for bug#47343.
              >   
              >   Missing ha_rnd_end in copy_partitions, found due to a
              >   DBUG_ASSERT in mysql-pe
            ------------------------------------------------------------
            revno: 3314.2.3
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 13:02:25 +0100
            message:
              Backporting to 5.1.43sp1 patch
            ------------------------------------------------------------
            revno: 3314.2.2
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Wed 2010-03-24 10:45:18 +0100
            message:
              Backport into build-201003230706-5.1.43sp1
              
              > ------------------------------------------------------------
              > revno: 3302.1.1
              > revision-id: kristofer.pettersson@sun.com-20100113113900-o3m4jcm4l6qzum57
              > parent: dao-gang.qu@sun.com-20091231040419-i5dnn06ahs256qcy
              > committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
              > branch nick: mysql-5.1-bugteam
              > timestamp: Wed 2010-01-13 12:39:00 +0100
              > message:
              >   Bug#33982 debug assertion and crash reloading grant tables after sighup or kill
              >   
              >   In certain rare cases when a process was interrupted
              >   during a FLUSH PRIVILEGES operation the diagnostic
              >   area would be set to an error state but the function
              >   responsible for the operation would still signal
              >   success. This would lead to a debug assertion error
              >   later on when the server would attempt to reset the
              >   DA before sending the error message.
              >   
              >   This patch fixes the issue by assuring that
              >   reload_acl_and_cache() always fails if an error
              >   condition is raised.
              >   
              >   The second issue was that a KILL could cause
              >   a console error message which referred to a DA
              >   state without first making sure that such a
              >   state existed.
              >   
              >   This patch fixes this issue in two different
              >   palces by first checking DA state before
              >   fetching the error message.
              >   
              >    
            ------------------------------------------------------------
            revno: 3314.2.1
            author: sunanda.menon@sun.com
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1.43sp1-release
            timestamp: Tue 2010-03-23 08:18:05 +0100
            message:
              Set version number for mysql-5.1.43sp1 release
        ------------------------------------------------------------
        revno: 3351.39.1
        author: hery.ramilison@sun.com
        committer: MySQL Build Team <build@mysql.com>
        branch nick: mysql-5.1
        timestamp: Tue 2010-04-06 15:57:33 +0200
        message:
          Raise version number after cloning 5.1.46
    ------------------------------------------------------------
    revno: 3351.1.101
    committer: Sergey Vojtovich <svoj@sun.com>
    branch nick: mysql-5.1-bugteam-push
    timestamp: Wed 2010-04-14 15:53:43 +0400
    message:
      Merge fix for BUG39053 to 5.1-bugteam.
        ------------------------------------------------------------
        revno: 3351.38.1
        committer: Sergey Vojtovich <svoj@sun.com>
        branch nick: mysql-5.1-bugteam-bug39053
        timestamp: Wed 2010-04-14 13:53:59 +0400
        message:
          BUG#39053 - UNISTALL PLUGIN does not allow the storage engine
                      to cleanup open connections
          
          It was possible to UNINSTALL storage engine plugin when binding
          between THD object and storage engine is still active (e.g. in
          the middle of transaction).
          
          To avoid unclean deactivation (uninstall) of storage engine plugin
          in the middle of transaction, additional storage engine plugin
          lock is acquired by thd_set_ha_data().
          
          If ha_data is not null and storage engine plugin was not locked
          by thd_set_ha_data() in this connection before, storage engine
          plugin gets locked.
          
          If ha_data is null and storage engine plugin was locked by
          thd_set_ha_data() in this connection before, storage engine
          plugin lock gets released.
          
          If handlerton::close_connection() didn't reset ha_data, server does
          it immediately after calling handlerton::close_connection().
          
          Note that this is just a framework fix, storage engines must switch
          to thd_set_ha_data() from thd_ha_data() if they want to see fit.
    ------------------------------------------------------------
    revno: 3351.1.100
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B43594-5.1-bugteam
    timestamp: Mon 2010-04-12 11:56:28 +0300
    message:
      Bug #43594: mysqlhotcopy does not ignore log tables and others in mysql database
      
      Added a filter to mysqlhotcopy to filter out the same tables in the 'mysql'
      database that mysqldump filters out.
    ------------------------------------------------------------
    revno: 3351.1.99
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-04-09 14:57:11 -0300
    message:
      Backport revision alik@sun.com-20100223131824-comthndat57kx8s5:
      
      Add ignore pattern for valgrind messages.
    ------------------------------------------------------------
    revno: 3351.1.98
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B47095-5.1-bugteam
    timestamp: Fri 2010-04-09 14:47:18 +0300
    message:
      Bug #47095: Can't open_files_limit really be larger than 65535?
      
      Several problems addressed:
      
      1. The maximum value for --open_files_limit on non-windows boxes
      is now raised to UINT_MAX (the maximum possible without significant
      changes in the code). The maximum value on windows is kept to be
      2048 due to a known limitation (bug 24509).
      
      2. mysqld_safe now supports --open_files_limit=xx in addition to
      --open-files-limit=xx
      
      3. mysqld_safe always passes through --open[_-]files[_-]limit
      to the underlying mysqld. It used to pass it through only if it
      the user running the script has access to the root directory or
      there was an --user argument specified.
      
      4. Fixed a prototype in my_file.c to match its counterpart in
      the other #ifdef branch.
    ------------------------------------------------------------
    revno: 3351.1.97
    committer: Omer BarNir <omer@mysql.com>
    branch nick: bug-5.1
    timestamp: Wed 2010-04-07 11:28:28 -0700
    message:
      Correction to the disabled.def file in engines/iuds that got overwritten by
      mistake in previous push
    ------------------------------------------------------------
    revno: 3351.1.96
    committer: Omer BarNir <omer@mysql.com>
    branch nick: bug-5.1
    timestamp: Tue 2010-04-06 11:06:34 -0700
    message:
      Updates to test files in the 'engines' suite following changes in 5.1.46
    ------------------------------------------------------------
    revno: 3351.1.95
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-04-06 12:26:59 +0500
    message:
      Bug#52120 create view cause Assertion failed: 0, file .\item_subselect.cc, line 817
      We should disable const subselect item evaluation because
      subselect transformation does not happen in view_prepare_mode
      and thus val_...() methods can not be called.
    ------------------------------------------------------------
    revno: 3351.1.94
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: merge-5.1-bugteam
    timestamp: Tue 2010-04-06 11:00:04 +0300
    message:
      merge
        ------------------------------------------------------------
        revno: 1810.3987.11
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: merge-5.0-bugteam
        timestamp: Tue 2010-04-06 10:58:45 +0300
        message:
          changed the version back
    ------------------------------------------------------------
    revno: 3351.1.93
    tags: mysql-5.1.46, clone-5.1.46-build
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: merge-5.1-bugteam
    timestamp: Tue 2010-04-06 10:56:11 +0300
    message:
      merge
        ------------------------------------------------------------
        revno: 1810.3987.10
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: merge-5.0-bugteam
        timestamp: Tue 2010-04-06 10:51:52 +0300
        message:
          merge