Home | Back
------------------------------------------------------------
revno: 4868
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-04-05 09:04:03 +0300
message:
  Merge from mysql-5.6 to the 5.6.11 release clone.
  ------------------------------------------------------------
  revno: 5006
  revision-id: marko.makela@oracle.com-20130403124730-s8ixii9q152cchtz
  parent: ritheesh.vedire@oracle.com-20130403104310-53u66hzx3pvb0doa
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: mysql-5.6
  timestamp: Wed 2013-04-03 15:47:30 +0300
  message:
    Fix regression Bug#16544143 ENABLE PARTIAL ROLLBACK DURING ONLINE ALTER TABLE
    
    row_log_allocate(): Initialize the added fields.
------------------------------------------------------------
revno: 4867
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-04-05 09:02:38 +0300
message:
  Merge from mysql-5.6 to the 5.6.11 release clone.
  ------------------------------------------------------------
  revno: 5004
  revision-id: marko.makela@oracle.com-20130403072604-74qjf3rfp64s4mcv
  parent: marko.makela@oracle.com-20130403071833-jlm3cg66gua427yi
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: mysql-5.6
  timestamp: Wed 2013-04-03 10:26:04 +0300
  message:
    Bug#16544143 ENABLE PARTIAL ROLLBACK DURING ONLINE ALTER TABLE
    
    During table-copying online ALTER TABLE (such as ADD COLUMN, DROP
    COLUMN, ADD PRIMARY KEY, changing the ROW_FORMAT), we keep a log of
    concurrent INSERT and DELETE operations that modify the table data.
    Off-page columns (BLOBs) are not logged; instead, we just log the
    pointers as they are in the clustered index records.
    
    In order to avoid accessing stale BLOB pointers when applying the log,
    we used to suspend the purge of records that would free BLOBs, and keep
    track of user transactions that were rolled back.
    
    The bug is that a partial rollback is wrongly treated as a full
    rollback. That is, the remaining changes of a partially rolled back
    transaction (one that involved a statement rollback, or an explicit
    ROLLBACK TO SAVEPOINT) could be lost (rolled back) during the online
    ALTER TABLE.
    
    row_log_table_rollback(), row_log_t::trx_rb: Remove. We no longer keep
    track of transactions. We keep track of BLOB start pages instead.
    
    row_log_table_is_rollback(): Remove. The call in
    row_merge_insert_index_tuples() was made redundant in the fix of
    Bug#14712710 BOGUS DUPLICATE KEY ERROR DURING ONLINE ALTER TABLE
    (rb#1438) when row_merge_read_clustered_index() started to use
    REPEATABLE READ instead of READ UNCOMMITTED.
    
    row_log_t::blobs: A new member, a map from BLOB page numbers to byte
    offsets in the log. This keeps track of BLOBs freed and allocated during
    ALTER TABLE. If a previously freed BLOB page is allocated, the log apply
    must trust the BLOB page number starting from the log record of the new
    allocation.
    
    Example: A transaction inserted a BLOB starting at page 123. There was
    a partial rollback that undoes the insert, but the transaction remains
    active. So, we will insert (123,BLOB_FREED) to log->blobs.
    Later, another BLOB will be inserted at page 123, when log->tail.total=4567.
    We will replace the (123,BLOB_FREED) with (123,4567) in the log->blobs.
    The log record for inserting this BLOB would start at offset 4567.
    
    row_log_table_blob_free(), row_log_table_blob_alloc(): New functions,
    for updating row_log_t::blobs.
    
    row_log_table_close_func(), row_log_table_apply_op():
    Update the new field row_log_buf_t::total.
    
    row_log_table_delete(): Add the parameter 'bool purge', to specify
    whether to log BLOB prefixes for updating secondary indexes.
    The flag will be set during a partial or full rollback.
    
    row_log_table_apply_convert_mrec(): Before accessing any BLOB data,
    check row_log_t::blobs if it is safe to do so.
    
    row_purge_remove_clust_if_poss_low(), row_purge_remove_clust_if_poss(),
    row_purge_del_mark(), row_purge_upd_exist_or_extern(): Do not suspend
    the purge if it would free BLOBs during online ALTER TABLE. Rely on
    the row_log_t::blobs.
    
    rec_print_comp(): Display the BLOB pointer when truncating a column.
    
    rb#2203 approved by Jimmy Yang
------------------------------------------------------------
revno: 4866
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-04-05 08:55:42 +0300
message:
  Merge from mysql-5.6 to the 5.6.11 release clone.
  ------------------------------------------------------------
  revno: 5003
  revision-id: marko.makela@oracle.com-20130403071833-jlm3cg66gua427yi
  parent: tor.didriksen@oracle.com-20130402143134-yzbal1l5aay0e42d
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: mysql-5.6
  timestamp: Wed 2013-04-03 10:18:33 +0300
  message:
    Bug#16586355 CORRUPTION IN ONLINE ALTER TABLE...ADD PRIMARY KEY(A,B),
    CHANGE A ... AFTER B
    
    row_log_table_get_pk() assigned the column mapping to the wrong variable.
    Refactor it to make the logic easier to follow.
    
    row_log_table_get_pk_old_col(): Get the old table column corresponding
    to a new table column.  Returns NULL if the column was added to the
    new table.
    
    row_log_table_get_pk_col(): Retrieve the column value from the old
    table record (and optionally BLOB pages).
    
    rb#2274 approved by Jimmy Yang
------------------------------------------------------------
revno: 4865
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Tue 2013-03-26 14:08:38 +0200
message:
  Bug#16544336 INCONSISTENT ONLINE ADD PRIMARY KEY ON COLUMN PREFIX
  
  row_log_table_get_pk(): Invoke dtype_get_at_most_n_mbchars()
  to properly retrieve the column prefix.
  
  This bug affected online ALTER TABLE...ADD PRIMARY KEY where the new
  PRIMARY KEY included a column prefix.
  
  When the definition of primary key is changed, we must identify both
  the old and new PRIMARY KEY value of the row in the modification log.
  
  The bug was that we failed to cut the column prefix, and log apply
  would fail to find the row. This caused the log apply to skip DELETE
  operations, either as part of ROW_T_DELETE or as part of ROW_T_UPDATE
  (update can be treated as delete and insert).
  
  rb#2245 approved by Kevin Lewis
------------------------------------------------------------
revno: 4864
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Mon 2013-03-25 13:58:56 +0100
message:
  Updated Release Engineering mail address
------------------------------------------------------------
revno: 4863
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-03-22 07:56:18 +0200
message:
  Bug#16503490 TABLE-COPYING ALTER TABLE MISTAKES PARTIAL ROLLBACK
  FOR FULL ROLLBACK
  
  During table-copying online ALTER TABLE (such as ADD COLUMN, DROP
  COLUMN, ADD PRIMARY KEY, changing the ROW_FORMAT), we keep a log of
  concurrent INSERT and DELETE operations that modify the table data.
  Off-page columns (BLOBs) are not logged; instead, we just log the
  pointers as they are in the clustered index records.
  
  In order to avoid accessing stale BLOB pointers when applying the log,
  we suspend the purge of records that would free BLOBs, and keep track
  of user transactions that were rolled back.
  
  The bug is that a partial rollback is wrongly treated as a full
  rollback. That is, the remaining changes of a partially rolled back
  transaction (one that involved a statement rollback, or an explicit
  ROLLBACK TO SAVEPOINT) could be lost (rolled back) during the online
  ALTER TABLE.
  
  This patch works around the problem in MySQL 5.6.11. We prohibit
  partial rollback during table-copying online ALTER TABLE.
  
  There are two forms of partial rollback.
  
  ROLLBACK TO SAVEPOINT will simply return an error 153, but it will not
  commit or roll back the transaction. The user has to explicitly commit
  or roll back.
  
  Statement rollback (such as when a duplicate key error is detected
  during an INSERT) will fake a deadlock and roll back the entire
  transaction.
  
  lock_tables_are_being_altered(): A predicate for checking if a
  transaction has locked any tables that are being processed by
  table-copying ALTER TABLE. This is similar to lock_table_has(), which
  is invoked for the transaction of the currently running thread,
  without acquiring any mutex.
  
  innobase_rollback_to_savepoint(): Return HA_ERR_NO_SAVEPOINT if online
  ALTER is active.
  
  row_mysql_handle_errors(): Fake a deadlock if online ALTER is active
  and we would be rolling back to a savepoint.
  
  We do not take index->lock for the dict_index_is_online_ddl() checks
  for performance reasons. The index cannot go away while there is a
  transaction holding locks on it.
  
  rb#2233 approved by Kevin Lewis
------------------------------------------------------------
revno: 4862
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Thu 2013-03-21 14:47:33 +0100
message:
  Fixed SuSE Build issue
------------------------------------------------------------
revno: 4861
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-03-15 17:53:01 +0800
message:
  BUG#16495433-SEGV IN LOCK_GET_TYPE_LOW(),A RACE IN LOCK_WAIT_SUSPEND_THREAD()
  
  It's a race condition. We should protect "wait_lock" with lock_sys->mutex in
  lock_wait_suspend_thread. The definition of "wait_lock" notes about that.
  
  rb#2194 approved by Marko & Sunny.
------------------------------------------------------------
revno: 4860
committer: Nuno Carvalho <nuno.carvalho@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Thu 2013-03-14 14:08:55 +0000
message:
  BUG#16484323: REPLICATION W/GTIDS FAILS WITH ERROR 1778 WHEN RUNNING ANALYZE OR REPAIR TABLE
  
  After BUG#16062608 fix, when a command that causes a implicit commit
  but does not change data is executed when @@SESSION.GTID_NEXT is
  different from AUTOMATIC, a error is thrown saying that this command
  is not allowed.
  Commands ANALYZE and REPAIR TABLE, which cause a implicit commit, were
  not correctly identified as update queries, so when them were
  replicated slave raised the error.
  
  To fix this incorrect behaviour, ANALYZE and REPAIR TABLE commands are
  now identified as update queries.
------------------------------------------------------------
revno: 4859
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Tue 2013-03-12 18:15:37 +0100
message:
  Updated Code for Bug#16235828
------------------------------------------------------------
revno: 4858
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Tue 2013-03-12 20:39:51 +0800
message:
  port bug 16446108 - FTS CRASH from mysql-5.6 to mysql-5.1.11-release
------------------------------------------------------------
revno: 4857
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Tue 2013-03-12 12:56:31 +0200
message:
  Bug#16463505 PESSIMISTIC PAGE_ZIP_AVAILABLE() MAY CAUSE INFINITE PAGE SPLIT
  
  For a fresh insert, page_zip_available() was counting some fields twice.
  In the worst case, the compressed page size grows by PAGE_ZIP_DIR_SLOT_SIZE
  plus the size of the record that is being inserted. The size of the record
  already includes the fields that will be stored in the uncompressed portion
  of the compressed page.
  
  page_zip_get_trailer_len(): Remove the output parameter entry_size,
  because no caller is interested in it.
  
  page_zip_max_ins_size(), page_zip_available(): Assume that the page grows
  by PAGE_ZIP_DIR_SLOT_SIZE and the record size (which includes the fields
  that would be stored in the uncompressed portion of the page).
  
  rb#2169 approved by Sunny Bains
------------------------------------------------------------
revno: 4856
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-03-08 13:56:17 +0100
message:
  Added fix for Bug16445097
------------------------------------------------------------
revno: 4855
committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-03-08 16:06:54 +0530
message:
  Patch for Bug#16367483
------------------------------------------------------------
revno: 4854
committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Fri 2013-03-08 15:49:29 +0530
message:
  Patch for bug#16448639 from 5.6
------------------------------------------------------------
revno: 4853
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6.11-release
timestamp: Tue 2013-03-05 20:26:44 +0800
message:
  Merge fix for Bug 16435855 to mysql-5.6.11-release
------------------------------------------------------------
revno: 4852
tags: clone-5.6.11-build
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug16429306
timestamp: Mon 2013-03-04 21:08:14 +0800
message:
  Bug#16429306 - CRASH IN FTS_AST_TERM_SET_WILDCARD
  
  Analysis & Solution
  the assert should be removed, we should deal with node list(FTS_AST_LIST)
  in fts_ast_term_set_wildcard. In this case, we should set wildcard to the
  tail node.
  
  rb:2114, approved by Jimmy.
------------------------------------------------------------
revno: 4851
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug16373868
timestamp: Mon 2013-03-04 10:20:20 +0800
message:
  Fix "innodb_fts_stopword_charset" test failure in linux gcov.
------------------------------------------------------------
revno: 4850 [merge]
committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-03-01 14:23:07 +0100
message:
  automerge
    ------------------------------------------------------------
    revno: 4848.1.9
    committer: Jimmy Yang <jimmy.yang@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-03-01 20:25:26 +0800
    message:
      Fix Bug #16419661 - INNODB FTS: ELIMINATE THE DELIMITER DURING FTS SEARCH.
      Also wrap in a fix for tests failure introduced by BUG #16373868 checkin
      
      rb://2107 approved by Sunny Bains
    ------------------------------------------------------------
    revno: 4848.1.8 [merge]
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-5.6-merge
    timestamp: Fri 2013-03-01 13:45:40 +0100
    message:
      Merge mysql-5.5 --> mysql-5.6
        ------------------------------------------------------------
        revno: 2875.435.2 [merge]
        tags: clone-5.5.31-build
        committer: Marc Alff <marc.alff@oracle.com>
        branch nick: mysql-5.5-bug16414644
        timestamp: Fri 2013-03-01 12:10:09 +0100
        message:
          L0ocal merge
        ------------------------------------------------------------
        revno: 2875.435.1
        committer: Marc Alff <marc.alff@oracle.com>
        branch nick: mysql-5.5-bug16414644
        timestamp: Thu 2013-02-28 13:19:15 +0100
        message:
          Bug#16414644 ASSERTION FAILED: SIZE == PFS_ALLOCATED_MEMORY
          
          Before this fix, the command
            SHOW ENGINE PERFORMANCE_SCHEMA STATUS
          could report wrong amount of memory allocated,
          when the amount of memory used exceeds 4GB.
          
          The problem is that size computations are not done using size_t,
          so that overflows do occur, truncating the results.
          
          This fix compute memory sizes properly with size_t.
          
          Tested manually.
          
          No test script provided, as the script would need to allocate too much
          memory for the test.
    ------------------------------------------------------------
    revno: 4848.1.7
    committer: Jimmy Yang <jimmy.yang@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-03-01 18:22:15 +0800
    message:
      Fix Bug #16409494 - INNODB_FT_CONFIG TABLE DOES NOT APPEAR TO UPDATE
      
      rb://2102 approved by Sunny Bains
    ------------------------------------------------------------
    revno: 4848.1.6
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-03-01 12:02:45 +0200
    message:
      Correct a test result.
    ------------------------------------------------------------
    revno: 4848.1.5 [merge]
    committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-03-01 15:13:31 +0530
    message:
      BUG#11753923-SQL THREAD CRASHES ON DISK FULL
      
      Merging fix from mysql-5.5 and extra change in mysql-5.6
      
      The no_free_space warning message requires string type
      for third argument in this version and not integer type.
        ------------------------------------------------------------
        revno: 2875.417.223
        committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
        branch nick: mysql-5.5
        timestamp: Fri 2013-03-01 15:01:32 +0530
        message:
          BUG#11753923-SQL THREAD CRASHES ON DISK FULL
          Fixing post push issue
          Simulator name used needs to be changed to make it
          work properly.
          
          Analysis:
          Debug control list addition (ListAddDel function
          dbug.c file) code was written in such a way that
          if new element is subset of already existing element,
          then the new element is not added.
          i.e., set @@global.debug = '+d,abcd', is existing in
          the list then you cannot add "a" or "ab" or "abc"
          in the list.
    ------------------------------------------------------------
    revno: 4848.1.4
    committer: Shaohua Wang <shaohua.wang@oracle.com>
    branch nick: mysql-5.6-bug16373868
    timestamp: Fri 2013-03-01 14:44:47 +0800
    message:
      BUG16373868 - INNODB STOPWORD TABLES CANNOT BE SET
      
      Analysis:
      The root cause is that we only support default charset and collation
      latin1_swedish_ci in fts_valid_stopword_table. Actually we support all
      charset and collation supported by MySQL in FTS. So we just change the
      check.
      
      rb:2086. Approved by Jimmy.
    ------------------------------------------------------------
    revno: 4848.1.3
    committer: Bill Qu <bill.qu@Oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-03-01 12:21:13 +0800
    message:
      Bug#16340322 MASTER SCANS ALL BINLOGS WHEN SLAVE RECONNECTS WITH AUTO POSITIONING
      
      With both master and slave gtid enabled and slaves reconnects(in-case of I/O
      thread failure or in-case of change master) sending its Executed_Gtid_set and
      Retreived_Gtid_set. Master needs to scan all the binlogs before actually
      starting sending the Events to slave.
      
      After fix, master starts from the oldest binary log that contains any GTID
      that is not in the given gtid set from slave. Since every binary log begins
      with a Previous_gtids_log_event that contains all GTIDs in all previous
      binary logs. So we could make an initial pass over the binary logs in reverse
      order, and read only the Previous_gtids_log_event, to find the oldest binary log.
    ------------------------------------------------------------
    revno: 4848.1.2 [merge]
    committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
    branch nick: mysql-5.6-test
    timestamp: Thu 2013-02-28 19:10:26 +0100
    message:
      Merge from mysql-5.5 mysql-5.6
        ------------------------------------------------------------
        revno: 2875.417.222
        committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
        branch nick: mysql-5.5-bug16385711
        timestamp: Thu 2013-02-28 14:52:47 +0100
        message:
          Bug#16385711: HANDLER, CREATE TABLE IF NOT EXISTS,
                        PROBLEM AFTER MYSQL_HA_FIND
          
          This problem occured if a prepared statement tried to create a table
          for which there already existed a view with the same name while a
          SQL handler was opened.
          
          Before DDL statements are executed, mysql_ha_rm_tables() is called
          to remove any matching tables from the internal list of opened SQL
          handler tables. This match was done on TABLE_LIST::db and
          TABLE_LIST::table_name. This is problematic for views (which use
          TABLE_LIST::view_db and TABLE_LIST::view_name) and anonymous
          derived tables.
          
          This patch fixes the problem by skipping TABLE_LISTs representing
          anonymous derived tables and using get_db_name()/get_table_name()
          which handles views when looking for SQL handler tables to remove.
    ------------------------------------------------------------
    revno: 4848.1.1
    committer: Nuno Carvalho <nuno.carvalho@oracle.com>
    branch nick: mysql-5.6
    timestamp: Thu 2013-02-28 17:02:58 +0000
    message:
      BUG#16062608: REPLICATION COMMANDS IMPLICIT COMMIT AND SET GTID_NEXT="UUID:X"
      
      When @@SESSION.GTID_NEXT is set to "UUID:X" and a statement that
      implicit commits but does not log changes is executed, like START SLAVE,
      that GTID is logged as a empty transaction, when on the same scenario
      with gtid-mode=OFF nothing is logged.
      
      This situation is not desirable since it may cause inconsistency
      problems:
        1) DBA is performing a restore or recovery;
        2) She/he is applying some empty transactions on slave to avoid
           problematic transactions from master;
        3) Made a mistake and set a not need to skip GTID and didn't revert
           it.
        4) Start slave.
        5) That logged GTID, which will cause that the transaction from
           master will be skipped, will eventually cause inconsistency
           problems.
      
      To avoid that kind of mistakes, when a command that causes a implicit
      commit but does not change data is executed when @@SESSION.GTID_NEXT is
      different from AUTOMATIC, a error is thrown saying that this command
      is not allowed.
------------------------------------------------------------
revno: 4849
committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-03-01 14:04:40 +0100
message:
  Corrected suppression mask to remove all warning messages.
------------------------------------------------------------
revno: 4848 [merge]
committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-28 16:31:05 +0100
message:
  automerge
    ------------------------------------------------------------
    revno: 4845.1.19
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.6-bug16373973foundrows
    timestamp: Thu 2013-02-28 16:01:55 +0100
    message:
      Bug#68458 Wrong count from FOUND_ROWS() on MySQL 5.6
      Bug#16383173 WRONG COUNT FROM FOUND_ROWS() ON MYSQL 5.6
      
      The handling of SQL_CALC_FOUND_ROWS in combination with
      "order by with limit" was not specific enough,
      and could lead to wrong results for FOUND_ROWS()
      
      The bug was that we took 'limit_found_rows' from filesort()
      for cases where filesort() did not produce the final result.
      
      Solution: let filesort() tell the execution machinery
      that a priority queue was in fact used to filter the result.
    ------------------------------------------------------------
    revno: 4845.1.18
    committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
    branch nick: mysql-5.6-warning
    timestamp: Thu 2013-02-28 14:55:23 +0100
    message:
      Bug#16265300: Fix new compilation warnings from XCode 4.6
      
      This patch fixes three new compilation warnings generated by Clang.
      It also adds -Wall flag for Clang and disables -Wnull-conversion
      and -Wunused-private-field.
    ------------------------------------------------------------
    revno: 4845.1.17 [merge]
    committer: Bjorn Munch <bjorn.munch@oracle.com>
    branch nick: miderr-56
    timestamp: Thu 2013-02-28 14:32:03 +0100
    message:
      Bug #16197860 MYSQL_INTALL_DB DOES NOT WORK IN SOLARIS 10 SPARSE ROOT ZONES
      Bug #68117 mysql_intall_db does not work in solaris 10 sparse root zones
                  
        Do not abort if unable to write config file, but remember and
        write an appropriate warning instead of usual text at end.
        ------------------------------------------------------------
        revno: 4845.4.1
        committer: Bjorn Munch <bjorn.munch@oracle.com>
        branch nick: midacc-56
        timestamp: Thu 2013-02-28 14:17:38 +0100
        message:
          Bug #16197860 MYSQL_INTALL_DB DOES NOT WORK IN SOLARIS 10 SPARSE ROOT ZONES
          Bug #68117 mysql_intall_db does not work in solaris 10 sparse root zones
                      
            Do not abort if unable to write config file, but remember and
            write an appropriate warning instead of usual text at end.
    ------------------------------------------------------------
    revno: 4845.1.16
    committer: Bjorn Munch <bjorn.munch@oracle.com>
    branch nick: miderr-56
    timestamp: Thu 2013-02-28 14:26:40 +0100
    message:
      Bug #16197542 5.6.X MYSQL_INSTALL_DB PERL SCRIPT NOT ALWAYS SHOWING ERROR MESSAGES
      Bug #68118 5.6.x mysql_install_db perl script not always showing error messages
              
        Added missing $opt parameter where it was missing
        Added file name where relevant
        Changed "open" to "write to" for clarity
    ------------------------------------------------------------
    revno: 4845.1.15
    committer: Ole John Aske <ole.john.aske@oracle.com>
    branch nick: mysql-5.6
    timestamp: Thu 2013-02-28 14:04:02 +0100
    message:
      Fix for BUG#14058167 SELECT DISTINCT .... ORDER BY FAILS TO SORT ROWS AS SPECIFIED
      
      Updated fix after review comments from Guilhem B.
      
      The optimizer today use two different fields to determine if an orderd-index
      may be used to provide rows ordered as required by GROUP BY / ORDER BY.
      
      1) enum
         {
           ordered_index_void,       // No ordered index avail.
           ordered_index_group_by,   // Use index for GROUP BY
           ordered_index_order_by    // Use index for ORDER BY
         } JOIN::ordered_index_usage;
      
        'ordered_index_usage' is set up by the optimizer as a result of test_if_skip_sort_order()
        immediately after we have determined if an ordered index should be used for
        GROUP BY / ORDER BY. It is also this field which is used to EXPLAIN the query plan.
        Once 'ordered_index_usage' is set, it could never later be cleared, and it should be
        obeyed by all later optimizer and execute components.
      
      2) bool JOIN_TAB::sorted
         Is also set by the optimizer, but in a lot more 'fuzzy' order than 'ordered_index_usage'.
         - It is initially set to 'true' for the first non-const JOIN_TAB if the query is either
           grouped or sorted - Without checking if there are any suitable indexes at all.
         - Prior to execution it is cleared by disable_sorted_access() if we will not use
           an ordered index access.
         - Furthermore it is used as argument to handler::ha_index_init() in order to specify
           whether sorted access is required or not. So 'sorted' has to be correct at this point.
      
      Having such fuzzy information as represented in JOIN_TAB::sorted is really bad. It has
      previously worked - sort of - by requesting a lot more 'sorted' access than really needed.
      See: BUG 57601: OPTIMIZER IS OVERLY EAGER TO REQUEST ORDERED ACCESS. and WL 5558.
      
      This bug was caused by a problem where the 'sorted fuzziness' kicked back the other way:
      We cleared the 'JOIN_TAB::sorted' even if 'JOIN::ordered_index_usage' specified
      that an ordered index access should be used.
      
      Furthermore this fix cleans up and entirely removes 'JOIN_TAB::sorted'
      and instead base all ordered index usage on 'JOIN::ordered_index_usage'.
      
      The utility method JOIN_TAB::use_order() is introduced as a replacement
      for JOIN_TAB::sorted. (Use ordered_index_usage)
      
      The optimizer is not any longer supposed to re-decide and 'turn off'
      a previously sorted index. This has made it possible to entirely remove
      disable_sorted_access(), and together with that the bool on/off argument
      to need_sorted_output(bool sort).
      
      An assert has been introduced in the 2 places where we used to call
      disable_sorted_acess() to check that JOIN_TAB dont specify 'use_order()'
      in those places where we used to disable_sorted_access()
    ------------------------------------------------------------
    revno: 4845.1.14 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.6
    timestamp: Thu 2013-02-28 14:55:19 +0200
    message:
      Merge mysql-5.6 to local tree.
        ------------------------------------------------------------
        revno: 4845.3.1
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6
        timestamp: Thu 2013-02-28 10:31:35 +0100
        message:
          Bug #16394472 TIMESTAMP LOGIC REMAINS PARTLY NON-STANDARD WITH EXPLICIT_DEFAULTS_FOR_TIMESTAMP
          http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
          says
          "In addition, you can initialize or update any TIMESTAMP column to the
          current date and time by assigning it a NULL value, unless it has been
          defined with the NULL attribute to permit NULL values. ".
          This behaviour is documented and we need to keep it for backward
          compatibility. However, if the option explicit_defaults_for_timestamp is on
          (option which was introduced in 5.6),
          we here introduce a better, standard-compliant behavior: in that case, if inserting NULL
          in a TIMESTAMP NOT NULL column, we return an error, like we already do for
          other types.
    ------------------------------------------------------------
    revno: 4845.1.13
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.6
    timestamp: Thu 2013-02-28 14:29:45 +0200
    message:
      Bug#16414044 INCONSISTENT INNODB PERFORMANCE_SCHEMA KEY DECLARATIONS
      
      Rename recv_writer_thread and hash_table_locks from old names that
      contained spaces instead of underscores.
      
      Approved by Jimmy Yang
    ------------------------------------------------------------
    revno: 4845.1.12
    committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
    branch nick: mysql-5.6-bug16341673
    timestamp: Thu 2013-02-28 10:28:55 +0100
    message:
      Bug#16341673: ASSERTION FAILED: THD->TRANSACTION.XID_STATE.XID.IS_NULL(),
                    FILE TRANSACTION.CC,
      
      The triggered assert checks that the XA transaction state is
      properly reset before trying to start an XA transaction.
      The problem was that it could be triggered if a statement had
      failed in autocommit mode right before XA START was issued.
      
      The bug was that rollback of statement transactions in auto
      commit mode did not call transaction.cleanup(). This function,
      among other things, resets XID state. And reset XID state is
      checked for during XA START.
      
      This patch fixes the problem by reverting to 5.5 behavior and
      calling transaction.cleanup() for rollback in autocommit mode.
      
      This was a regression introduced in 5.6 by WL#5223.
    ------------------------------------------------------------
    revno: 4845.1.11 [merge]
    committer: Harin Vadodaria <harin.vadodaria@oracle.com>
    branch nick: mysql-5.6
    timestamp: Thu 2013-02-28 14:52:38 +0530
    message:
      Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE
                    TLS AND DTLS RECORD PROTOCOLS
      
      Description: merge from 5.5 to 5.6
        ------------------------------------------------------------
        revno: 2875.417.221
        committer: Harin Vadodaria <harin.vadodaria@oracle.com>
        branch nick: mysql-5.5
        timestamp: Thu 2013-02-28 14:50:42 +0530
        message:
          Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE
                        TLS AND DTLS RECORD PROTOCOLS
          
          Description: Removing extra test file which remained due
                       to merge problems.
    ------------------------------------------------------------
    revno: 4845.1.10
    committer: Satya Bodapati <satya.bodapati@oracle.com>
    branch nick: mysql-5.6-test
    timestamp: Thu 2013-02-28 13:18:08 +0530
    message:
      Fix testcase failure for Bug#15927620
      
      Change the table name and make the WHERE condition strict
    ------------------------------------------------------------
    revno: 4845.1.9 [merge]
    committer: Manish Kumar<manish.4.kumar@oracle.com>
    branch nick: mysql-5.6
    timestamp: Thu 2013-02-28 10:00:37 +0530
    message:
      BUG#12400221 - 60926: BINARY LOG EVENTS LARGER THAN MAX_ALLOWED_PACKET
            
      Merge from mysql-5.5 -> mysql-5.6
        ------------------------------------------------------------
        revno: 2875.417.220 [merge]
        committer: Manish Kumar<manish.4.kumar@oracle.com>
        branch nick: mysql-5.5
        timestamp: Thu 2013-02-28 09:54:27 +0530
        message:
          BUG#12400221 - 60926: BINARY LOG EVENTS LARGER THAN MAX_ALLOWED_PACKET
          
          Merge from mysql-5.1 -> mysql-5.5
            ------------------------------------------------------------
            revno: 2661.862.121 [merge]
            tags: clone-5.1.69-build
            committer: Manish Kumar<manish.4.kumar@oracle.com>
            branch nick: mysql-5.1
            timestamp: Thu 2013-02-28 09:52:55 +0530
            message:
              BUG#12400221 - 60926: BINARY LOG EVENTS LARGER THAN MAX_ALLOWED_PACKET
                    
              Post push patch putting the rpl_max_allowed_packet_stress test in
              mysql-5.1 inside a new i_rpl_largedata test suite just to avoid any
              confusion.
                ------------------------------------------------------------
                revno: 2661.874.1
                committer: Manish Kumar<manish.4.kumar@oracle.com>
                branch nick: mysql-5.1
                timestamp: Fri 2012-09-14 19:19:21 +0530
                message:
                  BUG#12400221 - 60926: BINARY LOG EVENTS LARGER THAN MAX_ALLOWED_PACKET
                  
                  Post push patch putting the rpl_max_allowed_packet_stress test in
                  mysql-5.1 inside a new i_rpl_largedata test suite just to avoid any
                  confusion.
                   
    ------------------------------------------------------------
    revno: 4845.1.8 [merge]
    committer: Gleb Shchepa <gleb.shchepa@oracle.com>
    branch nick: 5.6-16311231
    timestamp: Thu 2013-02-28 02:55:58 +0400
    message:
      Null-merge (16311231 backport)
        ------------------------------------------------------------
        revno: 2875.417.219 [merge]
        committer: Gleb Shchepa <gleb.shchepa@oracle.com>
        branch nick: 5.5-16311231
        timestamp: Thu 2013-02-28 01:33:00 +0400
        message:
          Manual up-merge (16311231 backport)
            ------------------------------------------------------------
            revno: 2661.862.120
            committer: Gleb Shchepa <gleb.shchepa@oracle.com>
            branch nick: 5.1-16311231
            timestamp: Wed 2013-02-27 23:21:34 +0400
            message:
              Bug #16311231: MISSING DATA ON SUBQUERY WITH WHERE + XOR
              IN IN-CLAUSE USING MYISAM OR MEMORY ENGINE
              
              Backport from 5.6. Original message:
              
              The coincidences caused a data loss:
              * The query has IN subqueries nested twice,
              * the WHERE clause of the inner subquery refers to the
                outer field, and the whole WHERE clause returns FALSE,
              * the inner subquery has a LEFT JOIN that joins a single
                row with a row of NULLs; one of that NULL columns
                represents the select list of the subquery.
              
              Normally, that inner subquery should return empty record set.
              However, in our case:
              * the Item_is_not_null_test item goes constant, since
                its underlying field is NULL (because of LEFT JOIN ... ON
                FALSE of const table row with a row of nulls);
              * we evaluate Item_is_not_null_test::val_int() as a part
                of fake HAVING expression of the transformed subquery;
              * as far as the underlying field is NULL, we optimize
                out the whole fake HAVING expression as FALSE as well
                as a whole subquery with a zero result:
                Impossible HAVING noticed after reading const tables";
              * thus, the optimizer ignores the presence of the WHERE
                clause (the WHERE expression is FALSE in our case, so
                the subquery should return empty set);
              * however, during the evaluation of the
                Item_is_not_null_test::val_int() in the optimizer,
                it marked its "owner" with the "was_null" flag -- that
                forced the subquery to return UNKNOWN instead of empty
                set.
              That caused a wrong result.
              
              
              The problem is a regression of the small cleanup in
              the fix for the bug11827369 (the Item_is_not_null_test part)
              that conflicts with optimizations in the fix for the bug11752543.
              Before that regression the Item_is_not_null_test items
              never were constants.
              
              The fix is the rollback of Item_is_not_null_test parts
              of the bug11827369 fix.
    ------------------------------------------------------------
    revno: 4845.1.7
    committer: Gleb Shchepa <gleb.shchepa@oracle.com>
    branch nick: 5.6-15972078
    timestamp: Thu 2013-02-28 02:44:46 +0400
    message:
      Bug #15972078: EXPLAIN UPDATE/DELETE SHOWS INCORRECT POSSIBLE_KEYS
      
      The server showed all key names in the table as "possible_keys"
      in the EXPLAIN single-table UPDATE/DELETE output.
      
      Fix:
      Single-table UPDATE/DELETE command have a very special
      implementation that doesn't use JOIN optimizer at the
      top level, i.e. we can't reuse JOIN optimizer statistics
      here to output "possible_keys" list as usual.
      OTOH single-table UPDATE & DELETE commands use
      range optimizer directly, so we can use its index usage
      statistics  instead: the TABLE::possible_quick_keys field has
      been introduced to collect the usable index map in the                                                                
      check_quick_select() function.
    ------------------------------------------------------------
    revno: 4845.1.6
    committer: kevin.lewis@oracle.com
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-27 16:26:46 -0600
    message:
      Fix PB2 test failures related to ALTER statements.
      One line in the previous patch that worked on mysql-5.5
      causes an assert in trx_set_dict_operation in mysql-5.6 and up.
    ------------------------------------------------------------
    revno: 4845.1.5 [merge]
    committer: kevin.lewis@oracle.com
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-27 13:05:36 -0600
    message:
      Merge Bug#16305265 from mysql-5.5 to mysql-5.6
        ------------------------------------------------------------
        revno: 2875.417.218
        committer: kevin.lewis@oracle.com
        branch nick: mysql-5.5
        timestamp: Wed 2013-02-27 12:44:58 -0600
        message:
          Bug #16305265 HANG IN RENAME TABLE
          
          This is a deadlock that will also be fixed in the server by
          Bug #11844915 - HANG IN THDVAR MUTEX ACQUISITION.
          So this is a simple alternate method of fixing the same problem,
          but from within InnoDB.
          
          The simple change is to make rename table start a transaction
          before locking dict_sys->mutex since thd_supports_xa() can call
          THDVAR which can lock a mutex, LOCK_global_system_variables, that
          is used in the server by many other activities.  At least one of
          those, sys_var::update(), can call back into InnoDB and try to
          lock dict_sys->mutex while holding LOCK_global_system_variables.
          
          The other bug fix for 11844915 eliminates the use of
          LOCK_global_system_variables for calls to THDVAR.
          
          Approved by marko in http://rb.no.oracle.com/rb/r/2000/
    ------------------------------------------------------------
    revno: 4845.1.4 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-27 20:00:40 +0200
    message:
      Merge mysql-5.6 to local copy.
        ------------------------------------------------------------
        revno: 4845.2.1
        committer: Inaam Rana <inaam.rana@oracle.com>
        branch nick: mysql-5.6
        timestamp: Wed 2013-02-27 12:23:10 -0500
        message:
          Bug#16223169 MIXING 4K/16K BLOCKS INCREASES 8K FREE BLOCKS AND HOLDS
          BUF POOL MUTEX LONGER
          
          rb://1965 approved by: Marko Makela
          
          buf_buddy_free_block() does a linear scan of zip_free list. This can be
          inefficient when zip_free runs into millions. This patch fixes that by
          stamping freed blocks in the space_id fields. This way we don't have to
          scan the zip_free list to ensure that a block's buddy is free.
    ------------------------------------------------------------
    revno: 4845.1.3
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-27 19:01:07 +0200
    message:
      Bug#16401801 INNODB SPLITS COMPRESSED PAGES WHEN REORGANIZE COULD SUFFICE
      
      btr_cur_optimistic_insert(): Restructure the code a bit.
      
      Skip the 'split just in case' condition on compressed tables.
      (Should we optionally skip it on all tables, based on a per-table
      fill-factor attribute?)
      
      rb#2060 approved by Inaam Rana
    ------------------------------------------------------------
    revno: 4845.1.2
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.6-isoctal
    timestamp: Wed 2013-02-27 13:31:30 +0100
    message:
      Bug#12407384 AVOID COMPILER WARNINGS IF _XOPEN_SOURCE OR ISOCTAL ARE ALREADY DEFINED
    ------------------------------------------------------------
    revno: 4845.1.1
    committer: kevin.lewis@oracle.com
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-27 09:45:31 -0600
    message:
      Bug#16318052-IMPORT TABLESPACE WITH CFG DOES NOT IMPORT DATA
      
      Not all pages were flushed from buffer pool when an alter table
      is done by copy & rename. The testcase included works with this
      one line change, and fails without it.
      
      Approved by Sunny in http://rb.no.oracle.com/rb/r/2016/
------------------------------------------------------------
revno: 4847
committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-28 15:48:50 +0100
message:
  fixed: typo in comment caused unrecorded test to fail.
------------------------------------------------------------
revno: 4846
committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-27 16:41:20 +0100
message:
  Bug #13010061/Bug # 14506305:   SERVER SHOULD WARN WHEN NEEDED AUTHENTICATION  PLUGIN IS NOT LOADED
      
  This fix fixes the above two bugs by introducing a new check at server startup and FLUSH PRIVILEGES that iterates  over the list of the user accounts, checks if one of the   conditions described in the above two bugs is met and  logs an appropriate warning in the server log.  In particular warnings will be generated for users with sha256 and server started without ssl/rsa config.
  The check will slow down FLUSH PRIVILEGES and server  startup, so a new boolean command line option
   --validate-user-plugins=[ON|OFF], default ON is added to allow turning it off for installations that don't need this additional safety net.
  
  Test cases for various combinations of options added.
  Existing test results updated as needed.
------------------------------------------------------------
revno: 4845
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-27 13:40:38 +0200
message:
  Fix debug test instrumentation for Bug#16067973.
  
  innodb_buffer_pool_evict_uncompressed(): New function.
  
  innodb_buffer_pool_evict_update(): Try innodb_buffer_pool_evict_uncompressed()
  in a loop until all uncompressed blocks have been evicted
  (at most 100 seconds). The operation could fail if a block is i/o-fixed
  due to flushing.
  
  Approved by Sunny Bains.
------------------------------------------------------------
revno: 4844 [merge]
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6
timestamp: Wed 2013-02-27 10:34:08 +0100
message:
  Merge of local 5.6 with latest changes of remote main my:5.6
    ------------------------------------------------------------
    revno: 4842.1.1 [merge]
    committer: Guilhem Bichot <guilhem.bichot@oracle.com>
    branch nick: 5.6
    timestamp: Wed 2013-02-27 09:38:01 +0100
    message:
      Merge of local 5.6 with latest changes of remote main my:5.6
        ------------------------------------------------------------
        revno: 4839.1.1
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6-4
        timestamp: Wed 2013-02-27 08:12:52 +0100
        message:
          Fix for Bug#16343992 AGGREGATE QUERY TRIES TO ALLOCATE 127GB OF MEMORY!
          One particular type of set function was not handled in a big switch
          which has ~20 cases.
------------------------------------------------------------
revno: 4843
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: 56_latest
timestamp: Wed 2013-02-27 14:16:18 +0530
message:
  Bug#14360513: SHA256_PASSWORD DOES NOT PROPERLY CHECK
                RSA KEY FILES
  
  Description: MySQL server shoud not start if invalid
               RSA key files are specified at startup
               time.However, this was not happening and
               server could be started with such keys.
               In such cases, users with sha256_password
               will not be able to connect to the server.
  
  Solution:    Make sure that if either of the key files
               is invalid, an error is raised at startup
               time.
------------------------------------------------------------
revno: 4842
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-27 10:14:03 +0200
message:
  Bug#16345265 INFINITE PAGE SPLIT FOR A COMPRESSED PAGE, ASSERT LEVEL > 50
  
  This is regression from the code cleanup in
  rb#1761 Bug#14606334 INNODB UNABLE TO MERGE IBUF INTO PAGE
  
  page_cur_insert_rec_zip(): Check if the uncompressed page needs to be
  reorganized in order for the insert to succeed. Reorganize the page
  upfront if needed.
  
  Approved by Inaam Rana
------------------------------------------------------------
revno: 4841
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-27 10:09:52 +0200
message:
  Bug#16400346 INNODB_BUG60196 TEST ASSERTS AT DICT0DICT.CC
  
  Remove the bogus debug assertion that I added a couple of days ago.
  
  Analyzed by Mattias and Kevin.
------------------------------------------------------------
revno: 4840 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-27 10:07:10 +0200
message:
  Merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.417.217 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-02-27 10:04:43 +0200
    message:
      Merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.862.119
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2013-02-27 10:00:50 +0200
        message:
          Bug#16400920 INNODB TRIES TO PASS EMPTY BUFFER TO ZLIB, GETS Z_BUF_ERROR
          
          page_zip_compress_node_ptrs(): Do not attempt to invoke deflate() with
          c_stream->avail_in, because it will result in Z_BUF_ERROR (and
          page_zip_compress() failure and unnecessary further splits of the node
          pointer page). A node pointer record can have empty payload, provided
          that all key fields are empty.
          
          Approved by Jimmy Yang
------------------------------------------------------------
revno: 4839
committer: Gleb Shchepa <gleb.shchepa@oracle.com>
branch nick: 5.6-16311231
timestamp: Tue 2013-02-26 22:31:16 +0400
message:
  Bug #16311231: MISSING DATA ON SUBQUERY WITH WHERE + XOR
  IN IN-CLAUSE USING MYISAM OR MEMORY ENGINE
  
  The coincidences caused a data loss:
  * The query has IN subqueries nested twice,
  * the WHERE clause of the inner subquery refers to the
    outer field, and the whole WHERE clause returns FALSE,
  * the inner subquery has a LEFT JOIN that joins a single
    row with a row of NULLs; one of that NULL columns
    represents the select list of the subquery.
  
  Normally, that inner subquery should return empty record set.
  However, in our case:
  * the Item_is_not_null_test item goes constant, since
    its underlying field is NULL (because of LEFT JOIN ... ON
    FALSE of const table row with a row of nulls);
  * we evaluate Item_is_not_null_test::val_int() as a part
    of fake HAVING expression of the transformed subquery;
  * as far as the underlying field is NULL, we optimize
    out the whole fake HAVING expression as FALSE as well
    as a whole subquery with a zero result:
    Impossible HAVING noticed after reading const tables";
  * thus, the optimizer ignores the presence of the WHERE
    clause (the WHERE expression is FALSE in our case, so
    the subquery should return empty set);
  * however, during the evaluation of the
    Item_is_not_null_test::val_int() in the optimizer,
    it marked its "owner" with the "was_null" flag -- that
    forced the subquery to return UNKNOWN instead of empty
    set.
  That caused a wrong result.
  
  
  The problem is a regression of the small cleanup in
  the fix for the bug11827369 (the Item_is_not_null_test part)
  that conflicts with optimizations in the fix for the bug11752543.
  Before that regression the Item_is_not_null_test items
  never were constants.
  
  The fix is the rollback of Item_is_not_null_test parts
  of the bug11827369 fix.
------------------------------------------------------------
revno: 4838 [merge]
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-26 21:33:59 +0530
message:
  Bug#16372927: STACK OVERFLOW WITH LONG DATABASE NAME IN
                GRANT STATEMENT
  
  Description: Merge from 5.5.
    ------------------------------------------------------------
    revno: 2875.417.216 [merge]
    committer: Harin Vadodaria <harin.vadodaria@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-26 21:29:43 +0530
    message:
      Bug#16372927: STACK OVERFLOW WITH LONG DATABASE NAME IN
                    GRANT STATEMENT
      
      Description: Merge from 5.1.
        ------------------------------------------------------------
        revno: 2661.862.118
        committer: Harin Vadodaria <harin.vadodaria@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-02-26 21:23:06 +0530
        message:
          Bug#16372927: STACK OVERFLOW WITH LONG DATABASE NAME IN
                        GRANT STATEMENT
          
          Description: A missing length check causes problem while
                       copying source to destination when
                       lower_case_table_names is set to a value
                       other than 0. This patch fixes the issue
                       by ensuring that requried bound check is
                       performed.
------------------------------------------------------------
revno: 4837 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Tue 2013-02-26 14:51:43 +0100
message:
  merge 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.417.215
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5
    timestamp: Mon 2013-02-25 10:42:40 +0100
    message:
      Bug#16062056 REMOVE THE "DUMMY.BAK" FILE FROM THE TEST DATABASE, AND ADD DB.OPT
      
      1.  remove dummy.bak
      2.  create a db.opt file containing two lines:
      
      ---
      default-character-set=latin1
      default-collation=latin1_swedish_ci
------------------------------------------------------------
revno: 4836 [merge]
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-26 18:04:34 +0530
message:
  Bug#14653504  CRASH WHEN TRUNCATING PARTITIONS FROM A VIEW!
  
  [Merge from 5.5]
    ------------------------------------------------------------
    revno: 2875.417.214
    committer: Aditya A <aditya.a@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-26 17:57:05 +0530
    message:
      Bug#14653504  CRASH WHEN TRUNCATING PARTITIONS FROM A VIEW!
      
      ANALYSIS
      --------
       
      When we open the view using open_new_frm() ,it doesnt set the
      table-list->table variable and any access to table_list->table
      will cause a crash.
       
      FIX
      ---
       
      Added a check during execution of the alter partition to return
      error if table is view.
      
      [http://rb.no.oracle.com/rb/r/2001/  Approved by Mattias J ]
------------------------------------------------------------
revno: 4835
committer: Roy Lyseng <roy.lyseng@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-26 13:06:45 +0100
message:
  Bug#16325175: Function ifnull ignored when used with some others selects
  
  The problem statement has an aggregated, non-grouped outer query with
  an aggregated, non-grouped subquery in the SELECT list.
  
  The outer query has no rows, so in end_send_group() it calls
  no_rows_in_result() for all items in the SELECT list. For a scalar
  subquery, this causes "no_rows" to be set true, which later prevents
  the subquery from being evaluated when sending the result row for the
  outer query. This behavior was introduced with the fix for 13742712,
  where the inner subquery was dependent upon the outer, and evaluating
  the inner subquery caused references to unassigned columns in the outer
  query, when the outer query has no rows.
  
  However, in this bug case, the inner query is not dependent upon the
  outer query, and thus should be evaluated when sending data. The bug
  fix is to check whether the inner query is dependent upon the outer in
  Item_singlerow_subselect::no_rows_in_result(), and setting "no_rows"
  for this case only.
  
  Notice however that the case of dependent inner query is invalid
  according to standard SQL: setting sql_mode only_full_group_by rejects
  a query with dependent inner query with error 1140.
  
  Another problem with setting "no_rows" for such queries is that a COUNT
  function may return NULL, even though the function is specified to
  always return a non-negative integer. However, as this is an invalid
  query according toe the SQL standard, we will not worry about that
  problem for now.
  
  sql/item_subselect.cc
    In Item_singlerow_subselect::no_rows_in_result(), set no_rows true
    only when subquery is dependent on the outer query.
------------------------------------------------------------
revno: 4834
committer: Olav Sandstaa <olav.sandstaa@oracle.com>
branch nick: mrr-assert-bug-5.6
timestamp: Tue 2013-02-26 12:08:53 +0100
message:
  Fix for Bug#16328373 ASSERTION FAILED: ROWIDS_BUF < ROWIDS_BUF_END
  
  The assert in DsMrr_impl::dsmrr_fill_buffer() fires due to the buffer
  space to use for sort buffer is too small to store a single primary
  key. The primary key is in this case large since it contains the
  prefix of a BLOB. The buffer space to use for sort buffer is provided
  by the BKA implementation. The query is run with a very small join
  buffer of only 128 bytes. When BKA is used, the first part of the join
  buffer is used for storing the fields from the first table while the
  last part is used as sort buffer for the DS-MRR implementation.
  
  In JOIN_CACHE::set_constants() there is already code for handling the
  situation when the specified join buffer is too small. The code
  adjusts the size of the join buffer if the size specified by
  join_buffer_size is so small that it can not store a single
  record. This code does not take into account that there needs to be
  room in the join buffer for the DS-MRR sort buffer when BKA or
  BKA-unique is used.
  
  The fix for this problem is to extend JOIN_CACHE::set_constants() so
  that when it computes the minimum size the join buffer can have, it
  will include space for a minimal DS-MRR sort buffer.
------------------------------------------------------------
revno: 4833
committer: Yasufumi Kinoshita <yasufumi.kinoshita@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-26 19:30:55 +0900
message:
  Bug #16207700 : PURGE DOES NOT ALWAYS RUN INTO COMPLETION
  
  Fixes race condition for rare opportunity not to wake the purge thread up.
  It was not so serious for users, no lost of data, nothing for performance.
  The problem only affect for accurate testing around purge.
  
  rb#2036 approved by Sunny.
------------------------------------------------------------
revno: 4832
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug16275237
timestamp: Tue 2013-02-26 17:46:16 +0800
message:
  BUG#16275237 - ASSERTION FAILURE IN HEAP->MAGIC_N == MEM_BLOCK_MAGIC_N
  
  Analysis:
  The scenario is a race condition if row_merge_read_clustered_index()
  returns error. In its caller row_merge_build_indexes(), we will wait
  for FTS_CHILD_EXITING bit being set by children (means all children
  finished) only in the case row_merge_read_clustered_index() is
  successfully return. In row_merge_read_clustered_index(), we only wait
  for the bit being set to FTS_CHILD_COMPLETE, so the scenario in this
  failure can happen.
  
  Solution:
  The fix is to move the loop waiting for FTS_CHILD_EXITING
  to row_merge_read_clustered_index() completely.
  
  rb:2040 approved by sunny, marko and jimmy.
------------------------------------------------------------
revno: 4831 [merge]
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-26 07:47:28 +0100
message:
  Merge
    ------------------------------------------------------------
    revno: 4829.1.1
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.6
    timestamp: Tue 2013-02-26 11:20:40 +0530
    message:
      Fixing a pb2 failure.  The gtid_purged variable will not be available
      in the embedded mysql server.  So moving it to another test file.
------------------------------------------------------------
revno: 4830 [merge]
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-26 06:45:28 +0100
message:
  Updated/added copyright headers.
    ------------------------------------------------------------
    revno: 2875.417.213 [merge]
    committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-26 06:35:17 +0100
    message:
      Updated/added copyright headers
        ------------------------------------------------------------
        revno: 2661.862.117
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.1
        timestamp: Mon 2013-02-25 15:26:00 +0100
        message:
          Updated/added copyright headers.
------------------------------------------------------------
revno: 4829
committer: Bjorn Munch <bjorn.munch@oracle.com>
branch nick: intcoll-56
timestamp: Mon 2013-02-25 16:29:12 +0100
message:
  Bug #16365842 COLLECTIONS MECHANISM SHOULD BE AVAILABLE TO THE TEST SUITES IN INTERNAL
    
    internal/mysql-test/collections/default.* now appended to public files
    if cmake is run in PB2 context.
    Copied and adapted similar code from cmake/plugin.cmake
------------------------------------------------------------
revno: 4828 [merge]
committer: Akhila Maddukuri<akhila.x.maddukuri@oracle.com>
branch nick: 5.6
timestamp: Mon 2013-02-25 19:43:00 +0530
message:
  Bug#16103072 TEST MYSQL_PLUGIN USES UNSAFE WRITE_FILE TO WRITE
    ------------------------------------------------------------
    revno: 2875.417.212
    committer: Akhila Maddukuri<akhila.x.maddukuri@oracle.com>
    branch nick: 5.5
    timestamp: Mon 2013-02-25 19:37:46 +0530
    message:
      Bug#16103072 TEST MYSQL_PLUGIN USES UNSAFE WRITE_FILE TO WRITE
                                                      TO EXPECT FILE
------------------------------------------------------------
revno: 4827 [merge]
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: test-5.6
timestamp: Mon 2013-02-25 13:52:28 +0100
message:
  merge
    ------------------------------------------------------------
    revno: 2875.417.211
    committer: Mattias Jonsson <mattias.jonsson@oracle.com>
    branch nick: test-5.5
    timestamp: Mon 2013-02-25 13:45:00 +0100
    message:
      post-push fix to prevent test to run without symlink support
------------------------------------------------------------
revno: 4826
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Mon 2013-02-25 13:11:20 +0100
message:
  Bug#68454 Using inet6_ntoa and int6_aton to convert IP causes errors
  Bug#16373973 USING INET6_NTOA AND INT6_ATON TO CONVERT IP CAUSES ERRORS
  
  Item_func_inet_bool_base::val_int() and Item_func_inet_str_base::val_str_ascii()
  had "memory": once they had seen a NULL value, they would continue
  to return false/NULL for any subsequent value.
------------------------------------------------------------
revno: 4825
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-clean
timestamp: Mon 2013-02-25 13:00:21 +0100
message:
  re-added files, with --file-ids-from trunk
------------------------------------------------------------
revno: 4824
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-clean
timestamp: Mon 2013-02-25 12:58:24 +0100
message:
  remove files with wrong file-ids
------------------------------------------------------------
revno: 4823
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-25 10:47:44 +0200
message:
  Bug#16330036 DICT_FOREIGN_FREE READS ALREADY FREED MEMORY, CRASHES!
  
  This is clean-up after the already-pushed fix in rb#2027.
  
  The error message said '(null)' for the constraint name.
  
  innobase_get_foreign_key_info(): Deindent the loop body.
  Narrow the scope of the loop variable i. If fk_key->name is NULL,
  use the empty string in the error messages.
  
  dict_foreign_add_to_cache(): Assert that the referenced_index is known.
  
  rb#2053 approved by Jimmy Yang
------------------------------------------------------------
revno: 4822 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-25 10:29:22 +0530
message:
  Null merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.210
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-02-25 10:28:25 +0530
    message:
      Bug #16044655 CRASH: SETTING DEFAULT VALUE FOR SOME VARIABLES
      
      Problem:
      
      When a system variable is being set to the DEFAULT value, the server
      segfaults if there is no 'default' defined for that system variable.
      For example, for the following statements server segfaults.
      
      set session rand_seed1=DEFAULT;
      set session rand_seed2=DEFAULT;
      
      Analysis:
      
      The class sys_var represents one system variable.  The class set_var represents
      one system variable that is to be updated.   The class set_var contains two
      pieces of information, the system variable to object (set_var::var) member
      and the value to be updated (set_var::value).
      
      When the given value is 'default', the set_var::value will be NULL.
      
      To update a system variable the member set_var::update() will be called,
      which in turn will call sys_var::update() or sys_var::set_default() depending
      on whether a value has been provided or not.  
      
      If the sys_var::set_default() is called, then the default value is obtained
      either from the session scope or the global scope.  This default value is
      stored in a local temporary set_var object and then passed on to the
      sys_var::update() call.  A local temporary set_var object is needed because
      sys_var::set_default() does not take set_var as an argument.
      
      In the given scenario, the set_var::update() called sys_var::set_default().
      And this sys_var::set_default() obtains the default value and then calls
      sys_var::update().  To pass this value to sys_var::update() a local set_var
      object is being created.   While creating this local set_var object, its member
      set_var::var was incorrectly left as 0.  
      
      Solution:
      
      Instead of creating a local set_var object, the sys_var::set_default() can take
      the set_var object as an argument just like sys_var::update().
      
      rb://1996 approved by Nirbhay and Ramil.
------------------------------------------------------------
revno: 4821 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-25 10:09:00 +0530
message:
  Merge from mysql-5.5 to mysql-5.6. There are slight changes in the patch to handle gtid_purged system variable.
    ------------------------------------------------------------
    revno: 2875.434.1
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-02-21 12:08:29 +0530
    message:
      Bug #16044655 CRASH: SETTING DEFAULT VALUE FOR SOME VARIABLES
      
      Problem:
      
      When a system variable is being set to the DEFAULT value, the server
      segfaults if there is no 'default' defined for that system variable.
      For example, for the following statements server segfaults.
      
      set session rand_seed1=DEFAULT;
      set session rand_seed2=DEFAULT;
      
      Analysis:
      
      The class sys_var represents one system variable.  The class set_var represents
      one system variable that is to be updated.   The class set_var contains two
      pieces of information, the system variable to object (set_var::var) member
      and the value to be updated (set_var::value).
      
      When the given value is 'default', the set_var::value will be NULL.
      
      To update a system variable the member set_var::update() will be called,
      which in turn will call sys_var::update() or sys_var::set_default() depending
      on whether a value has been provided or not.  
      
      If the sys_var::set_default() is called, then the default value is obtained
      either from the session scope or the global scope.  This default value is
      stored in a local temporary set_var object and then passed on to the
      sys_var::update() call.  A local temporary set_var object is needed because
      sys_var::set_default() does not take set_var as an argument.
      
      In the given scenario, the set_var::update() called sys_var::set_default().
      And this sys_var::set_default() obtains the default value and then calls
      sys_var::update().  To pass this value to sys_var::update() a local set_var
      object is being created.   While creating this local set_var object, its member
      set_var::var was incorrectly left as 0.  
      
      Solution:
      
      Instead of creating a local set_var object, the sys_var::set_default() can take
      the set_var object as an argument just like sys_var::update().
      
      rb://1996 approved by Nirbhay and Ramil.
------------------------------------------------------------
revno: 4820 [merge]
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.6
timestamp: Sat 2013-02-23 10:53:29 +0100
message:
  Upmerging the changes from 5.1 for copyright changes.
    ------------------------------------------------------------
    revno: 2875.417.209 [merge]
    committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
    branch nick: mysql-5.5
    timestamp: Sat 2013-02-23 10:47:30 +0100
    message:
      Upmerging the changes from 5.1 for copyright changes.
        ------------------------------------------------------------
        revno: 2661.862.116
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.1
        timestamp: Sat 2013-02-23 10:38:28 +0100
        message:
          Eventum ticket#45161: Adding copyright statement to all *.test and *.inc
          files under internal/mysql-test directory.
    ------------------------------------------------------------
    revno: 2875.417.208
    committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
    branch nick: mysql-5.5
    timestamp: Sat 2013-02-23 10:40:23 +0100
    message:
      Eventum ticket#45161: Adding copyright statement to all *.test and *.inc
      files under internal/mysql-test directory.
------------------------------------------------------------
revno: 4819
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.6
timestamp: Sat 2013-02-23 10:40:55 +0100
message:
  Eventum Ticket#45161: Adding copyright statement to all *.test and *.inc
  files under internal/mysql-test directory.
------------------------------------------------------------
revno: 4818 [merge]
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Sat 2013-02-23 00:17:15 +0530
message:
  Merge testcase fix for BUG#14147491 from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.207
    committer: Satya Bodapati <satya.bodapati@oracle.com>
    branch nick: mysql-5.5
    timestamp: Sat 2013-02-23 00:16:36 +0530
    message:
      Testcase fix for Bug#14147491
      
      Sleep 1sec before remove_file to solve windows pb2 issues. We hope that
      after sleep, the access to the file will not be denied.
------------------------------------------------------------
revno: 4817 [merge]
committer: sayantan.dutta@oracle.com
branch nick: mysql-5.6
timestamp: Fri 2013-02-22 15:41:22 +0100
message:
  Bug #13619394 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.417.206
    committer: sayantan.dutta@oracle.com
    branch nick: mysql-5.5
    timestamp: Fri 2013-02-22 15:22:15 +0100
    message:
      Bug #13619394 - MAKE TEST FAILS ON MY_VSNPRINTF
------------------------------------------------------------
revno: 4816
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-22 18:05:44 +0530
message:
  Fix testcase of WL#6808.
  
  Skip the testcase in embedded mode.
------------------------------------------------------------
revno: 4815 [merge]
committer: Daniel Fischer <daniel.fischer@oracle.com>
branch nick: mysql-5.6-13071597-push
timestamp: Fri 2013-02-22 12:34:36 +0100
message:
  merge
    ------------------------------------------------------------
    revno: 2875.417.205 [merge]
    committer: Daniel Fischer <daniel.fischer@oracle.com>
    branch nick: mysql-5.5-13071597-push
    timestamp: Fri 2013-02-22 12:32:29 +0100
    message:
      merge
        ------------------------------------------------------------
        revno: 2875.433.1
        committer: Daniel Fischer <daniel.fischer@oracle.com>
        branch nick: mysql-5.5-13071597
        timestamp: Wed 2013-02-20 12:41:43 +0100
        message:
          Bug #13071597: MYSQL SERVER COMMUNITY TO ADVANCED USING MSI THE INSTALLER
          
          Cross-upgrades between GPL and commercial versions should be allowed by
          the MSI package even when both packages are the same version.
          
          Fixed by allowing upgrades to the same numeric version.
------------------------------------------------------------
revno: 4814 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-22 16:02:04 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.204 [merge]
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-02-22 15:15:14 +0530
    message:
      Merge from mysql-5.1 to mysql-5.5
        ------------------------------------------------------------
        revno: 2661.862.115
        committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-02-22 14:56:17 +0530
        message:
          Bug #14211565 CRASH WHEN ATTEMPTING TO SET SYSTEM VARIABLE TO RESULT OF VALUES()
          
          Problem:
          
          When the VALUES() function is inappropriately used in the SET stmt the server
          exits.  
          
          set port = values(v);
          
          This happens because the values(v) will be parsed as an Item_insert_value by
          the parser.  Both Item_field and Item_insert_value return the type as
          FIELD_ITEM.  But for Item_insert_value the field_name member is NULL.  In
          set_var constructor, when the type of the item is FIELD_ITEM we try to access
          the non-existent field_name.
          
          The class hierarchy is as follows:
          Item -> Item_ident -> Item_field -> Item_insert_value
          
          The Item_ident::field_name is NULL for Item_insert_value.  
          
          Solution:
          
          In the parsing stage, in the set_var constructor if the item type is
          FIELD_ITEM and if the field_name is non-existent, then it is probably
          the Item_insert_value.  So leave it as it is for later evaluation.
          
          rb://2004 approved by Roy and Norvald.
------------------------------------------------------------
revno: 4813
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-bug16382260
timestamp: Thu 2013-02-21 21:05:48 +0100
message:
  Bug#16382260 PERFORMANCE OVERHEAD IN PFS_DIGEST_ADD_TOKEN
  
  This is a code cleanup, to improve performances.
  
  When a query is parsed, the performance schema collects a statement digest,
  using the pfs_digest_add_token_v1() call for each lex token.
  
  As a result, pfs_digest_add_token_v1() can be called, literrally, several
  millions times per second.
  
  One issue is that pfs_digest_add_token_v1() called peek_last_two_tokens() in
  all cases (for each token), but only used the result in a few cases,
  causing overhead.
  
  This is now fixed by invoking peek_last_two_tokens() only when necessary.
  
  A second issue was the implementation itself of peek_last_two_tokens().
  
  When the last token is before last_id_index, the second to last token also
  is before last_id_index, by definition.
  Re arranging the code saved an if statement in that case.
  
  Last, still in peek_last_two_tokens(),
  a basic arithmetic expression was performed multiple times.
  This is now improved, with peek_index.
  
  This patch also contains minor whitespace fixes.
------------------------------------------------------------
revno: 4812
committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
branch nick: mysql-5.6-test
timestamp: Thu 2013-02-21 16:27:56 +0100
message:
  Bug#16300620: VALGRIND FAILURE MYSQL-5.6/TRUNK IN
                AUTH_SEC.KEY_VALUE_AUTH
  
  This valgrind failure could occur if CREATE USER was logged in
  the general query log and the 'old_passwords' system variable
  was set to 2.
  
  During query rewrite to prevent the password from being logged
  in plain text, my_make_scrambled_password() was called. The
  output of this function was stored in a char buffer. Afterwards
  the contents of this char buffer was appended to the query string.
  
  The problem was that we appended the number of characters
  equal to the length of the plaintext password. So if the
  scrabled password was shorter, we ended up appending uninitialized
  bytes. This later caused a valgrind warning during logging.
  
  This patch fixes the problem by writing "<secret>" to the query
  log instead of the scrambled password for old_passwords = 2.
  
  No test case added since this is covered by existing tests.
------------------------------------------------------------
revno: 4811
committer: Norvald H. Ryeng <norvald.ryeng@oracle.com>
branch nick: mysql-5.6-16318585
timestamp: Thu 2013-02-21 13:37:50 +0100
message:
  Bug#16318585 PREPARED: ASSERTION FAILED: SL->JOIN == 0, FILE
  SQL_PREPARE.CC, LINE 2502
  
  This bug was introduced by the fix for bug #15875919.
  
  Problem: An assertion fires when executing a prepared statement with a
  subquery in the ON clause of a join in a subquery that is removed by
  remove_redundant_subquery_clauses().
  
  An ALL/ANY/SOME/IN subquery may contain ORDER BY and GROUP BY clauses
  that are not needed. These are removed by
  remove_redundant_subquery_clauses(). If such a clause contains a
  subquery, the subquery is also removed. The st_select_lex_unit and
  st_select_lex objects of the subquery should be unlinked from the
  outer query and from LEX::all_selects_list. This is done by doing a
  walk() on the clause with Item_subselect::clean_up_after_removal()
  doing the actual removal. This walk was added in the fix for bug
  #15875919.
  
  If a subquery that is removed in this way has an ON clause with
  another subquery, the walk will fail to find this second
  subquery. Item_subselect::walk() does not call the walk processor
  function on its ON clauses. Because of this, Item_subselects in ON
  clauses and their st_select_lex objects are not removed properly from
  LEX::all_selects_list. However, the master and slave links are cut at
  one point, so the subquery is out of the tree of select_lex_nodes, but
  there's still a pointer in LEX::all_selects_list. When the prepared
  statement is executed, reinit_stmt_before_use() will follow this
  pointer and find a st_select_lex object without a JOIN object.
  
  Fix: Walk join conditions in Item_subselect::walk(). This is done by
  adding a new function, Item_subselect::walk_join_condition() that goes
  through nested joins and walks all join conditions.
  
  This patch also changes the order in which parts of an Item_subselect
  is walked to a more natural order.
------------------------------------------------------------
revno: 4810
committer: Norvald H. Ryeng <norvald.ryeng@oracle.com>
branch nick: mysql-5.6-16347450
timestamp: Thu 2013-02-21 12:37:50 +0100
message:
  Bug#16347450 GROUP_CONCAT UNSTABLE, CRASH IN
  ITEM_SUM::CLEAN_UP_AFTER_REMOVAL
  
  Problem: Queries with ALL/ANY/SOME/IN subqueries with aggregation
  functions in unnecessary clauses may cause the server to crash.
  
  ALL/ANY/SOME/IN subqueries are simplified by removing clauses that
  will not affect the result. This is done by calling
  remove_redundant_subquery_clauses(). When such a clause contains an
  aggregation function, Item_sum::clean_up_after_removal() is called to
  unlink the item from the aggr_sel->inner_sum_func_list if such a link
  exists.
  
  Item_sum::clean_up_after_removal() assumes that the item is part of
  the list if aggr_sel and aggr_sel->inner_sum_func_list are both
  non-null. However, if the subquery has both an inner subquery with an
  aggregation function and an aggregation function (not in an inner
  subquery) that is to be removed, Item_sum::clean_up_after_removal()
  will fail to identify the situation and will try to remove the item
  from a list where it is not present. This causes it to dereference an
  uninitialized next pointer.
  
  Fix: Initialize Item_sum::next to NULL and use this to test for
  membership in aggr_sel->inner_sum_func_list. The list is circularly
  linked, so any element with next==NULL is not a member of the list.
------------------------------------------------------------
revno: 4809 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Thu 2013-02-21 09:01:03 +0100
message:
  merge 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.417.203
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5
    timestamp: Wed 2013-02-20 11:24:16 +0100
    message:
      Bug#14300733 CMAKE DOES NOT CHECK FOR ZLIB VERSION
      
      Add check for compressBound() and deflateBound()
      Keep existing functionality: fallback to bundled zlib if functions not found.
------------------------------------------------------------
revno: 4808
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.6_b15986073
timestamp: Thu 2013-02-21 12:32:47 +0530
message:
  BUG#15986073- REMOVE MYSQL-TEST/INCLUDE/RPL_ASSERT.INC
  
  Problem: The include file "rpl_assert.inc" was added in
           mysql-5.6. There exists another include file
           "assert.inc" that dose the same and is more
           powerful.
           "rpl_assert.inc" is an older version of
           assert.inc. Two major things have changed:
           1. assert.inc supports [COMMAND] for commands
              that return a single-row single-column result
              set
           2. assert.inc uses eval.inc, so code is better
              separated and more reusable.
  
  Fix: Replaced all usage of "rpl_asert.inc" by "assert.inc".
------------------------------------------------------------
revno: 4807 [merge]
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-21 12:21:03 +0530
message:
  Merge testcase fix for BUG#14147491 from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.202
    committer: Satya Bodapati <satya.bodapati@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-02-21 12:16:59 +0530
    message:
      Testcase fix for Bug#14147491
      
      move_file fails randomly on windows if the destination file exists.
      Using remove_file before move_file mtr test command.
------------------------------------------------------------
revno: 4806
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: old
timestamp: Wed 2013-02-20 15:59:03 +0100
message:
  Tests for Bug #16327292 ANOTHER CRASH IN KEY_COPY
  (already fixed by the patch for bug16308085).
------------------------------------------------------------
revno: 4805
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6-4
timestamp: Mon 2013-02-18 16:01:01 +0100
message:
  fix for Bug#16308085 SEARCH WITH CLAUSE IN RETURN DUPLICATES RECORDS WHEN 'ORDER BY' IS ADDED.
  This is a minimal patch, conservative.
  Ref access does not work with semi-join LooseScan, so the code is changed to not try this combination;
  in a later version will we look at testing it thoroughly and then enabling it.
------------------------------------------------------------
revno: 4804
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-20 19:30:10 +0530
message:
  WL#6808 - InnoDB: Deprecate and remove innodb_mirrored_log_groups
  
  Throw deprecation message in 5.6 and remove completely in 5.7
  
  When innodb_mirrored_log_groups == 1, WARN and continue with the
  following error message
  
  "Innodb_mirrored_log_groups is an unimplemented feature and the variable
  will be completely removed in a future version."
  
  When innodb_mirrored_log_groups !=1, ABORT with the following error
  message
  
  "Innodb_mirrored_log_groups is an unimplemented feature and the variable
  will be completely removed in a future version. Using values other than 1
  is not supported."
  
  Approved by Marko. rb#1941
------------------------------------------------------------
revno: 4803 [merge]
committer: Oystein Grovlen <oystein.grovlen@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-20 14:39:12 +0100
message:
  Merge jam.  Need to merge on Bug#14147491 on mysql-5.6 since
  it was push here before my push for Bug#16093024.
    ------------------------------------------------------------
    revno: 4801.1.1 [merge]
    committer: Satya Bodapati <satya.bodapati@oracle.com>
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-20 18:26:21 +0530
    message:
      Merge the testcase fix from mysql-5.5 to mysql-5.6 for Bug#14147491
        ------------------------------------------------------------
        revno: 2875.417.201
        committer: Satya Bodapati <satya.bodapati@oracle.com>
        branch nick: mysql-5.5
        timestamp: Wed 2013-02-20 18:25:18 +0530
        message:
          Testcase fix for BUG#14147491
          
          The random failure will be fixed by Bug#16263506 and this patch
          
          Approved by Marko. rb#1988
------------------------------------------------------------
revno: 4802
committer: Oystein Grovlen <oystein.grovlen@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-20 13:45:02 +0100
message:
  Bug#16093024 - TEMPORAL FUNCTIONS TRUNCATE INSTEAD OF ROUND
  
  Issue:
  Built-in SQL function SEC_TO_TIME did not handle fractional
  seconds correctly. If there were more than six decimals,
  results was truncated instead of rounded.
  
  Solution:
  In function sec_to_time(), do rounding instead of truncation.
  
  Unit test for Item_func_sec_to_time class has been added.
------------------------------------------------------------
revno: 4801
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Wed 2013-02-20 09:32:35 +0100
message:
  Bug#16328024 BUILD-CMAKE NEEDS TO BE UPDATED TO CORRECT LINK TO MYSQL CMAKE INFORMATION
------------------------------------------------------------
revno: 4800
committer: sayantan.dutta@oracle.com
branch nick: mysql-5.6
timestamp: Wed 2013-02-20 10:31:47 +0100
message:
  Bug #16360158 - MTR SOMETIMES WRITES A CHECK-TESTCASE REJECT FILE INTO CURRENT DIRECTORY
------------------------------------------------------------
revno: 4799
committer: sayantan.dutta@oracle.com
branch nick: mysql-5.6
timestamp: Wed 2013-02-20 10:29:39 +0100
message:
  Bug #16360158 - MTR SOMETIMES WRITES A CHECK-TESTCASE REJECT FILE INTO CURRENT DIRECTORY
------------------------------------------------------------
revno: 4798
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-20 14:56:19 +0800
message:
  Bug #16330036 - DICT_FOREIGN_FREE READS ALREADY FREED MEMORY, CRASHES!
  
  rb://2027 approved by Sunny Bains and Marko
------------------------------------------------------------
revno: 4797 [merge]
committer: Georgi Kodinov <georgi.kodinov@oracle.com>
branch nick: B16295905-5.6
timestamp: Tue 2013-02-19 14:28:14 +0200
message:
  merge
    ------------------------------------------------------------
    revno: 4795.1.1 [merge]
    committer: Georgi Kodinov <georgi.kodinov@oracle.com>
    branch nick: B16295905-5.6
    timestamp: Tue 2013-02-19 14:13:17 +0200
    message:
      merge to the 5.6 tree
        ------------------------------------------------------------
        revno: 4760.1.1
        committer: Georgi Kodinov <georgi.kodinov@oracle.com>
        branch nick: B16295905-5.6
        timestamp: Wed 2013-02-13 18:22:03 +0200
        message:
          Bug #16295905: ALTER USER PASSWORD EXPIRE WILL CAUSE CRASH WHEN
          START WITH SKIP-GRANT_TABLES
          
          Added a check for skip-grant-tables to ALTER USER.
------------------------------------------------------------
revno: 4796
committer: Raghav Kapoor <raghav.kapoor@oracle.com>
branch nick: mysql-5.6-bug-11766326
timestamp: Tue 2013-02-19 17:36:00 +0530
message:
  BUG#11766326 - LINUXTHREADS INFO IS OUTDATED
  
  BACKGROUND:
  In the Docs directory of the MySQL sourcecode there is a
  linuxthreads.txt and a glibc-2.2.5.patch.
  The first line of linuxthreads.txt already notes that it's
  obsolete, but it's still in the sourcecode repository on
  Launchpad as well as in internals Docs Directory.
  
  FIX:
  These two files have been removed from the internal Docs
  Directory as the information in these files is obsolete
  and not required.
------------------------------------------------------------
revno: 4795
committer: Raghav Kapoor <raghav.kapoor@oracle.com>
branch nick: mysql-5.6-bug-16035659
timestamp: Tue 2013-02-19 16:39:16 +0530
message:
  BUG#16035659 - CRASH WHEN SQL_MODE=NO_ENGINE_SUBSTITUTION,
                 STRICT_TRANS_TABLES IS SET
  
  BACKGROUND:
  An assertion failure in Diagnostics_area::set_ok_status() was
  observed in MySQL Server when an InnoDB table is created having
  violated the maximum key length limit when running in STRICT
  SQL MODE. Instead of throwing an error, the server crashes in
  Debug Build.
  On release builds set_ok_status() will just refuse to overwrite
  the error status with OK, and the client will be sent the error
  message. So we will not get a crash and in fact get correct
  behavior in this case.
  
  ANALYSIS:
  In THD::raise_condition() function, warning is converted to
  error when STRICT SQL MODE is enabled. The return value false
  from this function indicates OK, but it has just set the error
  status. There was no code to return true, if an error occured.
  
  FIX:
  As a fix for this bug, the code to return true has been added,
  if an error is set when STRICT SQL_MODE is ON.
------------------------------------------------------------
revno: 4794 [merge]
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug11746817_mysql-5.6
timestamp: Tue 2013-02-19 14:44:36 +0530
message:
  merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.200 [merge]
    committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
    branch nick: Bug11746817_mysql-5.5
    timestamp: Tue 2013-02-19 14:36:30 +0530
    message:
      Merge from mysq-5.1 to mysql-5.5
        ------------------------------------------------------------
        revno: 2661.862.114
        committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
        branch nick: Bug11746817_mysql-5.1
        timestamp: Tue 2013-02-19 14:31:11 +0530
        message:
          Bug#11746817:MYSQL_INSTALL_DB CREATES WILDCARD GRANTS WHEN
          HOST HAS '_' IN THE HOSTNAME
          
          Problem:
          =======
          '_' and '%' are treated as a wildcards by the ACL code and
          this is documented in the manual. The problem with
          mysql_install_db is that it does not take this into account
          when creating the initial GRANT tables:
          
          --- cut ---
          REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y',
          'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
          'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',
          0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost';
          --- cut ---
          
          If @current_hostname contains any wildcard characters, then
          a wildcard entry will be defined for the 'root' user,
          which is a flaw.
          
          Analysis:
          ========
          As per the bug description when we have a hostname with a
          wildcard character in it, it allows clients from several other
          hosts with similar name pattern to connect to the server as root.
          For example, if the hostname is like 'host_.com' then the same
          name is logged in mysql.user table. This allows 'root' users
          from other hosts like 'host1.com', 'host2.com' ... to connect
          to the server as root user.
          
          While creating the intial GRANT tables we do not have a check
          for wildcard characters in hostname.
          
          Fix:
          ===
          As part of fix escape character "\" is added before wildcard
          character to make it a plain character, so that the one and
          only host with the exact name will be able to connect to the
          server.
------------------------------------------------------------
revno: 4793
committer: Olav Sandstaa <olav.sandstaa@oracle.com>
branch nick: icp-assert-bug-5.6
timestamp: Tue 2013-02-19 09:23:14 +0100
message:
  Fix for Bug#16327534 ASSERT 'OTHER_TBLS_OK' FAILED IN PUSH_INDEX_COND
                       ON SELECT + IN + JOIN WITH ICP
  
  The failing assert was added to push_index_cond() as part of the fix
  for Bug 15896009. The purpose of the assert was to ensure that when an
  index condition is not pushed due to not including any fields from the
  index, this only happens when we are allowed to include fields from
  other tables of the join, ie. when other_tbls_ok is true.
  
  The reason for the assert to fail is that there exist situations where
  the query condition does not include any fields from any of the
  tables. This can happen when we have a constant condition. One example
  is that the query condition is just Item_int(1) (ie. always
  true). This causes the assert to fail due to not referencing any
  fields neither from the index nor from any other tables.
  
  The fix for this problem is to extend the assert to also include the
  case where the index condition is a constant condition.
  Note: in the version pushed to mysql-5.6 the assert is removed.
------------------------------------------------------------
revno: 4792 [merge]
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-19 12:21:44 +0530
message:
  Bug#16235681: TURN OFF DEFAULT COMPRESSION WHILE USING
                OPENSSL
  
  Description: Merge from 5.5.
    ------------------------------------------------------------
    revno: 2875.417.199 [merge]
    committer: Harin Vadodaria <harin.vadodaria@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-19 12:19:10 +0530
    message:
      Bug#16235681: TURN OFF DEFAULT COMPRESSION WHILE USING
                    OPENSSL
      
      Description: Merge from 5.1.
        ------------------------------------------------------------
        revno: 2661.862.113
        committer: Harin Vadodaria <harin.vadodaria@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-02-19 12:17:31 +0530
        message:
          Bug#16235681: TURN OFF DEFAULT COMPRESSION WHILE USING
                        OPENSSL
          
          Description: Specify preference to disable compression
                       while using OpenSSL library. OpenSSL uses
                       zlib compression by default which may
                       lead to some problems.
------------------------------------------------------------
revno: 4791 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-19 11:03:12 +0530
message:
  Null merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.198 [merge]
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-19 10:59:45 +0530
    message:
      Null merge from mysql-5.1 to mysql-5.5
        ------------------------------------------------------------
        revno: 2661.862.112
        committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-02-19 10:55:55 +0530
        message:
          Instead of using rm command, use perl code.
------------------------------------------------------------
revno: 4790 [merge]
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.6_b15965353
timestamp: Tue 2013-02-19 02:00:44 +0530
message:
  BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2,
                PLATFORM= MACOSX10.6 X86_64 MAX
  post push fix
    ------------------------------------------------------------
    revno: 2875.417.197
    committer: Shivji Kumar Jha <shivji.jha@oracle.com>
    branch nick: mysql-5.5_B15965353
    timestamp: Tue 2013-02-19 01:58:57 +0530
    message:
      BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2,
                    PLATFORM= MACOSX10.6 X86_64 MAX
      
                  post push fix
------------------------------------------------------------
revno: 4789 [merge]
committer: Pedro Gomes  <pedro.gomes@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-18 17:09:08 +0000
message:
  BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
  
  Null merge
    ------------------------------------------------------------
    revno: 2875.417.196 [merge]
    committer: Pedro Gomes  <pedro.gomes@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-02-18 17:06:00 +0000
    message:
      BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
      
      Null merge
        ------------------------------------------------------------
        revno: 2661.862.111
        committer: Pedro Gomes  <pedro.gomes@oracle.com>
        branch nick: mysql-5.1
        timestamp: Mon 2013-02-18 17:02:26 +0000
        message:
          BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
          
          Post-push fix, broken build:
          sql/rpl_master.cc:1049:70: error: converting ?false? to pointer type ?bool*? [-Werror=conversion-null]
------------------------------------------------------------
revno: 4788
committer: Manish Kumar<manish.4.kumar@oracle.com>
branch nick: mysql-5.6_16216404
timestamp: Mon 2013-02-18 21:53:38 +0530
message:
  BUG#16216404 - MYSQL 5.6: VERSION MISMATCH A BIT ALARMING WHEN MASTER IS
                 NOT 5.6
  
  Problem - After upgrading a slave to a higher version we get this warning
            getting logged:
            13:18:40 28611 [Warning] Slave I/O: Unknown system variable
            'SERVER_UUID' on master, maybe it is a *VERY OLD MASTER*.
            Error_code: 1193
            
            This is rather alarming to the users.
  
  Fix - the problem is fixed by changing the warning being logged to be a
        more descriptive one by printing the master's and slave's sever
        version:
        [Warning] Slave I/O: Unknown system variable 'SERVER_UUID' on
        master. A probable cause is that the variable is not supported
        on the master (version: 5.5.31-debug-log), even though it is on
        the slave (version: 5.6.11-debug-log), Error_code: 1193
------------------------------------------------------------
revno: 4787 [merge]
committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
branch nick: 5.6
timestamp: Mon 2013-02-18 19:14:25 +0530
message:
  Bug #12546953: "SHOW VARIABLES LIKE 'DATADIR';" RETURN EMPTY.
  Merge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.417.195
    committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
    branch nick: 5.5
    timestamp: Mon 2013-02-18 19:13:06 +0530
    message:
      Bug #12546953   "SHOW VARIABLES LIKE 'DATADIR';" RETURN EMPTY.
      Problem:
      ===========================================================
      If mysqld daemon is started without a --datadir option
      option, and we issue the SHOW VARIABLES LIKE 'DATADIR';SQL command
      at the client it returns an empty path. This is because
      mysql_real_data_home_ptr is being reset to NULL by Sys_var_charptr
      constructor call when the datadir is not given either through
      configuration file (no-defaults) or through mysqld parameters.
      
      Solution:
      ===========================================================
      mysql_real_data_home is an array which stores the path of the datadir
      and mysql_real_data_home_ptr is the pointer to it. The pointer is
      being set to NULL at the Sys_datadir, which is of type Sys_var_charptr,
      constructor call. This is because at Sys_datadir call the def_val
      parameter was being passed with DEFAULT(0) which is now replaced with
      DEFAULT(mysql_real_data_home). The patch has been tested manually as it
      is not possible to start mtr without a default config file.
------------------------------------------------------------
revno: 4786 [merge]
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6-4
timestamp: Mon 2013-02-18 14:13:19 +0100
message:
  merge with latest 5.6
    ------------------------------------------------------------
    revno: 4784.1.1 [merge]
    committer: Guilhem Bichot <guilhem.bichot@oracle.com>
    branch nick: 5.6-4
    timestamp: Mon 2013-02-18 13:45:53 +0100
    message:
      merge with latest 5.6
        ------------------------------------------------------------
        revno: 4783.1.1 [merge]
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6-4
        timestamp: Mon 2013-02-18 10:49:16 +0100
        message:
          merge with latest 5.6
            ------------------------------------------------------------
            revno: 4705.1.1
            committer: Guilhem Bichot <guilhem.bichot@oracle.com>
            branch nick: 5.6-4
            timestamp: Mon 2013-02-18 10:04:46 +0100
            message:
              fix for Bug #16221623 EXTRA ROWS ON SEMIJOIN QUERY WITH RANGE PREDICATES:
              we forgot to set tab->index for loosescan. This is a minimal patch because:
              - 5.6 is GA
              - LooseScan planning is mixed inside best_access_path () which makes it
              very sensitive to any code change, and hard to debug.
              In worklog 6739, code will be better reorganized.
------------------------------------------------------------
revno: 4785
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-zlib
timestamp: Mon 2013-02-18 13:44:49 +0100
message:
  Bug#16284051 INNOCHECKSUM LINK FAILS WITH SYSTEM ZLIB
  Bug#68277 innochecksum link fails with system zlib
  
  If cmake is invoked with -DWITH_SSL=</path/to/custom/openssl>
  we try to link with the .a files rather than the .so files.
  This functionality inadvertently changed behaviour for
   -DWITH_SSL=system
  as well.
  If the user has both /usr/lib/libcrypto.a and /usr/lib/libcrypto.so
  we would pick the static library, and the link would fail with something like:
  /usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/libcrypto.a(c_zlib.o): In function `bio_zlib_write':
------------------------------------------------------------
revno: 4784 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Mon 2013-02-18 11:14:14 +0100
message:
  merge 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.417.194
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5
    timestamp: Mon 2013-02-18 11:12:24 +0100
    message:
      BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
      Post-push fix, broken build:
      sql/rpl_master.cc:1049:70: error: converting ?false? to pointer type ?bool*? [-Werror=conversion-null]
------------------------------------------------------------
revno: 4783
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-18 12:51:14 +0530
message:
  [Change in result file due to fix for Bug16274455]
------------------------------------------------------------
revno: 4782 [merge]
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug15977988_mysql-5.6
timestamp: Mon 2013-02-18 11:54:24 +0530
message:
  merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.193
    committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
    branch nick: Bug15977988_mysql-5.5
    timestamp: Mon 2013-02-18 11:13:48 +0530
    message:
      Bug#15977988 TEST RPL_ROW_BACKTICK FAILS VALGRIND TEST
      
      Problem:
      =======
      rpl_row_backtick, rpl_mixed_backtick scripts
      are failing with result content mismatch error in
      mysql-cluster-5.5 code.
      
      Analysis:
      ========
      There are two reasons for the test script failure.
      1) The result file in cluster code was incorrect. When
      replication is started in row or mixed based mode all SQL
      statements will be generating base64 bit encoded value,
      which should not be recorded as part of result file. This
      is required as the base64 bit output will be different for
      different execution options.
      
      2) As part of the test script regular expressions have
      been added to remove the base64 bit encoded output. But
      still the new pattern that was generated on the cluster
      code was not getting removed from these expressions.
      
      Fix:
      ===
      Another regular expression is being added to replace the
      new pattern.
------------------------------------------------------------
revno: 4781
committer: Bill Qu <bill.qu@Oracle.com>
branch nick: mysql-5.6
timestamp: Sun 2013-02-17 21:22:15 +0800
message:
  bug#16079840  PREVIOUS_GTIDS_LOG_EVENT SHOULD HAVE EXTENSIBLE DATA SECTION
  
  The Previous_gtids_log_event currently does not allow adding data at the
  end of the event: if extra data is found, an error is generated.
  
  Fix to make Previous_gtids_log_event work fine with additional unknown
  data at the end of the event, then that will be silently ignored.
------------------------------------------------------------
revno: 4780 [merge]
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.6_b15965353
timestamp: Sun 2013-02-17 01:47:37 +0530
message:
  BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2,
                PLATFORM= MACOSX10.6 X86_64 MAX
  
  bzr merge 5.5 =>5.6.
  
  Below is a list of issues found during merge.
  The changes mentioned below are in addition to
  those that come from merge
  
  Problem: sync_io_with_master.inc in 5.5 was renamed to
           sync_slave_io.inc in 5.6 but the source and
           comments in the include file still used
  Fix: Modified source and comments to be in sync with
       the name of the include file.
  
  Problem: The variable $sync_slave_connection was used
           in rpl_sync.inc but it was not cleaned properly.
  Fix: Saved the value of $sync_slave_connection, used it
       and then restored the initial value.
    ------------------------------------------------------------
    revno: 2875.417.192 [merge]
    committer: Shivji Kumar Jha <shivji.jha@oracle.com>
    branch nick: mysql-5.5_B15965353
    timestamp: Sun 2013-02-17 01:45:10 +0530
    message:
      BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2,
                    PLATFORM= MACOSX10.6 X86_64 MAX
      
      bzr merge 5.1=>5.5
        ------------------------------------------------------------
        revno: 2661.862.110
        committer: Shivji Kumar Jha <shivji.jha@oracle.com>
        branch nick: mysql-5.1_B15965353
        timestamp: Sun 2013-02-17 01:42:28 +0530
        message:
          BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2,
                        PLATFORM= MACOSX10.6 X86_64 MAX
          
          Problem: The test was failing on pb2's mac machine because
                   it was not cleaned up properly. The test checks if
                   the command 'start slave until' throws a proper
                   error when issued with a wrong number/type of
                   parameters. After this,the replication stream was
                   stopped using the include file 'rpl_end.inc'.
                   The errors thrown earlier left the slave in an
                   inconsistent state to be closed by the include
                   file which was caught by the mac machine.
          
          Fix: Started slave by invoking start_slave.inc to have a
               working slave before calling rpl_reset.inc
          
          Problem: The test file was not in a good shape. It tested
                   start slave until relay log file/pos combination
                   wrongly. A couple of commands were executed at
                   master and replicated at slave. Next, the
                   coordinates in terms of relay log file and pos
                   were noted down followed by reset slave and start
                   slave until saved relay log file/pos. Reset slave
                   deletes  all relay log files and makes the slave
                   forget its replication position. So, using the
                   saved coordiantes after reset slave is wrong.
          
          Fix: Split the test in two parts:
               a) Test for start slave until master log file/pos and
                  checking for correct errors in the failure
                  scenarios.
               b) Test for start slave until relay log file/pos.
          
          Problem: The variables auto_increment_increment and
                   auto_increment_offset were set in the the include
                   file rpl_init.inc. This was only configured for
                   some connections that are rarely used by test
                   cases, so likely that it will cause confusion.
                   If replication tests want to setup these variables
                   they should do so explicitly.
          
          Fix:
               a) Removed code to set the variables
                  auto_increment_increment and auto_increment_offset
                  in the include file.
               b) Updated tests files using the same.
------------------------------------------------------------
revno: 4779 [merge]
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-bug16342793
timestamp: Sat 2013-02-16 13:55:45 +0100
message:
  Local merge
    ------------------------------------------------------------
    revno: 4777.1.4
    committer: Nuno Carvalho <nuno.carvalho@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-02-15 23:10:45 +0000
    message:
      WL#6663: Make the MTR binlog suite GTID_MODE agnostic
      
      Enabled incorrectly skipped binlog_gtid_mysqlbinlog_row_myisam test.
    ------------------------------------------------------------
    revno: 4777.1.3 [merge]
    committer: Pedro Gomes  <pedro.gomes@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-02-15 22:38:31 +0000
    message:
      BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
            
      Merge from mysql 5.5 to mysql 5.6
        ------------------------------------------------------------
        revno: 2875.417.191 [merge]
        committer: Pedro Gomes  <pedro.gomes@oracle.com>
        branch nick: mysql-5.5
        timestamp: Fri 2013-02-15 22:18:37 +0000
        message:
          BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
          
          Merge from mysql 5.1 to mysql 5.5
            ------------------------------------------------------------
            revno: 2661.862.109
            committer: Pedro Gomes  <pedro.gomes@oracle.com>
            branch nick: mysql-5.1
            timestamp: Fri 2013-02-15 21:57:35 +0000
            message:
              BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE
              
              In method mysql_binlog_send, right after detecting a EOF in the
              read event loop, and before deciding if we should change to a new
              binlog file there is a execution window where new events can be
              written to the binlog and a rotation can happen. When reaching
              the test, the function will then change to a new binlog file
              ignoring all the events written in this window. This will result
              in events not being replicated.
              
              Only when the binlog is detected as deactivated in the event loop
              of the dump thread, can we really know that no more events
              remain. For this reason, this test is now made under the log lock
              in the beginning of the event loop when reading the events.
    ------------------------------------------------------------
    revno: 4777.1.2
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.6
    timestamp: Fri 2013-02-15 17:57:07 +0200
    message:
      Fix Bug#14259638 BINLOG.BINLOG_MYSQLBINLOG_ROW_INNODB FAILS ON PB2
      SPRADICALLY
      
      Add ANALYZE TABLE statements in order to make the stats for the
      tables t1, t2 and t3 deterministic immediately after the INSERT
      statements when the background stats update may or may not have
      completed yet.
    ------------------------------------------------------------
    revno: 4777.1.1 [merge]
    committer: Alexander Nozdrin <alexander.nozdrin@oracle.com>
    branch nick: 5.6
    timestamp: Fri 2013-02-15 17:11:42 +0400
    message:
      Merge from 5.5. Merge test case only.
        ------------------------------------------------------------
        revno: 2875.417.190
        committer: Alexander Nozdrin <alexander.nozdrin@oracle.com>
        branch nick: 5.5-bug16056537
        timestamp: Fri 2013-02-15 16:01:37 +0400
        message:
          Bug#16056537: MYSQLD CRASHES IN ITEM_FUNC_GET_USER_VAR::FIX_LENGTH_AND_DEC()
          
          The technical problem was that THD::user_var_events_alloc was reset to NULL
          from a valid value when a stored program is executed during the PREPARE statement.
          
          The user visible problem was that the server crashed if user issued a PREPARE
          statement using some combination of stored functions and user variables.
          
          The fix is to restore THD::user_var_events_alloc to the original value.
          This is a minimal fix for 5.5.
          
          More proper patch has been already implemented for 5.6+. It avoids
          evaluation of stored functions for the PREPARE phase.
          
          From the user point of view, this bug is a regression, introduced by the patch for WL2649
          (Number-to-string conversions), revid: bar@mysql.com-20100211041725-ijbox021olab82nv
          However, the code resetting THD::user_var_events_alloc exists even in 5.1.
          The WL just changed the way arguments are converted to strings and the bug became visible.
------------------------------------------------------------
revno: 4778
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-bug16342793
timestamp: Fri 2013-02-15 18:49:01 +0100
message:
  Bug#16342793 MYSQL 5.6 FAILS TO BUILD WITH LIBWRAP SUPPORT ENABLED
  
  Before this fix, building a server with HAVE_LIBWRAP failed.
  
  The problem is that a variable renaming was missed, causing code to not
  compile in sql/mysqld.cc
  
  However, such failure should have been detected, and in fact was hidden by
  another problem.
  
  In the cmake files, the end user can specify WITH_LIBWRAP.
  
  The Makefile then attempts to build a small test program to verify libwrap
  is available, but silently fail and still produce code that does build,
  with HAVE_LIBWRAP undefined, producing a binary that does not use libwrap.
  
  For the cmake test to pass, both:
  - the tcpd.h header file
  - the libwrap library
  need to be installed.
  The header and the library are deployed in different packages on some OS
  distributions, so that having the libwrap runtime alone is not sufficient.
  
  As a result, builds where:
  - the end user ask for WITH_LIBWRAP
  - the libwrap library *is* installed
  - the tcpd.h header is missing
  would build, but not with #define HAVE_LIBWRAP,
  producing a binary without failures and without libwrap.
  
  This fix resolves two issues:
  - the build break in sql/mysqld.cc has been resolved
  - the configure.cmake now fails with a hard failure,
    returning an error, if the end user asked WITH_LIBWRAP
    but the makefile can not find a working libwrap.
  
  The most reliable way to verify how a binary is build is to check:
  ldd mysqld | grep libwrap
  to make sure the library is called.
  
  Verified manually that the build is now proper.
------------------------------------------------------------
revno: 4777
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-15 10:32:25 +0200
message:
  Bug#16216513 INPLACE ALTER DISABLED FOR PARTITIONED TABLES
  
  Due to Bug#14760210, INPLACE ALTER TABLE was disabled for partitioned tables.
  
  But it is possible to support this within InnoDB (our only
  transactional engine that can use the partitioning engine,
  ha_partition).
  
  The fix is to atomically commit the ALTER TABLE changes to all
  partitions of the table, within a single data dictionary
  transaction. The groundwork for this was laid out when fixing
  Bug#15989081 INNODB ALTER TABLE IS NOT ATOMIC.
  
  This patch modifies the solution so that changes to all partitions
  will be committed using the same data dictionary transaction, and (if
  needed) piggy-backing the rename of all partition *.ibd files in the
  same mini-transaction with the data dictionary transaction commit.
  
  In this way, crash recovery will either replay or roll back the ALTER
  TABLE. The worst possible scenario should be that the *.frm file (for
  which there is no log-based recovery) gets out of sync with the InnoDB
  data dictionary. This problem affects all tables.
  
  handler::commit_inplace_alter_table(): Slightly modify the API. Add
  ha_alter_info->group_commit_ctx. When it is NULL, the behaviour is as
  usual (commit only the table handle).
  
  When ha_alter_info->group_commit_ctx != NULL, it is assumed to be a
  pointer to a NULL-terminated array of ha_alter_info->handler_ctx,
  belonging to the partitions of a table. All partitions of the table
  will share the TABLE and altered_table objects.
  
  If handler::commit_inplace_alter_table() supports this operation, it
  must set ha_alter_info->group_commit_ctx = NULL. In this case,
  ha_partition::commit_inplace_alter_table(commit=true) will assume that
  the handler::commit_inplace_alter_table(commit=true) for the first
  partition committed the changes to all partitions.
  
  The rollback of partitions is unaffected by this. That is,
  handler::commit_inplace_alter_table(commit=false) will be invoked on
  every partition separately.
  
  The InnoDB changes are described below in detail.
  
  INNOBASE_ALTER_REBUILD: Renamed from INNOBASE_INPLACE_REBUILD.
  
  INNOBASE_ALTER_DATA: Renamed from INNOBASE_INPLACE_CREATE.
  
  INNOBASE_ALTER_NOREBUILD: Replaces INNOBASE_ONLINE_OPERATIONS.
  Does not include INNOBASE_INPLACE_IGNORE (no change inside InnoDB).
  
  ha_innobase_inplace_ctx: Replace user_trx with a reference to
  prebuilt. ha_innobase::commit_inplace_alter_table() needs to replace
  the ha_innobase::prebuilt in every partition. Add old_table and rename
  indexed_table to new_table. Add max_autoinc, so that we can preserve
  the current auto-increment value for every partition. Add the
  predicate ctx->need_rebuild(). Rename add, drop to add_index, drop_index.
  
  ha_innobase::prepare_inplace_alter_table(): Allocate ctx for every
  case of CHANGE_CREATE_OPTION, because all changes to InnoDB data
  (including the auto-increment value) will now require a ctx object.
  
  innobase_rollback_sec_index(): Replace prebuilt with user_table. Add
  the parameter ibool locked instead of hard-wiring locked=FALSE,
  because this can be invoked during a commit.
  
  innobase_rename_columns_try(): Replace new_clustered, user_table with ctx.
  
  commit_get_autoinc(), innobase_update_foreign_try(): commit_try_rebuild():
  Replace user_table with ctx.
  
  innobase_update_foreign_cache(): commit_cache_rebuild(): Replace all
  parameters with ctx.
  
  commit_try_norebuild(): Add the ctx parameter, because there is a 1:N
  mapping between ha_alter_info and ctx.
  
  commit_cache_norebuild(): Replace ha_alter_info, user_table with ctx.
  
  commit_update_stats(): Split to alter_stats_norebuild() and
  alter_stats_rebuild().
  
  ha_innobase::commit_inplace_alter_table(): Support them
  ha_alter_info->group_commit_ctx API. Remove the UNIV_DDL_DEBUG code
  that would check the table after a successful ALTER TABLE. (It would
  be better done in the caller of commit_inplace_alter_table().)
  Before starting the data dictionary modifications, invoke
  dict_stats_stop_bg() on every affected dict_table_t object.
  
  dict_stats_wait_bg_to_stop_using_table(): Renamed and simplified from
  from dict_stats_wait_bg_to_stop_using_tables().
  
  dict_stats_stop_bg(): New predicate.
  
  DICT_STATS_BG_YIELD(trx): New auxiliary macro.
  
  rb#1939 approved by Jon Olav Hauglid, Sunny Bains
------------------------------------------------------------
revno: 4776
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-15 10:30:16 +0200
message:
  Work around Bug#16207700 by disabling the wait for purge completion.
------------------------------------------------------------
revno: 4775 [merge]
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-15 12:39:29 +0530
message:
  Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE
                TLS AND DTLS RECORD PROTOCOLS
  
  Description: Merge from 5.5.
    ------------------------------------------------------------
    revno: 2875.417.189 [merge]
    committer: Harin Vadodaria <harin.vadodaria@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-02-15 12:37:21 +0530
    message:
      Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE
                    TLS AND DTLS RECORD PROTOCOLS
      
      Description: Merge from 5.1.
        ------------------------------------------------------------
        revno: 2661.862.108
        committer: Harin Vadodaria <harin.vadodaria@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-02-15 12:35:54 +0530
        message:
          Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE
                        TLS AND DTLS RECORD PROTOCOLS
          
          Description: In yassl, decryption phase in TLS protocol
                       depends on type of padding. This patch
                       removes this dependancy and makes error
                       generation/decryption process independent
                       of padding type.
------------------------------------------------------------
revno: 4774
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: topush-5.6
timestamp: Thu 2013-02-14 23:02:48 +0100
message:
  post-push test result fix for mysql-5.6 of bug#16274455.
------------------------------------------------------------
revno: 4773 [merge]
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.6_b12359942
timestamp: Fri 2013-02-15 00:43:04 +0530
message:
  BUG#12359942- REPLICATION TEST FROM ENGINE SUITE RPL_ROW_UNTIL TIMES OUT
  
  null merge
    ------------------------------------------------------------
    revno: 2875.417.188 [merge]
    committer: Shivji Kumar Jha <shivji.jha@oracle.com>
    branch nick: mysql-5.5_b12359942
    timestamp: Fri 2013-02-15 00:40:32 +0530
    message:
      BUG#12359942- REPLICATION TEST FROM ENGINE SUITE RPL_ROW_UNTIL TIMES OUT
            
      post push fix:
      rpl_stm_until.test was disabled because of
      this bug. Enabled and fixed it.
      
      Removed a part of the test that was obsolete.
      It tested replication from 4.0 master to 5.0
      slave.
        ------------------------------------------------------------
        revno: 2661.862.107
        committer: Shivji Kumar Jha <shivji.jha@oracle.com>
        branch nick: mysql-5.1_b12359942
        timestamp: Fri 2013-02-15 00:38:42 +0530
        message:
          BUG#12359942- REPLICATION TEST FROM ENGINE SUITE RPL_ROW_UNTIL TIMES OUT
                
          post push fix:
          rpl_stm_until.test was disabled because of
          this bug. Enabled and fixed it.
          
          Removed a part of the test that was obsolete.
          It tested replication from 4.0 master to 5.0
          slave.
------------------------------------------------------------
revno: 4772 [merge]
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: topush-5.6
timestamp: Thu 2013-02-14 17:08:56 +0100
message:
  Manual merge of bug#16274455 into mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.187
    committer: Mattias Jonsson <mattias.jonsson@oracle.com>
    branch nick: topush-5.5
    timestamp: Thu 2013-02-14 17:03:49 +0100
    message:
      Bug#16274455: CAN NOT ACESS PARTITIONED TABLES WHEN
      DOWNGRADED FROM 5.6.11 TO 5.6.10
      
      Problem was new syntax not accepted by previous version.
      
      Fixed by adding version comment of /*!50531 around the
      new syntax.
      
      Like this in the .frm file:
      'PARTITION BY KEY /*!50611 ALGORITHM = 2 */ () PARTITIONS 3'
      and also changing the output from SHOW CREATE TABLE to:
      CREATE TABLE t1 (a INT)
      /*!50100 PARTITION BY KEY */ /*!50611 ALGORITHM = 1 */ /*!50100 ()
      PARTITIONS 3 */
      
      It will always add the ALGORITHM into the .frm for KEY [sub]partitioned
      tables, but for SHOW CREATE TABLE it will only add it in case it is the non
      default ALGORITHM = 1.
      
      Also notice that for 5.5, it will say /*!50531 instead of /*!50611, which
      will make upgrade from 5.5 > 5.5.31 to 5.6 < 5.6.11 fail!
      If one downgrades an fixed version to the same major version (5.5 or 5.6) the
      bug 14521864 will be visible again, but unless the .frm is updated, it will
      work again when upgrading again.
      
      Also fixed so that the .frm does not get updated version
      if a single partition check passes.
------------------------------------------------------------
revno: 4771
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-14 17:15:07 +0200
message:
  Bug#16310273 BUG WITH ALTER TABLE AUTO_INCREMENT
  
  To be compatible with ALGORITHM=COPY, InnoDB has to mimic the
  behaviour in ALGORITHM=INPLACE.  Instead of setting the AUTO_INCREMENT
  value to the user-specified one, it has to set it to the maximum of
  the user-specified value and MAX(auto_increment_column)+1.
  
  commit_get_autoinc(): Get the maximum value.
  
  rb#2005 approved by Kevin Lewis
------------------------------------------------------------
revno: 4770 [merge]
committer: magnus.blaudd@oracle.com
branch nick: 5.6
timestamp: Thu 2013-02-14 14:16:20 +0100
message:
  Merge 5.6-bug16315379 -> 5.6
    ------------------------------------------------------------
    revno: 4754.1.1
    committer: magnus.blaudd@oracle.com
    branch nick: 5.6-bug16315379
    timestamp: Tue 2013-02-12 11:17:24 +0100
    message:
      Bug#16315379 COND_SERVER_STARTED MAY HAVE MULTIPLE WAITERS
       - Always use pthread_cond_broadcast when signalling COND_server_started since there
         may be more than one thread waiting for the condition.
------------------------------------------------------------
revno: 4769
committer: Dmitry Lenev <Dmitry.Lenev@oracle.com>
branch nick: mysql-5.6-15935320
timestamp: Thu 2013-02-14 16:18:03 +0400
message:
  Test for bug #15935320 "ALTER TABLE BREAKS REPEATABLE READ WHEN
  QUERY CACHE IS ENABLED".
  
  The bug itself was fixed in 5.6.6 as a side-effect of changes to
  InnoDB ALTER TABLE implementation for WL5526 "Online Add Index".
------------------------------------------------------------
revno: 4768
committer: Nuno Carvalho <nuno.carvalho@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-14 12:06:06 +0000
message:
  WL#6663: Make the MTR binlog suite GTID_MODE agnostic
  
  Added missing RESET MASTER to binlog_start_comment test to avoid that a
  replayed dump of the test current binary log with gtid-mode=on is
  skipped, since those GTIDs were already logged.
------------------------------------------------------------
revno: 4767 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-14 16:38:37 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.186 [merge]
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-02-14 16:35:40 +0530
    message:
      Merge from mysql-5.1 to mysql-5.5
        ------------------------------------------------------------
        revno: 2661.862.106
        committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2013-02-14 16:33:31 +0530
        message:
          For the error code ER_TOO_LONG_IDENT, the identifier is expected in the my_error call.  So removing this line from here.  
------------------------------------------------------------
revno: 4766
committer: Georgi Kodinov <georgi.kodinov@oracle.com>
branch nick: B16072004-5.6
timestamp: Wed 2013-02-13 18:37:10 +0200
message:
  Bug #16072004 : GRANT IDENITFIED BY PASSWORD SUCCESSFUL FOR
  PAM/WINDOWS AUTHENTICATED USERS
  
  When somebody tries to set a password for a user that's authenticated
  via an external plugin the server will just silently ignore the change and
  won't do anything with the password.
  This is expected behavior : the external authentication is designed like
  this.
  But silently ignoring commands is unfriendly and counter-intuitive.
  
  Fixed by adding a warning when this happens.
  No test cases needed, since existing tests are already covering this
  scenario.
------------------------------------------------------------
revno: 4765
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Thu 2013-02-14 11:33:04 +0100
message:
  Bug#16200717 WRONG OUTPUT FROM MYSQL_CONFIG --LIBS
  
  Post-push fix: we have the 'dtrace' executable on darwin,
  but no cmake code for actually using it.
  This resulted in the generation of illegal 'ar r' commands.
------------------------------------------------------------
revno: 4764
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-14 11:08:25 +0100
message:
  Bug#16241773: RANGE OPTIMIZER CRASHES IN SEL_ARG::RB_INSERT()
  
  In the range optimizer, an OR operation was performed between
  a SEL_TREE with merges (two alternative UNION of indexes) and
  a simple SEL_TREE with only one range:
  
  SEL_TREE1: idx1_fld>10 OR idx2_fld=10
             AND
             idx1_fld>20 OR idx2_fld=11
    OR
  SEL_TREE2: idx1_fld=5
  
  This OR operation was performed by imerge_list_or_tree(), which
  intended to do this:
    
  1: tree_or((idx1_fld>10 OR idx2_fld=10), (idx1_fld=5))
  2: tree_or((idx1_fld>20 OR idx2_fld=11), (idx1_fld=5))
  
  But tree_or() may modify it's arguments, which is what happened
  in this bug. Instead of doing the above, imerge_list_or_tree()
  did this:
  
  1: <same as above>
  2: tree_or(<same_as_above>, (idx1_fld=5 OR idx1_fld>10))
                                          ^^^^^^^^^^^^^^
  
  The fix is in imerge_list_or_tree(): Instead of calling
  tree_or() once and then starting to clone the second
  argument, we now make clones in all but the last time
  tree_or() is called. Thus, the SEL_TREE is now cloned before
  it may have been changed.
------------------------------------------------------------
revno: 4763 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Thu 2013-02-14 09:33:31 +0100
message:
  merge bundle
    ------------------------------------------------------------
    revno: 4759.1.1
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.6-mysql-config
    timestamp: Wed 2013-02-13 10:02:21 +0100
    message:
      Bug#16200717 WRONG OUTPUT FROM MYSQL_CONFIG --LIBS
      
      Output from 'mysql_config --libs' included:
      -lpthread -lprobes_mysql -lm -lrt -lssl -lcrypto -ldl
      
      For some build configurations, we merge ssl libraries into the client libs.
      For these builds, -lssl and -lcrypto should not be mentioned.
      The 'probes_mysql' should also go away (there is no such library)
------------------------------------------------------------
revno: 4762
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Thu 2013-02-14 08:46:32 +0100
message:
  Bug#16296509 SEGMENTATION FAULT, MYSQL CLIENT
  Bug#68231 Segmentation Fault, mysql client
  
  If we use the bundled libedit code, then ensure that we build a static library.
  If it is built as a shared library, we might end up compiling/linking with the bundled code,
  but actually use the system library at load/run-time.
------------------------------------------------------------
revno: 4761 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-14 10:48:41 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.185 [merge]
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-12 15:35:56 +0530
    message:
      Merge from mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.862.105
        committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-02-12 14:52:48 +0530
        message:
          Bug #11753153 INNODB GENERATES SYMBOLS THAT ARE TOO LONG, INVALID DDL
          FROM SHOW CREATE
          
          Problem: The length of the internally generated foreign key name
          is not checked.
          
          Solution: The length of the internally generated foreign key name is
          checked.  If it is greater than the allowed limit, an error message
          is reported. Also, the constraint name is printed in the same manner
          as the table name, using the system charset information.
          
          rb://1969 approved by Marko.
------------------------------------------------------------
revno: 4760
committer: Georgi Kodinov <georgi.kodinov@oracle.com>
branch nick: fix-5.6
timestamp: Wed 2013-02-13 15:11:37 +0200
message:
  addendum fix test failures for bug #14697538 and Bug #16289303 :
   - made mysql_upgrade to flush properly on windows around _popen
   - re-recorded the affected tests
   - updated the thread pool test results
------------------------------------------------------------
revno: 4759
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-13 12:15:27 +0530
message:
  Bug#15977433: --SECURE-AUTH OPTIONS ALLOWS CLIENT TO SEND
                      PASSWORD IN OLD FORMAT (PRE-4.1)
  
  Description: Fixed test failures in auth_sec suite.
------------------------------------------------------------
revno: 4758 [merge]
committer: Nuno Carvalho <nuno.carvalho@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-12 15:05:58 +0000
message:
  WL#6663: Make the MTR binlog suite GTID_MODE agnostic
  
  Due to several problems, the binlog suite is not fully
  gtid-mode=on compliant. These problems range from
  the fact that MTR is result file oriented to the fact that
  some tests not even have binlog turned on ever.
            
  This patch fixes the binlog suite so that in the future
  we might be able to run (most of) it with gtid-mode=on.
  The tests left out should be those that don't make sense
  with gtid-mode=on.
    ------------------------------------------------------------
    revno: 4755.1.1
    committer: Nuno Carvalho <nuno.carvalho@oracle.com>
    branch nick: mysql-5.6
    timestamp: Tue 2013-02-12 12:09:48 +0000
    message:
      WL#6663: Make the MTR binlog suite GTID_MODE agnostic
      
      Due to several problems, the binlog suite is not fully
      gtid-mode=on compliant. These problems range from
      the fact that MTR is result file oriented to the fact that
      some tests not even have binlog turned on ever.
                
      This patch fixes the binlog suite so that in the future
      we might be able to run (most of) it with gtid-mode=on.
      The tests left out should be those that don't make sense
      with gtid-mode=on.
------------------------------------------------------------
revno: 4757 [merge]
committer: Georgi Kodinov <georgi.kodinov@oracle.com>
branch nick: B14697538-5.6
timestamp: Tue 2013-02-12 16:12:03 +0200
message:
  merge
    ------------------------------------------------------------
    revno: 4677.1.1
    committer: Georgi Kodinov <georgi.kodinov@oracle.com>
    branch nick: B14697538-5.6
    timestamp: Wed 2013-01-30 14:58:39 +0200
    message:
      Bug #14697538 mysql_upgrade should upgrade all system tables
      before user tables
      
      The problem was due to mysql_upgrade calling mysqlcheck with
      --all-databases before performing the actual upgrade (playing
      scripts/mysql_system_tables_fix.sql).
      
      Added a new command line option --skip-database to mysqlcheck
      that takes a string argument and skips the database whose
      name matches *verbatim* (case sensitive) the argument
      supplied to the new option.
      
      Changed mysql_upgrade to :
      1. call mysqlcheck on the system tables
      2. perform the upgrade of the system tables
      3. call mysqlcheck on the remaining tables.
      
      Updated the affected tests (due to changed ordering of the
      mysqlcheck output).
      
      Added a test case.
------------------------------------------------------------
revno: 4756
committer: Georgi Kodinov <georgi.kodinov@oracle.com>
branch nick: fix-dbug-assert-b14845445-5.6
timestamp: Tue 2013-02-12 15:04:56 +0200
message:
  Bug #16289303: CREATE USER PASSWORD <FAULTY_HASH> TRIGGERS
  DBUG_ASSERT
  
  The preliminary checks for native and old passwords constraints were not
  a superset of the checks done while updating the in-memory user cache.
  This caused a dbug assert.
  Fixed by making sure the preliminary tests apply equally to both creating
  new users and updating existing users by putting the checks in a common
  code path.
  Old (wrong) test cases amended.
  Test case added.
------------------------------------------------------------
revno: 4755
committer: Harin Vadodaria <harin.vadodaria@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-12 16:08:59 +0530
message:
  Bug#15977433: --SECURE-AUTH OPTIONS ALLOWS CLIENT TO SEND
                PASSWORD IN OLD FORMAT (PRE-4.1)
  
  Description: If --secure-auth client option is used, client
               should raise an error if connection is using
               mysql_old_password stype password hash.
               However, at present client does not throw any
               error and if server is not running in
               secure_auth mode, connection is successfully
               established.
  
  Solution: Introduce a check in client code that makes sure
            that whenever --secure-auth option is specified
            on client side, an error is raised if connection
            is trying to use mysql_old_password hash.
------------------------------------------------------------
revno: 4754
committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-12 11:02:01 +0530
message:
  BUG#16065059 - QUERY 'REAP' FAILED WITH WRONG ERRNO 1205:
                       LOCK WAIT TIMEOUT EXCEEDED
  Post-push fix to avoid PB2 failure. DEBUG_SYNC facility is
  required and so include in kill coverage tests to avoid
  failure on PB2.
------------------------------------------------------------
revno: 4753
committer: Nuno Carvalho <nuno.carvalho@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-11 16:03:55 +0000
message:
  BUG#16062608: REPLICATION COMMANDS IMPLICIT COMMIT AND SET GTID_NEXT="UUID:X"
  
  Revert fix since it introduced problems with SET commands, more
  precisely with SET PASSWORD.
------------------------------------------------------------
revno: 4752
committer: Pedro Gomes  <pedro.gomes@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-11 15:52:40 +0000
message:
  BUG#15894381 INCREASE MYSQLBINLOG VERSION (3.4 OR SOMETHING HIGHER THAN 3.3) IN MYSQL 5.6
  
  The mysqlbinlog version is 3.2 in MySQL 5.0 and 3.3 in MySQL 5.1,
  5.5 and 5.6 This is problematic since MySQL 5.6 adds new binlog
  format such as checksums. For example, the mysqlbinlog command in
  5.5 can't parse binlog events generated in MySQL 5.6.
  
  When parsing binlog events generated in MySQL 5.6, we need to
  make sure that the commands handles the input. Increasing
  mysqlbinlog version in 5.6 to version 3.4 will make this easier.
------------------------------------------------------------
revno: 4751
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-11 16:47:38 +0200
message:
  Bug#16310467 READ-ONLY TRANSACTIONS DO NOT ROLL BACK CHANGES TO TEMPORARY TABLES
  
  trx_rollback_to_savepoint_low(): Roll back even read-only
  transactions.  They can modify temporary tables. But, skip the
  processing if the transaction has not generated any undo log (has not
  modified anything).
  
  rb#1983 approved by Kevin Lewis
------------------------------------------------------------
revno: 4750
committer: Manish Kumar<manish.4.kumar@oracle.com>
branch nick: mysql-5.6_16237051
timestamp: Mon 2013-02-11 17:19:31 +0530
message:
  BUG#16237051 - WHEN MYSQL VERSION NUMBER UPGRADE TO 10.X, CAN'T REPLICATE
                 TO LOWER VERSION.
        
  Problem: The problem in this particular bug is the way the version number is
           checked in the rpl_slave.cc. We only check the *mysql->server_version
           and match it against the given case in the switch. But considering the
           case that mysql upgrades to 10.x we will have the switch pointing to
           1 which will error out though the version is correct.
     
  Fix: To fix the problem we can extract the major version number using the strtok
       function and convert it into an integer. This will be then passed to the
       version checking switch case and it will ensure that the wrong error is
       not thrown.
------------------------------------------------------------
revno: 4749
committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-02-11 12:26:16 +0530
message:
  BUG#16065059 - QUERY 'REAP' FAILED WITH WRONG ERRNO 1205:
                 LOCK WAIT TIMEOUT EXCEEDED
        
  DESCRIPTION:
  The mtr test 'thread_pool.thread_pool_kill_coverage' fails
  when run under valgrind sometimes with the error code 1205
  (Lock wait timeout exceeded) instead of the expected error
  code 1317 (Query interrupted).
  FIX:
  Use DEBUG_SYNC facility to synchronize the asynchronous
  SELECT send on one connection and KILL QUERY on another
  connection to get error code 1317 (Query Interrupted) as
  the test case expects.
------------------------------------------------------------
revno: 4748
committer: Mark Leith <mark.leith@oracle.com>
branch nick: mysql-5.6
timestamp: Sat 2013-02-09 12:10:25 +0000
message:
  Bug #11766693: LOG-SLOW-ADMIN-STATEMENTS AND LOG-SLOW-SLAVE-STATEMENTS NOT
  DISPLAYED
  
  Added both log_slow_admin_statements and log_slow_slave_statements as server
  system variables, that can now be dynamically set at run time and are now
  available via SHOW GLOBAL VARIABLES. These behave otherwise in the same way as
  the --log-slow-admin-statements and --log-slow-slave-statements server command
  options.
  
  There is no need to restart the slave SQL thread for the value of
  log_slow_slave_statements to be picked up, as the global variable is re-read
  with each successful event applied by the SQL thread.
------------------------------------------------------------
revno: 4747
committer: Anitha Gopi <anitha.gopi@oracle.com>
branch nick: mysql-5.6
timestamp: Sat 2013-02-09 02:18:29 +0100
message:
  Moving an unstable test to experimental group on windows
------------------------------------------------------------
revno: 4746
committer: Olav Sandstaa <olav.sandstaa@oracle.com>
branch nick: icp-perf-bug-5.6
timestamp: Fri 2013-02-08 15:54:34 +0100
message:
  Fix for Bug#15896009 DBT-3 QUERY 19 RUNS SLOWER WITH INDEX CONDITION PUSHDOWN
  
  The cause for this regression is that Q-19 has a fairly complex query
  condition. When using index condition pushdown (ICP), we try to push
  as much as possible of this condition down to the storage engine. The
  ICP code will push down the parts of the query condition that can be
  evaluated using fields from the index and fields from records from
  earlier tables in the join. In this case ICP is used for the second
  table in the join and the index condition that is pushed contains only
  references to fields from the first table in the join. This part of
  the query condition will (in this case) already have been evaluated
  when reading the first table, and since the pushed index condition
  does not contain any fields from the index, no records can be filtered
  out by the push index condition. Thus, using index condition pushdown
  in this case leads to increased CPU usage since we unnecessary
  evaluates this condition multiple times extra with no possibility of
  filtering out any records.
  
  The fix for this problem is to ensure that we only push conditions to
  the storage engine that contain at least one field from the used
  index.
------------------------------------------------------------
revno: 4745 [merge]
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: topush-5.6
timestamp: Fri 2013-02-08 15:34:17 +0100
message:
  merge to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.417.184
    committer: Mattias Jonsson <mattias.jonsson@oracle.com>
    branch nick: topush-5.5
    timestamp: Mon 2013-02-04 14:09:48 +0100
    message:
      post-push test result update for bug#14521864.
------------------------------------------------------------
revno: 4744 [merge]
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6
timestamp: Fri 2013-02-08 13:52:14 +0100
message:
  Merge with latest 5.6
    ------------------------------------------------------------
    revno: 4742.1.1 [merge]
    committer: Guilhem Bichot <guilhem.bichot@oracle.com>
    branch nick: 5.6
    timestamp: Fri 2013-02-08 12:58:53 +0100
    message:
      merge with latest 5.6
        ------------------------------------------------------------
        revno: 4740.1.4
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6
        timestamp: Thu 2013-02-07 15:41:06 +0100
        message:
          fix for
          Bug#16165981 VIEWS: CRASHING IN ITEM_REF::FIX_FIELDS
          Bug#16221433 MYSQL REJECTS QUERY DUE TO BAD RESOLUTION OF NAMES IN HAVING; VIEW UNREADABLE
          See comment of sql_view.cc.
        ------------------------------------------------------------
        revno: 4740.1.3
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6-16163722
        timestamp: Thu 2013-02-07 17:08:51 +0100
        message:
          fix for BUG#16163596 CRASH: PREPARED STATEMENT, GROUP BY WITH ROLLUP
        ------------------------------------------------------------
        revno: 4740.1.2
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6-3
        timestamp: Thu 2013-01-24 15:13:17 +0100
        message:
          Fix for Bug #16076089 ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT CURRENT_TIMESTAMP STILL INSERTS ZERO
          The fix for Bug11745578 only covered the case where ALTER TABLE creates a new copy of the table,
          it forgot the case of "in-place ALTER", so it did not work for InnoDB.
          Some parts by Jon Olav.
        ------------------------------------------------------------
        revno: 4740.1.1
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.6-2
        timestamp: Thu 2013-01-31 13:46:58 +0100
        message:
          Fix for Bug #16163936 CREATE TABLE ... SELECT: PROBLEMS WITH DEFAULT CURRENT_TIMESTAMP:
          CREATE TABLE t2 SELECT t1.column1 FROM t1;
          used to copy the DEFAULT of t1.column1 into t2.column1 except if this DEFAULT was
          a function (CURRENT_TIMESTAMP); this exception is removed.
          CREATE TABLE t2 (extra_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP) SELECT t1.column1 FROM t1;
          used to set extra_column to a zero date when inserting rows; now it sets it
          to the current timestamp.
          Both behaviors were in contradiction with
          http://dev.mysql.com/doc/refman/5.6/en/create-table-select.htm
------------------------------------------------------------
revno: 4743
committer: Pedro Gomes  <pedro.gomes@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-08 12:15:26 +0000
message:
  BUG#14677824 CLOSE_ACTIVE_MI FREED MEMORY THAT CONTAINS ACTIVE CRITICAL SECTIONS
  
  When being destroyed, Relay_log_info objects had some critical
  sections not being properly deleted before freeing the memory.
  The problem was in the stage_manager, owned by the associated
  relay_log object that was never properly cleaned.
  
  The stage_manager's method deinit is now called on the
  mysql_bin_log cleanup method, assuring a proper destruction of
  Relay_log_info objects.
------------------------------------------------------------
revno: 4742 [merge]
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-08 16:38:49 +0530
message:
  BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
  Null merge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.417.183 [merge]
    committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-02-08 16:36:47 +0530
    message:
      BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
      Null merge from mysql-5.1
        ------------------------------------------------------------
        revno: 2661.862.104
        committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-02-08 16:34:32 +0530
        message:
          BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
          
          Reverting back the previous changes as they are causing
          issues in PB2.
------------------------------------------------------------
revno: 4741 [merge]
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-08 15:44:07 +0530
message:
  BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
  Null merge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.417.182 [merge]
    committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-02-08 15:42:36 +0530
    message:
      BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
      Null merge from mysql-5.1
        ------------------------------------------------------------
        revno: 2661.862.103
        committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-02-08 15:41:18 +0530
        message:
          BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
          
          Problem: Sys_vars suite is disabled in mysql-5.1 branch.
          Fix: To enable sys_vars suite in mysql-5.1, add it in
          mysql-test-run.pl file and also sys_vars suite should be
          added to Makefile.am inorder to get that test directory
------------------------------------------------------------
revno: 4740
committer: Tanjot Uppal <tanjot.uppal@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-08 13:53:34 +0530
message:
  Pushing the fixes for auth_sec suite failures on mysql-5.6
------------------------------------------------------------
revno: 4739 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-02-08 09:46:26 +0200
message:
  Merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.417.181 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-02-08 09:33:21 +0200
    message:
      Merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.862.102
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-02-08 09:23:12 +0200
        message:
          Add missing linkage specifiers, so that ha_innodb_plugin.so
          will not export internal symbols.
        ------------------------------------------------------------
        revno: 2661.862.101
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-02-08 09:22:46 +0200
        message:
          Bug#16292043 RACE CONDITION IN SRV_EXPORT_INNODB_STATUS() WHEN ACCESSING PURGE_SYS->VIEW
          
          srv_export_innodb_status(): Read the purge_sys fields while holding
          purge_sys->latch.
          
          Approved by Sunny Bains
------------------------------------------------------------
revno: 4738
committer: Shivji Kumar Jha <shivji.jha@oracle.com>
branch nick: mysql-5.6_b12359942
timestamp: Fri 2013-02-08 08:48:19 +0530
message:
  BUG#12359942- REPLICATION TEST FROM ENGINE SUITE RPL_ROW_UNTIL TIMES OUT
  
  post push fix:
  rpl_stm_until.test was disabled because of
  this bug. Enabled and fixed it.
  
  Removed a part of the test that was obsolete.
  It tested replication from 4.0 master to 5.0
  slave.
------------------------------------------------------------
revno: 4737 [merge]
committer: Igor Solodovnikov <igor.solodovnikov@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 19:47:22 +0200
message:
  Null-merge from mysql-5.1
    ------------------------------------------------------------
    revno: 2875.417.180 [merge]
    committer: Igor Solodovnikov <igor.solodovnikov@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-02-07 19:46:45 +0200
    message:
      Null-merge from mysql-5.1
        ------------------------------------------------------------
        revno: 2661.862.100
        committer: Igor Solodovnikov <igor.solodovnikov@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2013-02-07 19:46:08 +0200
        message:
          bug#14163155 COM_CHANGE_USER DOESN'T WORK WITH CHARACTER-SET-SERVER=UCS2 IN
                       5.1 SERVER
          
          Problem was caused by the COM_CHANGE_USER parsing code. That code ignored
          character set number passed in COM_CHANGE_USER packet. Instead
          character_set_client values was used. User name was not converted at all.
          
          Fixed by using passed character set number to convert both db and user names.
          If COM_CHANGE_USER does not contain character set number then
          character_set_client is used to convert both names.
------------------------------------------------------------
revno: 4736 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Thu 2013-02-07 17:13:03 +0100
message:
  merge 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.417.179 [merge]
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5-merge
    timestamp: Thu 2013-02-07 17:08:59 +0100
    message:
      merge 5.1 => 5.5
        ------------------------------------------------------------
        revno: 2661.862.99
        committer: Tor Didriksen <tor.didriksen@oracle.com>
        branch nick: 5.1
        timestamp: Thu 2013-02-07 17:05:07 +0100
        message:
          Bug#16192219 CRASH IN TEST_IF_SKIP_SORT_ORDER ON SELECT DISTINCT WITH ORDER BY
          
          This is a backport of the fix for:
          
          Bug#13633549 HANDLE_FATAL_SIGNAL IN TEST_IF_SKIP_SORT_ORDER/CREATE_SORT_INDEX
          Don't invoke the range optimizer for a NULL select.
------------------------------------------------------------
revno: 4735
committer: Akhila Maddukuri<akhila.x.maddukuri@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 20:17:45 +0530
message:
  Bug#14477196 MAIN.CONNECT TEST FAILS AS MAX_USED_CONNECTIONS IS NOT
                                                                       CORRECT
        Bug#16275324 I_MAIN.CONNECT FAILS AS THREADS_CACHED IS NOT CORRECT
        
        Problem: main.connect and i_main.connect tests fail sporadically in PB2
                 due to result content mismatch
        
        Analysis: The result content mismatch is in the show statements
                  as shown below:
                  SHOW STATUS LIKE 'max_used_connections';
                  SHOW STATUS LIKE 'Threads_cached';
                  Which indicates that the disconnects present above SHOW
                  statement in each test are not finished before the execution
                  of SHOW starts.
        
        Fix: Added --source include/wait_until_disconnected.inc in these two
             tests after every disconnect
------------------------------------------------------------
revno: 4734
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Thu 2013-02-07 15:32:43 +0100
message:
  Bug#16271540 UNINITIALIZED VALUE IN SAVE_VALUE_AND_HANDLE_CONVERSION
  
  Converting -0.1901 to bit(30) returns zero.
  static_cast<Field_num*>(field) is a "side-cast" rather than down-cast,
  and hence illegal.
  
  Solution: don't try to figure out 'always true' or 'always false' for bit fields.
------------------------------------------------------------
revno: 4733 [merge]
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 17:28:46 +0530
message:
  Bug #16247322 MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
  Null-merge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.417.178 [merge]
    committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-02-07 17:27:32 +0530
    message:
      Bug #16247322 MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1
      Null-Merge from mysql-5.5
        ------------------------------------------------------------
        revno: 2661.862.98
        committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2013-02-07 17:23:37 +0530
        message:
          Bug#16247322- MTR NOT RUNNING SYS_VARS TEST
          SUITE FOR 5.1
          
          SYS_VARS suite is not enabled in MTR by default
          run. Enabling it with this check-in.
------------------------------------------------------------
revno: 4732
committer: Tanjot Uppal <tanjot.uppal@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 17:05:33 +0530
message:
  Fixes for the mysql_native_plugin.test mysql_old_plugin.test mysql_sha256_plugin.test from auth_sec suite
------------------------------------------------------------
revno: 4731 [merge]
committer: magnus.blaudd@oracle.com
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 11:48:03 +0100
message:
  Merge
    ------------------------------------------------------------
    revno: 4729.1.2
    committer: magnus.blaudd@oracle.com
    branch nick: 5.6
    timestamp: Thu 2013-02-07 11:45:58 +0100
    message:
      Bug#16295152 NEW SYSTEM VARIABLE GTID_NEXT_LIST APPEARS WITH HAVE_NDB_BINLOG
       
        - remove test for gtid_next_list variable which only existed in MySQL
        Cluster
    ------------------------------------------------------------
    revno: 4729.1.1
    committer: magnus.blaudd@oracle.com
    branch nick: 5.6-bug16295152-gtid_next_list
    timestamp: Thu 2013-02-07 10:50:58 +0100
    message:
      Bug#16295152 NEW SYSTEM VARIABLE GTID_NEXT_LIST APPEARS WITH HAVE_NDB_BINLOG
       
       - replace usages of HAVE_NDB_BINLOG in GTID code with HAVE_GTID_NEXT_LIST wo avoid
         that gtid_next_list and related code pops up in MySQL Cluster
------------------------------------------------------------
revno: 4730
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 11:28:18 +0200
message:
  Bug#16287411 MYSQLD CRASH WHEN INNODB_API_ENABLE_MDL IS OFF
  
  commit_try_rebuild(): Instead of letting the assertion fail, return
  ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
  to the ALTER TABLE statement if another thread is accessing the table
  (bypassing the MySQL meta-data locking).
  
  Approved and tested by Jimmy Yang
------------------------------------------------------------
revno: 4729
committer: Tanjot Uppal <tanjot.uppal@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 13:57:46 +0530
message:
  ~/message.txt
------------------------------------------------------------
revno: 4728
committer: Tanjot Uppal <tanjot.uppal@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 13:36:59 +0530
message:
  ~/message.txt
------------------------------------------------------------
revno: 4727
committer: Tanjot Uppal <tanjot.uppal@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 10:48:09 +0530
message:
  ~/message.txt
------------------------------------------------------------
revno: 4726
committer: Libing Song <libing.song@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-02-07 10:10:34 +0800
message:
  Bug#14801955 TABLE_ID IS DEFINED DIFFERENTLY IN SQL/TABLE.H VS
               SQL/LOG_EVENT.H
  
  Postfix, the test case uses DEBUG, it doesn't work in no debug builds.
  So have_debug.inc is added to skip the test in no debug builds.
------------------------------------------------------------
revno: 4725 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 22:53:58 +0200
message:
  Merge mysql-5.6 to working copy.
    ------------------------------------------------------------
    revno: 4721.1.1 [merge]
    committer: kevin.lewis@oracle.com
    branch nick: mysql-5.6
    timestamp: Wed 2013-02-06 14:14:11 -0600
    message:
      Merge Bug#16263506 from mysql-5.5
        ------------------------------------------------------------
        revno: 2875.417.177
        committer: kevin.lewis@oracle.com
        branch nick: mysql-5.5
        timestamp: Wed 2013-02-06 13:49:56 -0600
        message:
          Bug#16263506 - INNODB; USE ABORT() ON ALL PLATFORMS INSTEAD OF
                         DEREFERENCING UT_DBG_NULL_PTR
          The abort() call is standard C but InnoDB only uses it in GCC
          environments.  UT_DBG_USE_ABORT is not defined the code crashed
          by dereferencing a null pointer instead of calling abort().
          Other code throughout MySQL including ndb, sql, mysys and other
          places call abort() directly.
          
          This bug also affects innodb.innodb_bug14147491.test which fails
          randomly on windows because of this issue.
          
          Approved by marko in http://rb.no.oracle.com/rb/r/1936/
------------------------------------------------------------
revno: 4724
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 22:31:39 +0200
message:
  Bug#14606334 INNODB UNABLE TO MERGE IBUF INTO PAGE
  Bug#14774779 CRASH RECOVERY FAILED, UNABLE TO COMPRESS A PAGE
  
  Whenever we successfully reorganize or compress a compressed secondary
  index page, ensure that the IBUF_BITMAP_FREE bits will be updated
  accordingly. Also, slightly change the definition of IBUF_BITMAP_FREE
  in compressed pages. Instead of considering the free space on the
  uncompressed page *after* reorganize, use the *before* value, so that
  a buffered insert can be merged without reorganizing or even recompressing
  the page.
  
  btr_page_reorganize_low(), btr_page_reorganize(),
  btr_cur_update_alloc_zip_func(), btr_cur_insert_if_possible(),
  page_cur_tuple_insert(), page_cur_rec_insert(),
  page_cur_insert_rec_zip(), page_copy_rec_list_end_to_created_page(),
  page_copy_rec_list_end_no_locks(), page_copy_rec_list_end(),
  page_copy_rec_list_start(), page_move_rec_list_end(),
  page_move_rec_list_start(): Note that the caller should keep
  IBUF_BITMAP_FREE up to date.
  
  btr_page_split_and_insert(): On failure, reset the IBUF_BITMAP_FREE
  bits on both pages.
  
  btr_cur_optimistic_delete_func(): Do not update the IBUF_BITMAP_FREE
  on compressed pages any more, because according to the updated
  definition, it will not increase by purging records without
  reorganizing the page.
  
  btr_cur_optimistic_insert(), btr_cur_update_in_place(),
  btr_cur_optimistic_update(), btr_cur_pessimistic_update(): After a
  failed attempt to modify a compressed page, reset the IBUF_BITMAP_FREE
  bits, because we may already have reorganized the page.
  
  btr_cur_update_in_place(), btr_cur_optimistic_update():
  Implement the flag BTR_KEEP_IBUF_BITMAP for suppressing the
  IBUF_BITMAP_FREE updates, so that btr_cur_pessimistic_update()
  can invoke btr_cur_compress_if_useful() without violating the
  latching order (further pages cannot be latched after latching
  a change buffer bitmap page).
  
  ibuf_index_page_calc_free_zip(): Consider the maximum insert size
  on the uncompressed page without reorganizing the page, so that
  ibuf_insert_to_index_page_low() will succeed without reorganizing
  or recompressing the page.
  
  Fix a recovery problem in innodb_log_compressed_pages=OFF and
  reintroduce the parameter innodb_log_compressed_pages=OFF (ON by default).
  
  Also, whenever a page becomes empty, create the page from the
  scratch. This should hopefully generate less redo log, and it will
  reduce the cases where we are compressing garbage. This is also
  necessary in order to avoid an infinite page split with the rest of
  this patch.
  
  page_compression_level: Renamed to page_zip_level.
  
  page_log_compressed_pages: Renamed to page_zip_log_pages.
  
  innodb_compression_level_update(): Remove. Declare page_zip_level
  directly with a compatible data type.
  
  page_is_empty(): A new predicate, similar to page_is_leaf(), for
  checking PAGE_N_RECS == 0 without adjusting the endianness.
  
  page_has_garbage(): New predicate for checking if PAGE_GARBAGE is nonzero.
  
  page_create_empty(): New function, to replace a B-tree page with an
  empty page.
  
  page_create_zip(): Add a parameter for PAGE_MAX_TRX_ID, so that we can
  recreate a page without zeroing out the field. This field only needs
  to be nonzero on nonempty secondary index leaf pages.
  
  page_cur_insert_rec_zip_reorg(): Remove (merge to the only caller).
  
  page_cur_insert_rec_zip(): Take 'cursor' as a parameter. When not in
  crash recovery (applying redo log), modify the behaviour if there is
  not enough room in the page modification log (that is, page_zip_available()
  fails).
  If the page is logically empty, invoke page_create_zip() to
  physically empty the page.
  Otherwise, if the page contains no garbage and no modification log, give up.
  Otherwise, if innodb_log_compressed_pages=OFF, first do
  btr_page_reorganize_low() and only then attempt an insert followed by
  compressing the whole page. If innodb_log_compressed_pages=ON, insert
  into the uncompressed page only, and then invoke
  page_zip_reorganize(). In this way, whenever we have to recompress,
  we will always end up with a reorganized page with 1 or 0 record in
  the page modification log.
  
  page_cur_delete_rec(), page_delete_rec_list_end(),
  page_delete_rec_list_start(): If the page would become logically
  empty, invoke page_create_empty() to physically empty it.
  
  btr_page_reorganize_low(): Replace the 'block' parameter with
  'page_cur', and position the cursor on the same record, so that the
  caller will avoid the repositioning. Do not write a redo log record
  unless the operation succeeds.
  
  btr_cur_insert_if_possible(): Pass the cursor to
  btr_page_reorganize(), avoiding the costly page_cur_search() call.
  
  btr_cur_optimistic_insert(): After a failed page_cur_tuple_insert(),
  do not attempt page reorganize on a compressed page. The
  page_cur_tuple_insert() will already have attempted it, in vain.
  On uncompressed pages, pass the cursor to btr_page_reorganize() to
  avoid the page_cur_search() call.
  
  btr_cur_update_alloc_zip_func(): Renmed from
  btr_cur_update_alloc_zip(). Make offsets a debug-only
  parameter. Replace 'block' with 'cursor'. If there is not enough
  place, reorganize the page (to get rid of garbage in the PAGE_FREE
  list) rather than just recompress it. Give up if there is neither
  garbage in the PAGE_FREE list nor any modification log.
  
  btr_cur_update_in_place(): Make 'offsets' non-const, because
  btr_cur_update_alloc_zip() can now change the rec_offs_validate()
  information when it is reorganizing the page.
  
  NOTE: If we were free to change the redo log format, we could do the
  following when there is not enough place in the modification log to
  log an insert or update:
  
  * Reorganize the uncompressed page only.
  * Make the modification on the uncompressed page only.
    (These would need new redo log entry types.)
  * Compress the entire page. Redo logged as MLOG_ZIP_PAGE_COMPRESS_NO_DATA.
  
  If the compress operation fails, none of the redo log must be written,
  and we will have to restore the uncompressed page from the compressed
  page and refuse the operation.
  
  rb#1761 approved by Inaam Rana
------------------------------------------------------------
revno: 4723
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 22:19:29 +0200
message:
  Code refactoring for Bug#14606334 fix: Introduce page_create_empty().
  
  page_create_zip(): Add a parameter for initializing PAGE_MAX_TRX_ID to
  a nonzero value.
  
  page_create_empty(): A new function, for replacing a B-tree page with
  an empty page.
  
  page_cur_delete_rec(), page_delete_rec_list_end(),
  page_delete_rec_list_start(): Invoke page_create_empty() if the page
  would become logically empty (containing only garbage in the PAGE_FREE
  list).
  
  rb#1865 (approved as part of rb#1761 by Inaam Rana)
------------------------------------------------------------
revno: 4722
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 22:17:18 +0200
message:
  Code refactoring for Bug#14606334 fix: Introduce page_is_empty().
  
  page_is_empty(): A new predicate, similar to page_is_leaf(). Check if
  PAGE_N_RECS is 0, ignoring the byte order. The field is at a
  uint16-aligned address, and *(uint16_t*) (char[2]) {0x00, 0x00} is 0,
  no matter what the byte order is.
  
  page_is_leaf(): Change the return type from ibool to bool.
  
  rb#1864 (approved as part of rb#1761 by Inaam Rana)
------------------------------------------------------------
revno: 4721
committer: Tanjot Uppal <tanjot.uppal@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 15:34:50 +0530
message:
  ~/message.txt
------------------------------------------------------------
revno: 4720
committer: Vasil Dimov <vasil.dimov@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 11:48:16 +0200
message:
  Whitespace fixup
------------------------------------------------------------
revno: 4719
committer: Vasil Dimov <vasil.dimov@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 11:38:34 +0200
message:
  Fix Bug#16075806 INNODB CLAIMS: CPU DOES NOT SUPPORT CRC32 INSTRUCTIONS
  
  1. Report whether crc32 is available or not *after* checking for its
     availability.
  2. Reword the message to say whether InnoDB is using or not using crc32
     instead of whether CPU supports or does not support crc32. On Windows
     InnoDB will not use crc32 even if the CPU supports it.
  
  This patch changes the startup message as follows:
  
  * On SSE42 enabled CPU (ie CPU that has crc32 instructions):
  before: "InnoDB: CPU does not support crc32 instructions"
  after:  "InnoDB: Using CPU crc32 instructions"
  
  * On SSE42 disabled CPU (ie CPU that does not have crc32 instructions):
  before: "InnoDB: CPU does not support crc32 instructions"
  after:  "InnoDB: Not using CPU crc32 instructions"
  
  Submitted by: Sunny (via email)
------------------------------------------------------------
revno: 4718 [merge]
committer: Ravinder Thakur <ravinder.thakur@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 13:59:50 +0530
message:
  Upmerge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.417.176
    committer: Ravinder Thakur <ravinder.thakur@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-02-06 13:52:32 +0530
    message:
      Bug#14711808 MSI INSTALLATION / UPGRADE CAN CORRUPT EXISTING INSTALLATION
      
      Currently MySQL MSI installer on Windows installs MySQL in
      "per user" mode. It means that if a Windows machine has
      multiple users, they each can install MySQL independently.
      However the default path of MySQL is "C:\Program Files (x86)\MySQL\"
      and when two users install MySQL on same machine, the installation
      by second user just overwrites the MySQL files. This default shared
      location leads to the issue where if the second user uninstalls MySQL,
      the installation files are removed for the first user as well.
      
      In this fix, we are now making the default installation "per machine".
      It means that when MySQL is installed with defaults options, all
      users can see the shortcuts for MySQL in start menu(since installations
      is for all users). Also when any user relaunches the installer, it will
      consider that action uninstallation rather than installation for that user.
      
      There are command line options in installer that can be used to undo the
      "per machine" installation but will not consider that scenario.MySQL
      is a server product and it does not make a lot of sense to install it
      differently for each user.
------------------------------------------------------------
revno: 4717 [merge]
committer: sayantan.dutta@oracle.com
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 13:06:21 +0530
message:
  13625278 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.417.175 [merge]
    committer: sayantan.dutta@oracle.com
    branch nick: mysql-5.5
    timestamp: Wed 2013-02-06 13:04:41 +0530
    message:
      13625278 5.1 => 5.5
        ------------------------------------------------------------
        revno: 2661.862.97
        committer: sayantan.dutta@oracle.com
        branch nick: mysql-5.1
        timestamp: Wed 2013-02-06 13:02:14 +0530
        message:
          BUG #13625278 - PB2 SHOULD PROVIDE MORE USEFUL INFORMATION FOR TIMEOUTS
------------------------------------------------------------
revno: 4716
committer: Tarique Saleem <tarique.saleem@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-02-06 11:44:17 +0530
message:
  Updated the test again to comment valgrind as it times out after 9000 sec making Pb2 slow. Bug logged for the same is Bug 15922655
------------------------------------------------------------
revno: 4715 [merge]
committer: Hery Ramilison <hery.ramilison@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-05 22:49:04 +0100
message:
  Upmerge of the 5.1.68 build
    ------------------------------------------------------------
    revno: 2875.417.174 [merge]
    committer: Hery Ramilison <hery.ramilison@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-05 21:29:49 +0100
    message:
      Upmerge of the 5.1.68 build
        ------------------------------------------------------------
        revno: 2661.862.96 [merge]
        author: hery.ramilison@oracle.com
        committer: Hery Ramilison <hery.ramilison@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-02-05 20:47:45 +0100
        message:
          Merge from mysql-5.1.68-release
            ------------------------------------------------------------
            revno: 2661.873.1
            tags: mysql-5.1.68
            committer: Hery Ramilison <hery.ramilison@oracle.com>
            branch nick: mysql-5.1.68-release
            timestamp: Tue 2013-01-08 13:29:11 +0100
            message:
              Applying patch for Bug#67177 Bug#15967374 from Kent
    ------------------------------------------------------------
    revno: 2875.417.173 [merge]
    author: sunanda.menon@oracle.com
    committer: Sunanda Menon<sunanda.menon@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-02-05 10:50:02 +0100
    message:
      Merge from mysql-5.5.30-release
        ------------------------------------------------------------
        revno: 2875.432.3
        tags: mysql-5.5.30
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.30-release
        timestamp: Wed 2013-01-16 08:09:26 +0100
        message:
          Removed Conflicts: mysql-libs mysql-libs-advanced from spec file
        ------------------------------------------------------------
        revno: 2875.432.2
        committer: Bjorn Munch <bjorn.munch@oracle.com>
        branch nick: rel-5530
        timestamp: Tue 2013-01-15 09:56:36 +0100
        message:
          A bit more intelligent processing of .in files in mysql-test/collections
        ------------------------------------------------------------
        revno: 2875.432.1
        committer: Olav Sandstaa <olav.sandstaa@oracle.com>
        branch nick: 5.5.30-release
        timestamp: Tue 2013-01-15 08:52:38 +0100
        message:
          Fix for Bug#14636211 WRONG RESULT (EXTRA ROW) ON A FROM SUBQUERY
                               WITH A VARIABLE AND ORDER BY
                  Bug#16035412 MYSQL SERVER 5.5.29 WRONG SORTING USING COMPLEX INDEX
                      
          This is a fix for a regression introduced by Bug#12667154:
          Bug#12667154 attempted to fix a performance problem with subqueries
          that did filesort. For doing filesort, the optimizer creates a quick
          select object to use when building the sort index. This quick select
          object was deleted after the first call to create_sort_index(). Thus,
          for queries where the subquery was executed multiple times, the quick
          object was only used for the first execution. For all later executions
          of the subquery, filesort used a complete table scan for building the
          sort index. The fix for Bug#12667154 tried to fix this by not deleting
          the quick object after the first execution of create_sort_index() so
          that it would be re-used for building the sort index by the following
          executions of the subquery.
          
          This regression introduced in Bug#12667154 is that due to not deleting
          the quick select object after building the sort index, the quick
          object could in some cases be used also during the second phase of the
          execution of the subquery instead of using the created sort
          index. This caused wrong results to be returned.
          
          The fix for this issue is to delete the reference to the select object
          after it has been used in create_sort_index(). In this way the select
          and quick objects will not be available when doing the second phase
          of the execution of the select operation. To ensure that the select
          object can be re-used for the following executions of the subquery
          we make a copy of the select pointer. This is used for restoring the
          select object after the select operation is completed.
------------------------------------------------------------
revno: 4714
committer: Gleb Shchepa <gleb.shchepa@oracle.com>
branch nick: 5.6-16078557
timestamp: Tue 2013-02-05 21:44:09 +0400
message:
  Bug #16078557: EXPLAIN JSON OF MALFORMED SQL
  
  The Server executed EXPLAIN FORMAT=JSON of some malformed queries improperly.
  
  Fix:
  Both JOIN::explain() and st_select_lex_unit::explain() functions
  have been modified to return error statuses instead of void, as
  well as the calling code has been changed to take into account
  that error states and to abort its execution on error before
  unneeded calls to Explain*::end_context().
  That protects underlying EXPLAIN implementation from doing output
  of half-initialized intermediate structures.
------------------------------------------------------------
revno: 4713
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-02-05 16:23:03 +0200
message:
  Add more tests for ADD/DROP/rename COLUMN.
------------------------------------------------------------
revno: 4712
committer: Bjorn Munch <bjorn.munch@oracle.com>
branch nick: merge-56
timestamp: Tue 2013-02-05 13:32:31 +0100
message:
  Followup to undo build breaking code from 5.6.10-release
------------------------------------------------------------
revno: 4711 [merge]
committer: Bjorn Munch <bjorn.munch@oracle.com>
branch nick: merge-56
timestamp: Tue 2013-02-05 12:23:16 +0100
message:
  Merge of 5.6.10 release to 5.6
    ------------------------------------------------------------
    revno: 4591.22.14
    tags: mysql-5.6.10
    committer: Daniel Fischer <daniel.fischer@oracle.com>
    branch nick: mysql-5.6.10-release
    timestamp: Fri 2013-02-01 14:32:16 +0100
    message:
      apply patch for bug#14771252