Home | Back
------------------------------------------------------------
revno: 5290
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
------------------------------------------------------------
revno: 5289
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6.13-release
timestamp: Wed 2013-07-10 16:21:04 +0200
message:
  Cleaned up spec file to handle advanced to community downgrade
------------------------------------------------------------
revno: 5288 [merge]
tags: clone-5.6.13-build
committer: Hery Ramilison <hery.ramilison@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-07-08 20:10:38 +0200
message:
  Empty version change upmerge
    ------------------------------------------------------------
    revno: 2875.437.160
    author: hery.ramilison@oracle.com
    committer: Hery Ramilison <hery.ramilison@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-07-08 19:41:40 +0200
    message:
      Raise version number after cloning 5.5.33
------------------------------------------------------------
revno: 5287
committer: Andrei Elkin <andrei.elkin@oracle.com>
branch nick: 5.6-fixes
timestamp: Mon 2013-07-08 16:08:41 +0300
message:
  BUG#16594095
  
  Post-push refinement to fix a valgrind issue.
  The basic pushed patch did not expect a block of
   if (!ret_worker->checkpoint_notified) {}
  be executed multiple times during scheduling of one group.
  In fact it should have been left intact to continue to be executed at T-event
  time that guarantees its single time run.
  And that is restored, that is the former patch part is reverted.
  
  As the matter of fact the physical coordinates were unknown to the Worker
  only during time of the first transaction scheduling upon master binlog
  rotation or the very first one at MTS start.
  Information about the master binlog at such points is passed to the Worker
  now via augmented notification mechanism.
  The new notification is light as in implementation so in terms of execution
  (is supposed to be pretty rare) and never more that once during one transaction
  scheduling (as asserted in the DBUG version of the patch).
  
  Attention to rpl_conflicts.test is paid to sort out
  rpl_{row,stm}conflicts.test failing on PB2.
------------------------------------------------------------
revno: 5286
committer: Anitha Gopi <anitha.gopi@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-07-08 12:21:42 +0200
message:
  Removed tests that are fixed from experimental list
------------------------------------------------------------
revno: 5285 [merge]
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-07-05 14:37:37 +0530
message:
  Bug#17033706 SINCE 5.5.32 & 5.6.12, INNODB CANT START WITH OWN
               MULTI-FILE TABLESPACE
  [ Merge from 5.5 ]
    ------------------------------------------------------------
    revno: 2875.437.159
    tags: clone-5.5.33-build
    committer: Aditya A <aditya.a@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-07-05 14:30:15 +0530
    message:
      Bug#17033706 SINCE 5.5.32 & 5.6.12, INNODB CANT START WITH OWN
                   MULTI-FILE TABLESPACE
      
      ANALYSIS
      --------
      
      When a tablespace has multiple data files, InnoDB fails to
      open the tablespace.  This is because for each ibd file,
      the first page is checked.But the first page of all ibd file
      need not be the first page of the tablespace.  Only the first
      page of the tablespace contains the tablespace header. When
      we check the first page of an ibd file that is not the first
      page of the tablespace, then the "tablespace flags" is not
      really available.This was wrongly used to check if a page is
      corrupt or not.
      
      FIX
      ---
      Use the tablespace flags only if the page number is 0
      in a tablespace.  
      
      [Approved by Inaam rb#2836 ]
------------------------------------------------------------
revno: 5284
committer: Andrei Elkin <andrei.elkin@oracle.com>
branch nick: 5.6-fixes
timestamp: Fri 2013-07-05 10:20:19 +0300
message:
  bug#16931177 BGC and slave binlog rotate causes slave sql_thread to stop
  bug#16594095 NOT VERBOSE ENOUGH ERROR REPORTING BY MTS WORKER
  
  A slave applier thread stops with an error when it is about to rotate binlog but
  finds it's already done by a thread before it in the committing group.
  
  Notice that it's the slave applier that reacts to such situation
  even though the regular use session also senses it in MBL::commit().
  But unlike the slave applier the "master" user session does not propagate
  any error to the top level (which is actually an issue being addressed by Bug16579083).
  
  It appears that the reason of this trouble is actual overreaction.
  About to rotate session should not raise any error when it's merely beaten to by
  some other.
  And that is fixed.
  ******
  bug#16594095 NOT VERBOSE ENOUGH ERROR REPORTING BY MTS WORKER
  
  In case a Worker fails to apply an event the Slave applier (SQL thread +
  Workers) stops. An error that the Worker faced is displayed in
  Show-Slave-Status. However unlike the sequential execution there's
  no event coordinates that makes the failed event identification rather difficult.
  
  Fixed with adding a new prefix part to Last_SQL_Error message that
  carries the physical (master binlog) coordinates and GTID_NEXT when one is set.
  In case of simultaneous multiple Worker failures the error log must be consulted
  as well.
  
  ******
  merge from 5.6 repo.
------------------------------------------------------------
revno: 5283
committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
branch nick: mysql_5_6
timestamp: Fri 2013-07-05 12:30:12 +0530
message:
  Bug#16983143 - CRASH WITH STORED ROUTINE, SELECT FROM CURSOR,
                 UNION
  
  Analysis:
  -----------
  The problem was that fetching rows from CURSOR of SELECT
  having UNION was crashing. The column meta-data stored
  with cursor had a dangling pointer "orig_table". Accessing
  this member was resulting in crash.
  
  The SELECT query of CURSOR used a intermediate table for
  the UNION. Then, Select_materialize::send_result_set_metadata
  created a temporary table for storing the query result. The
  column meta-data for the query is obtained by calling function
  get_field_list. get_field_list returns "st_select_lex_unit::
  item_list" for UNION, which is a list of fields which
  pointing to intermediate temporary table of union query. So, while
  creating the temporary table to store query result for cursor,
  the orig_table was set as intermediate temporary table of the
  union. "Materialized_cursor:item_list" was also populated
  with Materialized tables field meta-data. But at the end of
  open cursor statement execution, intermediate temporary
  table created for union is dropped. Because of this "orig_table"
  became dangling.
  
  Fix:
  ------
  The problem is solved by using the column meta-data list
  "st_select_lex_unit::types" when creating the Materialized table
  of cursor instead of the column meta-data of the intermediate
  table created for union query.
------------------------------------------------------------
revno: 5282
committer: Inaam Rana <inaam.rana@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-07-05 01:04:41 -0400
message:
  Bug#16864741 DROP/ALTER TABLE TAKES MUCH LONGER TIME IN 5.6 THAN 5.5
  
  rb://2841
  approved by:
  
  Fixes a regression in 5.6 where we search for AHI entries to be dropped
  when we are DROPping a table. AHI entries need not to be searched
  because they are already dropped during fseg_free_step().
------------------------------------------------------------
revno: 5281
committer: Roy Lyseng <roy.lyseng@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-07-04 14:58:56 +0200
message:
  Fixing build break from bug#16817453
------------------------------------------------------------
revno: 5280 [merge]
committer: Venkata Sidagam <venkata.sidagam@oracle.com>
branch nick: 5.6
timestamp: Thu 2013-07-04 17:00:45 +0530
message:
  Bug #16567381 DATETIME FIELD COMPARISONS DO NOT WORK PROPERLY
                  WITH UTF8_UNICODE_CI COLLATION.
  
  Null merge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.437.158
    committer: Venkata Sidagam <venkata.sidagam@oracle.com>
    branch nick: 5.5
    timestamp: Thu 2013-07-04 16:59:09 +0530
    message:
      Bug #16567381 DATETIME FIELD COMPARISONS DO NOT WORK PROPERLY
                      WITH UTF8_UNICODE_CI COLLATION
      Problem Description:
      When comparing datetime values with strings, the utf8_unicode_ci collation
      prevents correct comparisons. Consider the below set of queries, it is not
      showing any results on a table which has tuples that satisfies the query.
      But for collation utf8_general_ci it shows one tuple.
      set names utf8 collate utf8_unicode_ci;;
      select * from lang where dt='1979-12-09';
      
      Analysis:
      The comparison function is not chosen in case of collation utf8_unicode_ci.
      In agg_item_set_converter() because the collation state is having
      "MY_CS_NONASCII" for collation type "utf8_unicode_ci". The conversion
      of the collation is happening for the date field. And because of that
      it is unable to pickup proper compare function(i.e CMP_DATE_WITH_STR).
      
      Actually the bug is accidentally introduced by the WL#3759 in 5.5.
      And in 5.6 it is been fixed by the WL#3664.
      
      Fix:
      I have backported the changes from the file strings/ctype-uca.c which
      are related to "utf8" introduced by the WL#3664.
      This change helps in choosing the correct comparison function for all
      the collations of utf8 charset.
------------------------------------------------------------
revno: 5279
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug16856735_mysql-5.6
timestamp: Thu 2013-07-04 11:54:53 +0530
message:
  Addressing post push warning on PB2 machines.
------------------------------------------------------------
revno: 5278
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-07-04 10:14:20 +0800
message:
  Fix Bug #16896647 WASTED WORK IN METHOD ROW_CHECK_INDEX_FOR_MYSQL()
  
  rb://2740 approved by Sunny Bains
------------------------------------------------------------
revno: 5277
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Wed 2013-07-03 15:42:55 +0200
message:
  Bug#17003702 ADDRESSSANITIZER BUG IN RUN_PLUGIN_AUTH
  
  Do not access the message buffer of a closed connection.
------------------------------------------------------------
revno: 5276
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug16856735_mysql-5.6
timestamp: Wed 2013-07-03 16:44:14 +0530
message:
  Bug#16856735: SLAVE DEADLOCK CAUSED BY STOP SLAVE,
  SHOW SLAVE STATUS AND GLOBAL READ LOCK.
  
  Problem:
  =======
  SLAVE DEADLOCK CAUSED BY STOP SLAVE, SHOW SLAVE STATUS AND
  GLOBAL READ LOCK
  
  Analysis:
  ========
  "FLUSH TABLES WITH READ LOCK" command blocks all DML and
  DDL operations by taking "global read lock".  Hence when a
  DML or DDL statement is received at slave, post "global read
  lock" acquisition this operation will be blocked.  This
  causes slave sql thread to be blocked.
  
  At this time when  STOP SLAVE command is issued in new slave
  connection this command will acquire "LOCK_active_mi" and it
  waits till the "sql thread" terminates.
  
  Now in the first connection issue SHOW SLAVE STATUS command
  which needs 'LOCK_active_mi' will be blocked till the above
  lock is released by "STOP SLAVE".  Since "UNLOCK TABLES" can
  only be done in first connection which is not possible any
  more, which causes a deadlock.
  
  Fix:
  ===
  Provide a new option to make the "STOP SLAVE" command to
  timeout after specified number of seconds rather than
  waiting for an year.
  
  During testing the fix another deadlock issue was identified
  with "STOP SLAVE" + "MTS" + "FLUSH TABLES WITH READ LOCK".
  This was caused as "rli->run_lock" was moved as par of
  BUG#13635612 fix to eliminate false suspects.  But since
  this change is not necessary the "rli->run_lock" is moved
  back to the appropriate place.
------------------------------------------------------------
revno: 5275
committer: bin.x.su@oracle.com
branch nick: mysql-5.6-bug16817453
timestamp: Wed 2013-07-03 19:03:21 +0800
message:
  Bug#16817453 PLEASE BACKPORT BUG #14834698 TO 5.6
  
  Backport the patch for Bug#14834698 to 5.6
------------------------------------------------------------
revno: 5274
committer: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-07-03 13:43:51 +0530
message:
  Bug #16436567:REGRESSION: CRASH AFTER JOIN::MAKE_TMP_TABLES_INFO()
        
  Problem:
  While creating temporary table, server crashes checking if
  optimizer is using loose_index_scan.
       
  Analysis:
  In get_best_combination(), join_tab structures are created
  based on the number of primary tables, semi-join nests and
  temp_tables. While calculating the number of temp_tables,
  optimizer estimates it to be 'one' for the query
  "select ( select distinct q.a+ variance(g.a) from g q ) from g; "
  as there is only distinct in it.  As a result space for only
  two join_tab structures is allocated(one for the primary
  table and one for the tmp table).
      
  In make_tmp_tables_info(), we see that
  "using_indirect_summary_function" is enabled and as a result
  optimizer has to create the second tmp table. Here, its presumed
  that the join_tab structure for the second tmp table is
  already allocated and hence it tries to write on to this memory
  while creating the intermediate temp table.
  In doing so, it over-writes some of the  memory allocated for
  "select" and later leads to crash.
     
  Solution:
  Calculate the number of outer aggregation functions while
  counting field types and use the same to allocate the second
  join_tab structure in get_best_combination.
------------------------------------------------------------
revno: 5273
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Tue 2013-07-02 13:55:12 +0200
message:
  Address sanitizer fix for unit test: different error message for segfault.
------------------------------------------------------------
revno: 5272
committer: Tiago Jorge <tiago.jorge@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-07-02 12:09:08 +0100
message:
  Problem:
  An error message shows a variable that is not available
  to change.
              
  Analysis:
  
  Several error messages have an explicit reference to
  @@SESSION.GTID_NEXT_LIST.
  The issue is that SESSION.GTID_NEXT_LIST is not
  available to be changed and nor it should be, since it is a
  future feature to be integrated in NDB, thus not being
  available in the server mainline. The error messages are
  misleading to a user.
  
  Fix:
  Change the error messages in order to state the only
  possible source of error. Also corrected the binlog
  tests that were expecting that specific message.
------------------------------------------------------------
revno: 5271
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-07-02 10:07:30 +0800
message:
  BUG#17035359 - BACKPORT BUG#16429688 - FTS: SYNTAX ERROR, UNEXPECTED '*', EXPECTING $END
  
  rb://2223 approved by Sunny.Bains.
------------------------------------------------------------
revno: 5270 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Mon 2013-07-01 15:44:50 +0200
message:
  Merge 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.437.157 [merge]
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5-merge
    timestamp: Mon 2013-07-01 15:38:16 +0200
    message:
      merge 5.1 => 5.5
        ------------------------------------------------------------
        revno: 2661.876.48
        committer: Tor Didriksen <tor.didriksen@oracle.com>
        branch nick: 5.1
        timestamp: Mon 2013-07-01 15:30:55 +0200
        message:
          Bug#58165: "my_empty_string" gets modified and causes LOAD DATA to fail and
          Cleanup test case (left outfile in data dir)
------------------------------------------------------------
revno: 5269
committer: Bharathy Satish <bharathy.x.satish@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-07-01 18:06:24 +0530
message:
  Bug #16971432 MYSQL CLIENT WASTE TIME IN SPRINTF MAKING INFO MESSAGES THAT
                ARE NOT PRINTED
  
  Problem: When the client program is in batch mode by default the message
  like  "Query OK, 1 row affected" are not shown, but instead the buffer is
  prepared using sprintf call which takes some cpu time when the import file
  is too large.
  
  Fix: Fix is to check if the client is running in batch mode then skip the
  sprintf statement in /client/mysql.cc in com_go(). put_info ignores the
  buffer built by prepare only when in batch mode and verbose < 2. Hence
  skip the sprintf in com_go() only in this case.
------------------------------------------------------------
revno: 5268 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-07-01 16:54:17 +0530
message:
  Null merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.156
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-07-01 16:53:30 +0530
    message:
      I have added --innodb_file_per_table=1 InnoDB config option to run
      i_innodb.innodb_bug16417635 test case.
------------------------------------------------------------
revno: 5267
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-07-01 10:49:55 +0800
message:
  BUG#16660607 - INNODB TABLE FULLTEXT INDEX IN BOOLEAN MODE IGNORES LEADING *
  
  InnoDB returns syntax error when MyISAM ignores the leading '*'.
  In order to make transferring from MyISAM to InnoDB smooth for old users,
  we follow MyISAM's behavior by a simple modification of syntax file.
  
  rb://2717 approved by Jimmy.
------------------------------------------------------------
revno: 5266 [merge]
committer: Georgi Kodinov <georgi.kodinov@oracle.com>
branch nick: B16996656-5.6
timestamp: Fri 2013-06-28 17:42:20 +0300
message:
  merge
    ------------------------------------------------------------
    revno: 5264.1.2 [merge]
    committer: Georgi Kodinov <georgi.kodinov@oracle.com>
    branch nick: B16996656-5.6
    timestamp: Fri 2013-06-28 17:16:25 +0300
    message:
      merge 5.5->5.6
        ------------------------------------------------------------
        revno: 2875.437.155 [merge]
        committer: Georgi Kodinov <georgi.kodinov@oracle.com>
        branch nick: B16996656-5.5
        timestamp: Fri 2013-06-28 17:13:44 +0300
        message:
          merge back to the 5.5 tree and fix indentation
    ------------------------------------------------------------
    revno: 5264.1.1 [merge]
    committer: Georgi Kodinov <georgi.kodinov@oracle.com>
    branch nick: B16996656-5.6
    timestamp: Fri 2013-06-28 17:15:27 +0300
    message:
      merged back the 5.6 tree
        ------------------------------------------------------------
        revno: 5251.1.1 [merge]
        committer: Georgi Kodinov <georgi.kodinov@oracle.com>
        branch nick: B16996656-5.6
        timestamp: Wed 2013-06-26 13:58:23 +0300
        message:
          merge
            ------------------------------------------------------------
            revno: 2875.449.1
            committer: Georgi Kodinov <georgi.kodinov@oracle.com>
            branch nick: B16996656-5.5
            timestamp: Wed 2013-06-26 12:19:02 +0300
            message:
              Bug #16996656: UNIQUE OPTION PREFIXES NOT DEPRECATED IN 5.5+
              
              Backported the deprecation warnings from WL#6978 to 5.5
------------------------------------------------------------
revno: 5265
committer: Christopher Powers <chris.powers@oracle.com>
branch nick: mysql-5.6-bug16750433
timestamp: Fri 2013-06-28 07:48:12 -0500
message:
  Bug#16750433 - THE STATEMENT DIGEST DOES NOT SHOW THE SLAVE SQL
                 THREAD STATEMENTS
  
  1) New instrumentation to capture replicated statements
  
     The new instrument "statement/rpl/relay_log" controls
     instrumentation for statements executed from the relay log.
  
  2) New test rpl_statements.test verifies new instrumentation
  
  3) Renamed instrument "statement/com/(stmt_info_new_packet)"
     to "statement/com/new_packet".
  
  4) Updated tests affected by the new instrumentation
  
  
  ******
  Bug#16750433 - THE STATEMENT DIGEST DOES NOT SHOW THE SLAVE SQL
                 THREAD STATEMENTS
        
  1) New instrumentation to capture replicated statements.
        
     The new instrument "statement/rpl/relay_log" controls
     instrumentation for statements executed from the relay log.
        
  2) New test rpl_statements.test verifies new instrumentation.
        
  3) Renamed instrument "statement/com/(stmt_info_new_packet)"
     to "statement/com/new_packet".
       
  4) Updated tests affected by the new instrumentation.
------------------------------------------------------------
revno: 5264 [merge]
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: topush-5.6
timestamp: Fri 2013-06-28 13:40:52 +0200
message:
  Manual merge of bug#16589511 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.154
    committer: Mattias Jonsson <mattias.jonsson@oracle.com>
    branch nick: topush-5.5
    timestamp: Fri 2013-06-28 13:18:16 +0200
    message:
      Bug#16589511: MYSQL_UPGRADE FAILS TO WRITE OUT ENTIRE
      ALTER TABLE ... ALGORITHM= ... STATEMENT
      
      The problem was an intermediate buffer of smaller size,
      which truncated the alter statement.
      
      Solved by providing the size of the buffer to be allocated through
      the function call, instead of using an one-size-fits-all stack buffer
      inside the function.
------------------------------------------------------------
revno: 5263
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-bug16988012valgrind
timestamp: Fri 2013-06-28 10:24:31 +0200
message:
  Bug#16988012 RQG_OPT_SUBQUERY_VALGRIND DETECTED UNINITIALIZED VAR ITEM_FIELD::VAL_STR
  
  Do not mark_as_null_row() for const tables in JOIN::clear()
  
  This is a regression from
  Bug#16620047 INCORRECT QUERY RESULT (AFTER SERVER UPGRADE)
------------------------------------------------------------
revno: 5262
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-06-28 09:27:11 +0200
message:
  Bug#16960800: RANGE OPTIMIZER BELIEVES THAT GEOM FUNCTIONS
                      RETURN ROWID ORDERED RESULTS
        
  The range optimizer needs to know if the rows returned from a
  range scan are ordered on ROWID. Multiple indexes that have
  this property can be intersected or union'ed.
        
  However, the range optimizer believes that any GEOM function
  on a spatial index returns rows in ROWID order. This is not
  correct. The result is that the range optimizer may choose to
  do index merge intersect or index merge union involving a
  spatial index. This may in turn result in missing rows.
  
  The fix is to let ha_myisam::index_flags() return the
  HA_KEY_SCAN_NOT_ROR bit for spatial indexes.
------------------------------------------------------------
revno: 5261
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6
timestamp: Thu 2013-06-27 21:37:12 +0200
message:
  fix for pb2
------------------------------------------------------------
revno: 5260
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6
timestamp: Thu 2013-06-27 10:47:41 +0200
message:
  Fix for Bug#16961803 UNION OF DERIVED TABLES RETURNS WRONG RESULTS WITH "1=0/FALSE"-CLAUSES
  (almost a copy of Roy's suggestion - thanks!).
  Bug introduced by revid:guilhem.bichot@oracle.com-20121124143402-g8wueuzfm4hm8br1 .
  There already existed some logic so that if we are optimizing SELECT2
  in SELECT1 ... FROM (SELECT2)
  we never set best_rowcount to zero or one unless we are sure that this
  count is exact.
  Indeed a count of zero or one has the consequence that SELECT1 treats
  the derived table as constant, a decision which cannot be rolled back,
  and which leads to catastrophic consequences if, when we later
  materialize, the derived table turns out to not have the anticipated
  row count.
  The logic in question forgot to apply itself to this case:
  SELECT1 ... FROM (SELECT2 UNION SELECT3 etc.)
------------------------------------------------------------
revno: 5259
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-27 16:46:44 +0200
message:
  BUG#16916596 Post push fix
------------------------------------------------------------
revno: 5258
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-27 16:30:15 +0800
message:
  Need have_debug.inc for i_innodb/innodb_fts_misc.test
------------------------------------------------------------
revno: 5257 [merge]
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-27 10:11:06 +0200
message:
  - null merge from 5.5 to 5.6
    ------------------------------------------------------------
    revno: 2875.437.153
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-06-27 10:08:30 +0200
    message:
      Updated copyright year in the spec file
------------------------------------------------------------
revno: 5256 [merge]
committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-27 09:55:56 +0200
message:
   Null merge from 5.5 to 5.6, updated the spec file for 5.6.13 release
   - Added changelog entries
    ------------------------------------------------------------
    revno: 2875.437.152
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-06-27 09:18:48 +0200
    message:
      - Spec file cleanup for 5.5.33 release to resolve rpm dependencies bugs
      
      Bug16785036 - RPM REQUIRES: MISSING PACKAGES ON RHEL 6 (AND PROBABLY 5)
      Bug 16878042 - CANNOT KEEP SEVERAL MAJOR VERSIONS OF MYSQL IN THE SAME YUM REPOSITORY
    ------------------------------------------------------------
    revno: 2875.437.151
    committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-06-26 11:43:44 +0200
    message:
      Cleaned up spec file for 5.5.33 release
------------------------------------------------------------
revno: 5255
committer: Roy Lyseng <roy.lyseng@oracle.com>
branch nick: mysql-5.6-sb2
timestamp: Thu 2013-06-27 08:50:06 +0200
message:
  Bug#16369522: Assertion failed: !tables || thd->lex->is_query_tables_locked()
  
  The server exits when presented with a query like the following
  
  SELECT (SELECT 1 FROM t1) IN (SELECT a FROM t1);
  
  when attempting to evaluate the constant left-hand argument to the
  IN subquery predicate. This constant evaluation occurs already in
  Item_in_subselect::fix_fields(), through the call convert_constant_item().
  
  Even though the subquery is const, we do not allow execution of subqueries
  before tables have been locked.
  
  The problem is the Item_cache object that is used to wrap the left-hand
  argument to the IN predicate. It does not propagate the correct const-ness
  attributes, and hence the resolver thinks it is safe to evaluate the
  subquery. This happens because the Item_cache is not a first class
  Item object. Among other things, it does not have a fix_fields()
  function. Instead, it relies on ad-hoc code to assign values to
  attributes such as used_tables() and const_item().
  
  In this particular use of Item_cache, it also adjusts used_tables
  information for the left-hand expression: During subquery transformation,
  the left-hand expression and the expressions selected from the subquery
  are converted to an equality that is attached to the subquery's query
  block. Originally, the LHE is resolved in scope of the outer query block
  and thus has used_tables information relative to this, but this
  information has to be replaced with an OUTER_REF indicator when being
  attached to the inner query block. The Item_cache object took care of
  this by explicitly setting the OUTER_REF bit when a table was referenced
  in the LHE.
  
  However, when building the equality predicate, an Item_direct_ref
  object is always used to wrap the included expressions. This object
  can naturally handle the OUTER_REF by setting depended_from for the
  object to the outer query block (together with select_lex->context
  pointing to the inner query block).
  
  The implementation of Item_ref::const_item() returns FALSE for all
  objects that have non-zero used_tables() which is true because the
  OUTER_REF indicator is set, and hence early evaluation is prevented.
  
  Notice also that const items need not be designated as outer.
  Ignoring those occurrences was required to preserve multiple equality
  handling for equalities involving constant values.
  
  We have a change in EXPLAIN for the following type of query:
  
  SELECT col_varchar_key
  FROM t1
  WHERE ((SELECT i1 FROM t0 WHERE i1 = 7),
         (SELECT i1 FROM t0 WHERE i1 = 2)) NOT IN
      (SELECT col_int_key, col_int_nokey FROM t2);
  
  When transforming the NOT IN subquery using IN-TO-EXISTS, the subqueries in
  the left hand side are tested for const-ness. The tests fail because tables are not yet locked at this point. Hence, left->depended_from is set to the outer
  query block.
  
  As a result, in get_store_key(), a store_key_item is created instead of a
  store_key_const_item, which causes explain_ref_key() to print "func" for
  the key reference instread of "const".
  
  A similar query is causing change in
  mysql-test/suite/opt_trace/r/bugs_no_prot_none.result.
  
  sql/item.h
    Class Item_cache needed a specific implementation of
    resolved_used_tables() that forwarded the call to the example member.
  
  sql/item_cmpfunc.cc
    In Item_in_optimizer::fix_left(), used tables setting for cache object
    could be simplified.
  
  sql/item_subselect.cc
    In Item_in_subselect::single_value_transformer() and
    Item_in_subselect::row_value_in_to_exists_transformer, when wrapping
    the left-hand expressions in an Item_direct_ref object, set the
    depended_from field of the Item_direct_ref to point to the query block
    where the subquery predicate is located, unless the expression is const.
------------------------------------------------------------
revno: 5254
committer: Roy Lyseng <roy.lyseng@oracle.com>
branch nick: mysql-5.6-sb3
timestamp: Wed 2013-06-26 16:15:01 +0200
message:
  Bug#16436383: Crash in Item_ident::fix_after_pullout
  
  The problem occurs because an Item_aggregate_ref object contains
  something that I thought was illegal:
  
    depended_from != NULL && context->select_lex == depended_from
  
  Usually, if depended_from is non-NULL, it points to a query block that
  is different from context->select_lex, but in this case they are equal.
  
  Because of this, the loop in Item_ident::fix_after_pullout() that
  iterates over all nested query blocks from context->select_lex
  to depended_from will never find the end criterion and is thus likely
  to fail.
  
  However, the reason for this is that the aggregation of set
  functions in a subquery, where the set function is placed more than 2
  levels from the qualifying query, is wrong. This query with the
  outer query as the qualifying query and the inner-most subquery
  containing the set operation is OK (the query blocks are 2 levels apart):
  
  SELECT (SELECT (SELECT COUNT(ot.a) FROM t1) ) FROM t1 AS ot;
  
  The SQL standard tells that the aggregation of COUNT(ot.a) should be
  performed in the "inner-most qualifying query" of the set function,
  and the qualifying query for the column reference ot.a is the
  outer-most query.
  
  However, if we extend the statement with another subquery, so that the
  inner query is at level 3 (the outer-most query is at level 0), then
  the code in Item_sum::register_sum_func() will attach the query to
  the second inner-most query block instead of the outer-most block.
  
  Item_sum::register_sum_func() is modified so that it will attach the
  set function to the outer-most query block where the function can be
  aggregated. (If there are more than one outer reference in such set
  function, the set function should be aggregated on the inner-most level,
  where each level is calculated as described above).
  
  I am not convinced that the current identification of aggregation query
  block is correct - I think that sometimes we accept invalid queries.
  However, this bug fix must be pushed now because of BPS. I will follow
  up with a new bug report that spots invalid aggregation queries
  (if I find them).
  
  include/my_global.h
    Changed nesting_map to always be a 64-bit data type. Thus, there will
    be no platform issues concerning this type.
    Validated on mysql-5.6-itch.
  
  mysql-test/r/select_all.result
  mysql-test/r/select_all_bka.result
  mysql-test/r/select_all_bka_nixbnl.result
  mysql-test/r/select_icp_mrr.result
  mysql-test/r/select_icp_mrr_bka.result
  mysql-test/r/select_icp_mrr_bka_nixbnl.result
  mysql-test/r/select_none.result
  mysql-test/r/select_none_bka.result
  mysql-test/r/select_none_bka_nixbnl.result
    Updated earlier wrong plans because of the aggregation placement bug.
  
  sql/item_sum.cc
    In Item_sum::register_sum_func(), update the way that query block
    for an Item_sum object is calculated.
    Also added some simple refactoring:
    - master_unit()->outer_select() replaced with synonym outer_select()
    - logic simplified so if statement is made redundant.
------------------------------------------------------------
revno: 5253
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-26 17:16:48 +0530
message:
  BUG#16904035 SHOW STATUS - EXCESSIVE LOCKING ON
  LOCK_ACTIVE_MI AND ACTIVE_MI->RLI->DATA_LOCK
  
  Fixing a post push issue in test script
------------------------------------------------------------
revno: 5252
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-26 13:09:49 +0200
message:
  BUG#16916596: Post-push fix
------------------------------------------------------------
revno: 5251
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-26 15:08:04 +0800
message:
  Fix Bug#16834860 - FTS: CRASH AFTER RENAMING TABLE TO DIFFERENT DATABASE
  
  rb://2480 approved by Inaam
------------------------------------------------------------
revno: 5250 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-26 10:04:33 +0530
message:
  Null merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.150
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-06-26 10:02:42 +0530
    message:
      Bug #16994338 PARSING TAP OUTPUT OF UNIT TEST EXPLAIN_FILENAME-T FAILS
      
      Problem:
      
      The problem is that explain_filename-t is not printing a test plan as
      required by the TAP protocol. The test invokes plan(NO_PLAN) but does not
      invoke exit_status() at the end, where the plan would be printed.
      
      Solution:
      
      Invoke exit_status() at the end.
------------------------------------------------------------
revno: 5249
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Tue 2013-06-25 08:54:02 +0200
message:
  Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18
  
  Post-push fix: remove some debug output.
------------------------------------------------------------
revno: 5248
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-25 08:34:10 +0200
message:
  Bug#16916596: "ORDER BY...LIMIT" OPTIMIZATION CHOSE
                NON-ORDERING INDEX
  
  Consider a table with a compound index "idx (kp1, kp2, kp3)"
  and the query "SELECT ... ORDER BY kp3 LIMIT x".
  
  For this query, the optimizer may decide that although index 'idx'
  did not seem like the best way to access the table in the first
  place, it may still be a good index when LIMIT is taken into
  account iff index 'idx' gives correct ordering. The reason is
  that even an expensive index (index that produces too many
  rows) like 'idx' may be cheap if execution is allowed to exit
  early due to the LIMIT.
  
  However, for index 'idx' to provide sorted rows, the query
  must have equality predicates on kp1 and kp2. In this bug,
  the query only had equality predicate on kp1. Even so, the
  ORDER BY... LIMIT optimization was used to switch to index
  'idx', effecively chosing a much worse index without achieving
  the intention.
  
  The fix is to only consider indexes that provide correct
  ordering. This previously worked for single keypart indexes but
  not multiple keypart indexes. However, instead of adding yet
  another if() block, all the tests for applicable ORDER BY...
  LIMIT indexes in make_join_select() are replaced by a call to
  test_if_order_by_key() which exists for the very same
  purpose - to answer the question "does this index provide
  ordered output".
------------------------------------------------------------
revno: 5247
committer: Anitha Gopi <anitha.gopi@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-25 07:26:42 +0200
message:
  Removed running in embedded mode with 4k and 8k page size as agreed in discussion with developer.
  Removed debug-server runs with embedded since we do not build debug version of embedded server
  Fixed a typo
------------------------------------------------------------
revno: 5246 [merge]
committer: bin.x.su@oracle.com
branch nick: mysql-5.6
timestamp: Tue 2013-06-25 11:50:18 +0800
message:
  Null merge from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.437.149
    committer: bin.x.su@oracle.com
    branch nick: mysql-5.5-bug16876388
    timestamp: Tue 2013-06-25 09:42:54 +0800
    message:
      Bug 16876388 - PLEASE BACKPORT BUG#16208542 TO 5.5
      
      Straight forward backport.
      
      Approved by Jimmy, rb#2656
------------------------------------------------------------
revno: 5245
committer: bin.x.su@oracle.com
branch nick: mysql-5.6
timestamp: Tue 2013-06-25 10:03:56 +0800
message:
  Null merge from 5.5
------------------------------------------------------------
revno: 5244
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Mon 2013-06-24 17:15:35 +0200
message:
  Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18
  
  With this patch, the libmysql/ directory contains:
  libmysqlclient.a
  libmysqlclient_r.a -> libmysqlclient.a
  libmysqlclient_r.so -> libmysqlclient.so*
  libmysqlclient_r.so.18 -> libmysqlclient.so.18*
  libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0*
  libmysqlclient.so -> libmysqlclient.so.18*
  libmysqlclient.so.18 -> libmysqlclient.so.18.1.0*
  libmysqlclient.so.18.1.0*
------------------------------------------------------------
revno: 5243
committer: Oystein Grovlen <oystein.grovlen@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 14:11:43 +0200
message:
  Bug#16434374 - INCORRECT RESULTS FOR FULL TEXT USING IN BOOLEAN
                 MODE ( INNODB ONLY )
  
  Addendum:  Hardcode engine when creating tables for InnoDB.
  Including have_innodb.inc does not change default engine
  in embedded mode.
------------------------------------------------------------
revno: 5242
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 16:47:38 +0530
message:
  Bug#15831300 SLAVE_TYPE_CONVERSIONS=ALL_NON_LOSSY NOT
  WORKING AS EXPECTED
  
  Problem: In RBR format, slave_type_conversions='ALL_NON_LOSSY'
  was not working properly in some cases like 'int unsigned'
  column at master was altered directly on slave into
  'bigint signed/bigint unsigned'.
  
  Analysis: In RBR format, when there is a datatype mismatch
  and it is smaller datatype->larger datatype, slave
  checks whether `slave_type_conversions` set contains
  'ALL_NON_LOSSY' or not. If it contains 'ALL_NON_LOSSY', it
  allows the conversion. In the process of converting the data
  from smaller datatype value to larger datatype value,
  slave prepares a conversion temporary table for all the
  mismatched columns. The column signedness information is not
  transferred from master to slave. Hence for this temporary
  table columns, slave treated signedness of the column as
  'signed' for all the columns. Due to this treatment, any data
  for unsigned column at master was creating issues at slave
  (correct data was not getting inserted).
  
  Fix: Introduced two values in slave_type_conversions set
  'ALL_SIGNED' and 'ALL_UNSIGNED'. This value tells the slave
  how to treat the values which are coming from master
  If 'ALL_SIGNED' is set, then treat all integer type column
  data as signed values (default behaviour). If 'ALL_UNSIGNED'
  is set, then treat all integer type column data as unsigned
  values. If both 'ALL_SIGNED','ALL_UNSIGNED' are specified,
  then 'ALL_SIGNED' will take higher priority than 'ALL_UNSIGNED'.
  Eg: SET slave_type_conversions='ALL_NON_LOSSY,ALL_UNSIGNED'.
------------------------------------------------------------
revno: 5241 [merge]
committer: Vasil Dimov <vasil.dimov@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 14:02:21 +0300
message:
  Merge mysql-5.5 -> mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.148
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-06-24 13:56:11 +0300
    message:
      Fix nondeterminism in innodb_bug16417635.test
------------------------------------------------------------
revno: 5240
committer: Krunal Bauskar krunal.bauskar@oracle.com
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 11:50:36 +0530
message:
  - bug#16066351: valgrind: uninitialized value when parsing weird table names
    - Restart the server to ensure clearing of stale entries introduce due to
      failure of create table statement.
------------------------------------------------------------
revno: 5239 [merge]
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug16753869_mysql-5.6
timestamp: Mon 2013-06-24 11:30:42 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.147
    committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
    branch nick: Bug16753869_mysql-5.5
    timestamp: Mon 2013-06-24 11:11:55 +0530
    message:
      Bug#16753869:INCORRECT TRUNCATION OF LONG SET EXPRESSION IN
      LOAD DATA CAN CAUSE SQL INJECTION
      
      Problem:
      =======
      A long SET expression in LOAD DATA is incorrectly truncated
      when written to the binary log.
      
      Analysis:
      ========
      LOAD DATA statements are reconstructed once again before
      they are written to the binary log. When SET clauses are
      specified as part of LOAD DATA statement, these SET clause
      user command strings need to be stored as it is inorder to
      reconstruct the original user command.  At present these
      strings are stored as part of SET clause item tree's
      top most Item node's name itself which is incorrect. As an
      Item::name can be of MAX_ALIAS_NAME (256) size. Hence the
      name will get truncated to "255".
      
      Because of this the rewritten LOAD DATA statement will be
      terminated incorrectly.  When this statment is read back by
      the mysqlbinlog tool it reads a starting single quote and
      continuos to read till it finds an ending quote. Hence any
      statement written post ending quote will be considered as
      a new statement.
      
      Fix:
      ===
      As name field has length restriction the string value
      should not be stored in Item::name.  A new String list is
      maintained to store the SET expression values and this list
      is read during reconstrution.
------------------------------------------------------------
revno: 5238
committer: Krunal Bauskar krunal.bauskar@oracle.com
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 11:15:22 +0530
message:
  - bug#16066351: valgrind: uninitialized value when parsing weird table names
    Test case needs debug variable setting. Added prerequisite for the same.
------------------------------------------------------------
revno: 5237 [merge]
committer: Prabeen Pradhan <prabeen.pradhan@oracle.com>
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 10:49:21 +0530
message:
  Bug#169900529 :Move nist suite to internal
    ------------------------------------------------------------
    revno: 2875.437.146
    committer: Prabeen Pradhan <prabeen.pradhan@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-06-24 10:42:40 +0530
    message:
      Bug#169900529 :Move nist suite to internal
------------------------------------------------------------
revno: 5236
committer: Krunal Bauskar krunal.bauskar@oracle.com
branch nick: mysql-5.6
timestamp: Mon 2013-06-24 09:53:13 +0530
message:
  - bug#16066351: valgrind: uninitialized value when parsing weird table names
  
    Initial checkin corrected the fix but failed to remove stale entries/files
    causing issues while these files are listed using list_files command.
    Corrected TCs to remove the stale table entries/files.
------------------------------------------------------------
revno: 5235
committer: Libing Song <libing.song@oracle.com>
branch nick: mysql-5.6
timestamp: Sun 2013-06-23 09:55:39 +0800
message:
  Bug#16878043 SEMI-SYNC REPLICATION IS VERY SLOW WITH MANY CLIENTS
  
  if rpl_semi_sync_master_timeout is set to a huge value,
  semi-synchronous replication becomes very slow, especially when
  many sessions are working parallel. semisync code uses a loop method
  to calculate woken time, before it starts to wait. Bigger
  rpl_semi_sync_master_timeout value causes more interations.
  
  In the patch, an effective method is used instead of the original
  method to calculate woken time. And the code is moved out the wait loop,
  so it is executed only once before starting the wait loop.
------------------------------------------------------------
revno: 5234
committer: Bjorn Munch <bjorn.munch@oracle.com>
branch nick: openfile-56
timestamp: Sat 2013-06-22 14:54:16 +0200
message:
  Bug #16990423 SOME TESTS FOR TABLE CACHE VARIABLES FAIL IF OPEN FILES LIMIT IS TOO LOW
  
    Make affected tests skip if open_files_limit < 5000
    Modified backport from trunk
------------------------------------------------------------
revno: 5233
committer: Bjorn Munch <bjorn.munch@oracle.com>
branch nick: main-56
timestamp: Fri 2013-06-21 20:33:48 +0200
message:
  Emergency fix: test i_innodb.innodb_bug16066351 freezes windows tests
------------------------------------------------------------
revno: 5232
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Fri 2013-06-21 15:51:28 +0200
message:
  Sql_condition::set_subclass_origin() did
  memcmp("MySQL", STRING_WITH_LEN("ISO 9075"))
  which is undefined behaviour
  
  Solution: refactor set_class_origin() and set_subclass_origin()
  into one function set_class_origins()
------------------------------------------------------------
revno: 5231 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Fri 2013-06-21 15:31:44 +0200
message:
  merge 5.5 => 5.6
    ------------------------------------------------------------
    revno: 2875.437.145
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5
    timestamp: Fri 2013-06-21 14:18:01 +0200
    message:
      Bug#16945503 ADDRESSSANITIZER BUG IN SYS_VARS
      Sys_var_keycache inherits from some variant of Sys_var_integer
      
      Instances of Sys_var_keycache are initialized using the KEYCACHE_VAR macro,
      which takes an offset within st_key_cache.
      However, the Sys_var_integer CTOR treats the offset as if it was within
      global_system_variables (hidden within some layers of macros and fuction
      pointers)
      
      The result is that we write arbitrary data to arbitrary locations in memory.
      This all happens during static initialization of global objects,
      i.e. before we have even entered the main() function.
      
      
      Bug#12325449 TYPO IN CMAKE/DTRACE.CMAKE
      Fix typo in dtrace.cmake
------------------------------------------------------------
revno: 5230
committer: Krunal Bauskar krunal.bauskar@oracle.com
branch nick: mysql-5.6
timestamp: Fri 2013-06-21 16:37:05 +0530
message:
  - bug#16066351: valgrind: uninitialized value when parsing weird table names
  
    While printing UTF-8 table name, innodb was truncating the table-name
    then lead to half-cooked buffer causing valgrind issue.
    Infact with newly introduce debug error point we also see issue of improper
    error message.
  
    Buffer allocation constant needed update to new constant defined in univ.i
  
    Added test-case to cover the same.
  
    Approved by: Jimmy (rb#2691)
------------------------------------------------------------
revno: 5229
committer: Norvald H. Ryeng <norvald.ryeng@oracle.com>
branch nick: mysql-5.6-16319671
timestamp: Fri 2013-06-21 10:33:06 +0200
message:
  Bug#16319671 RE-EXECUTE PROCEDURE, CRASH IN ITEM_FIELD::USED_TABLES
  
  Problem: Transforming some subqueries that select date/time types or
  BIGINT to semijoin crashes the server on second execution of prepared
  statements or stored programs.
  
  In JOIN::flatten_subqueries() during the first execution, the server
  switches to the statement mem root.
  
  The semijoin transformation in convert_subquery_to_semijoin() creates
  an Item_func_eq with an Item_singlerow_subselect on the right hand
  side. For this Item_func_eq, Item_func::fix_fields() calls
  Item_bool_func2::fix_length_and_dec(), which calls
  Item_bool_func2::convert_constant_arg(). If the field given as
  parameter is a date or time type or BIGINT, convert_constant_item() is
  called to replace the item with an integer. This conversion results in
  execution of the subquery to evaluate is_null().
  
  During this subquery execution, JOIN::optimize() switches to the
  statement mem root before converting outer joins to inner joins. The
  statement mem root is already the current mem root, so this is a
  switch from the statement mem root to the statement mem root. The mem
  root switch takes a backup copy of the current thd->free_list and
  copies thd->stmt_arena->free_list to thd->free_list. JOIN::optimize()
  then calls conds->real_item()->copy_andor_structure(thd), which
  creates a new set of Item_cond_and and Item_cond_or objects, and these
  are added to thd->free_list. JOIN::optimize() then switches back to
  the old mem root, so thd->free_list is copied to
  thd->stmt_arena->free_list and the old thd->free_list is restored from
  the backup copy.
  
  When JOIN::flatten_subqueries() is done, it switches back from the
  statement mem root to the execution mem root, so thd->free_list is
  copied to thd->stmt_arena->free_list. This means that the
  Item_cond_and and Item_cond_or objects created during subquery
  optimization are lost from the free_list.
  
  After the first execution, cleanup_items() is called to reset
  Item::fixed of all items in the statement free_list. The Item_cond_and
  and Item_cond_or objects that were lost from the free_list are not
  reset.
  
  During preparation for the second execution, fix_fields() will not be
  called on already fixed items. Item_fields that are descendants of
  lost Item_cond_and or Item_cond_or objects are therefore not
  resolved. Later, the server crashes when trying to dereference a null
  pointer of an unresolved Item_field,
  
  Fix: In JOIN::optimize(), replace manual mem root switching with
  Prepared_stmt_arena_holder. The Prepared_stmt_arena_holder will test
  if the statement mem root is already active before switching.
------------------------------------------------------------
revno: 5228
committer: Oystein Grovlen <oystein.grovlen@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-20 15:31:42 +0200
message:
  Bug#16434374 - INCORRECT RESULTS FOR FULL TEXT USING IN BOOLEAN
                 MODE ( INNODB ONLY )
  
  Fix parameter name that gave warning with Sun compiler
------------------------------------------------------------
revno: 5227
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-20 12:03:40 +0800
message:
  BUG#16927092 - ASSERT RANKING->WORDS, FTS SELECT BOOLEAN MODE
  
  Analysis & Solution:
  Regression of bug#16516193:LITERAL PHRASES CANNOT BE COMBINED WITH + OR - OPERATOR
  
  We should not assert(ranking->words != NULL) in fts_query_intersect_doc_id,
  because we can check the same doc id here more than once.
  
  rb#2680 approved by Jimmy Yang.
------------------------------------------------------------
revno: 5226
committer: Oystein Grovlen <oystein.grovlen@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-19 15:06:32 +0200
message:
  Bug#16434374 - INCORRECT RESULTS FOR FULL TEXT USING IN BOOLEAN
                 MODE ( INNODB ONLY )
  
  Unlike, MyISAM, InnoDB does not support Boolean full text search (FTS) on
  non-indexed columns.  Before this fix, code allowed non-indexed columns
  in MATCH expression for BOOLEAN mode, but not for NATURAL LANGUAGE mode.
  This patch fixes this issue by restricting the exception for BOOLEAN mode to
  only apply to MyISAM and not to InnoDB.
  
  This is patch is a bit ad-hoc in the way it determines whether to allow
  non-indexed columns or not.  It exploits the fact that InnoDB supports
  an extended FTS API, while MyISAM does not.  In other words, non-indexed
  columns are only allowed if the storage engine does NOT support the
  extended FTS API.
  
  A side effect of this patch is that when reporting an error due to
  non-indexed columns in MATCH expression, we will no longer distinguish
  between tables without any fulltext indexes and tables with no applicable
  fulltext indexes.  In the first case, the error used to be
  ER_TABLE_HAS_NO_FT.  Now, one will get ER_FT_MATCHING_KEY_NOT_FOUND in
  both cases.  This matches the existing behavior of NATURAL LANGUAGE mode
  for both InnoDB and MyISAM.
------------------------------------------------------------
revno: 5225
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6
timestamp: Wed 2013-06-19 12:41:31 +0200
message:
  Fix valgrind errors in unit tests.
  
  How to repeat:
  valgrind --leak-check=full <executable> --gtest_filter="-*DeathTest*" > foo
------------------------------------------------------------
revno: 5224
committer: Sergey Glukhov <sergey.glukhov@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-19 14:24:08 +0400
message:
  Bug#16620047 INCORRECT QUERY RESULT (AFTER SERVER UPGRADE)
  Regression is introduced in Bug11760517. According to the
  comment for the Bug11760517 fix, there is an additional cleanup
  in field.h(Field::is_null() function):
  Field::is_null() now checks table->null_row before checking
  the NULL bits.
  
  Order of NULLity checking is changed, firts it checks table->null_row
  and then null_ptr[row_offset]. In our case when we evaluate first
  result record, evaluate_null_complemented_join_record() function
  is called for outer table and it sets table->null_row to true.
  Then second result record field uses table->null_row to check
  if the field is null and result is NULL instead of real value.
  
  The fix is partial reversion of the field.h change
  (return original order of NULL check). Unfortunately this
  is not sufficient. A lot of test fails in the main suite
  after reversion. It happens because of another additional
  cleanup introduced Bug11760517 fix(see the comment):
     @ sql/table.h
       mark_as_null_row() no longer sets the NULL bits of the buffer
        
  Reversion of this change fixes all the problems except one, test case
  for Bug13541761 which is actually another regression of Bug11760517 fix.
  The fix of this problem is to not touch TABLE::null_flags during
  JOIN::cleanup.
------------------------------------------------------------
revno: 5223 [merge]
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-19 15:01:20 +0530
message:
  Bug#11829813  UNUSED MUTEX COMMIT_THREADS_M
  
  [Merge from 5.5]
    ------------------------------------------------------------
    revno: 2875.437.144 [merge]
    committer: Aditya A <aditya.a@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-06-19 14:55:46 +0530
    message:
      Bug#11829813  UNUSED MUTEX COMMIT_THREADS_M
      
      [Merge from 5.1]
        ------------------------------------------------------------
        revno: 2661.876.47
        committer: Aditya A <aditya.a@oracle.com>
        branch nick: mysql-5.1
        timestamp: Wed 2013-06-19 14:43:15 +0530
        message:
          Bug#11829813  UNUSED MUTEX COMMIT_THREADS_M
          
          Analysis
          --------
          The pthread_mutex commit_threads_m was initiliazed but never
          used.
          
          Fix
          ---
          Removing the commit_threads_m mutex from the code base.
          
          [ Approved by Marko rb#2475]
------------------------------------------------------------
revno: 5222 [merge]
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-push
timestamp: Tue 2013-06-18 22:00:19 +0200
message:
  Local merge
    ------------------------------------------------------------
    revno: 5208.1.1
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-5.6-bug16939689
    timestamp: Fri 2013-06-14 13:48:10 +0200
    message:
      Bug#16939689 VALGRIND ERROR IN PFS_SPAWN_THREAD
      
      Before this fix, valgrind errors could be reported under stress tests.
      
      In particular, the following line in pfs_spawn_thread()
        memcpy(pfs->m_username, parent->m_username, sizeof(pfs->m_username));
      
      could cause memcpy to be called for the same source and destination,
      which should not happen.
      
      The root cause, by analysis, is that the code is reading attributes
      from the parent thread, while the parent thread instrumentation is already
      destroyed (and was reused for the child, triggering valgrind complaints).
      
      The fix is to capture all the parent attributes needed:
      - the thread internal id
      - the thread user name
      - the thread host name
      in the parent thread, before spawning a child,
      and use that to initialize the child instrumentation,
      instead of pasing a pointer that might become invalid.
------------------------------------------------------------
revno: 5221 [merge]
committer: Vasil Dimov <vasil.dimov@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-18 17:14:27 +0300
message:
  Null merge mysql-5.5 -> mysql-5.6 (Bug#16907783 does not exist in 5.6)
    ------------------------------------------------------------
    revno: 2875.437.143
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-06-18 17:12:28 +0300
    message:
      Fix Bug#16907783 5.5 STILL CRASHES IN DICT_UPDATE_STATISTICS WITH CONCURRENT
      DDL AND I_S QUERIES
      
      Skip partially created indexes (ones whose name starts with TEMP_INDEX_PREFIX)
      from stats gathering.
      
      Because InnoDB reports HA_INPLACE_ADD_INDEX_NO_WRITE to MySQL, the latter
      allows parallel execution of ha_innobase::add_index() and ha_innobase::info().
      
      Reviewed by: Inaam (rb:2613)
------------------------------------------------------------
revno: 5220
committer: Vasil Dimov <vasil.dimov@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-18 15:35:25 +0300
message:
  Backport vasil.dimov@oracle.com-20130611080934-zr5a0d41aucsyvs5 from
  mysql-trunk into mysql-5.6:
  
    * revision-id: vasil.dimov@oracle.com-20130611080934-zr5a0d41aucsyvs5
    * committer: Vasil Dimov <vasil.dimov@oracle.com>
    * branch nick: mysql-trunk
    * timestamp: Tue 2013-06-11 11:09:34 +0300
    * message:
    *   Fix Bug#16369955 MYSQL_INSTALL_DB EXITS WITH "UNKNOWN/UNSUPPORTED STORAGE
    *   ENGINE: INNODB"
    *
    *   Do not try to create mysql.innodb_table_stats and mysql.innodb_index_stats
    *   during mysql_install_db time if InnoDB is not present (not compiled in).
------------------------------------------------------------
revno: 5219 [merge]
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-18 15:50:30 +0530
message:
  Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
               TO INCONSISTENCY
  
  [ Disabling the test for valgrind ]
    ------------------------------------------------------------
    revno: 2875.437.142 [merge]
    committer: Aditya A <aditya.a@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-06-18 15:49:13 +0530
    message:
      Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
                   TO INCONSISTENCY
      
      [ Disabling the test for valgrind ]
        ------------------------------------------------------------
        revno: 2661.876.46
        committer: Aditya A <aditya.a@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-06-18 15:48:00 +0530
        message:
          Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
                       TO INCONSISTENCY
          
          [ Disabling the test for valgrind ]
------------------------------------------------------------
revno: 5218
committer: Roy Lyseng <roy.lyseng@oracle.com>
branch nick: mysql-5.6-sb2
timestamp: Tue 2013-06-18 11:18:04 +0200
message:
  Bug#16316564: Crash in do_copy_not_null()
  
  The problem here is a failure in do_copy_not_null() because the pointer
  copy->from_null_ptr is NULL, and hence accessing its contents fails.
  If we look at the similar function do_copy_null(), it has been enhanced
  with a NULL pointer check for the same pointer.
  The pointer is NULL for any field that is originally not nullable, but
  we may still have a NULL value because of the table->null_row
  technique, used for outer-joined tables. The table t2 is semi-joined
  to the table t1 (alias z), which is outer-joined, hence it also gets
  the outer-join capability, and do_copy_null() has to be used even though
  the field is originally not nullable.
  
  I expect the missing NULL pointer check in do_copy_not_null() to be
  an oversight, and adding it indeed fixes the problem.
  
  sql/field_conv.cc
    In do_copy_not_null(), add NULL pointer check for copy->from_null_ptr.
------------------------------------------------------------
revno: 5217
committer: Prabeen Pradhan <prabeen.pradhan@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-18 11:42:49 +0530
message:
  Bug#16917425 : added check to skip tests where few tests were failing in absence of plugin
------------------------------------------------------------
revno: 5216 [merge]
committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-18 10:22:47 +0530
message:
  Merge from 5.5 to 5.6
    ------------------------------------------------------------
    revno: 2875.437.141
    committer: Thayumanavar <thayumanavar.x.sachithanantha@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-06-18 10:20:30 +0530
    message:
       BUG#14081240 - THREAD POOL BASED CONNECTIONS CAUSE
                      ABORTED_CLIENTS TO BE INCREMENTED.
      PROBLEM AND FIX:
      The global status indicate Aborted_clients increment
      when thread pool connections are gracefully terminated.
      The thd killed flag is set for all connection cleanup. The
      fix is not to set thd killed in tp_full_cleanup so that
      Aborted_clients doesn't increment for normal client disconnects.
------------------------------------------------------------
revno: 5215
committer: Mattias Jonsson <mattias.jonsson@oracle.com>
branch nick: b16657588-56
timestamp: Fri 2013-06-14 12:46:41 +0200
message:
  Bug#16657588: VARIABLE OPEN_FILES_LIMIT DOES NOT
  SHOW MAXIMUM NUMBER OF OPEN FILES
  
  The read-only system variable open_files_limit did not
  show maximum number of open files the mysqld process
  could have, but instead the number that was requested
  after adjusting the start-up option open_files_limit.
  
  Fixed by adding internal variable for propagating
  the requested number of files, since that was used
  for adjusting other start-up options. And set
  the read-only system variable open_files_limit
  to the real maximum value.
------------------------------------------------------------
revno: 5214 [merge]
committer: bin.x.su@oracle.com
branch nick: mysql-5.6
timestamp: Mon 2013-06-17 10:55:20 +0800
message:
  Fix for test case failure in weekly-trunk regression
  Not to assume the pages, whose page type is INDEX, with NULL index_name
  and table_name won't exist during the test
  Approved by Jimmy in mail
    ------------------------------------------------------------
    revno: 2875.437.140
    committer: bin.x.su@oracle.com
    branch nick: mysql-5.5
    timestamp: Mon 2013-06-17 10:49:53 +0800
    message:
      Fix for test case failure in weekly-trunk regression
      Not to assume the pages, whose page type is INDEX, with NULL index_name
      and table_name won't exist during the test
      Approved by Jimmy in mail
------------------------------------------------------------
revno: 5213 [merge]
committer: kevin.lewis@oracle.com
branch nick: mysql-5.6
timestamp: Fri 2013-06-14 13:47:22 -0500
message:
  Merge of Bug#16914007 from mysql-5.5
    ------------------------------------------------------------
    revno: 2875.437.139
    committer: kevin.lewis@oracle.com
    branch nick: mysql-5.5
    timestamp: Fri 2013-06-14 13:33:37 -0500
    message:
      Bug#16914007-INNODB: CHECK TABLE SHOULD MARK AN INDEX AS CORRUPTED
      IF IT HAS A WRONG COUNT
      
      If CHECK TABLE finds that a secondary index contains the wrong
      number of entries, it used to report an error but not mark the
      index as corrupt. The error means that the index should be rebuilt,
      which can be done with ALTER TABLE DROP INDEX and ALTER TABLE ADD
      INDEX.  But just in case the DBA does not pay any attention to the
      output of CHECK TABLE, the secondary index should be marked as
      corrupted so that it is not used again.
      
      Approved by Inaam in RB:2607
------------------------------------------------------------
revno: 5212 [merge]
committer: kevin.lewis@oracle.com
branch nick: mysql-5.6
timestamp: Fri 2013-06-14 12:33:31 -0500
message:
  Merge Bug#16914007 from mysql-5.5.
  The testcase for innodb_bug14707452 was changed to also test
  this scenario since the ability to introduce this kind of corruption
  existed in mysql-5.6+.
    ------------------------------------------------------------
    revno: 2875.448.1
    committer: kevin.lewis@oracle.com
    branch nick: mysql-5.5
    timestamp: Fri 2013-06-14 09:29:04 -0500
    message:
      Bug#16914007-INNODB: CHECK TABLE SHOULD MARK AN INDEX AS CORRUPTED
      IF IT HAS A WRONG COUNT
      
      If CHECK TABLE finds that a secondary index contains the wrong
      number of entries, it used to report an error but not mark the
      index as corrupt. The error means that the index should be rebuilt,
      which can be done with ALTER TABLE DROP INDEX and ALTER TABLE ADD
      INDEX.  But just in case the DBA does not pay any attention to the
      output of CHECK TABLE, the secondary index should be marked as
      corrupted so that it is not used again.
      
      Approved by Inaam in RB:2607
------------------------------------------------------------
revno: 5211
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Fri 2013-06-14 17:37:44 +0200
message:
  Bug#16945343 ADDRESSSANITIZER BUG IN DBUG.C
  
  Remove the #undef SAFE_MUTEX
  With the undef, debug.o and thread utilitis in mysys
  have different ideas about the size and contents of a mutex.
  
  We were writing out-of-bounds in my_rw_init() here:
  #ifdef SAFE_MUTEX
    rwp->write_thread   = 0;
  #endif
------------------------------------------------------------
revno: 5210 [merge]
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.6-merge
timestamp: Fri 2013-06-14 16:57:08 +0200
message:
  merge 5.5 -> 5.6
    ------------------------------------------------------------
    revno: 2875.437.138
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5
    timestamp: Fri 2013-06-14 16:38:27 +0200
    message:
      Bug#14834378 ADDRESSSANITIZER BUG IN FILENAME_TO_TABLENAME
      Backport to 5.5
    ------------------------------------------------------------
    revno: 2875.437.137
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.5
    timestamp: Fri 2013-06-14 10:52:23 +0200
    message:
      Bug#16729109: FIX COMPILATION WARNINGS WITH GCC 4.8
      Backport to 5.5
      (external Bug#69407 Build warnings with mysql)
------------------------------------------------------------
revno: 5209 [merge]
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-06-14 16:56:55 +0530
message:
  Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
  
  [ Disabling the test for embedded server ]
    ------------------------------------------------------------
    revno: 2875.437.136 [merge]
    committer: Aditya A <aditya.a@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-06-14 16:55:37 +0530
    message:
      Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
      
      [ Disabling the test for embedded server ]
        ------------------------------------------------------------
        revno: 2661.876.45
        committer: Aditya A <aditya.a@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-06-14 16:44:49 +0530
        message:
          Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
          
          [ Disabling the test for embedded server ]
------------------------------------------------------------
revno: 5208 [merge]
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-push
timestamp: Fri 2013-06-14 11:44:02 +0200
message:
  Push to mysql-5.6
    ------------------------------------------------------------
    revno: 5202.1.2 [merge]
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-5.6-bug16945618
    timestamp: Fri 2013-06-14 11:42:16 +0200
    message:
      Local merge
    ------------------------------------------------------------
    revno: 5202.1.1
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-5.6-bug16945618
    timestamp: Thu 2013-06-13 10:59:26 +0200
    message:
      Bug#16945618 PERFORMANCE SCHEMA, DEGRADATION UNDER STRESS WHEN INTERNAL
      BUFFERS ARE FULL
      
      The performance schema uses internal buffers of a fixed size.
      The size comes from configuration options.
      
      When the sizing is adequate for the workload, things work properly.
      
      When the sizing is too tight for the workload, the performance schema
      spends a lot of time in an internal spin loop to attempt to allocate a memory
      buffer, and fails.
      
      Before this bug, this spin loop would happen for each call to instrument an
      object, which can be a very frequent operation.
      
      With this fix, when a failure to allocate memory is noticed, a flag is set
      that indicates the corresponding buffer is full.
      
      Subsequent call to allocate memory from the same buffer will fail
      immediately, avoiding the need for a spin loop that fill fail anyway.
      
      When an object is released, the corresponding buffer is not flagged as full
      any more, indicating that memory allocation can be attempted again.
      
      With this fix, when running the performance schema with undersized buffers,
      the functional result is unchanged: some events are lost and reported as
      such. What is changed is that the performance degradation in this mode,
      which could be catastrophic in some cases, is now avoided.
------------------------------------------------------------
revno: 5207 [merge]
committer: Aditya A <aditya.a@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-06-14 11:41:32 +0530
message:
  Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
               TO INCONSISTENCY
  [Merge from 5.5]
    ------------------------------------------------------------
    revno: 2875.437.135 [merge]
    committer: Aditya A <aditya.a@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-06-14 11:28:29 +0530
    message:
      Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
                   TO INCONSISTENCY
      [Merge from 5.1]
        ------------------------------------------------------------
        revno: 2661.876.44
        committer: Aditya A <aditya.a@oracle.com>
        branch nick: mysql-5.1
        timestamp: Fri 2013-06-14 11:22:05 +0530
        message:
          Bug#13548704 ALGORITHM USED FOR DROPPING PARTITIONED TABLE CAN LEAD
                       TO INCONSISTENCY
          
          PROBLEM
          --------
          When we drop a partitoned table , we first gather the
          information about partitions in the table from the
          table_name.par file and store it in an internal data
          structure.Then we delete this file and the data in
          the table. If the server crashes  after deleting the
          file,then after recovering we cannot access the table
          .Even we cannot drop the table ,because drop algorithm
          requires par file to read the partition information.
          
          
          FIX
          ---
          1. We move the part of deleting par file after deleting
             all the table data from the storage egine.
          2. During drop operation if we detect that the par
             file is missing then we delete the .frm file,since
             there is no way of recovering without par file.
            
          [Approved by Mattias rb#2576 ]   
------------------------------------------------------------
revno: 5206
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-06-14 10:03:53 +0530
message:
  The test case i_innodb.innodb_bug16417635 must run only for
  innodb page size of 16k.  For other page sizes, the inspected
  buffer pool pages will vary.  So including have_innodb_16k.inc
  to this test case.
------------------------------------------------------------
revno: 5205
committer: Praveenkumar Hulakund <praveenkumar.hulakund@oracle.com>
branch nick: mysql_5_6
timestamp: Thu 2013-06-13 18:36:30 +0530
message:
  Bug#16078943: ZERO DATE CAN BE INSERTED IN STRICT NO-ZERO MODE
                THROUGH A DEFAULT VALUE.
  
  Analysis:
  -------------
  The problem was that the default values for a table were
  checked for consistency only at CREATE TABLE time. The
  consistency checks very much depend on the sql_mode value.
  The default values were not checked at the INSERT/UPDATE
  time. Thus, if sql_mode became strict in the middle between
  CREATE TABLE and INSERT/UPDATE, inconsistent data can be put
  into the table.
  
  So here, when sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE,
  STRICT_ALL_TABLE'(strict mode) then creating table with
  default "value 0" or default "value having 0 in date" for
  field types DATE/DATETIME/TIMESTAMP" is not allowed. But when
  sql_mode is "NO_ZERO_IN_DATE,NO_ZERO_DATE" or "" (non-strict mode),
  tables can be created.
  
  If table with default "value 0" or default "value having 0 in
  date" for field DATE/DATETIME/TIMESTAMP is created in non-strict
  mode and tuple for the table is inserted with default for
  DATE/DATETIME/TIMESTAMP fields in strict mode then no error or
  warning is generated.
  
  While inserting/updating tuple(s), we are not validating the
  default values. While creating the table the default value set
  might be correct but same values might not be correct while
  inserting/updating the tuple (one of the reason is sql_mode).
  
  Fix:
  -------------
  Added a logic to verify the default values while inserting
  or updating a tuple.
  
  Currently the TIMESTAMP data type differs in nonstandard
  ways from other data types. But this behavior can be
  turned off using "explicit_defaults_for_timestamp" system
  variable at server startup. With this patch, old behavior
  of TIMESTAMP data type is not changed. But with
  "explicit_defaults_for_timestamp", logic is added to
  verify the default value while inserting or updating
  a tuple.
  
  With this, behavior of insert or update with default values
  for DATE/DATETIME/TIMESTAMP is as below,
  
  +---------------+------------+----------------+-------------+
  |               |            |                |             |
  |TYPE/sql_mode  | ""         |NO_ZERO_DATE/   |strict_mode  |
  |        value  |            |NO_ZERO_IN_DATE |             |
  |---------------+------------+----------------+-------------|
  |DATE           | Success    | Warning        | Error       |
  |---------------|------------|----------------|-------------|
  |DATETIME       | Success    | Warning        | Error       |
  |---------------|------------|----------------|-------------|
  |TIMESTAMP      |            |                |             |
  |+ explicit_-   |            |                |             |
  |  defaults_-   |            |                |             |
  |  for_-        | Success    | Success        | Success     |
  |  timestamp    |            |                |             |
  |  = false      |            |                |             |
  |(for           |            |                |             |
  | backward      |            |                |             |
  | compatibility)|            |                |             |
  |---------------|------------|----------------|-------------|
  |TIMESTAMP      |            |                |             |
  |+ explicit_-   |            |                |             |
  |  defaults_-   | Success    | Warning        | Error       |
  |  for_-        |            |                |             |
  |  timestamp    |            |                |             |
  |  = true       |            |                |             |
  |               |            |                |             |
  +-----------------------------------------------------------+
  
  
  Summary of discussion on impact on Replication:
  -----------------------------------------------
  
  *. Found following impact on replication if this issue is
     fixed,
  
     Older master (bug is there) --> Newer slave (bug is fixed)
  
     Let's assume sql_mode is propagated properly between the
     master and slaves. I.e. at any point in time the master
     and slaves have the same sql_mode value.
  
     The following sequence is permitted on the master:
       - sql_mode = ''
       - CREATE TABLE t1 (f1 int,
                          f2 DATE DEFAULT 0,
                          f3 DATETIME DEFAULT 0,
                          f4 TIMESTAMP DEFAULT 0);
       - set sql_mode='NO_ZERO_DATE,NO_ZERO_IN_DATE,
                       STRICT_ALL_TABLES';
       - INSERT INTO t1(f1) VALUES (10);
  
     The result of this sequence on the master is a new record:
        { 0, 0, 0, 0 }
     (that is the bug, because of effective NO_ZERO_DATE &
      NO_ZERO_IN_DATE).
  
     On the slave, the INSERT statement will fail (because the
     bug is fixed on the slave), thus the replication will stop.
  
  *. Approaches identified after discussing with Replication team,
     Runtime team and support are,
  
    1. Introduce a switch to relax the sql_mode during an
       upgrade on the slave. But:
  
       - This switch is effectively overriding the SQL_MODE from
         the master, thence all sorts of different things can
         go wrong.
       - This switch is only necessary for upgrades, which have
         a solid workarounds: using RBR or relaxing the SQL_MODE
         on the master.
       - Introducing another switch requires double testing and
         is error prone, since users may use it for other cases
         than upgrades and then we will get all sort of weird
         bug reports...
       - This approach does not scale in terms of development
         and maintenance. The use case does not seem to be worth
         it this kind of approach.
  
    2. Introduce another switch as in suggestion #1, that makes
       the slave behave as the master just for the sole purpose
       of a set of SQL_MODE combinations. Same problems as
       suggestion #1.
  
    3. Document that during upgrades, the master needs to relax
       the sql_mode or switch to RBR, but note the following
       restrictions:
  
       - user needs to wait for the old binary logs to be consumed
         before actually be able to upgrade the slaves (so that
         there is no slave still replicating "old" binlogs after
         it is upgraded)
       - user needs to cope with side effects of relaxing the
         sql_mode or use RBR during the upgrade period.
  
  After considering the risk involved in the approach 1 and 2, its
  decided to go with approach 3.
  
  Attached discussion mails in the bug report.
------------------------------------------------------------
revno: 5204 [merge]
committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-13 15:59:33 +0530
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.134
    committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-06-13 11:14:13 +0530
    message:
      Bug #16417635 INNODB FAILS TO MERGE UNDER-FILLED PAGES DEPENDING
      ON DELETION ORDER
      
      Problem:
      
      When a InnoDB index page is under-filled, we will merge it with either
      the left sibling node or the right sibling node.  But this checking is
      incorrect.  When the left sibling node is available, even if merging
      is not possible with left sibling node, we do not check for the
      possibility of merging with the right sibling node.  
      
      Solution:
      
      If left sibling node is available, and merging with left sibling node
      is not possible, then check if merge with right sibling node is
      possible.
      
      rb#2506 approved by jimmy & ima.
------------------------------------------------------------
revno: 5203
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-13 17:40:13 +0800
message:
  Exclude test innodb_bug16072440.test from embedded platform, since
  the server restart does not work well on the platform
------------------------------------------------------------
revno: 5202
committer: Venkatesh Duggirala<venkatesh.duggirala@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-12 21:41:05 +0530
message:
  BUG#16904035-SHOW STATUS - EXCESSIVE LOCKING ON LOCK_ACTIVE_MI AND
  ACTIVE_MI->RLI->DATA_LOCK
  
  Problem: Excessive locking on lock_active_mi and rli->data_lock
  while executing any `show status like 'X'` command.
  
  Analysis: SHOW_FUNCs for Slave_running, Slave_retried_transactions,
  Slave_heartbeat_period, Slave_received_heartbeats,
  Slave_last_heartbeat are acquiring lock_active_mi and rli->data_lock
  to show their variable value. It is ok to show stale data while showing
  the status variables i.e., even if they miss one update, it will
  not cause any great trouble.
  
  Fix: Remove the locks from the above mentioned SHOW_FUNC functions.
------------------------------------------------------------
revno: 5201
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-12 18:35:04 +0800
message:
  Add a pre-emptive server restart to test innodb_bug16072440, to avoid
  spill the warning of orphan fts aux table to other tests.
------------------------------------------------------------
revno: 5200 [merge]
committer: Sivert Sorumgard <sivert.sorumgaard@oracle.com>
branch nick: 5.6-14227431
timestamp: Wed 2013-06-12 10:02:00 +0200
message:
  Manual merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.133
    committer: Sivert Sorumgard <sivert.sorumgaard@oracle.com>
    branch nick: 5.5-14227431
    timestamp: Wed 2013-06-12 09:35:33 +0200
    message:
      Bug #14227431: CHARACTER SET MISMATCH WHEN ALTERING FOREIGN KEYS
      CAN LEAD TO MISSING TABLES
      
      Overview
      --------
      If the FOREIGN_KEY_CHECKS system variable is set to 0, it is
      possible to break a foreign key constraint by changing the type
      or character set of the foreign key column, or by dropping the
      foreign key index (without carrying out corresponding changes on
      another table in the relationship).
      
      If we subsequently set FOREIGN_KEY_CHECKS to 1 and execute ALTER
      TABLE involving the COPY algorithm on such a table, the following
      happens:
      
      1) If ALTER TABLE does not contain a RENAME clause, the attempt
         to install the new version of the table instead of the old one
         will fail due to the fact that the inconsistency will be
         detected. An attempt to revert the partially executed alter
         table operation by restoring the old table definition will
         fail as well due to FOREIGN_KEY_CHECKS == 1. As a result, the
         table being altered will be lost.
      2) If ALTER TABLE contains the RENAME clause, the inconsistency
         will not be detected (most probably due to other bugs). But if
         an attempt to install the new version of the table fails (for
         example, due to a failure when updating triggers associated
         with the table), reverting the partially executed alter table
         by restoring the old table definition will fail too. So the
         table being altered might be lost as well.
      
      
      Suggested fix
      -------------
      The suggested fix is to temporarily unset the option bit
      representing FOREIGN_KEY_CHECKS when the old table definition is
      restored while reverting the partially executed operation.
------------------------------------------------------------
revno: 5199 [merge]
committer: Saikumar V <saikumar.v@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-12 12:07:18 +0530
message:
  Null Merge
  From mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.132
    committer: Saikumar V <saikumar.v@oracle.com>
    branch nick: mysql-5.5
    timestamp: Wed 2013-06-12 12:00:44 +0530
    message:
      Adding rqg grammars to internal folder
------------------------------------------------------------
revno: 5198
committer: Saikumar V <saikumar.v@oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-12 11:11:46 +0530
message:
  Updated rqg grammars files in internal folder.
------------------------------------------------------------
revno: 5197
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug16625973
timestamp: Tue 2013-06-11 21:59:55 +0800
message:
  Fix innodb_fts.innodb_fts_result_cache_limit failure on daily trunk.
  
  Approved by Jimmy Yang.
------------------------------------------------------------
revno: 5196
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6
timestamp: Tue 2013-06-11 13:40:24 +0200
message:
  Bug#16314835 "WITH ROLLUP" CAUSES: DUPLICATE ENTRY 'NULL' FOR KEY '<AUTO_KEY>'
  Bad result in 5.1/5.5, strange error in 5.6
  => disable ROLLUP+DISTINCT, with meaningful error.
  DISTINCT is often useless with GROUP BY anyway.
  Of the modified testcases, most are for internally-reported bugs.
  ROLLUP+ORDER is already disabled.
------------------------------------------------------------
revno: 5195
committer: Guilhem Bichot <guilhem.bichot@oracle.com>
branch nick: 5.6
timestamp: Tue 2013-06-11 13:37:20 +0200
message:
  Fix for
  Bug#16739050 PREPARED STATEMENT: CRASH IN ITEM_REF::REAL_ITEM OR PURE
  VIRTUAL FUNCTION CALL
  and 2 duplicates:
  don't reach to real items when creating prep_having. Details:
  
  First, let's review some bugs fixed in older 5.6 versions.
  ==========================================================
  
  About the fix for 12603457 and 12603141:
  WHERE condition is "WHERE field".
  JOIN::conds is made, by change_item_tree(), to point to item_outer_ref
  which points to item_field.
  At fix_prepare_information() we do:
    prep_where= JOIN::conds
  When we rollback_item_tree_changes(), we restore conds, which does not
  modify prep_where (only JOIN::conds was registered in the "list of
  changes to roll back"...).
  When next execution starts reinit_stmt_before_use() copies prep_where
  into select_lex->where, which thus gets the now-destroyed
  item_outer_ref, later this crashes.
  Solution which was chosen: make reinit_stmt_before_use() copy
  prep_where->real_item(), to reach to the field, avoiding the
  now-destroyed item_outer_ref.
  For uniformity, the same was done for prep_having.
  
  About the fix for 12582849: (cousin of above)
  WHERE condition is OR.
  One argument of OR is made to point to item_outer_ref which points to
  item_field.
  At JOIN:: optimize:
    prep_where= copy of conds => makes a copy of OR (a new item_cond_or).
  When we rollback_item_tree_changes(), we restore one pointer argument
  of the original OR, which does not modify the pointer argument of the
  copy of this OR (do not modify prep_where); the now-destroyed
  item_outer_ref remains in prep_where. Then it crashes at next
  execution.
  Solution which was chosen: make the copy code (copy_andor_structure)
  use real_item().
  
  About the fix for Bug #16163596:
  regression caused by the fix for 12603457 and 12603141.
  In sql_yacc, "HAVING a" leads to the creation of an Item_ref named
  "a". In having->fix_fields(), we find that "a" is actually a field, so
  we make the Item_ref's ref point to this field.
  At next execution, reinit_stmt_before_use()  uses real_item() which
  makes the HAVING be item_field, not Item_ref anymore. This Item_ref
  should have staid, it's a permanent, parse-time item.
  There should never be Item_field in HAVING, see how sql_yacc creates
  Item_ref instead of Item_field if in HAVING.
  Removing this item_ref confused ROLLUP.
  Solution which was chosen: undo the HAVING part of the fix for
  12603457 and 12603141.
  
  Now the new bugs.
  =================
  
  16317817:
  HAVING condition is OR.
  We resolve GROUP BY:
  - initially order->item points to order->item_ptr which contains (per
  parser) Item_field.
  - in find_order_in_list(), *order_item (i.e. order->item_ptr) is made
  to point to item_outer_ref, this change done in fix_fields() goes
  through register_item_tree_change().
  - again in find_order_in_list(), we append this item to
  ref_pointer_array, and make order->item point to this new cell of the
  array.
  One argument of OR in HAVING is item_ref (per parser).
  We resolve HAVING: this argument of OR is made to reference
  order->item (id est: the ref_pointer_array cell which references the
  item of GROUP BY). Keep in mind that Item_ref is Item**, not Item*.
  Then we rollback_item_tree_changes(), which effectively restores
  order->item_ptr.
  reinit_stmt_before_use() restores order -> item to point to order ->
  item_ptr. So GROUP BY is fine.
  But the item_ref in HAVING still references the cell of
  ref_pointer_array which was not restored.
  reinit_stmt_before_use()  makes a copy of HAVING, which uses
  copy_andor_structure, which reaches to the real items
  (per the fix for 12582849), but as HAVING is "item_ref to destroyed
  item_outer_ref to item_field", this crashes.
  If it would not reach to the real item, the copy would stop at the
  item_ref, then the soon-coming name resolution would create a new
  item_outer_ref and point the item_ref to it, all fine.
  
  16739050: similar to above
  
  16317685:
  HAVING condition is OR.
  In HAVING, one Item_ref is made to reference COUNT;
  reinit_stmt_before_use(),  using copy_andor_structure() which uses
  real_item(), changes HAVING to COUNT, then ROLLUP crashes.
  
  PROPOSED SOLUTION
  =================
  
  Avoid using real_item() in copy_andor_structure() when copying HAVING,
  because it's only causing problems.
  Keep real_item() when copying WHERE, in 5.6. We cannot remove it,
  because of the "second copy" done in JOIN::optimize():
      sel->prep_where=
  conds ? conds->copy_andor_structure(thd, true) : NULL;
  which creates new AND/OR items which "argument pointers" will not be properly restored
  (re-read 12582849 above), thus forcing us to reach to the real items.
  In WL#7082 (5.7), the second copy will go away, so real_item() can be
  removed (done in my prototype).
------------------------------------------------------------
revno: 5194
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-11 14:26:57 +0200
message:
  BUG#14615536 Followup.
  
  opt_range.cc:append_range_all_keyparts() is now needed in
  non-debug builds, so the function must be compiled in
  unconditionally.
------------------------------------------------------------
revno: 5193
committer: Jorgen Loland <jorgen.loland@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-11 12:18:33 +0200
message:
  Bug#14615536: OPTIMIZER TRACE PRINTS RANGES FOR
                NON-APPLICABLE KEYPARTS
  
  Before, the "ranges [...]" part of optimizer trace would include
  ranges for keyparts that were not usable by range access. Two
  such cases have been found:
  
  WHERE keypart1 < const AND keypart2 ...
  (or any other non-equality operator for keypart1)
    => keypart2 is not applicable for range access because
       the operator on keypart1 is not equality, but optimizer
       tracing would print the range for keypart2 anyway
  
  WHERE keypart1 = const AND keypart3 ...
    => keypart3 is not applicable for range access because
       there are no predicates for keypart2, but optimizer
       tracing would print the range for keypart3 anyway
  
  Both issues are fixed by this CS.
------------------------------------------------------------
revno: 5192
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql_5.6
timestamp: Tue 2013-06-11 08:50:33 +0200
message:
  Fixing the bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS
------------------------------------------------------------
revno: 5191 [merge]
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql_5.6
timestamp: Mon 2013-06-10 22:44:22 +0200
message:
  Null merging the changes from 5.5 related to bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS
    ------------------------------------------------------------
    revno: 2875.437.131
    committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
    branch nick: mysql-5.5
    timestamp: Mon 2013-06-10 22:29:41 +0200
    message:
      Fixing the bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS
------------------------------------------------------------
revno: 5190 [merge]
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.6
timestamp: Tue 2013-06-11 01:23:02 +0530
message:
  Upmerging the changes from 5.1 for the bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS
    ------------------------------------------------------------
    revno: 2875.437.130 [merge]
    committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
    branch nick: mysql-5.5
    timestamp: Tue 2013-06-11 01:20:25 +0530
    message:
      Upmerging the changes from 5.1 for the bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS
        ------------------------------------------------------------
        revno: 2661.876.43
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-06-11 01:13:07 +0530
        message:
          Bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS
------------------------------------------------------------
revno: 5189
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug16625973
timestamp: Sun 2013-06-09 16:40:57 +0800
message:
  BUG#16625973 - RED-BLACK TREE HOLDING THE FTS RESULTS COULD CONSUME TOO MUCH MEMORY
  
  Analysis:
  We deal with fts intermediate result and final result all in memory,
  so if the result is hunders of millions, fts query will consumes large
  amount of memory, several GB. 300bytes for a matched doc in our experiment.
  
  Solution:
  Due to the fts framework of optimizer & innodb, we can't find a easy way to
  reduce the memory consumption. so we will create WL to address it in future.
  
  In the patch, we do the following two things:
  1. Change "words" in fts_ranking_t from "ib_rbt_t" to array. this can save
  about 200 bytes for a matched doc.
  2. Set a cap for the memory consumption. if the query uses as much memory
  as the cap, it will receive a error "fts query exceeds max allowed memory".
  
  rb://2387 approved by Jimmy Yang
------------------------------------------------------------
revno: 5188
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug16885178
timestamp: Sun 2013-06-09 16:19:35 +0800
message:
  BUG#16885178 - INNODB FULLTEXT PHRASE SEARCH VALGRIND ERROR
  
  The root cause is that we copy 1 byte out of the boundary in
  as we can see from 'fts_utf8_string_dup', because type 'byte'
  doesn't grantee its end is '0'.
  
  rb://2586 approved by Jimmy Yang.
------------------------------------------------------------
revno: 5187
committer: Shaohua Wang <shaohua.wang@oracle.com>
branch nick: mysql-5.6-bug12429565
timestamp: Sun 2013-06-09 14:44:12 +0800
message:
  BUG#12429565 - FTS: INDEX IS MISSING FROM THE DATA DICTIONARY DURING TRUNCATE
  
  The solution is avoiding logging 'index missing' in 'dict_truncate_index_tree'
  when the index is a fts index.
  
  rb://2581 approved by Jimmy Yang.
------------------------------------------------------------
revno: 5186
committer: Nuno Carvalho <nuno.carvalho@oracle.com>
branch nick: mysql-5.6
timestamp: Sat 2013-06-08 09:26:59 +0100
message:
  BUG#16918216: RPL.RPL_ALTER_REPOSITORY TEST FAILING FOR 5.6
  
  rpl_alter_repository was failing sporadically because a previous test,
  rpl_stm_mixed_mts_rec_crash_safe_small, didn't clean all configurations
  changes during its execution, these changes were causing result content
  mismatch on rpl_alter_repository.
  
  To ensure that all configurations are reverted, now we restart servers
  after rpl_*_mts_*_crash_safe_* tests.
------------------------------------------------------------
revno: 5185 [merge]
committer: Olav Sandstaa <olav.sandstaa@oracle.com>
branch nick: 5.6-merge
timestamp: Fri 2013-06-07 21:43:41 +0200
message:
  Merge from mysql-5.5 to mysql-5.6
    ------------------------------------------------------------
    revno: 2875.437.129
    committer: Olav Sandstaa <olav.sandstaa@oracle.com>
    branch nick: 5.5-fix
    timestamp: Fri 2013-06-07 21:34:34 +0200
    message:
      Bug #16917425  -DBUILD_CONFIG=MYSQL_RELEASE -DWITH_DEBUG=ON FAILS 4 AND SKIPS 27 MTR TESTS
      
      Revert fix since it caused mtr tests to not run in pushbuild.
------------------------------------------------------------
revno: 5184 [merge]
committer: sayantan dutta <sayantan.dutta@oracle.com>
branch nick: mysql-5.6
timestamp: Fri 2013-06-07 19:30:59 +0530
message:
  Bug 16917425 5.5=> 5.6
    ------------------------------------------------------------
    revno: 2875.437.128
    committer: sayantan dutta <sayantan.dutta@oracle.com>
    branch nick: mysql-5.5
    timestamp: Fri 2013-06-07 19:29:56 +0530
    message:
      Bug #16917425  -DBUILD_CONFIG=MYSQL_RELEASE -DWITH_DEBUG=ON FAILS 4 AND SKIPS 27 MTR TESTS
------------------------------------------------------------
revno: 5183
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-push
timestamp: Fri 2013-06-07 10:53:30 +0200
message:
  Warning cleanup
------------------------------------------------------------
revno: 5182 [merge]
committer: Marc Alff <marc.alff@oracle.com>
branch nick: mysql-5.6-push
timestamp: Fri 2013-06-07 10:40:32 +0200
message:
  Merge
    ------------------------------------------------------------
    revno: 5178.1.2 [merge]
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-5.6-bug16576980
    timestamp: Fri 2013-06-07 09:52:32 +0200
    message:
      Local merge
    ------------------------------------------------------------
    revno: 5178.1.1
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-5.6-bug16576980
    timestamp: Thu 2013-06-06 12:02:35 +0200
    message:
      Bug#16576980 SESSION_CONNECT_ATTRS: SPORADIC PARTIAL RESULTS FOR BUSY CONNECTIONS
      
      Prior to this fix, some rows in table session_connect_attrs
      would be sporadically missing, when the session executes a workload.
      
      The root cause is due to several factors.
      
      1)
      Table session_connect_attrs ::make_row() relies on
      PFS_thread::m_lock
      to decide if the session and session attributes do exist of not.
      
      2)
      PFS_thread::m_lock is also modified during a thread execution under load,
      in particular for each statement with set_thread_command_v1()
      and set_thread_start_time_v1()
      
      As a result, setting a statement command and start time causes spurious
      failures in table session_connect_attrs.
      
      The fix is to be more strict about usage of atomic locks,
      and in particular the purpose of each lock.
      
      3)
      PFS_thread::m_lock is not only for thread creation / destruction.
      
      Any other use of this lock create similar spurious failures in every table
      that scans threads, affecting every _by_thread, _by_account, _by_host,
      and _global summary tables.
      
      4)
      For long lived (session) based attributes, such as session_connect_attrs,
      but also for PROCESSLIST_USER and PROCESSLIST_HOST, use a dedicated
      PFS_thread::m_session_lock.
      
      5)
      For short lived (statement) based attributes,
      such as PROCESSLIST_INFO and PROCESSLIST_DB,
      use a dedicated lock.
      
      This lock existed before, and has been renamed
      to PFS_thread::m_stmt_lock, now also used for PROCESSLIST_DB.
      
      6)
      For basic attributes like m_command or m_start_time,
      using a PFS_lock is overkill, the data can be sanitized instead.
      
      This fix removed the usage of PFS_lock for command and start time,
      which also is a performance improvement, reducing the overhead.
      
      Overall, with this fix, a session executing under load,
      which puts stress on m_stmt_lock.
      does not indirectly cause spurious failures in
      session_connect_attrs (using m_session_lock),
      or other tables only looking at threads (m_lock).
------------------------------------------------------------
revno: 5181 [merge]
committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-06 15:59:11 +0200
message:
  Null merging the changes of 5.1 branch
    ------------------------------------------------------------
    revno: 2875.437.127 [merge]
    committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
    branch nick: mysql-5.5
    timestamp: Thu 2013-06-06 15:47:55 +0200
    message:
      Null merging the changes of 5.1 branch
        ------------------------------------------------------------
        revno: 2661.876.42 [merge]
        author: murthy.narkedimilli@oracle.com
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2013-06-04 18:17:58 +0200
        message:
          Merge from mysql-5.1.70-release
            ------------------------------------------------------------
            revno: 2661.880.5
            tags: mysql-5.1.70
            committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
            branch nick: mysql-5.1.70-release
            timestamp: Mon 2013-05-13 15:26:11 +0200
            message:
              Merging the changes for Build failure issues from mysql-5.1
            ------------------------------------------------------------
            revno: 2661.880.4
            committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
            branch nick: mysql-5.1.70-release
            timestamp: Mon 2013-05-13 15:22:49 +0200
            message:
              Merging the changes for build failures in windows.
            ------------------------------------------------------------
            revno: 2661.880.3
            committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
            branch nick: mysql-5.1.70-release
            timestamp: Fri 2013-05-10 15:27:03 +0200
            message:
              Merging the changes which fixes the build issue for Windows Builds.
              Description:
               Fixing a build issue.  The function innobase_convert_to_system_charset()
               is included only in the builtin InnoDB, and it is missed in InnoDB
               plugin.  Adding this function in InnoDB plugin as well.
            ------------------------------------------------------------
            revno: 2661.880.2
            committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
            branch nick: mysql-5.1.70-release
            timestamp: Tue 2013-05-07 09:14:51 +0200
            message:
              Updated spec file to ignore upgrade error message
            ------------------------------------------------------------
            revno: 2661.880.1
            committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
            branch nick: mysql-5.1.70-release
            timestamp: Tue 2013-05-07 08:10:09 +0200
            message:
              Merging the changes from 5.1 branch to release branch.
              Includes bug fixes for:
              Bug #16722314 FOREIGN KEY ID MODIFIED DURING EXPORT
              Bug #16754901 PARS_INFO_FREE NOT CALLED IN DICT_CREATE_ADD_FOREIGN_TO_DICTIONARY
    ------------------------------------------------------------
    revno: 2875.437.126 [merge]
    author: ramesh.maddali@oracle.com
    committer: Build Team <bteam@helheim>
    branch nick: mysql-5.5
    timestamp: Wed 2013-06-05 14:17:01 +0200
    message:
      Merge from mysql-5.5.32-release
        ------------------------------------------------------------
        revno: 2875.447.11
        tags: mysql-5.5.32
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Thu 2013-05-16 17:33:32 +0200
        message:
          Fix for BUG# 16812255: Removing the --random-password option
          which is supported only for MYSQL server versions 5.6 and above.
        ------------------------------------------------------------
        revno: 2875.447.10
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Thu 2013-05-16 10:24:26 +0200
        message:
          Changes to verify the solaris upgrade issue.
        ------------------------------------------------------------
        revno: 2875.447.9
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Wed 2013-05-15 16:29:31 +0200
        message:
          Fixing the RPM-ULN build issue by ignoring the postinstall_check.sh.
        ------------------------------------------------------------
        revno: 2875.447.8
        committer: Murthy Narkedimilli <murthy.narkedimilli@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Wed 2013-05-15 15:37:20 +0200
        message:
          Bug 16812255 - 5.5.32 PKG INSTALLATION FAILED DURING MYSQL_INSTALL_DB EXECUTION
        ------------------------------------------------------------
        revno: 2875.447.7
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Mon 2013-05-13 10:21:09 +0200
        message:
          Updated copyright year information
        ------------------------------------------------------------
        revno: 2875.447.6
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Mon 2013-05-13 09:46:44 +0200
        message:
           Adding fix for Bug#16798868
        ------------------------------------------------------------
        revno: 2875.447.5
        committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Wed 2013-05-08 12:08:20 +0200
        message:
          Bug#16779374: NEW ERROR MESSAGE ADDED TO 5.5 AFTER 5.6 GA - REUSING
                        NUMBER ALREADY USED BY 5.6
          
          The problem was that the patch for Bug#13004581 added a new error
          message to 5.5. This causes it to use an error number already used
          in 5.6 by ER_CANNOT_LOAD_FROM_TABLE_V2. Which means that error
          message number stability between GA releases is broken.
          
          This patch fixes the problem by removing the error message and
          using ER_UNKNOWN_ERROR instead.
        ------------------------------------------------------------
        revno: 2875.447.4
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Tue 2013-05-07 14:36:46 +0200
        message:
          ULN-RPMs bug fix for BR16298542
        ------------------------------------------------------------
        revno: 2875.447.3
        committer: Annamalai Gurusami <annamalai.gurusami@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Mon 2013-05-06 20:31:26 +0530
        message:
          Bug #16722314 FOREIGN KEY ID MODIFIED DURING EXPORT
          Bug #16754901 PARS_INFO_FREE NOT CALLED IN DICT_CREATE_ADD_FOREIGN_TO_DICTIONARY
          
          Merging the fix from mysql-5.5 to mysql-5.5.32-release.
        ------------------------------------------------------------
        revno: 2875.447.2
        committer: Jon Olav Hauglid <jon.hauglid@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Mon 2013-05-06 16:06:32 +0200
        message:
          Bug#16757869: INNODB: POSSIBLE REGRESSION IN 5.5.31, BUG#16004999
          
          The problem was that if UPDATE with subselect caused a
          deadlock inside InnoDB, this deadlock was not properly
          handled by the SQL layer. This meant that the SQL layer
          would try to unlock the row after InnoDB had rolled
          back the transaction. This caused an assertion inside
          InnoDB.
          
          This patch fixes the problem by checking for errors
          reported by SQL_SELECT::skip_record() and not calling
          unlock_row() if any errors have been reported.
            
          This bug is similar to Bug#13586591, but for UPDATE
          rather than DELETE. Similar issues in filesort/opt_range/
          sql_select will be investigated and handled in the scope
          of Bug#16767929
        ------------------------------------------------------------
        revno: 2875.447.1
        committer: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
        branch nick: mysql-5.5.32-release
        timestamp: Mon 2013-05-06 15:19:37 +0200
        message:
          Updated spec file for Bug16488773
------------------------------------------------------------
revno: 5180
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-06 10:47:20 +0800
message:
  Fix Bug #16801781 - FULLTEXT SEARCH USING WORDS WITH APOSTROPHE (') DOES
  NOT WORK ON INNODB TABLES
  
  rb://2539 Approved by Sunny Bains
------------------------------------------------------------
revno: 5179
committer: Jimmy Yang <jimmy.yang@oracle.com>
branch nick: mysql-5.6
timestamp: Thu 2013-06-06 09:58:44 +0800
message:
  Fix Bug #16765397 - FTS: STILL SPAMMING THE ERROR LOG BASED ON USER QUERIES
  
  rb://2523 approved by Marko
------------------------------------------------------------
revno: 5178 [merge]
author: hery.ramilison@oracle.com
committer: MySQL Build Team <mysql-build@oss.oracle.com>
branch nick: mysql-5.6
timestamp: Wed 2013-06-05 14:02:14 +0200
message:
  Merge from mysql-5.6.12-release
    ------------------------------------------------------------
    revno: 5077.1.8
    tags: mysql-5.6.12
    committer: Tor Didriksen <tor.didriksen@oracle.com>
    branch nick: 5.6.12-release
    timestamp: Tue 2013-05-21 17:07:01 +0200
    message:
      Backport of fix for:
      Bug#69119 Bug#16760474 Wrong FOUND_ROWS() on MySQL 5.6.11