------------------------------------------------------------
revno: 3644 [merge]
committer: Joerg Bruehe <joerg.bruehe@oracle.com>
branch nick: clone-5.1
timestamp: Fri 2012-03-02 13:18:12 +0100
message:
  Upmerge the yaSSL upgrade (to 2.2.0) from MySQL 5.0 to 5.1.
    ------------------------------------------------------------
    revno: 1810.3997.45
    committer: Joerg Bruehe <joerg.bruehe@oracle.com>
    branch nick: clone-5.0
    timestamp: Fri 2012-03-02 13:12:07 +0100
    message:
      Further upgrade the yaSSL library to version 2.2.0
      to pick up some new security fixes that are in it.
      
      Patch provided by Georgi Kodinov.
------------------------------------------------------------
revno: 3643
committer: Karen Langford <karen.langford@oracle.com>
branch nick: mysql-5.1.62-release
timestamp: Tue 2012-02-28 17:20:30 +0100
message:
  AIX builds fail for comments using //
------------------------------------------------------------
revno: 3642 [merge]
committer: Joerg Bruehe <joerg.bruehe@oracle.com>
branch nick: clone-5.1
timestamp: Tue 2012-02-28 12:44:21 +0100
message:
  Upmerge the copyright year change, from 5.0 to 5.1.
    ------------------------------------------------------------
    revno: 1810.3997.44
    committer: Joerg Bruehe <joerg.bruehe@oracle.com>
    branch nick: clone-5.0
    timestamp: Tue 2012-02-28 12:42:02 +0100
    message:
      The current year is 2012, and nobody noticed ...
      Update the year in the copyright notice, file "README".
------------------------------------------------------------
revno: 3641 [merge]
tags: clone-5.1.62-build
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Sat 2012-02-18 10:58:19 +0200
message:
  merge mysql-5.1->mysql-5.1-security
    ------------------------------------------------------------
    revno: 3560.6.111
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Fri 2012-02-17 11:42:04 +0200
    message:
      Bug#13721257 RACE CONDITION IN UPDATES OR INSERTS OF WIDE RECORDS
      
      This bug was originally filed and fixed as Bug#12612184. The original
      fix was buggy, and it was patched by Bug#12704861. Also that patch was
      buggy (potentially breaking crash recovery), and both fixes were
      reverted.
      
      This fix was not ported to the built-in InnoDB of MySQL 5.1, because
      the function signatures of many core functions are different from
      InnoDB Plugin and later versions. The block allocation routines and
      their callers would have to changed so that they handle block
      descriptors instead of page frames.
      
      When a record is updated so that its size grows, non-updated columns
      can be selected for external (off-page) storage. The bug is that the
      initially inserted updated record contains an all-zero BLOB pointer to
      the field that was not updated. Only after the BLOB pages have been
      allocated and written, the valid pointer can be written to the record.
      
      Between the release of the page latch in mtr_commit(mtr) after
      btr_cur_pessimistic_update() and the re-latching of the page in
      btr_pcur_restore_position(), other threads can see the invalid BLOB
      pointer consisting of 20 zero bytes. Moreover, if the system crashes
      at this point, the situation could persist after crash recovery, and
      the contents of the non-updated column would be permanently lost.
      
      The problem is amplified by the ROW_FORMAT=DYNAMIC and
      ROW_FORMAT=COMPRESSED that were introduced in
      innodb_file_format=barracuda in InnoDB Plugin, but the bug does exist
      in all InnoDB versions.
      
      The fix is as follows. After a pessimistic B-tree operation that needs
      to write out off-page columns, allocate the pages for these columns in
      the mini-transaction that performed the B-tree operation (btr_mtr),
      but write the pages in a separate mini-transaction (blob_mtr). Do
      mtr_commit(blob_mtr) before mtr_commit(btr_mtr). A quirk: Do not reuse
      pages that were previously freed in btr_mtr. Only write the off-page
      columns to 'fresh' pages.
      
      In this way, crash recovery will see redo log entries for blob_mtr
      before any redo log entry for btr_mtr. It will apply the BLOB page
      writes to pages that were marked free at that point. If crash recovery
      fails to see all of the btr_mtr redo log, there will be some
      unreachable BLOB data in free pages, but the B-tree will be in a
      consistent state.
      
      btr_page_alloc_low(): Renamed from btr_page_alloc(). Add the parameter
      init_mtr. Return an allocated block, or NULL. If init_mtr!=mtr but
      the page was already X-latched in mtr, do not initialize the page.
      
      btr_page_alloc(): Wrapper for btr_page_alloc_for_ibuf() and
      btr_page_alloc_low().
      
      btr_page_free(): Add a debug assertion that the page was a B-tree page.
      
      btr_lift_page_up(): Return the father block.
      
      btr_compress(), btr_cur_compress_if_useful(): Add the parameter ibool
      adjust, for adjusting the cursor position.
      
      btr_cur_pessimistic_update(): Preserve the cursor position when
      big_rec will be written and the new flag BTR_KEEP_POS_FLAG is defined.
      Remove a duplicate rec_get_offsets() call. Keep the X-latch on
      index->lock when big_rec is needed.
      
      btr_store_big_rec_extern_fields(): Replace update_inplace with
      an operation code, and local_mtr with btr_mtr. When not doing a
      fresh insert and btr_mtr has freed pages, put aside any pages that
      were previously X-latched in btr_mtr, and free the pages after
      writing out all data. The data must be written to 'fresh' pages,
      because btr_mtr will be committed and written to the redo log after
      the BLOB writes have been written to the redo log.
      
      btr_blob_op_is_update(): Check if an operation passed to
      btr_store_big_rec_extern_fields() is an update or insert-by-update.
      
      fseg_alloc_free_page_low(), fsp_alloc_free_page(),
      fseg_alloc_free_extent(), fseg_alloc_free_page_general(): Add the
      parameter init_mtr. Return an allocated block, or NULL. If
      init_mtr!=mtr but the page was already X-latched in mtr, do not
      initialize the page.
      
      xdes_get_descriptor_with_space_hdr(): Assert that the file space
      header is being X-latched.
      
      fsp_alloc_from_free_frag(): Refactored from fsp_alloc_free_page().
      
      fsp_page_create(): New function, for allocating, X-latching and
      potentially initializing a page. If init_mtr!=mtr but the page was
      already X-latched in mtr, do not initialize the page.
      
      fsp_free_page(): Add ut_ad(0) to the error outcomes.
      
      fsp_free_page(), fseg_free_page_low(): Increment mtr->n_freed_pages.
      
      fsp_alloc_seg_inode_page(), fseg_create_general(): Assert that the
      page was not previously X-latched in the mini-transaction. A file
      segment or inode page should never be allocated in the middle of an
      mini-transaction that frees pages, such as btr_cur_pessimistic_delete().
      
      fseg_alloc_free_page_low(): If the hinted page was allocated, skip the
      check if the tablespace should be extended. Return NULL instead of
      FIL_NULL on failure. Remove the flag frag_page_allocated. Instead,
      return directly, because the page would already have been initialized.
      
      fseg_find_free_frag_page_slot() would return ULINT_UNDEFINED on error,
      not FIL_NULL. Correct a bogus assertion.
      
      fseg_alloc_free_page(): Redefine as a wrapper macro around
      fseg_alloc_free_page_general().
      
      buf_block_buf_fix_inc(): Move the definition from the buf0buf.ic to
      buf0buf.h, so that it can be called from other modules.
      
      mtr_t: Add n_freed_pages (number of pages that have been freed).
      
      page_rec_get_nth_const(), page_rec_get_nth(): The inverse function of
      page_rec_get_n_recs_before(), get the nth record of the record
      list. This is faster than iterating the linked list. Refactored from
      page_get_middle_rec().
      
      trx_undo_rec_copy(): Add a debug assertion for the length.
      
      trx_undo_add_page(): Return a block descriptor or NULL instead of a
      page number or FIL_NULL.
      
      trx_undo_report_row_operation(): Add debug assertions.
      
      trx_sys_create_doublewrite_buf(): Assert that each page was not
      previously X-latched.
      
      page_cur_insert_rec_zip_reorg(): Make use of page_rec_get_nth().
      
      row_ins_clust_index_entry_by_modify(): Pass BTR_KEEP_POS_FLAG, so that
      the repositioning of the cursor can be avoided.
      
      row_ins_index_entry_low(): Add DEBUG_SYNC points before and after
      writing off-page columns. If inserting by updating a delete-marked
      record, do not reposition the cursor or commit the mini-transaction
      before writing the off-page columns.
      
      row_build(): Tighten a debug assertion about null BLOB pointers.
      
      row_upd_clust_rec(): Add DEBUG_SYNC points before and after writing
      off-page columns. Do not reposition the cursor or commit the
      mini-transaction before writing the off-page columns.
      
      rb:939 approved by Jimmy Yang
------------------------------------------------------------
revno: 3640 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Fri 2012-02-17 11:55:06 +0200
message:
  merge mysql-5.0-security->mysql-5.1-security
    ------------------------------------------------------------
    revno: 1810.3997.43 [merge]
    tags: clone-5.0.96-build
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.0-security
    timestamp: Fri 2012-02-17 11:51:14 +0200
    message:
      merged mysql-5.0->mysql-5.0-security
------------------------------------------------------------
revno: 3639 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Fri 2012-02-17 11:52:41 +0200
message:
  merge mysql-5.1->mysql-5.1-security
    ------------------------------------------------------------
    revno: 3560.6.110
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-16 15:54:16 +0200
    message:
      Fix link error on Windows.
      error LNK2001: unresolved external symbol _debug_sync_C_callback_ptr
    ------------------------------------------------------------
    revno: 3560.6.109 [merge]
    committer: Kent Boortz <kent.boortz@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-16 12:02:53 +0100
    message:
      Merge
        ------------------------------------------------------------
        revno: 3560.19.4
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2012-02-16 12:24:11 +0200
        message:
          Add instrumentation for Bug#13721257 RACE CONDITION IN UPDATES OR INSERTS
          OF WIDE RECORDS
          
          row_ins_index_entry_low(), row_upd_clust_rec(): Make a redo log
          checkpoint if a DEBUG flag is set. Add DEBUG_SYNC around
          btr_store_big_rec_extern_fields().
          
          rb:946 approved by Jimmy Yang
        ------------------------------------------------------------
        revno: 3560.19.3
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2012-02-16 12:20:41 +0200
        message:
          Correct a few copyright messages.
    ------------------------------------------------------------
    revno: 3560.6.108
    committer: MySQL Build Team<mysql-build@oss.oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-16 11:35:30 +0100
    message:
      Updated/added copyright headers
    ------------------------------------------------------------
    revno: 3560.6.107 [merge]
    committer: Kent Boortz <kent.boortz@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-16 11:17:04 +0100
    message:
      Merge
        ------------------------------------------------------------
        revno: 3560.19.2
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2012-02-15 16:28:00 +0200
        message:
          Remove a race condition in innodb_bug53756.test.
          Before killing the server, tell mysql-test-run that it is to be expected.
          
          Discussed with Bjorn Munch on IM.
        ------------------------------------------------------------
        revno: 3560.19.1
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2012-02-15 15:53:29 +0200
        message:
          store_create_info(): Fix a compiler warning about unused variable.
    ------------------------------------------------------------
    revno: 3560.6.106 [merge]
    committer: Kent Boortz <kent.boortz@oracle.com>
    branch nick: mysql-5.1
    timestamp: Wed 2012-02-15 17:21:38 +0100
    message:
      Updated/added copyright headers
        ------------------------------------------------------------
        revno: 1810.4001.10
        committer: MySQL Build Team<mysql-build@oss.oracle.com>
        branch nick: mysql-5.0
        timestamp: Wed 2012-02-15 17:13:47 +0100
        message:
          Updated/added copyright headers
    ------------------------------------------------------------
    revno: 3560.6.105
    committer: Sunny Bains <Sunny.Bains@Oracle.Com>
    branch nick: 5.1
    timestamp: Fri 2012-02-10 14:09:12 +1100
    message:
      BUG#12739098 - 62401: ASSERTION TRX->ERROR_STATE == DB_SUCCESS, QUE0QUE.C LINE 1264 ON TRUNCATE 
                  
      During FIC error handling the trx->error_state was not being set to DB_SUCCESS
      after failure, before attempting the next DDL SQL operation. This reset to
      DB_SUCCESS is somewhat of a requirement though not explicitly stated anywhere.
      The fix is to reset it to DB_SUCCESS in row0merge.cc if row_merge_rename_indexes
      or row_merge_drop_index functions fail, also reset to DB_SUCCESS at trx commit.
      				          
      rb://935 Approved by Jimmy Yang.
------------------------------------------------------------
revno: 3638 [merge]
committer: Joerg Bruehe <joerg.bruehe@oracle.com>
branch nick: security-5.1
timestamp: Thu 2012-02-16 15:55:53 +0100
message:
  Merge compile fix for AIX into delivery tree.
    ------------------------------------------------------------
    revno: 3560.18.1
    committer: Joerg Bruehe <joerg.bruehe@oracle.com>
    branch nick: bzero-5.1
    timestamp: Thu 2012-01-19 17:05:47 +0100
    message:
      Compile fix needed for AIX,
      to work around the lack of a bzero() prototype.
------------------------------------------------------------
revno: 3637 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: B13706828-5.1-security
timestamp: Mon 2012-02-13 13:40:12 +0200
message:
  merge from 5.0-security
    ------------------------------------------------------------
    revno: 1810.3997.42
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: B13706828-5.0-security
    timestamp: Fri 2012-02-10 16:33:27 +0200
    message:
      Bug #13706828: UPGRADE YASSL FROM 1.7.2 TO 2.1.4
      
      $SUBJ$
      1. Took a diff between the previous base version and the
      mysql sources.
      2. Added the new 2.1.4 base version.
      3. Reviewed and re-applied the diff from step #1.
------------------------------------------------------------
revno: 3636 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: upgrade-yassl-5.1-security
timestamp: Fri 2012-02-10 11:49:48 +0200
message:
  merge
    ------------------------------------------------------------
    revno: 3633.1.1
    committer: Martin Hansson <martin.hansson@oracle.com>
    branch nick: mysql-5.1-security
    timestamp: Tue 2012-02-07 14:16:09 +0100
    message:
      Bug #11765810 58813: SERVER THREAD HANGS WHEN JOIN + WHERE + GROUP BY
      IS EXECUTED TWICE FROM P
      
      This bug is a duplicate of bug 12567331, which was pushed to the
      optimizer backporting tree on 2011-06-11. This is just a back-port of
      the fix. Both test cases are included as they differ somewhat.
------------------------------------------------------------
revno: 3635 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: upgrade-yassl-5.1-security
timestamp: Fri 2012-02-10 11:39:51 +0200
message:
  empty merge of mysql-5.0-security->mysql-5.1-security
    ------------------------------------------------------------
    revno: 1810.3997.41
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: upgrade-yassl-5.0-security
    timestamp: Fri 2012-02-10 11:10:07 +0200
    message:
      Bug#13706621 :  UNIFY THE YASSL VERSIONS THAT WE USE BY BACKPORTING 5.1 
      AND 5.5 YASSL FIXES.
      
      Took the 5.5 yassl code and applied it to the 5.0 codebase, keeping the
      compilation files.
------------------------------------------------------------
revno: 3634
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: upgrade-yassl-5.1-security
timestamp: Fri 2012-02-10 11:35:36 +0200
message:
  Bug#13706621 :  UNIFY THE YASSL VERSIONS THAT WE USE BY BACKPORTING 5.1 
  AND 5.5 YASSL FIXES.
  
  Took the 5.5 yassl directory and moved it to the 5.1 tree, while
  preserving the makefiles.
------------------------------------------------------------
revno: 3633 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Mon 2012-02-06 18:26:48 +0200
message:
  empty weave merge mysql-5.0-security->mysql-5.1-security
    ------------------------------------------------------------
    revno: 1810.3997.40 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.0-security
    timestamp: Mon 2012-02-06 18:23:41 +0200
    message:
      merged mysql-5.0->mysql-5.0-security
------------------------------------------------------------
revno: 3632 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Mon 2012-02-06 18:24:51 +0200
message:
  merged mysql-5.1->mysql-5.1-security
    ------------------------------------------------------------
    revno: 3560.6.104
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.1
    timestamp: Mon 2012-02-06 12:44:59 +0200
    message:
      Fix Bug#11754376 45976: INNODB LOST FILES FOR TEMPORARY TABLES ON
      GRACEFUL SHUTDOWN
      
      During startup mysql picks up .frm files from the tmpdir directory and
      tries to drop those tables in the storage engine.
      
      The problem is that when tmpdir ends in / then ha_innobase::delete_table()
      is passed a string like "/var/tmp//#sql123", then it wrongly normalizes it
      to "/#sql123" and calls row_drop_table_for_mysql() which of course fails
      to delete the table entry from the InnoDB dictionary cache.
      ha_innobase::delete_table() returns an error but nevertheless mysql wipes
      away the .frm file and the entry in the InnoDB dictionary cache remains
      orphaned with no easy way to remove it.
      
      The "no easy" way to remove it is to create a similar temporary table again,
      copy its .frm file to tmpdir under "#sql123.frm" and restart mysqld with
      tmpdir=/var/tmp (no trailing slash) - this way mysql will pick the .frm file
      after restart and will try to issue drop table for "/var/tmp/#sql123"
      (notice do double slash), ha_innobase::delete_table() will normalize it to
      "tmp/#sql123" and row_drop_table_for_mysql() will successfully remove the
      table entry from the dictionary cache.
      
      The solution is to fix normalize_table_name_low() to normalize things like
      "/var/tmp//table" correctly to "tmp/table".
      
      This patch also adds a test function which invokes
      normalize_table_name_low() with various inputs to make sure it works
      correctly and a mtr test that calls this test function.
      
      Reviewed by:	Marko (http://bur03.no.oracle.com/rb/r/929/)
    ------------------------------------------------------------
    revno: 3560.6.103
    committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
    branch nick: bug_93_5.1
    timestamp: Fri 2012-02-03 19:37:00 +0530
    message:
      BUG#11748748 - 37280: CHECK AND REPAIR TABLE REPORT TABLE
                            CORRUPTED WHEN RUN CONCURRENTLY WITH
      
      ISSUE: Table corruption due to concurrent queries.
             Different threads running check, repair query
             along with insert. Locks not properly acquired
             in repair query. Rows are inserted inbetween
             repair query.
      
      SOLUTION: Mutex lock is acquired before the
                repair call. Concurrent queries wont
                effect the call to repair.
    ------------------------------------------------------------
    revno: 3560.6.102
    committer: Alexander Barkov <alexander.barkov@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-02 16:22:13 +0400
    message:
      Postfix for Bug#11752408.
      Recording correct test results.
      
      modified:
        mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result
        mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
    ------------------------------------------------------------
    revno: 3560.6.101
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-02 13:38:32 +0200
    message:
      Bug#13654923 BOGUS DEBUG ASSERTION IN INDEX CREATION FOR ZERO-LENGTH RECORD
      
      row_merge_buf_write(): Relax the bogus assertion.
    ------------------------------------------------------------
    revno: 3560.6.100
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-02 12:07:06 +0200
    message:
      Suppress messages about long semaphore waits in innodb_bug34300.test.
    ------------------------------------------------------------
    revno: 3560.6.99 [merge]
    committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-02-02 14:19:38 +0530
    message:
      BUG#11756869 - 48848: MYISAMCHK DOING SORT RECOVER IN CERTAIN
                            CASES RESETS DATA POINTER TO SMAL
      
      ISSUE: Myisamchk doing sort recover
             on a table reduces data_file_length.
             Maximum size of data file decreases,
             lesser number of rows are stored.
      
      SOLUTION: Size of data_file_length is
                fixed to the original length.
        ------------------------------------------------------------
        revno: 3560.17.1
        committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
        branch nick: bug_869_1
        timestamp: Wed 2012-02-01 11:19:53 +0530
        message:
          BUG#11756869 - 48848: MYISAMCHK DOING SORT RECOVER IN CERTAIN
                                CASES RESETS DATA POINTER TO SMAL
          
          ISSUE: Myisamchk doing sort recover
                 on a table reduces data_file_length.
                 Maximum size of data file decreases,
                 lesser number of rows are stored.
          
          SOLUTION: Size of data_file_length is
                    fixed to the original length.
    ------------------------------------------------------------
    revno: 3560.6.98
    committer: Inaam Rana <inaam.rana@oracle.com>
    branch nick: mysql-5.1
    timestamp: Tue 2012-01-31 09:31:31 -0500
    message:
      Bug#13636122 THE ORIGINAL TABLE MISSING WHILE EXECUTE THE DDL 'ALTER TABLE ADD COLUMN
      
      rb://914
      approved by: Marko Makela
      
      Poll in fil_rename_tablespace() after setting ::stop_ios flag can
      result in a hang because the other thread actually dispatching the IO
      won't wake IO helper threads or flush the tablespace before starting
      wait in fil_mutex_enter_and_prepare_for_io().
    ------------------------------------------------------------
    revno: 3560.6.97
    committer: sayantan.dutta@oracle.com
    branch nick: mysql-5.1
    timestamp: Tue 2012-01-31 17:39:40 +0530
    message:
      (no message)
    ------------------------------------------------------------
    revno: 3560.6.96
    committer: sayantan.dutta@oracle.com
    branch nick: mysql-5.1
    timestamp: Tue 2012-01-31 17:09:32 +0530
    message:
      Bug #64127: MTR --warnings option misses some of InnoDB errors and warnings
    ------------------------------------------------------------
    revno: 3560.6.95 [merge]
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: mysql-5.1
    timestamp: Tue 2012-01-31 10:57:12 +0400
    message:
      Null-merge from mysql-5.0.
        ------------------------------------------------------------
        revno: 1810.4001.9
        committer: Ramil Kalimullin <ramil@mysql.com>
        branch nick: mysql-5.0
        timestamp: Mon 2012-01-30 22:52:33 +0400
        message:
          Fix for BUG#13596377: MYSQL CRASHES ON STARTUP ON FREEBSD IN PB2
          
          Fix for #36428/#38364 backported into 5.0.
    ------------------------------------------------------------
    revno: 3560.6.94
    committer: Guilhem Bichot <guilhem.bichot@oracle.com>
    branch nick: mysql-5.1
    timestamp: Thu 2012-01-26 10:25:23 +0100
    message:
      Fixes for:
      BUG#13519696 - 62940: SELECT RESULTS VARY WITH VERSION AND
      WITH/WITHOUT INDEX RANGE SCAN
      BUG#13453382 - REGRESSION SINCE 5.1.39, RANGE OPTIMIZER WRONG
      RESULTS WITH DECIMAL CONVERSION
      BUG#13463488 - 63437: CHAR & BETWEEN WITH INDEX RETURNS WRONG
      RESULT AFTER MYSQL 5.1.
      Those are all cases where the range optimizer got it wrong
      with > and >=.
    ------------------------------------------------------------
    revno: 3560.6.93
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Wed 2012-01-25 10:15:27 +0200
    message:
      btr_cur_search_to_nth_level(): Add a debug assertion
      and some Valgrind instrumentation.
    ------------------------------------------------------------
    revno: 3560.6.92 [merge]
    committer: Alexander Barkov <alexander.barkov@oracle.com>
    branch nick: mysql-5.1.b13458237
    timestamp: Tue 2012-01-24 16:02:12 +0400
    message:
      Merging from mysql-5.1
        ------------------------------------------------------------
        revno: 3560.16.1
        committer: Alexander Barkov <alexander.barkov@oracle.com>
        branch nick: mysql-5.1.b11752408
        timestamp: Mon 2012-01-23 13:07:10 +0400
        message:
          Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI
          
          Introducing new collations:
          utf8_general_mysql500_ci and ucs2_general_mysql500_ci,
          to reproduce behaviour of utf8_general_ci and ucs2_general_ci
          from mysql-5.1.23 (and earlier).
          
          The collations are added to simplify upgrade from mysql-5.1.23 and earlier.
          
          Note: The patch does not make new server start over old data automatically.
          Some manual upgrade procedures are assumed.
          
          Paul: please get in touch with me to discuss upgrade procedures
          when documenting this bug.
          
          modified:
            include/m_ctype.h
            mysql-test/r/ctype_utf8.result
            mysql-test/t/ctype_utf8.test
            mysys/charset-def.c
            strings/ctype-ucs2.c
            strings/ctype-utf8.c
    ------------------------------------------------------------
    revno: 3560.6.91
    committer: Alexander Barkov <alexander.barkov@oracle.com>
    branch nick: mysql-5.1.b13458237
    timestamp: Tue 2012-01-24 13:00:13 +0400
    message:
      BUG#13458237 - INCONSISTENT HANDLING OF INVALIDE DATES WITH ZERO DAY. SIMILAR TO '2009-10-00' 
      - Reverting the patch for Bug # 12584302
        The patch will be reverted in 5.1 and 5.5.
        The patch will not be reverted in 5.6, the change will
        be properly documented in 5.6.
      - Backporting DBUG_ASSERT not to crash on '0000-01-00'
        (already fixed in mysql-trunk (5.6))
    ------------------------------------------------------------
    revno: 3560.6.90
    committer: Nirbhay Choubey <nirbhay.choubey@oracle.com>
    branch nick: mysql-5.1
    timestamp: Tue 2012-01-17 09:10:58 +0530
    message:
      Bug #11760384 52792: MYSQLDUMP IN XML MODE DOES NOT
                           DUMP ROUTINES
      
      Minor post-fix to avoid build failure when built with
      Werror.
    ------------------------------------------------------------
    revno: 3560.6.89
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Mon 2012-01-16 14:22:03 +0200
    message:
      Bug#13496818 ASSERTION: REC_PAGE_NO > 4 IN IBUF CONTRACTION
      Relax a bogus debug assertion.
      Approved by Jimmy Yang on IM.
    ------------------------------------------------------------
    revno: 3560.6.88
    committer: Nuno Carvalho <nuno.carvalho@oracle.com>
    branch nick: mysql-5.1
    timestamp: Mon 2012-01-16 09:17:40 +0000
    message:
      BUG#11893288 60542: RPL.RPL_EXTRA_COL_MASTER_* DOESN'T TEST WHAT WAS INTENDED
      
      Test extra/rpl_tests/rpl_extra_col_master.test (used by
      rpl_extra_col_master_*) ends with the active connection pointing to the
      slave. Thus, the two last tests never succeed in changing the binlog
      format of the master away from 'row'. With correct active connection
      (master) tests fail for binlog 'statement' and 'mixed' formats.
      
      Tests rpl_extra_col_master_* only run when binary log format is
      row.  Statement and mix replication do not make sense in this
      tests since it will try to execute statements on columns that do
      not exist.  This fix is basically a backport from mysql-5.5, see
      changes done as part of BUG 39934.
    ------------------------------------------------------------
    revno: 3560.6.87
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.1
    timestamp: Mon 2012-01-16 09:55:12 +0200
    message:
      buf_page_get_known_nowait(): Relax a bogus debug assertion.
      When mode==BUF_KEEP_OLD, buffered inserts are being merged to the page.
      It is possible that a read request for a page was pending while the page
      was freed in DROP INDEX or DROP TABLE. In these cases, it is OK (although
      useless) to merge the buffered changes to the freed page.
    ------------------------------------------------------------
    revno: 3560.6.86
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.1-bug11765438
    timestamp: Mon 2012-01-16 09:58:31 +0530
    message:
      Bug #11765438 58406: 
      ISSUES WITH COPYING PARTITIONED INNODB TABLES FROM LINUX TO WINDOWS
      
      This problem was already fixed in mysql-trunk as part of bug #11755924.  I am 
      backporting the fix to mysql-5.1.  
------------------------------------------------------------
revno: 3631
committer: Gopal Shankar <gopal.shankar@oracle.com>
branch nick: mysql-5.1-security
timestamp: Mon 2012-01-30 11:57:33 +0530
message:
        Bug#13105873 :Valgrind Warning: CRASH IN FOREIGN
        KEY HANDLING ON SUBSEQUENT CREATE TABLE IF NOT EXISTS
        
        PROBLEM:
        --------
        Consider a SP routine which does CREATE TABLE
        with REFERENCES clause. The first call to this routine
        invokes parser and the parsed items are cached, so as 
        to avoid parsing for the second execution of the routine.
        
        It is obsevered that valgrind reports a warning
        upon read of thd->lex->alter_info->key_list->Foreign_key object,
        which seem to be pointing to a invalid memory address
        during second time execution of the routine. Accessing this object
        theoretically could cause a crash.
        
        ANALYSIS:
        ---------
        The problem stems from the fact that for some reason
        elements of ref_columns list in thd->lex->alter_info->
        key_list->Foreign_key object are changed to point to
        objects allocated on runtime memory root.
        
        During the first execution of routine we create
        a copy of thd->lex->alter_info object.
        As part of this process we create a clones of objects in
        Alter_info::key_list and of Foreign_key object in particular.
        Then Foreign_key object is cloned for some reason we
        perform shallow copies of both Foreign_key::ref_columns
        and Foreign_key::columns list. So new instance of 
        Foreign_key object starts to SHARE contents of ref_columns
        and columns list with the original instance.
        After that as part of cloning process we call
        list_copy_and_replace_each_value() for elements of
        ref_columns list. As result ref_columns lists in both
        original and cloned Foreign_key object start to contain
        pointers to Key_part_spec objects allocated on runtime
        memory root because of shallow copy.
        
        So when we start copying of thd->lex->alter_info object
        during the second execution of stored routine we indeed
        encounter pointer to the Key_part_spec object allocated
        on runtime mem-root which was cleared during at the end
        of previous execution. This is done in sp_head::execute(), 
        by a call to free_root(&execute_mem_root,MYF(0));
        As result we get valgrind warnings about accessing 
        unreferenced memory.
        
        FIX:
        ----
        The safest solution to this problem is to 
        fix Foreign_key(Foreign_key, MEM_ROOT) constructor to do
        a deep copy of columns lists, similar to Key(Key, MEM_ROOT) 
        constructor.
------------------------------------------------------------
revno: 3630
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.1-security
timestamp: Fri 2012-01-27 11:13:13 +0100
message:
  Bug#13580775 ASSERTION FAILED: RECORD_LENGTH == M_RECORD_LENGTH
  Bug#13011410 CRASH IN FILESORT CODE WITH GROUP BY/ROLLUP
  
  The assert in 13580775 is visible in 5.6 only, 
  but shows that all versions are vulnerable.
  13011410 crashes in all versions.
  
  filesort tries to re-use the sort buffer between invocations in order to save
  malloc/free overhead.
  The fix for Bug 11748783 - 37359: FILESORT CAN BE MORE EFFICIENT.
  added an assert that buffer properties (num_records, record_length) are
  consistent between invocations. Indeed, they are not necessarily consistent.
    
  Fix: re-allocate the sort buffer if properties change.
------------------------------------------------------------
revno: 3629 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Thu 2012-01-12 16:43:41 +0200
message:
  empty weave merge mysql-5.0-security->mysql-5.1-security
    ------------------------------------------------------------
    revno: 1810.3997.39 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.0-security
    timestamp: Thu 2012-01-12 16:39:44 +0200
    message:
      empty weave merge from mysql-5.0
------------------------------------------------------------
revno: 3628 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-5.1-security
timestamp: Thu 2012-01-12 16:42:23 +0200
message:
  weave merge mysql-5.1->mysql-5.1-security
    ------------------------------------------------------------
    revno: 3560.6.85 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.1
    timestamp: Thu 2012-01-12 14:57:14 +0200
    message:
      empty weave merge
        ------------------------------------------------------------
        revno: 1810.4001.8 [merge]
        committer: Bjorn Munch <bjorn.munch@oracle.com>
        branch nick: mysql-5.0
        timestamp: Wed 2012-01-11 10:10:34 +0100
        message:
          Merge from mysql-5.0.95-release
    ------------------------------------------------------------
    revno: 3560.6.84 [merge]
    committer: Karen Langford <karen.langford@oracle.com>
    branch nick: mysql-5.1
    timestamp: Wed 2012-01-11 18:51:42 +0100
    message:
      Merge from mysql-5.1.61-release
        ------------------------------------------------------------
        revno: 3622.1.1
        tags: mysql-5.1.61
        committer: Karen Langford <karen.langford@oracle.com>
        branch nick: mysql-5.1.61-release
        timestamp: Wed 2012-01-11 18:40:29 +0100
        message:
          Fixes required to build on AIX
