Home | Back
------------------------------------------------------------
revno: 5412
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.14-release
timestamp: Tue 2013-09-10 09:25:10 +0200
message:
  Reverted the changes to spec file, updated the logic to get the correct count of PID files
------------------------------------------------------------
revno: 5411
committer: Venkata Sidagam <venkata.sidagam@oracle.com>
branch nick: mysql-5.6.14-release
timestamp: Mon 2013-09-09 20:26:14 +0530
message:
  Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
        
  Reverting the patch. Because this change is not to me made for GA versions.
------------------------------------------------------------
revno: 5410
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.14-release
timestamp: Fri 2013-08-30 17:08:16 +0200
message:
  Fix to ignore mysqld_safe.pid, updated version
------------------------------------------------------------
revno: 5409
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.14-release
timestamp: Thu 2013-08-29 15:13:52 +0200
message:
  Bumped up version, Fix for Bug#17377159, ignore mysqld_safe.pid file created by mysqld_safe script
------------------------------------------------------------
revno: 5408
committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
branch nick: mysql-5.6.14-release
timestamp: Wed 2013-08-28 23:43:23 +0530
message:
  Bug#17309863 AUTO RECONNECT DOES NOT WORK WITH 5.6 LIBMYSQLCLIENT
  Change to restore previous behaviour completely.
------------------------------------------------------------
revno: 5407
committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
branch nick: mysql-5.6.14-release
timestamp: Wed 2013-08-28 23:12:19 +0530
message:
  Bug#17309863 AUTO RECONNECT DOES NOT WORK WITH 5.6 LIBMYSQLCLIENT
  Original Patch is being reverted.
------------------------------------------------------------
revno: 5406 [merge]
tags: clone-5.6.14-build
committer: Hery Ramilison <hery.ramilison@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-27 00:21:01 +0200
message:
  Empty version change upmerge
    ------------------------------------------------------------
    revno: 2875.437.207 [merge]
    committer: Hery Ramilison <hery.ramilison@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-08-27 00:15:43 +0200
    message:
      Empty version change upmerge
        ------------------------------------------------------------
        revno: 2661.876.64
        author: hery.ramilison@oracle.com
        committer: Hery Ramilison <hery.ramilison@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-08-27 00:02:22 +0200
        message:
          Raise version number after cloning 5.1.72
------------------------------------------------------------
revno: 5405 [merge]
committer: Dmitry Lenev <Dmitry.Lenev@oracle.com>
branch nick: mysql-5.6-mrg
timestamp: Mon 2013-08-26 15:25:54 +0400
message:
  Merged fix for bug #17356954 "CANNOT USE SAVEPOINTS AFTER ER_LOCK_DEADLOCK
  OR ER_LOCK_WAIT_TIMEOUT" into mysql-5.6 tree.
    ------------------------------------------------------------
    revno: 2875.437.206
    committer: Dmitry Lenev <Dmitry.Lenev@oracle.com>
    branch nick: mysql-5.5-17356954
    timestamp: Mon 2013-08-26 14:43:12 +0400
    message:
      Fix for bug #17356954 "CANNOT USE SAVEPOINTS AFTER ER_LOCK_DEADLOCK OR
      ER_LOCK_WAIT_TIMEOUT".
      
      The problem was that after changes caused by fix bug 14188793 "DEADLOCK
      CAUSED BY ALTER TABLE DOEN'T CLEAR STATUS OF ROLLBACKED TRANSACTION"/
      bug 17054007 "TRANSACTION IS NOT FULLY ROLLED BACK IN CASE OF INNODB
      DEADLOCK implicit rollback of transaction which occurred on ER_LOCK_DEADLOCK
      (and ER_LOCK_WAIT_TIMEOUT if innodb_rollback_on_timeout option was set)
      didn't start new transaction in @@autocommit=1 mode.
      
      Such behavior although consistent with behavior of explicit ROLLBACK has
      broken expectations of users and backward compatibility assumptions.
      
      This patch fixes problem by reverting to starting new transaction
      in 5.5/5.6.
      
      The plan is to keep new behavior in trunk so the code change from this
      patch is to be null-merged there.
------------------------------------------------------------
revno: 5404
committer: Neeraj Bisht <neeraj.x.bisht@oracle.com>
branch nick: 5.6
timestamp: Fri 2013-08-23 19:26:29 +0530
message:
  Bug#17309863 AUTO RECONNECT DOES NOT WORK WITH 5.6 LIBMYSQLCLIENT
  Problem:
  A client program fails to reconnect to a mysql-5.6 server
  after a connection is killed by a KILL CONNECTION_ID()
  command. Any query executed after that returns
  "query failed, Lost connection to MySQL server during query".
  This is a regression introduced by a patch for Bug#11762221
  (54790: USE OF NON-BLOCKING MODE FOR SOCKETS LIMITS PERFORMANCE)
  
  Solution:
  The patch is restoring the behavior of the previous versions.
  In net_serv.cc::net_clear(), setting net->error=2 flag if
  connection was terminated, allows the client to reconnect.
  We check if the peer is still connected (EOF not reached).
  Otherwise we set the error flag so that the connection might be
  re-established before we try to send a query to the server.
------------------------------------------------------------
revno: 5403 [merge]
committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
branch nick: mysql_5_6
timestamp: Fri 2013-08-23 18:58:13 +0530
message:
  Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                 "SHOW PROCESSLIST"
  
  Null merge from 5.5 to 5.6               
    ------------------------------------------------------------
    revno: 2875.437.205
    committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
    branch nick: mysql_5_5
    timestamp: Fri 2013-08-23 18:56:31 +0530
    message:
      Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                     "SHOW PROCESSLIST"
      
      Follow up path, addressing pb2 test failure.
------------------------------------------------------------
revno: 5402 [merge]
committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
branch nick: mysql_5_6
timestamp: Fri 2013-08-23 18:31:56 +0530
message:
  Correcting file ids of newly added files in bug#11765252, Merging from 5.5 to 5.6
    ------------------------------------------------------------
    revno: 2875.437.204
    committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
    branch nick: mysql_5_5
    timestamp: Fri 2013-08-23 18:19:54 +0530
    message:
      Correcting file ids of newly added files in bug#11765252
------------------------------------------------------------
revno: 5401
committer: Igor Solodovnikov <igor.solodovnikov@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-23 15:41:06 +0300
message:
  Bug #17337684 MEMORY LEAK IN CLI_MYSQL_REAL_CONNECT() FUNCTION
  
  Memory leak in cli_mysql_real_connect() was caused by
  'goto error' statements after failing call to vio_new() or
  vio_reset(). Those gotos skipped freeaddrinfo() for res_lst
  and client_bind_ai_lst.
  Fixed by adding explicit calls to freeaddrinfo() before
  both problematic 'goto error' statements.
------------------------------------------------------------
revno: 5400
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-23 18:03:27 +0530
message:
  BUG#17316314 - SRV_BUF_SIZE NOT DECLARED
  
  Temporary fix. Disabling FALLOC_FL_PUNCH_HOLE for now
------------------------------------------------------------
revno: 5399 [merge]
committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-23 17:18:59 +0530
message:
  WL#7076: Merge from mysql-5.6 to mysql-trunk
    ------------------------------------------------------------
    revno: 2875.437.203
    committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
    branch nick: mysql-5.5-wl7076
    timestamp: Fri 2013-08-23 17:13:44 +0530
    message:
      WL#7076: Fixing test failures in pb2.
------------------------------------------------------------
revno: 5398 [merge]
committer: Neeraj Bisht <neeraj.x.bisht@oracle.com>
branch nick: 5.6
timestamp: Fri 2013-08-23 17:00:04 +0530
message:
  Bug#17029399 - CRASH IN ITEM_REF::FIX_FIELDS WITH TRIGGER ERRORS
   (null-merge)
    ------------------------------------------------------------
    revno: 2875.437.202 [merge]
    committer: Neeraj Bisht <neeraj.x.bisht@oracle.com>
    branch nick: 5.5
    timestamp: Fri 2013-08-23 16:56:17 +0530
    message:
      Bug#17029399 - CRASH IN ITEM_REF::FIX_FIELDS WITH TRIGGER ERRORS
      
      Problem:-
      In a Procedure, when we are comparing value of select query
      with IN clause and they both have different collation, cause
      error on first time execution and assert second time.
      procedure will have query like
      set @x = ((select a from t1) in (select d from t2));<---proc1
                    sel1                   sel2
      
      Analysis:-
      When we execute this proc1(first time)
      While resolving the fields of user variable, we will call
      Item_in_subselect::fix_fields while will resolve sel2. There
      in Item_in_subselect::select_transformer, we evaluate the
      left expression(sel1) and store it in Item_cache_* object
      (to avoid re-evaluating it many times during subquery execution)
      by making Item_in_optimizer class.
      While evaluating left expression we will prepare sel1.
      After that, we will put a new condition in sel2  
      in Item_in_subselect::select_transformer() which will compare
      t2.d and sel1(which is cached in Item_in_optimizer).
      
      Later while checking the collation in agg_item_collations()
      we get error and we cleanup the item. While cleaning up we cleaned
      the cached value in Item_in_optimizer object.
      
      When we execute the procedure second time, we have condition for
      sel2 and while setup_cond(), we can't able to find reference item
      as it is cleanup while item cleanup.So it assert.
      
      
      Solution:-
      We should not cleanup the cached value for Item_in_optimizer object,
      if we have put the condition to subselect.
        ------------------------------------------------------------
        revno: 2661.876.63
        tags: clone-5.1.72-build
        committer: Neeraj Bisht <neeraj.x.bisht@oracle.com>
        branch nick: 5.1
        timestamp: Fri 2013-08-23 16:54:25 +0530
        message:
          Bug#17029399 - CRASH IN ITEM_REF::FIX_FIELDS WITH TRIGGER ERRORS
          
          Problem:-
          In a Procedure, when we are comparing value of select query
          with IN clause and they both have different collation, cause
          error on first time execution and assert second time.
          procedure will have query like
          set @x = ((select a from t1) in (select d from t2));<---proc1
                        sel1                   sel2
          
          Analysis:-
          When we execute this proc1(first time)
          While resolving the fields of user variable, we will call
          Item_in_subselect::fix_fields while will resolve sel2. There
          in Item_in_subselect::select_transformer, we evaluate the
          left expression(sel1) and store it in Item_cache_* object
          (to avoid re-evaluating it many times during subquery execution)
          by making Item_in_optimizer class.
          While evaluating left expression we will prepare sel1.
          After that, we will put a new condition in sel2  
          in Item_in_subselect::select_transformer() which will compare
          t2.d and sel1(which is cached in Item_in_optimizer).
          
          Later while checking the collation in agg_item_collations()
          we get error and we cleanup the item. While cleaning up we cleaned
          the cached value in Item_in_optimizer object.
          
          When we execute the procedure second time, we have condition for
          sel2 and while setup_cond(), we can't able to find reference item
          as it is cleanup while item cleanup.So it assert.
          
          
          Solution:-
          We should not cleanup the cached value for Item_in_optimizer object,
          if we have put the condition to subselect.
------------------------------------------------------------
revno: 5397
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug16856735_mysql-5.6
timestamp: Fri 2013-08-23 14:39:58 +0530
message:
  Bug#16856735: SLAVE DEADLOCK CAUSED BY STOP SLAVE,
  SHOW SLAVE STATUS AND GLOBAL READ LOCK.
  
  Fixing post push test issue.
------------------------------------------------------------
revno: 5396 [merge]
committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
branch nick: mysql_5_6
timestamp: Fri 2013-08-23 14:16:32 +0530
message:
  Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                 "SHOW PROCESSLIST"
  
  Follow up path, addressing test failure on embedded version.
  
  Merging from 5.5 to 5.6
    ------------------------------------------------------------
    revno: 2875.437.201
    committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
    branch nick: mysql_5_5
    timestamp: Fri 2013-08-23 14:13:30 +0530
    message:
      Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                     "SHOW PROCESSLIST"
      
      Follow up path, addressing test failure on embedded version.
------------------------------------------------------------
revno: 5395
committer: Allen lai <zheng.lai@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-23 14:12:08 +0800
message:
  Bug#17315083 - SUPPORT INTEGER KEY/VALUE FOR MEMCACHED TABLE
  Bug#17203937 THE MEMCACHED PLUGIN CAN BE INITIALIZED WITH AN
  INTEGER PK.
  
  Approved by Jimmy on rb://3082.
  
  This patch is for fixing 2 bugs, bug#17203937 and bug#17315083.
  
  In the bug17203937, the reason that the memcached plugin still can be
  initialized is, there's a correct config row in containers. This config
  row is inserted by the innodb_memcache_config.sql script.
  We should allow the plugin can be installed, even if there're some of
  rows in containers are not correct.
  For the not correct rows in containers, we need print some information
  about what's wrong with it.
  
  For bug17315083, we add support for integer columns. Not only the key
  column can be int, the value column can be int also. The code of this
  part is based on Jimmy's patch on rb://3083.
------------------------------------------------------------
revno: 5394 [merge]
committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-23 10:59:10 +0530
message:
  WL#7076: Merge from mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.200
    committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
    branch nick: mysql-5.5-wl7076
    timestamp: Fri 2013-08-23 10:56:05 +0530
    message:
      WL#7076: Fixing pb2 failures
------------------------------------------------------------
revno: 5393 [merge]
committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-23 09:27:09 +0530
message:
  WL#7076: Merge from mysql-5.6 to mysql-trunk
    ------------------------------------------------------------
    revno: 2875.437.199 [merge]
    committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
    branch nick: mysql-5.5-wl7076
    timestamp: Fri 2013-08-23 09:07:09 +0530
    message:
      WL#7076: Backporting wl6715 to support both formats
               in 5.5, 5.6, 5.7.
        ------------------------------------------------------------
        revno: 2875.454.1
        committer: Ashish Agarwal<ashish.y.agarwal@oracle.com>
        branch nick: mysql_backport
        timestamp: Tue 2013-07-02 11:58:39 +0530
        message:
          WL#7076: Backporting wl6715 to support both formats in 5.5, 5.6, 5.7
          
                   Backporting wl6715 to mysql-5.5
------------------------------------------------------------
revno: 5392 [merge]
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-22 16:54:51 +0200
message:
  Corrected Date in the changelog
    ------------------------------------------------------------
    revno: 2875.437.198
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-08-22 16:51:30 +0200
    message:
      Corrected Date in the changelog
------------------------------------------------------------
revno: 5391
committer: Norvald H. Ryeng <norvald.ryeng@oracle.com>
branch nick: mysql-5.6-16509874
timestamp: Thu 2013-08-22 15:29:57 +0200
message:
  Bug#16509874 ASSERTION FAILED: SL->JOIN == 0, FILE SQL_PREPARE.CC,
  LINE 2484
  
  This is a regression caused by the fix for bug #16318585.
  
  Problem: The server crashes when a clause containing an Item_ref
  pointing to a subquery is removed.
  
  When remove_redundant_subquery_clauses() removes a subtree of the item
  tree for a query, a walk with the Item::clean_up_after_removal()
  processor is done to do necessary cleanup in some items of the removed
  subtree.
  
  As part of this cleanup, Item_subselect::clean_up_after_removal()
  unlinks the st_select_lexes of subqueries from
  LEX::all_selects_list by calling unit->exclude_tree(). If the walk
  encounters an Item_ref pointing to an Item_subselect, it follows the
  ref pointer and calls the processor on that Item_subselect.
  
  If the Item_subselect pointed to by the Item_ref is a part of the
  removed subtree, st_select_lex_unit::exclude_tree() is called twice,
  once when the walk finds the Item_subselect and once when the walk
  traverses the Item_ref to find the Item_subselect. If the
  Item_subselect is not part of the removed subtree, it is still
  unlinked from LEX::all_selects_list, even if it is still part of the
  remaining item tree.
  
  Fix: Set pointers to other st_select_lex_nodes to NULL in
  st_select_lex_unit::exclude_tree() and
  st_select_lex_unit::exclude_level(), and make it safe to run the
  functions on a unit that has already been removed from the tree.
  
  To avoid unlinking outer subqueries, pass the pointer to the
  st_select_lex that contains the clause that is removed to
  Item_subselect::clean_up_after_removal(), and call
  st_select_lex_unit::exclude_tree() only for subqueries that are
  descendants of that st_select_lex.
  
  Nulling out the st_select_lex_node pointers triggers a bug in how
  subselect_single_select_engine::exclude() unlinks st_select_lex_unit
  and st_select_lex objects. If there is a prepared statement with a
  hierarchy of subqueries, and one of the middle subqueries are
  eliminated, the Name_resolution_context for the corresponding
  st_select_lex is still in the chain of contexts for inner items. When
  the query is executed, Item_field::fix_outer_field() dereferences the
  nulled st_select_lex::master pointer.
  
  Fix: Change the context.outer_context of inner subqueries of a
  subquery that is removed by st_select_lex_unit::exclude_level() to
  point to the outer_context of the removed subquery's context, i.e.,
  skipping the context of the removed subquery.
------------------------------------------------------------
revno: 5390 [merge]
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-22 15:02:18 +0200
message:
  Removed bugnumber from the changelog and updated description
    ------------------------------------------------------------
    revno: 2875.437.197
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-08-22 14:58:13 +0200
    message:
      Removed bugnumber from the changelog and updated description
------------------------------------------------------------
revno: 5389
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug14767986_mysql-5.6
timestamp: Thu 2013-08-22 16:43:10 +0530
message:
  BUG#14767986: START SLAVE UNTIL SQL_AFTER_GTIDS NEEDS
  UNTIL_CONDITION_SET+1 GTID TO STOP
  
  Problem:
  =======
  START SLAVE UNTIL SQL_AFTER_GTIDS needs
  until_condition_set+1 GTID to stop. This is a problem since
  we may not have the next GTID event, or the next GTID event
  is delayed.
  
  SQL_BEFORE_GTID case is also flawed since it does not stop
  the slave thread if the GTID being waited for is already
  applied
  
  Fix:
  ===
  We check if the until condition is satisfied before the sql
  thread goes on a wait for the relay log to grow. We also
  make the slave thread to stop in case the GTID being waited
  for in SQL_BEFORE_GTID has already been applied.
  
  The above fix will still fail for SQL_AFTER_GTIDS when MTS
  is enabled. This will be fixed in future. Hence when MTS is
  enabled along with SQL_AFTER_GTIDS following warning will
  ER_MTS_FEATURE_IS_NOT_SUPPORTED be thrown and slave will be
  switched to single threaded mode.
------------------------------------------------------------
revno: 5388
committer: Nuno Carvalho <nuno.carvalho@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-22 10:55:37 +0100
message:
  BUG#16533802: START SLAVE FAILS WITH TABLE REPOSITORY AND AUTOCOMMIT = 0
  
  Fix for BUG 16533802 included changes on clean_info() method from
  info tables management, after BUG 17286858 (CHANGE_MASTER() INVOKES
  HA_INNOBASE::TRUNCATE() IN A DML TRANSACTION) fix those changes are
  not needed anymore, so this patch removes the unneeded changes.
------------------------------------------------------------
revno: 5387
committer: Roy Lyseng <roy.lyseng@oracle.com>
branch nick: mysql-5.6-sb1
timestamp: Wed 2013-08-21 16:21:00 +0200
message:
  Bug#17234723: Shortcut execution path in JOIN::optimize()
  
  This is a partial fix for bug no. 68825/16598320:
  Performance regressions for single-threaded workloads.
  
  This patch shortcuts processing for some special cases, by skipping
  some functions calls. Shortcuts are made based on the following conditions:
  
   - plan_is_const()
   - materialized_table_count == 0
   - partitioned_table_count == 0
   - outer_join == 0
   - select_lex->sj_nests.elements == 0
   - unit->item == 0 (query block is not a subquery)
  
  Some loops are also made into functions, so that branching in case the
  function is skipped is minimized, thus avoiding cache misses.
  
  The gain is up to 5% on a simple synthetic benchmark (see benchmark
  BM-1 in bug 68825 for a description), but notice that the expected gain
  is platform-dependent.
------------------------------------------------------------
revno: 5386
committer: Norvald H. Ryeng <norvald.ryeng@oracle.com>
branch nick: mysql-5.6-16807641
timestamp: Wed 2013-08-21 15:03:29 +0200
message:
  Bug#16807641 MEMORY LEAK OF JOIN_BUFFER_SIZE IN
  JOIN_CACHE::ALLOC_BUFFER
  
  This is a regression caused by the fix for bug #15875919.
  
  Problem: When removing subquery clauses that are not needed, some
  statements may cause memory leaks.
  
  When remove_redundant_subquery_clauses() removes subqueries, the
  corresponding st_select_lex_unit and st_select_lex objects are
  unlinked from the query. When processing is over,
  free_underlaid_joins() loops through the st_select_lex_unit and
  st_select_lex objects of the tree and calls cleanup(). The removed
  objects are not cleaned up, which means that the corresponding JOIN
  objects aren't cleaned up either.
  
  Fix: Split st_select_lex_unit::cleanup() and st_select_lex::cleanup()
  into two functions each: cleanup_level() for cleaning up only that
  level, and cleanup() for recursive cleanup. Call these when removing
  query blocks in st_select_lex_unit::exclude_tree() and
  exclude_level().
------------------------------------------------------------
revno: 5385
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Wed 2013-08-21 12:39:42 +0200
message:
  Bug#17310314 COMPILE ERROR FOR STRTOLL-T.CC WITH -DMERGE_UNITTESTS=0
  
  Add missing #include of my_sys.h
------------------------------------------------------------
revno: 5384 [merge]
committer: Sneha Modi <sneha.modi@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-21 15:25:14 +0530
message:
  
  Bug#16995954
  
        Merge from 5.5 - > 5.6
    ------------------------------------------------------------
    revno: 2875.437.196
    committer: Sneha Modi <sneha.modi@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-21 15:24:38 +0530
    message:
      Bug#16995954 : PLUGIN_AUTH TESTS FAIL ON SYSTEMS WITH NO HOSTNAME OTHER
      THAN LOCALHOST
      
            This is a test bug and the explanation for the behaviour can be found
      on the bug page.Modifying the select to select user where user!=root for the line where
      failure is encountered on machines with no hostname other than the localhost.
------------------------------------------------------------
revno: 5383 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-21 11:56:43 +0300
message:
  (Null) merge from mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.195 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-21 11:55:22 +0300
    message:
      (Null) merge from mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.876.62 [merge]
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-current
        timestamp: Wed 2013-08-21 11:54:09 +0300
        message:
          Merge working copy to mysql-5.1.
------------------------------------------------------------
revno: 5382 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-21 10:06:32 +0300
message:
  (Null) merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.194 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-21 10:04:48 +0300
    message:
      (Null) merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.882.2 [merge]
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2013-08-21 10:03:31 +0300
        message:
          Merge mysql-5.1 to working copy.
------------------------------------------------------------
revno: 5381 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-21 09:30:54 +0300
message:
  Merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.193 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-21 08:48:04 +0300
    message:
      Merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.882.1
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2013-08-21 08:22:05 +0300
        message:
          Bug#12560151 61132: infinite loop in buf_page_get_gen() when handling
          compressed pages
          
          After loading a compressed-only page in buf_page_get_gen() we allocate a new
          block for decompression. The problem is that the compressed page is neither
          buffer-fixed nor I/O-fixed by the time we call buf_LRU_get_free_block(),
          so it may end up being evicted and returned back as a new block.
          
          buf_page_get_gen(): Temporarily buffer-fix the compressed-only block
          while allocating memory for an uncompressed page frame.
          This should prevent this form of the infinite loop, which is more likely
          with a small innodb_buffer_pool_size.
          
          rb#2511 approved by Jimmy Yang, Sunny Bains
------------------------------------------------------------
revno: 5380 [merge]
committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
branch nick: mysql_5_6
timestamp: Wed 2013-08-21 10:45:54 +0530
message:
  Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                 "SHOW PROCESSLIST"
  
  Merging from 5.5 to 5.6
    ------------------------------------------------------------
    revno: 2875.437.192 [merge]
    committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
    branch nick: mysql_5_5
    timestamp: Wed 2013-08-21 10:44:22 +0530
    message:
      Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                     "SHOW PROCESSLIST"
      
      Merging from 5.1 to 5.5
        ------------------------------------------------------------
        revno: 2661.876.61
        committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
        branch nick: mysql_5_1
        timestamp: Wed 2013-08-21 10:39:40 +0530
        message:
          Bug#11765252 - READ OF FREED MEMORY WHEN "USE DB" AND
                         "SHOW PROCESSLIST"
          
          Analysis:
          ----------
          The problem here is, if one connection changes its
          default db and at the same time another connection executes
          "SHOW PROCESSLIST", when it wants to read db of the another
          connection then there is a chance of accessing the invalid
          memory.
          
          The db name stored in THD is not guarded while changing user
          DB and while reading the user DB in "SHOW PROCESSLIST".
          So, if THD.db is freed by thd "owner" thread and if another
          thread executing "SHOW PROCESSLIST" statement tries to read
          and copy THD.db at the same time then we may endup in the issue
          reported here.
          
          Fix:
          ----------
          Used mutex "LOCK_thd_data" to guard THD.db while freeing it
          and while copying it to processlist.
------------------------------------------------------------
revno: 5379
committer: bin.x.su@oracle.com
branch nick: mysql-5.6
timestamp: Wed 2013-08-21 10:57:21 +0800
message:
  BUG 17305626 - MISSING TABLES IN INNODB DICTIONARY CAUSE ASSERTION AND
  RESTART OF MYSQL
  
  The root cause of the problem is we will assert false in fil_node_open_file
  when the *.ibd data files are missing.
  
  The solution for the bug would be that when fil_node_open_file find *.ibd
  data files are missing, do not assert false but return false, the caller
  should deal with the return message. The caller of fil_node_open_file should
  handle the new return message accordingly, unless it's too complicated or
  no need to handle them. In the later case, assertion would be used.
  
  fil_node_open_file also has several other assertions for the case that .ibd
  data exists but has error data in itself, which should be distinguished from
  .ibd data missing. So they're not handled in this patch.
  
  Approved by Jimmy, rb#3129
------------------------------------------------------------
revno: 5378 [merge]
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-20 12:24:56 +0200
message:
  null merge
    ------------------------------------------------------------
    revno: 2875.437.191
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-08-20 12:21:35 +0200
    message:
      Reverted Release version
------------------------------------------------------------
revno: 5377 [merge]
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-20 12:16:49 +0200
message:
  Upmerge of the Bug17211588 build
    ------------------------------------------------------------
    revno: 2875.437.190 [merge]
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-08-20 12:06:04 +0200
    message:
      Upmerge of the Bug17211588 build
        ------------------------------------------------------------
        revno: 2875.451.5
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.33-br17211588
        timestamp: Fri 2013-08-16 17:48:54 +0200
        message:
          dummy commit
        ------------------------------------------------------------
        revno: 2875.451.4
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.33-release
        timestamp: Fri 2013-08-16 16:41:20 +0200
        message:
          Added fix Provides for Bug#17211588
    ------------------------------------------------------------
    revno: 5288.1.5
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.6.13-br17211588
    timestamp: Fri 2013-08-16 17:48:27 +0200
    message:
      dummy push
    ------------------------------------------------------------
    revno: 5288.1.4
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.6.13-release
    timestamp: Fri 2013-08-16 17:11:13 +0200
    message:
      Removed rpm-fedora and updated spec file
    ------------------------------------------------------------
    revno: 5288.1.3
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.6.13-Fedora
    timestamp: Wed 2013-08-14 18:02:23 +0200
    message:
      Added embedded and embedded-devel sub package
------------------------------------------------------------
revno: 5376
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug16775543_mysql-5.6
timestamp: Tue 2013-08-20 15:08:01 +0530
message:
  Bug#16775543:MASTER SHUTDOWN NEEDS TO WAIT FOR SEMI-SYNC ACK
  OR TIMEOUT BEFORE COMPLETING.
  
  Problem:
  =======
  When MySQl is shutdown and semi sync is enabled, the master
  doesn't wait for semi sync ack or timeout before shutting
  down. When the master shutsdown, it stops semi sync
  reverting to async and whatever connections existed, and
  whatever open transactions exist are allowed to finish.
  
  
  Analysis:
  ========
  During shutdown process all the active threads will be
  informed to go down. In the existing code first client and
  dump threads are informed to go down.  Because of this if
  the dump thread has some pending events from active clients
  which needs to be sent to slave they will not be sent.
  Hence at the time of shutdown master has more events than
  slave.
  
  Fix:
  ===
  Dump thread will be going down at the end.  First clients
  will be informed to go down and then dump threads will be
  stopped.
------------------------------------------------------------
revno: 5375 [merge]
committer: Dmitry Lenev <Dmitry.Lenev@oracle.com>
branch nick: mysql-5.6-17054007-2
timestamp: Tue 2013-08-20 13:15:15 +0400
message:
  Merge of fix for bug#14188793 - "DEADLOCK CAUSED BY ALTER TABLE DOEN'T CLEAR
  STATUS OF ROLLBACKED TRANSACTION" and bug #17054007 - "TRANSACTION
  IS NOT FULLY ROLLED BACK IN CASE OF INNODB DEADLOCK" into mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.189
    committer: Dmitry Lenev <Dmitry.Lenev@oracle.com>
    branch nick: mysql-5.5-17054007-2
    timestamp: Tue 2013-08-20 13:12:34 +0400
    message:
      Fix for bug#14188793 - "DEADLOCK CAUSED BY ALTER TABLE DOEN'T CLEAR
      STATUS OF ROLLBACKED TRANSACTION" and bug #17054007 - "TRANSACTION
      IS NOT FULLY ROLLED BACK IN CASE OF INNODB DEADLOCK".
      
      The problem in the first bug report was that although deadlock involving
      metadata locks was reported using the same error code and message as InnoDB
      deadlock it didn't rollback transaction like the latter. This caused
      confusion to users as in some cases after ER_LOCK_DEADLOCK transaction
      could have been restarted immediately and in some cases rollback was
      required.
      
      The problem in the second bug report was that although InnoDB deadlock
      caused transaction rollback in all storage engines it didn't cause release
      of metadata locks. So concurrent DDL on the tables used in transaction was
      blocked until implicit or explicit COMMIT or ROLLBACK was issued in the
      connection which got InnoDB deadlock.
      
      The former issue has stemmed from the fact that when support for detection
      and reporting metadata locks deadlocks was added we erroneously assumed
      that InnoDB doesn't rollback transaction on deadlock but only last statement
      (while this is what happens on InnoDB lock timeout actually) and so didn't
      implement rollback of transactions on MDL deadlocks.
      
      The latter issue was caused by the fact that rollback of transaction due
      to deadlock is carried out by setting THD::transaction_rollback_request
      flag at the point where deadlock is detected and performing rollback
      inside of trans_rollback_stmt() call when this flag is set. And
      trans_rollback_stmt() is not aware of MDL locks, so no MDL locks are
      released.
      
      This patch solves these two problems in the following way:
      
      - In case when MDL deadlock is detect transaction rollback is requested
        by setting THD::transaction_rollback_request flag.
      
      - Code performing rollback of transaction if THD::transaction_rollback_request
        is moved out from trans_rollback_stmt(). Now we handle rollback request
        on the same level as we call trans_rollback_stmt() and release statement/
        transaction MDL locks.
------------------------------------------------------------
revno: 5374
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-20 15:15:58 +0800
message:
  Fix a valgrind error introduced by bug #17276125's checkin
------------------------------------------------------------
revno: 5373
committer: Anitha Gopi <anitha.gopi@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-20 06:57:17 +0200
message:
  Fixed following problems:
  * Removed --debug-server froma r un in weekly that was meant for non debug server
  * Fixed wrong usage of skip-test list in some command lines
------------------------------------------------------------
revno: 5372
committer: Tatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>
branch nick: 56-16732621b
timestamp: Tue 2013-08-20 04:31:50 +0100
message:
  correct test results for 16732621
------------------------------------------------------------
revno: 5371
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-20 08:47:05 +0800
message:
  BUG#17280122 - INNODB FULLTEXT SEARCH WRONG RESULT WITH OPERATOR '+'
  
  Analysis:
  The root cause is that we don't handle '+' in the right way.
  
  Solution:
  We do the following modifications:
  1. Handle '+' in the way like '-' in fts_ast_visit;
  2. Fix multi_exist error;
  3. Fix query intersection error;
  4. Fix optimization of converting first FTS_EXIST to FTS_NONE error.
  
  rb://3026 approved by Jimmy.Yang
------------------------------------------------------------
revno: 5370 [merge]
committer: Thirunarayanan B<thirunarayanan.balathandayuth@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-08-19 21:54:59 +0530
message:
  Null merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.188
    committer: Thirunarayanan B<thirunarayanan.balathandayuth@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-08-19 21:51:59 +0530
    message:
      Bug #14537695 LOST CONNECTION TO MYSQL SERVER DURING QUERY (UNIQUE KEY WITH 6 COLUMNS)
      
      Problem:
         The ha_innobase table handler contained two search key buffers
      (srch_key_val1, srch_key_val2) of fixed size used to store the search
      key.  The size of these buffers where fixed at
      REC_VERSION_56_MAX_INDEX_COL_LEN + 2.  But this size is not sufficient
      to hold the search key.
      
      Description:
          This issue is already solved in the following patch
      
       revno: 3963
       revision-id: annamalai.gurusami@oracle.com-20120904090356-efstjesph5zi2xr8
       parent: annamalai.gurusami@oracle.com-20120903062725-vmgojt22szliwiy5
       committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
       branch nick: mysql-5.5
       timestamp: Tue 2012-09-04 14:33:56 +0530
       message:
         Bug #14500557 CRASH WHEN USING LONG INNODB INDEXES
      
      rb#3079 approved by Jimmy Yang
------------------------------------------------------------
revno: 5369 [merge]
committer: Thirunarayanan B<thirunarayanan.balathandayuth@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-08-19 21:38:25 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.453.1
    committer: Thirunarayanan B<thirunarayanan.balathandayuth@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-14 16:00:45 +0530
    message:
      Bug #14537695 LOST CONNECTION TO MYSQL SERVER DURING QUERY (UNIQUE KEY WITH 6 COLUMNS)
      
      Problem:
         The ha_innobase table handler contained two search key buffers
      (srch_key_val1, srch_key_val2) of fixed size used to store the search
      key.  The size of these buffers where fixed at
      REC_VERSION_56_MAX_INDEX_COL_LEN + 2.  But this size is not sufficient
      to hold the search key.
      
      Description:
          This issue is already solved in the following patch
      
       revno: 3963
       revision-id: annamalai.gurusami@oracle.com-20120904090356-efstjesph5zi2xr8
       parent: annamalai.gurusami@oracle.com-20120903062725-vmgojt22szliwiy5
       committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
       branch nick: mysql-5.5
       timestamp: Tue 2012-09-04 14:33:56 +0530
       message:
         Bug #14500557 CRASH WHEN USING LONG INNODB INDEXES
      
      rb#3079 approved by Jimmy Yang
------------------------------------------------------------
revno: 5368
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-08-19 15:29:10 +0530
message:
  Bug#16416302-CRASH WITH LOSSY RBR REPLICATION OF
  OLD STYLE DECIMALS
  
  Fixing post-push failure
------------------------------------------------------------
revno: 5367
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-08-19 16:55:15 +0800
message:
  Fix Bug #17276125 - FULLTEXT SEARCH USING WORDS WITH APOSTROPHE (') DOES
  NOT WORK ON INNODB TABLES
  
  rb://3093 approved by Sunny Bains
------------------------------------------------------------
revno: 5366
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-08-19 08:51:20 +0200
message:
  Bug#16862316 QUERY RETURNS DIFFERENT RESULTS DEPENDING
  ON WHETHER INDEX_MERGE SETTING
  
  Problem:
  
  When set optimizer_switch='index-merge=on', the optimizer
  was requesting ha_partition::clone() to clone the partition.
  During cloning we were not initiliazing the
  m_pkey_is_clustered variable which is required by the
  ordered index scan to return correct results.
  
  Fix:
  
  when cloning the partition handler set the
  m_pkey_is_clustered from the original partition handler.  
  
  rb#3077 approved by Mattias Jonsson
  Patch by Aditya A.
------------------------------------------------------------
revno: 5365
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Sun 2013-08-18 16:37:25 +0530
message:
  Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT
          SUCCEED WITH LOG FILES
  
  Additional Fix for testcase failure
------------------------------------------------------------
revno: 5364 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-16 15:57:39 +0300
message:
  Merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.187 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-08-16 15:49:13 +0300
    message:
      Merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.876.60
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-08-16 15:45:41 +0300
        message:
          Bug#17312846 CHECK TABLE ASSERTION FAILURE
          DICT_TABLE_GET_FORMAT(CLUST_INDEX->TABLE) >= 1
          
          The function row_sel_sec_rec_is_for_clust_rec() was incorrectly
          preparing to compare a NULL column prefix in a secondary index with a
          non-NULL column in a clustered index.
          
          This can trigger an assertion failure in 5.1 plugin and later. In the
          built-in InnoDB of MySQL 5.1 and earlier, we would apparently only do
          some extra work, by trimming the clustered index field for the
          comparison.
          
          The code might actually have worked properly apart from this debug
          assertion failure. It is merely doing some extra work in fetching a
          BLOB column, and then comparing it to NULL (which would return the
          same result, no matter what the BLOB contents is).
          
          While the test case involves CHECK TABLE, this could theoretically
          occur during any read that uses a secondary index on a column prefix
          of a column that can be NULL.
          
          rb#3101 approved by Mattias Jonsson
------------------------------------------------------------
revno: 5363
committer: Satya Bodapati <satya.bodapati@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-16 16:34:05 +0530
message:
  Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT
          SUCCEED WITH LOG FILES
  Bug#16691130 - ASSERT WHEN INNODB_LOG_GROUP_HOME_DIR DOES NOT
          EXIST.
  
  When InnoDB creates system tablespace, it should not continue when
  there are inconsistent system tablespaces (ibdata*) or undo tablespaces
  (undo*) or with redo log files(ib_logfile*)
  
  Also fixed Bug#16691130, when the log group directory doesn't exist, it
  now aborts with error message instead of assert.
  
  Approved by Marko, Kevin. rb#2293, rb#2963
------------------------------------------------------------
revno: 5362
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-16 14:54:19 +0530
message:
  BUG#16416302 CRASH WITH LOSSY RBR REPLICATION OF
  OLD STYLE DECIMALS
  
  Fixing post-push test failure.
  
  Test cannot run if info_tables are enabled.
  ibdata file used in this test is from 4.1 version.
  New server wont find these info_tables in the old
  ibdata file. Hence disabling this test for those
  configurations.
------------------------------------------------------------
revno: 5361
committer: Prabeen Pradhan <prabeen.pradhan@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-08-16 11:14:29 +0530
message:
  bug#16917425 : Made changes so that wrongly skipped test passes and proper message is shown for skipped tests
------------------------------------------------------------
revno: 5360 [merge]
committer: Tatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>
branch nick: 56-16732621b
timestamp: Thu 2013-08-15 21:38:15 +0100
message:
  Bug#16732621: GQL DOESN'T MASK PASSWORDS IN PREPARED STATEMENTS
  
  Rewriting ("password obfuscation", WL#5706) now also works
  for prepared statements, i.e. we try not to log any passwords
  while handling prepared statements:
  
  In the general log,
  -- the "Query" line (for SQL PS) will no
     no longer contain the statement to prepare;
     if we prepare from a variable, its name is still
     given, but if we prepare from a string literal,
     that literal is not logged as we don't yet know
     whether it contains a password.
  
     - as always, --log_raw forces "old behaviour",
       i.e., the query is logged prior to parsing,
       and any passwords contained therein are printed
       to the log in plaintext
  
     - as before, PS protocol prepared statements
       only result in a Prepare line and an Execute
       line in the log (at prepare and at execute time,
       respectively); a Query line was not logged before,
       and is not logged now when PS protocol is used.
  
  -- the "Prepare" line will contain the statement,
     with passwords obfuscated
  
  -- the "Execute" line will contain the statement,
     with passwords obfuscated, and values filled in
  
  Query:
  prepare s4 from "set password=password('meow')";
  execute s4;
  
  General Log:
  Query     PREPARE s4 FROM ...
  Prepare   SET PASSWORD FOR `root`@`localhost`=<secret>
  Query     execute s4
  Execute   SET PASSWORD FOR `root`@`localhost`=<secret>
  
  
  In binlog, passwords are replaced with their hashes (rather than
  with a string literal) so replication still works. The
  binlog line for the above SET PASSWORD statement is,
  
  Binlog:
  Query     use `test`; SET PASSWORD FOR 'root'@'localhost'='*82DC221D557298F6CE
    ------------------------------------------------------------
    revno: 5358.1.1
    committer: Tatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>
    branch nick: 56-16732621
    timestamp: Thu 2013-08-15 20:39:43 +0100
    message:
      Bug#16732621: GQL DOESN'T MASK PASSWORDS IN PREPARED STATEMENTS
      
      Rewriting ("password obfuscation", WL#5706) now also works
      for prepared statements, i.e. we try not to log any passwords
      while handling prepared statements:
      
      In the general log,
      -- the "Query" line (for SQL PS) will no
         no longer contain the statement to prepare;
         if we prepare from a variable, its name is still
         given, but if we prepare from a string literal,
         that literal is not logged as we don't yet know
         whether it contains a password.
      
         - as always, --log_raw forces "old behaviour",
           i.e., the query is logged prior to parsing,
           and any passwords contained therein are printed
           to the log in plaintext
      
         - as before, PS protocol prepared statements
           only result in a Prepare line and an Execute
           line in the log (at prepare and at execute time,
           respectively); a Query line was not logged before,
           and is not logged now when PS protocol is used.
      
      -- the "Prepare" line will contain the statement,
         with passwords obfuscated
      
      -- the "Execute" line will contain the statement,
         with passwords obfuscated, and values filled in
      
      Query:
      prepare s4 from "set password=password('meow')";
      execute s4;
      
      General Log:
      Query     PREPARE s4 FROM ...
      Prepare   SET PASSWORD FOR `root`@`localhost`=<secret>
      Query     execute s4
      Execute   SET PASSWORD FOR `root`@`localhost`=<secret>
      
      
      In binlog, passwords are replaced with their hashes (rather than
      with a string literal) so replication still works. The
      binlog line for the above SET PASSWORD statement is,
      
      Binlog:
      Query     use `test`; SET PASSWORD FOR 'root'@'localhost'='*82DC221D557298F6CE
------------------------------------------------------------
revno: 5359
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-15 18:50:15 +0300
message:
  Bug#17316731 ONLINE ALTER TABLE...ADD PRIMARY KEY LOGGING MODIFIES
  THE SOURCE TABLE
  
  When logging the delete-marking of a record during
  online ALTER TABLE...ADD PRIMARY KEY
  InnoDB must write the transaction ID to the log as it was before the
  deletion or delete-marking of the record. When doing this, it
  accidentally also overwrites the DB_TRX_ID field in the original
  table. This could lead to locking bugs.
  
  The buggy function row_log_table_delete() is being called by DELETE,
  UPDATE (of primary key), and ROLLBACK. The bug only affects
  ADD PRIMARY KEY, not other forms of online ALTER TABLE.
  
  This bug has been there from the start of WL#6255 (the
  table-rebuilding variant of online ALTER TABLE).
  
  Approved on IM by Kevin Lewis
------------------------------------------------------------
revno: 5358 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-15 15:41:52 +0300
message:
  Merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.186 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-08-15 15:34:12 +0300
    message:
      Merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.876.59
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2013-08-15 15:23:23 +0300
        message:
          Bug#17302896 DOUBLE PURGE ON ROLLBACK OF UPDATING A DELETE-MARKED RECORD
          
          There was a race condition in the rollback of TRX_UNDO_UPD_DEL_REC.
          
          Once row_undo_mod_clust() has rolled back the changes by the rolling-back
          transaction, it attempts to purge the delete-marked record, if possible, in a
          separate mini-transaction.
          
          However, row_undo_mod_remove_clust_low() fails to check if the DB_TRX_ID of
          the record that it found after repositioning the cursor, is still the same.
          If it is not, it means that the record was purged and another record was
          inserted in its place.
          
          So, the rollback would have performed an incorrect purge, breaking the
          locking rules and causing corruption.
          
          The problem was found by creating a table that contains a unique
          secondary index and a primary key, and two threads running REPLACE
          with only one value for the unique column, so that the uniqueness
          constraint would be violated all the time, leading to statement
          rollback.
          
          This bug exists in all InnoDB versions (I checked MySQL 3.23.53).
          It has become easier to repeat in 5.5 and 5.6 thanks to scalability
          improvements and a dedicated purge thread.
          
          rb#3085 approved by Jimmy Yang
------------------------------------------------------------
revno: 5357
committer: kevin.lewis@oracle.com
branch nick: mysql-5.6
timestamp: Wed 2013-08-14 09:44:09 -0600
message:
  Bug#16863098 - DML ASSERTS !INDEX->TABLE->FLAGS WHILE
                 ALTER TABLE ADD COLUMN IS RUNNING
  
  Change the assert so that it only checks the first bit to assure
  that the table is Redundant Row Format.
  
  Approved by Marko in RB#3037
------------------------------------------------------------
revno: 5356
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-14 14:57:39 +0530
message:
  Bug #17001980 RQG_PERFORMANCE_SCHEMA STOPPED WITH A CRASH IN
  HA_INNOBASE::CLONE.
  
  Problem:
  
  In the function ha_innobase::clone(), it was asserted that a thread
  cannot clone a table handler that is used by another thread. It was
  also asserted that the original table handler and the cloned table
  handler must belong to the same transaction. Both are wrong.
  
  Solution:
  
  It is OK for a thread to clone a table handler that is used by another
  thread. The original table handler and the cloned table handler can
  belong to different transactions.  So both asserts are removed.
  
  rb#3066 approved by Marko
------------------------------------------------------------
revno: 5355
committer: Rohit Kalhans <rohit.kalhans@oracle.com>
branch nick: 17286858-mysql-56
timestamp: Wed 2013-08-14 13:57:36 +0530
message:
  Bug#17286858: CHANGE_MASTER() INVOKES HA_INNOBASE::TRUNCATE() IN A DML TRANSACTION
    
  Problem: While resetting the slave-worker-info table, table->file->truncate() was
  being called which is a DDL operation and should not be mixed with DML operations,
  according to innodb api specs.
    
  Fix: Replaced truncate with the a sequential row deletion using ha_delete_row()
  interface.
------------------------------------------------------------
revno: 5354 [merge]
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-14 10:32:15 +0300
message:
  Merge mysql-5.5 to mysql-5.6.
    ------------------------------------------------------------
    revno: 2875.437.185 [merge]
    committer: Marko M?kel? <marko.makela@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-14 10:24:36 +0300
    message:
      Merge mysql-5.1 to mysql-5.5.
        ------------------------------------------------------------
        revno: 2661.876.58
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2013-08-14 09:43:21 +0300
        message:
          Bug#16971045 ASSERTION FAILURES ON ROLLBACK OF AN INSERT AFTER A
          FAILED BLOB WRITE
          
          btr_store_big_rec_extern_fields(): Relax a debug assertion so that
          some BLOB pointers may remain zero if an error occurs.
          
          btr_free_externally_stored_field(), row_undo_ins(): Allow the BLOB
          pointer to be zero on any rollback.
          
          rb#3059 approved by Jimmy Yang, Kevin Lewis
------------------------------------------------------------
revno: 5353
committer: Allen lai <zheng.lai@oracle.com>
branch nick: 17214191
timestamp: Wed 2013-08-14 09:50:06 +0800
message:
  Follow up patch of Bug#17214191 MEMCACHED ADD/SET ARE SLOWER THAN INSERTS
  
  Approved by Jimmy on IM.
  
  This follow up patch fixed the trunk weekly test failure.
  The previous patch triggered a legacy bug.
  On Solaris, strtok_r has different behavior. That is, if the input
  string is a empty string, the third in/out parameter will not change
  after this function was called.
  So, on Solaris, we can't use this out parameter to check the end
  condition. We should use the return value to check it.
------------------------------------------------------------
revno: 5352
committer: Igor Solodovnikov <igor.solodovnikov@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-14 00:11:09 +0300
message:
  Bug #16797982 MYSQL_OPTIONS4 SYMBOL MISSING FROM LIBMYSQL.DLL, CONNECTOR/C 6.1, 32BIT
  
  CLIENT_API_FUNCTIONS list in libmysql/CMakeLists.txt updated.
------------------------------------------------------------
revno: 5351 [merge]
committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
branch nick: final-5.6
timestamp: Mon 2013-08-12 23:08:15 +0530
message:
  Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
  Problem Description:
  A mysqld_safe instance is started. An InnoDB crash recovery begins which takes
  few seconds to complete. During this crash recovery process happening, another
  mysqld_safe instance is started with the same server startup parameters. Since
  the mysqld's pid file is absent during the crash recovery process the second
  instance assumes there is no other process and tries to acquire a lock on the
  ibdata files in the datadir.  But this step fails and the 2nd instance keeps
  retrying 100 times each with a delay of 1 second. Now after the 100 attempts,
  the server goes down, but while going down it hits the mysqld_safe script's
  cleanup section and without any check it blindly deletes the socket and pid
  files. Since no lock is placed on the socket file, it gets deleted.
  
  Solution:
  We create a mysqld_safe.pid file in the datadir, which protects the presence
  server instance resources by storing the mysqld_safe's process id in it. We
  place a check if the mysqld_safe.pid file is existing in the datadir. If yes
  then we check if the pid it contains is an active pid or not. If yes again,
  then the scripts logs an error saying "A mysqld_safe instance is already
  running". Otherwise it will log the present mysqld_safe's pid into the
  mysqld_safe.pid file.
    ------------------------------------------------------------
    revno: 2875.437.184 [merge]
    committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
    branch nick: final-5.5
    timestamp: Mon 2013-08-12 23:06:58 +0530
    message:
      Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
      Problem Description:
      A mysqld_safe instance is started. An InnoDB crash recovery begins which takes
      few seconds to complete. During this crash recovery process happening, another
      mysqld_safe instance is started with the same server startup parameters. Since
      the mysqld's pid file is absent during the crash recovery process the second
      instance assumes there is no other process and tries to acquire a lock on the
      ibdata files in the datadir.  But this step fails and the 2nd instance keeps
      retrying 100 times each with a delay of 1 second. Now after the 100 attempts,
      the server goes down, but while going down it hits the mysqld_safe script's
      cleanup section and without any check it blindly deletes the socket and pid
      files. Since no lock is placed on the socket file, it gets deleted.
      
      Solution:
      We create a mysqld_safe.pid file in the datadir, which protects the presence
      server instance resources by storing the mysqld_safe's process id in it. We
      place a check if the mysqld_safe.pid file is existing in the datadir. If yes
      then we check if the pid it contains is an active pid or not. If yes again,
      then the scripts logs an error saying "A mysqld_safe instance is already
      running". Otherwise it will log the present mysqld_safe's pid into the
      mysqld_safe.pid file.
        ------------------------------------------------------------
        revno: 2661.876.57
        committer: Anirudh Mangipudi <anirudh.mangipudi@oracle.com>
        branch nick: final-5.1
        timestamp: Mon 2013-08-12 21:54:50 +0530
        message:
          Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
          Problem Description:
          A mysqld_safe instance is started. An InnoDB crash recovery begins which takes
          few seconds to complete. During this crash recovery process happening, another
          mysqld_safe instance is started with the same server startup parameters. Since
          the mysqld's pid file is absent during the crash recovery process the second
          instance assumes there is no other process and tries to acquire a lock on the
          ibdata files in the datadir.  But this step fails and the 2nd instance keeps
          retrying 100 times each with a delay of 1 second. Now after the 100 attempts,
          the server goes down, but while going down it hits the mysqld_safe script's
          cleanup section and without any check it blindly deletes the socket and pid
          files. Since no lock is placed on the socket file, it gets deleted.
          
          Solution:
          We create a mysqld_safe.pid file in the datadir, which protects the presence
          server instance resources by storing the mysqld_safe's process id in it. We
          place a check if the mysqld_safe.pid file is existing in the datadir. If yes
          then we check if the pid it contains is an active pid or not. If yes again,
          then the scripts logs an error saying "A mysqld_safe instance is already
          running". Otherwise it will log the present mysqld_safe's pid into the
          mysqld_safe.pid file.
------------------------------------------------------------
revno: 5350 [merge]
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: topush-5.6
timestamp: Mon 2013-08-12 16:42:05 +0200
message:
  merge to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.183
    committer: Mattias Jonsson <mattias.jonsson@oracle.com>
    branch nick: topush-5.5
    timestamp: Mon 2013-08-12 11:09:33 +0200
    message:
      Bug#16860588:CRASH WITH CREATE TABLE ... LIKE ..
      AND PARTITION VALUES IN (NULL)
      
      The code assumed there was at least one list element
      in LIST partitioned table.
      
      Fixed by checking the number of list elements.
    ------------------------------------------------------------
    revno: 2875.437.182
    committer: Mattias Jonsson <mattias.jonsson@oracle.com>
    branch nick: topush-5.5
    timestamp: Mon 2013-08-12 10:52:08 +0200
    message:
      Bug#17228383: VALGRIND WARNING IN IBUF_DELETE_REC
      
      Since the mtr_t struct is marked as invalid in DEBUG_VALGRIND build
      during mtr_commit, checking mtr->inside_ibuf will cause this warning.
      Also since mtr->inside_ibuf cannot be set in mtr_commit (assert check)
      and mtr->state is set to MTR_COMMITTED, the 'ut_ad(!ibuf_inside(&mtr))'
      check is not needed if 'ut_ad(mtr.state == MTR_COMMITTED)' is also
      checked.
------------------------------------------------------------
revno: 5349 [merge]
committer: Neeraj Bisht <neeraj.x.bisht@oracle.com>
branch nick: 5.6
timestamp: Mon 2013-08-12 19:52:41 +0530
message:
  Bug#16614004 - CRASH AFTER READING FREED MEMORY AFTER DOING DDL
           IN STORED ROUTINE
  Merge fix for Bug#16614004 from mysql-5.5 to mysql-5.6"
    ------------------------------------------------------------
    revno: 2875.437.181 [merge]
    committer: Neeraj Bisht <neeraj.x.bisht@oracle.com>
    branch nick: 5.5
    timestamp: Mon 2013-08-12 19:46:44 +0530
    message:
      Bug#16614004 - CRASH AFTER READING FREED MEMORY AFTER DOING DDL
               IN STORED ROUTINE
      
      Inside a loop in a stored procedure, we create a partitioned
      table. The CREATE statement is thus treated as a prepared statement:
      it is prepared once, and then executed by each iteration. Thus its Lex
      is reused many times. This Lex contains a part_info member, which
      describes how the partitions should be laid out, including the
      partitioning function. Each execution of the CREATE does this, in
      open_table_from_share ():
          
             tmp= mysql_unpack_partition(thd, share->partition_info_str,
                                         share->partition_info_str_len,
                                         outparam, is_create_table,
                                         share->default_part_db_type,
                                         &work_part_info_used);
          ...
             tmp= fix_partition_func(thd, outparam, is_create_table);
      The first line calls init_lex_with_single_table() which creates
      a TABLE_LIST, necessary for the "field fixing" which will be
      done by the second line; this is how it is created:
           if ((!(table_ident= new Table_ident(thd,
                                               table->s->db,
                                               table->s->table_name, TRUE))) ||
               (!(table_list= select_lex->add_table_to_list(thd,
                                                            table_ident,
                                                            NULL,
                                                             0))))
                return TRUE;
        it is allocated in the execution memory root.
      Then the partitioning function ("id", stored in Lex -> part_info)
        is fixed, which calls Item_ident:: fix_fields (), which resolves
      "id" to the table_list above, and stores in the item's
      cached_table a pointer to this table_list.
      The table is created, later it is dropped by another statement,
      then we execute again the prepared CREATE. This reuses the Lex,
      thus also its part_info, thus also the item representing the
      partitioning function (part_info is cloned but it's a shallow
      cloning); CREATE wants to fix the item again (which is
      normal, every execution fixes items again), fix_fields ()
      sees that the cached_table pointer is set and picks up the
      pointed table_list. But this last object does not exist
      anymore (it was allocated in the execution memory root of
      the previous execution, so it has been freed), so we access
      invalid memory.
      
      The solution: when creating the table_list, mark that it
      cannot be cached.
        ------------------------------------------------------------
        revno: 2875.452.1
        committer: Guilhem Bichot <guilhem.bichot@oracle.com>
        branch nick: 5.5
        timestamp: Wed 2013-07-24 14:33:52 +0200
        message:
          Fix for Bug#16614004 CRASH AFTER READING FREED MEMORY AFTER DOING DDL IN STORED ROUTINE
          Inside a loop in a stored procedure, we create a partitioned
          table. The CREATE statement is thus treated as a prepared statement:
          it is prepared once, and then executed by each iteration. Thus its Lex
          is reused many times. This Lex contains a part_info member, which
          describes how the partitions should be laid out, including the
          partitioning function. Each execution of the CREATE does this, in
          open_table_from_share ():
          
              tmp= mysql_unpack_partition(thd, share->partition_info_str,
                                          share->partition_info_str_len,
                                          outparam, is_create_table,
                                          share->default_part_db_type,
                                          &work_part_info_used);
           ...
                tmp= fix_partition_func(thd, outparam, is_create_table);
          The first line calls init_lex_with_single_table() which creates
          a TABLE_LIST, necessary for the "field fixing" which will be
          done by the second line; this is how it is created:
            if ((!(table_ident= new Table_ident(thd,
                                                table->s->db,
                                                table->s->table_name, TRUE))) ||
                (!(table_list= select_lex->add_table_to_list(thd,
                                                             table_ident,
                                                             NULL,
                                                             0))))
              return TRUE;
          it is allocated in the execution memory root.
          Then the partitioning function ("id", stored in Lex -> part_info)
          is fixed, which calls Item_ident:: fix_fields (), which resolves
          "id" to the table_list above, and stores in the item's
          cached_table a pointer to this table_list.
          The table is created, later it is dropped by another statement,
          then we execute again the prepared CREATE. This reuses the Lex,
          thus also its part_info, thus also the item representing the
          partitioning function (part_info is cloned but it's a shallow
          cloning); CREATE wants to fix the item again (which is
          normal, every execution fixes items again), fix_fields ()
          sees that the cached_table pointer is set and picks up the
          pointed table_list. But this last object does not exist
          anymore (it was allocated in the execution memory root of
          the previous execution, so it has been freed), so we access
          invalid memory.
          The solution: when creating the table_list, mark that it
          cannot be cached.
------------------------------------------------------------
revno: 5348 [merge]
committer: Thirunarayanan B<thirunarayanan.balathandayuth@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-08-12 15:14:31 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.180
    committer: Thirunarayanan B<thirunarayanan.balathandayuth@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-08-08 14:28:20 +0530
    message:
      Bug #17076718 ADDING "_IBFK_" FOREIGN KEY "TABLE XXX ALREADY EXISTS"
      
      Problem:
        When the user specified foreign key name contains "_IBFK_", InnoDB wrongly
            tries to rename it.
      
      Solution :
        This issue is already solved in mysql-5.1 by the following patch
       
        revno: 4029
        revision-id: annamalai.gurusami@oracle.com-20130725092323-p4s20g1bhc0fmfep
        parent: astha.pareek@oracle.com-20130723124343-f90tpoldtmozgohd
        committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
        branch nick: mysql-5.1
        timestamp: Thu 2013-07-25 14:53:23 +0530
        message:
           Bug #17076737 DUPLICATE CONSTRAINTS DISPLAYED WHEN NAME INCLUDES "_IBFK_"
      
      rb#3012 approved by Jimmy Yang
------------------------------------------------------------
revno: 5347
committer: Alexander Nozdrin <alexander.nozdrin@oracle.com>
branch nick: 5.6-17087862
timestamp: Mon 2013-08-12 12:42:37 +0400
message:
  A patch for Bug#17087862: THREAD POOL PLUGIN FAILS TO MAINTAIN
  ENCRYPTED CONNECTION UNDER LOAD.
  
  The user visible problem was that an error in one connection might
  have affected other connections. When that happened, the other
  connection was closed by the server, thus the client received the
  "Lost connection" error. The server however didn't crash.
  
  Technically, the problem was that OpenSSL requires that the thread's
  error queue is empty before invoking any I/O operation
  (https://www.openssl.org/docs/ssl/SSL_get_error.html).
  That was not the case. The bug happened when the error queue is not
  empty and a non-blocking I/O-operation failed because it would block.
  
  YaSSL is not affected as it employs different scheme for handling
  errors.
  
  MySQL-5.5 is not affected as it uses blocking I/O calls.
  
  Test case is missing because the bug appeared under the highload and
  depended on thread scheduling.
------------------------------------------------------------
revno: 5346
committer: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
branch nick: mysql-5.6-16373054
timestamp: Mon 2013-08-12 11:04:44 +0530
message:
  BUG#16373054 - CRASH WHEN MYSQL.PROC HAS NO AVAILABLE PK
  
  Analysis
  --------
  
  'mysqld' crashes when:
  a) The primary key for the system table 'proc' is dropped and
  b) A stored procedure is invoked.
  
  Ideally it is expected that system tables are not tampered.
  When we access these tables for performing some operation,
  we do not check if a valid key information is available.
  Since the primary key is dropped, the mysqld crashes while trying
  to access the key information. This behavior is observed with
  other system tables(user, columns_priv, event and plugin)
  as well when it's primary key is dropped. This issue is addressed
  with this patch.
  
  Fix:
  ---
  Make sure that key information is available when the operations
  accessing the system tables are invoked. In such a case, we now
  report an error instead of a crash.
  
  Note: We do not validate complete key information as it could
  impact performance. Once MySQL roles is introduced, such checks
  would become unnecessary.
------------------------------------------------------------
revno: 5345
committer: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
branch nick: mysql-5.6-16857395
timestamp: Fri 2013-08-09 13:01:39 +0530
message:
  BUG#16857395 - EXCESSIVE MEMORY USAGE AFTER REPEATED TRIGGER
                 EXCEPTION HANDLERS
  
  Follow up patch to fix missing error message when an SQL
  condition is handled by the handler.
------------------------------------------------------------
revno: 5344
committer: Allen lai <zheng.lai@oracle.com>
branch nick: 17214191
timestamp: Thu 2013-08-08 11:47:04 +0800
message:
  Bug#17214191 MEMCACHED ADD/SET ARE SLOWER THAN INSERTS
  
  rb://2993 approved by Jimmy.
  
  This bug is because when we do inserts through memcached, we skip a
  srv_active_wake_master_thread() embedded in innodb_commit() in ha_innodb.cc.
  This srv_sys->activity_count.inc() is checked by BUF FLUSH LIST flush.
  If we do not increment it, then the background buffer flush do extra flushes.
  The master thread thought the server is quiet and no activity, so it does
  buffer pool preemptive flush.  It brings more extra I/O.
  
  Add srv_active_wake_master_thread() to ib_cursor_insert_row(), then
  things come to normal.
  
  In this patch, we also remove the unnecessary memcpy for inserting row,
  and fixed a legacy memory leak in innodb_get.
------------------------------------------------------------
revno: 5343
committer: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com>
branch nick: mysql-5.6-16857395
timestamp: Thu 2013-08-08 08:22:37 +0530
message:
  BUG#16857395 - EXCESSIVE MEMORY USAGE AFTER REPEATED TRIGGER
                 EXCEPTION HANDLERS
  
  Analysis
  --------
  Excessive memory consumption is observed when executing a
  stored procedure multiple times when:
  
  a) The stored procedure has an SQL statement which fails during
     validation.
  
  b) The stored procedure has an an SQL statement which requires to
     be re-prepared.
  
  Under the above scenarios, the query within the stored procedure is
  invalidated during the execution. The invalidation calls for the
  re-parse of the query. During the re-parse, the lex tree is allocated
  on the persistent mem_root of the stored procedure. When the stored
  procedure is executed multiple times, the repeated allocation of the
  new lex tree on the persistent mem_root is observed. The previous
  allocations for the lex tree in the mem_root are never freed. In
  addition to the lex tree, the Ref_ptr_array(array of pointers to
  the field items) was also allocated on the persistent mem_root and
  never freed during re-parse. Hence the memory growth was observed.
  
  Also the patch solves the memory growth due to the cases listed below:
  a) Allocation of Sql_condition and its memory on persistent mem-root
     every time a condition is raised.
  
  b) Allocation of Handler-structure on the persistent mem-root every
     time an SQL-handler is pushed. Observed when the execution flow
     goes to DECLARE HANDLER statement.
  
  c) Allocation of Cursor-structure on the persistent mem-root every
     time a cursor is pushed. Observed when the DECLARE CURSOR
     statement is executed.
  
  Fix:
  ----
  1) Patch for the allocation of the lex tree and 'Ref_ptr_array' on the
     persistent mem_root:
     A new mem_root 'm_lex_mem_root' is introduced which holds the lex
     tree and the Ref_ptr_array. When a query is invalidated, before the
     reparse we free this mem_root, init the root and use it to allocate
     the newly parsed lex tree.
  
     The 'ref_pointer_array' part of the lex tree object points the
     Ref_ptr_array. Since 'Ref_ptr_array' should not be
     allocated on the persistent mem_root, we switch the stmt_arena's
     mem_root to that of the new 'm_lex_mem_root'. This mem_root
     is persistent until reparse or the stored routine is dropped,
     hence the 'Ref_ptr_array' is allocated on the new mem_root as well.
     Since this mem_root is freed and re-initialised during
     re-parse we will not observe a memory growth. Also ensures that
     the prepared statement execution is unaffected.
  
  2) Patch for the next set of issues listed above:
    a) The Sql_condition is a temporary instance hence initialised in
       the execution mem_root which is freed at the end of the execution.
    b) The handler is now stored on the heap instead of the caller's
       mem_root thus avoiding the memory growth.
    c) The cursor is now stored on the heap instead of the caller's
       mem_root thus avoiding the memory growth.
  
  Note: I have not added an mtr test case: A test case which executes
        for a longer period is needed to observe the increasing memory
        consumption and is not suitable for mtr. Also the existing test
        suite has tests which uses the new mem_root.
------------------------------------------------------------
revno: 5342
committer: Christopher Powers <chris.powers@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-08 02:03:09 +0200
message:
  Bug#16750433 - THE STATEMENT DIGEST DOES NOT SHOW THE SLAVE SQL THREAD STATEMENTS
  
  Updated event_aggregate_setup.inc with reverted instrument name.
------------------------------------------------------------
revno: 5341
committer: Christopher Powers <chris.powers@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-07 18:11:14 -0500
message:
  Bug#16750433 - THE STATEMENT DIGEST DOES NOT SHOW THE SLAVE SQL THREAD STATEMENTS
  
  Revert 'statement/com/new_packet' to 'statement/com/'.
------------------------------------------------------------
revno: 5340 [merge]
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-07 15:51:35 +0530
message:
  Bug#16416302 - CRASH WITH LOSSY RBR REPLICATION
  OF OLD STYLE DECIMALS
        
  Merging fix from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.437.179
    committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-07 15:08:55 +0530
    message:
      Bug#16416302 - CRASH WITH LOSSY RBR REPLICATION
      OF OLD STYLE DECIMALS
      
      Fixing post-push test script failure
------------------------------------------------------------
revno: 5339
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-07 10:19:06 +0300
message:
  Bug#16896810 INPLACE ALTER: FAILING ASSERTION: !PREBUILT->TRX->CHECK_FOREIGNS
  
  When there are multiple indexes on the same column, and all of them
  are being dropped while a foreign key constraint needs an index,
  InnoDB would not block the DROP INDEX operation. (InnoDB foreign key
  constraint checks are only performed by index lookup, never by a table
  scan.)
  
  ha_innobase::prepare_inplace_alter_table(): Flag the indexes to be
  dropped, before invoking innobase_check_foreign_key_index(), so that
  to-be-dropped indexes will be skipped when determining if there are
  replacements for all to-be-dropped indexes.
  
  innobase_check_foreign_key_index(): Remove the assertion
  ut_ad(!index->to_be_dropped). The index should be flagged as
  to-be-dropped except when dropping the primary key.
  
  rb#3020 approved by Jimmy Yang
------------------------------------------------------------
revno: 5338
committer: Anitha Gopi <anitha.gopi@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-07 07:35:42 +0200
message:
  Increased timeout for runs with bigt-test
------------------------------------------------------------
revno: 5337 [merge]
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-08-07 08:26:55 +0530
message:
  Bug#16416302 - CRASH WITH LOSSY RBR REPLICATION
  OF OLD STYLE DECIMALS
  
  Merging fix from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.437.178
    committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-08-07 07:56:07 +0530
    message:
      Bug#16416302 - CRASH WITH LOSSY RBR REPLICATION
      OF OLD STYLE DECIMALS
      
      Problem: In RBR, Slave is unable to read row buffer
      properly when the row event contains MYSQL_TYPE_DECIMAL
      (old style decimals) data type column.
      
      Analysis: In RBR, Slave assumes that Master sends
      meta data information for all column types like
      text,blob,varchar,old decimal,new decimal,float,
      and few  other types along with row buffer event.
      But Master is not sending this meta data information
      for old style decimal columns. Hence Slave is crashing
      due to unknown precision value for these column types.
      Master cannot send this precision value to Slave which
      will break replication cross-version compatibility.
      
      Fix: To fix the crash, Slave will now throw error if it
      receives old-style decimal datatype. User should
      consider changing the old-style decimal to new style
      decimal data type by executing "ALTER table modify column"
      query as mentioned in http://dev.mysql.com/
      doc/refman/5.0/en/upgrading-from-previous-series.html.
------------------------------------------------------------
revno: 5336
committer: Prabeen Pradhan <prabeen.pradhan@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-06 18:23:28 +0530
message:
  Bug#16917425 : Reverting back latest changes made
------------------------------------------------------------
revno: 5335
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-06 10:55:25 +0300
message:
  Bug#16996584 5.6.11+ REGRESSION: MULTIPLE CRASHES DURING CRASH RECOVERY
  Bug#17234962 FIX FOR BUG 14606334 IN 5.6.11 BREAKS BACKWARD
  COMPATIBILITY FOR INNODB RECOVERY
  
  The function page_create_empty() that was introduced for fixing
  Bug#14606334 was incorrectly being executed when applying redo log
  from an earlier MySQL version.
  
  page_cur_delete_rec(), page_delete_rec_list_end(): If we are applying
  a redo log record, do not attempt to "optimize" it by calling
  page_create_empty() even if the page would become empty.  We must
  replay the redo log operations as is, in order to keep the PAGE_FREE
  list compatible with any subsequent redo log entries that may have
  been logged for the page.
  
  rb#3008 approved by Jimmy Yang
------------------------------------------------------------
revno: 5334
committer: Prabeen Pradhan <prabeen.pradhan@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-06 11:57:35 +0530
message:
  Bug#16917425 : added check to skip tests where few tests were failing in absence of plugin
------------------------------------------------------------
revno: 5333
committer: Anitha Gopi <anitha.gopi@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-08-06 06:56:11 +0200
message:
  Added big-test to the runs with 4k and 8k page size. Also restricted these runs to innodb suite
------------------------------------------------------------
revno: 5332
committer: bin.x.su@oracle.com
branch nick: mysql-5.6
timestamp: Tue 2013-08-06 09:41:11 +0800
message:
  The assertion 'ut_ad(oldest_lsn <= cur_lsn)' can't hold, because we get the
  current max LSN before we get the oldest LSN from the buffer pool.
  
  We can simply change the assertion to 'ut_ad(oldest_lsn <= log_get_lsn())'
  to fix it. At the meantime, the cur_lsn is used in a subtraction, which is
  'cur_lsn - oldest_lsn' to get the 'age'. If the original assertion can't hold,
  the subtraction would result in a very big number. Although the unexpected
  subtraction is harmless, I'd like to check the cur_lsn to get a reasonable
  'age'.
  
  rb#3013, approved by Marko
------------------------------------------------------------
revno: 5331
committer: Joao Gramacho <joao.gramacho@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-01 13:54:32 +0100
message:
  Bug#16820156 MASTER_DELAY DOES NOT PERFORM PROPER TYPE CHECKING
  Bug#16960315 ERROR 1729 OVERFILLS BY THE VALUE OF MASTER_DELAY GREATER THAN 2^31
  
  Addressing post push failure in PB2 for embedded servers.
  
  Added not_embedded.inc as it is not possible to set up an embedded server
  as a master or a slave.
------------------------------------------------------------
revno: 5330
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug16856735_mysql-5.6
timestamp: Thu 2013-08-01 11:45:53 +0530
message:
  Fixing post push test issue.
------------------------------------------------------------
revno: 5329 [merge]
author: sunanda.menon@oracle.com
committer: Sunanda Menon<sunanda.menon@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-08-01 04:35:01 +0200
message:
  Merge from mysql-5.6.13-release
    ------------------------------------------------------------
    revno: 5288.1.2
    tags: mysql-5.6.13
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.6.13-release
    timestamp: Wed 2013-07-10 18:02:48 +0200
    message:
      Updated spec file for Bug#17080138