List:Commits« Previous MessageNext Message »
From:MySQL Build Team Date:November 19 2012 8:47am
Subject:bzr push into mysql-5.6 branch (mysql-build:4365 to 4458)
View as plain text  
 4458 Nirbhay Choubey	2012-10-15 {mysql-5.6.8}
      Updating MYSQL_VERSION_EXTRA.

    modified:
      VERSION
 4457 Nirbhay Choubey	2012-10-15
      Bug#13840553 - post-fix.

    modified:
      mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
      mysql-test/suite/parts/t/partition_basic_symlink_innodb.test
 4456 Nirbhay Choubey	2012-10-15
      Bug #14698309: 'MYSQLADMIN PASSWORD' IS INCOMPATIBLE WITH 
                     THE "PASSWORD EXPIRED" FLAG
      
      mysqladmin ... password ... was expecting that it can always execute
      commands other than SET PASSWORD against the server. And it was 
      using this opportunity to try to be smart and detect if "old" pre-4.1 
      passwords are being used by this server.
      If any of these commands failed it was just giving up.
      This is obviously incompatible with password expiration, as the only
      accepted command in this state would be SET PASSWORD. And this
      renders mysqldump .. password .. unusable as an option to update
      the password for such accounts.
      Fixed mysqldump to detect this particular error code sent by the 
      password expiration check and react by skipping the 
      auto-adjustment (and logging an warning about it if run with 
      --verbose) and trying its best according to the parameters supplied
      to it.
      
      Added a testcase.

    modified:
      client/mysqladmin.cc
 4455 Nirbhay Choubey	2012-10-12 {clone-5.6.8-build, clone-5.6.8-rc-build}
      Bug #14726722: "MYSQL_SECURE_INSTALLATION" IS INCOMPATIBLE WITH 
      THE "PASSWORD EXPIRED" FLAG
      
      mysql_secure_installation tries to be smart and update all the root account's
      passwords through manipulating the system tables directly and then 
      re-reading them.
      But since these statements are not in the list permitted in password expired
      mode this causes errors if the root account used to connect is marked as
      expired.
      Fixed by first issuing a SET PASSWORD statement for the connecting account
      to lift off the expiration flag for it.
      Also extended the mysql.user UPDATE statements to reset the expiration flag
      for all other root accounts.

    modified:
      scripts/mysql_secure_installation.pl.in
      scripts/mysql_secure_installation.sh
 4454 Jimmy Yang	2012-10-11
      Fix Bug #14748166 - SHOULD ALLOW OPEN TABLE WITH CORRUPT DICTIONARY (INDEX)
      FOR DROP
      
      rb://1395 approved by Marko

    modified:
      storage/innobase/dict/dict0load.cc
      storage/innobase/row/row0mysql.cc
 4453 Vasil Dimov	2012-10-10 [merge]
      Merge mysql-5.5 -> mysql-5.6

 4452 Dmitry Lenev	2012-10-10
      Fix for bug #14723364 "PRINT_KEYDUP_ERROR PRINTS DEFAULT VALUE
      INSTEAD OF NULL".
      
      In-place implementation of ALTER TABLE for InnoDB storage engine
      in some special cases can emit duplicate key error for NULL key
      values. When such a thing has happened NULL value was not properly
      shown in duplicate key error message, instead default value for
      column's type was shown.
      
      The problem was that KEY_PART_INFO structure, which describes key
      and which is used for printing key values by print_keydup_error()
      function, didn't have KEY_PART_INFO::null_offset/null_bit properly
      set. As result all such fields were treated as non-NULL and even
      though InnoDB layer properly set column value in a record to NULL,
      print_keydup_error() interpreted as a non-NULL value.
      Note that KEY_PART_INFO structure which is used in this case is
      specially constructed for in-place ALTER TABLE and describes parts
      of key in new version of table. KEY_PART_INFO which is normally used
      for other statements and which is constructed when table is opened
      is not affected by this code.
      
      This fix solves the problem by changing code in InnoDB "handler"
      layer to properly set KEY_PART_INFO::null_offset/null_bit members,
      along with KEY_PART_INFO::field member.
      
      There is no separate test case in this patch as to reproduce the
      problem one has to either rely on using DBUG_EXECUTE_IF macro or
      on buggy behavior which is likely to be changed in near future.

    modified:
      mysql-test/suite/innodb/r/innodb-index-online.result
      storage/innobase/handler/handler0alter.cc
 4451 Norvald H. Ryeng	2012-10-10
      Bug#14664077 SEVERE PERFORMANCE DEGRADATION IN SOME CASES WHEN USER
      VARIABLES ARE USED
      
      This is a regression introduced by the fix for bug #12408412.
      
      Problem: Performance regression when using SELECT ... INTO user
      variables and a WHERE condition on one or more variables in the INTO
      list.
      
      Since the fix for bug #12408412, Item_func_set_user_var objects for
      user variables that are in the INTO list are constructed by
      select_dumpvar::prepare(), which makes the Item_func_get_user_var
      objects for the same variables marked as non-const during optimization
      and execution. This leads to queries not taking advantage of
      optimizations that are possible when a user variable is constant
      throughout the query execution, even if the update only happens after
      the query has been executed. E.g., the optimizer may choose to do an
      index scan instead of an index lookup.
      
      Also, since the Item_func_set_user_var objects are created in
      select_dumpvar::prepare(), which is not called during EXPLAIN, the
      explained plan and the actual plan may be different, since the
      constness of Item_get_user_var objects may be different.
      
      Fix: Revert the change that marks user variables as non-const when
      used in the INTO list. This reintroduces bug #12408412.
      
      Problem in bug #12408412: A SELECT ... INTO query that stores the
      value of GROUP_CONCAT(@var) into @var crashes the server.
      
      The user variable in the SELECT list is represented by an
      Item_func_get_user_var. Item_func_get_user_var::const_item() returns
      true for this item throughout query optimization and execution since
      there are no Item_func_set_user_var items for the same variable.
      
      After query execution, in select_dumpvar::send_data(), an
      Item_func_set_user_var is created for the user variable in the INTO
      list. Item_func_set_user_var::fix_fields() calls
      Item_func_set_user_var::set_entry(), which sets update_query_id to the
      current query. This variable is used by
      Item_func_get_user_var::const_item() to determine if the variable is
      read and written in the same
      query. Item_func_set_user_var::save_item_result() is then called to
      store the result of GROUP_CONCAT, but
      Item_func_group_concat::val_str() calls walk() on its arguments with
      dump_leaf_key() as processor. In dump_leaf_key(), a decision is made
      on the constness of the Item_func_get_user_var(), which is now
      different from what it was during optimization and execution, and the
      server crashes while trying to dereference a null pointer.
      
      Fix: Add a new variable Item_func_set_user_var::delayed_non_constness
      that controls when update_query_id is set:
      
        false: by Item_func_set_user_var::fix_fields(), or
        true:  at the end of Item_func_set_user_var::save_item_result(),
               when the item has been evaluated.
      
      This allows select_dumpvar::send_data() to update the user variable
      without changing constness of the Item_func_get_user_var for the same
      variable until after the value has been read.

    modified:
      sql/item_func.cc
      sql/item_func.h
      sql/log_event.cc
      sql/protocol.cc
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_yacc.yy
      unittest/gunit/item-t.cc
 4450 Kristofer Pettersson	2012-10-10 [merge]
      Automerge

    modified:
      sql/password.c
 4449 Bjorn Munch	2012-10-10
      WL #6055 New default config file in MySQL 5.6
        Forgot to add new and remove old files

    removed:
      support-files/my-huge.cnf.sh
      support-files/my-innodb-heavy-4G.cnf.sh
      support-files/my-large.cnf.sh
      support-files/my-medium.cnf.sh
      support-files/my-small.cnf.sh
    added:
      support-files/my-default.cnf.sh
 4448 Bjorn Munch	2012-10-10
      WL #6055 New default config file in MySQL 5.6
      Bug #14725217 PLEASE ADD SQL_MODE=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES TO
      Bug #14729792 NO WARNING WHEN MY.CNF EXISTS IN /ETC/MYSQL 
      Bug #14735440 WRONG WARNING MESSAGES SHOWN WHEN MYSQL_INSTALL_DB IS RUN
      Bug #14735448 NEW MY.CNF NOT CREATED WHEN --DEFAULTS-FILE IS USED WITH MYSQL_INSTALL_DB
      
        Extending mysql_install_db to install new default
        Handle cases where it exists already, or system file like /etc/my.cnf does

    modified:
      scripts/mysql_install_db.pl.in
      support-files/CMakeLists.txt
      support-files/mysql.spec.sh
 4447 Nirbhay Choubey	2012-10-10
      Bug#14722862 : MYSQL_CLIENT_TEST_EMBEDDED FAILS WITH
                     SEGMENTATION FAULT
      
      mysql_client_test framework's print_error() was
      referring to an invalid mysql handle (a possible
      typo), which caused the segfault.
      
      Fixed by correcting the handle.

    modified:
      tests/mysql_client_fw.c
 4446 Joerg Bruehe	2012-10-10 [merge]
      Merge the fix for bug#12794345 into main.

    added:
      scripts/mysql_security_commands.sql
    modified:
      cmake/info_macros.cmake.in
      scripts/CMakeLists.txt
      scripts/mysql_install_db.pl.in
      support-files/mysql.spec.sh
 4445 Marko Mäkelä	2012-10-10
      Bug#14712710: Revert a fix that is prone to a race condition.
      
      This will reintroduce false duplicate key errors on ALTER TABLE.

    modified:
      storage/innobase/row/row0ins.cc
 4444 Marko Mäkelä	2012-10-10
      Bug#14733674 CREATE UNIQUE INDEX CREATES NON-UNIQUE INDEX (take 3)
      
      row_log_apply_op_low(): When updating a record, check both low_match
      and up_match for duplicate, no matter if one of the records is
      delete-marked. When applying ROW_OP_INSERT, check both up_match and
      low_match, and drop the condition on the cursor position. This is a
      follow-up to rb:1385.
      
      With this change, we may be introducing false duplicate key errors.
      More work needs to be done in this area before GA release.
      
      rb:1387 approved by Jimmy Yang

    modified:
      storage/innobase/row/row0log.cc
 4443 Anitha Gopi	2012-10-09
      Bug#14722862 : Disabled the test

    modified:
      mysql-test/t/disabled.def
 4442 Tor Didriksen	2012-10-09
      Bug#13788218 LIBMYSQLCLIENT18 DOES NOT USE SYMBOL VERSIONING
      Bug#64386 libmysqlclient18 does not use symbol versioning
      
      Examine the the symbols using 'objdump -T libmysqlclient.so.18.0.0'
      
      Compare for example the my_connect symbols from libmysqlclient16:
      000000000008dce0 g    DF .text  0000000000000144  libmysqlclient_16 my_connect
      to libmysqlclient18:
      0000000000039bd0 g    DF .text  0000000000000179  Base        my_connect
     @ CMakeLists.txt
        Forgot to update comment when fixing Bug#14704503 BUILDS ON MAC OS X HAVE INCORRECT VERSION_COMPILE_MACHINE
     @ libmysql/CMakeLists.txt
        Add linker option -Wl,--version-script=libmysql.ver

    modified:
      CMakeLists.txt
      libmysql/CMakeLists.txt
 4441 Andrei Elkin	2012-10-09
      Bug#14710881 - KILL MTS COORDINATOR AT HIGH LOAD MAY SCREW UP THE SLAVE
      
      When Workers are occupied an internal MTS circular buffer object gets filled
      up so its cleanup failed because of wrong condition in iteration over the
      buffers item.
      
      The loop conditions in Slave_committed_queue::free_dynamic_items are fixed.
      Similar changes done to count_done() method.

    modified:
      sql/rpl_rli_pdb.cc
 4440 Vasil Dimov	2012-10-09 [merge]
      Merge mysql-5.5 -> mysql-5.6

    modified:
      storage/innobase/row/row0mysql.cc
 4439 Jon Olav Hauglid	2012-10-09
      Bug#14666396 EXCHANGE PARTITION W/TRIGGER CAUSING OOM
      
      The problem was that issuing statements that caused a stored
      program (such as a trigger) to be executed a large number of
      times could cause the server to allocate excessive amounts of
      memory.
      
      The reason was that the stored program definition was reparsed
      for each execution and each reparsing requires extra memory which
      was not freed until the stored program was removed from memory.
      
      Reparsing is supposed to happen when metadata of objects used
      by a stored program instruction changes. For example by doing
      ALTER TABLE on a table used by an instruction. This is
      necessary to ensure correctness and was introduced by WL#4179.
      
      The bug was that a flag indicating that the new metadata is
      valid, was not correctly set after reparse for two types of
      stored program instructions. This meant that once metadata
      used by such instructions was invalidated once, it never
      became valid again and therefore reparsed every time.
      
      This patch fixes the problem by setting the proper flag after
      reparse for sp_instr_stmt and sp_instr_copen similar to what
      is already done for other types of stored program instructions.
      
      No test case was added since the bug only manifests in increased
      memory and CPU usage for which it is difficult to check with
      MTR tests.

    modified:
      sql/sp_instr.h
 4438 Harin Vadodaria	2012-10-09 [merge]
      Bug #14211140: CRASH WHEN GRANTING OR REVOKING PROXY
                     PRIVILEGES
      
      Description: Merge from mysql-5.5 to mysql-5.6

    modified:
      mysql-test/r/plugin_auth.result
      mysql-test/t/plugin_auth.test
      sql/sql_acl.cc
 4437 Sergey Vojtovich	2012-10-09 [merge]
      Merge.

    added:
      mysql-test/include/Load_data.inc
      mysql-test/include/create_table.inc
      mysql-test/include/ib_logfile_size_check.inc
      mysql-test/include/vardir_size_check.inc
      mysql-test/r/innodb_log_file_size_functionality.result
      mysql-test/r/query_cache_size_functionality.result
      mysql-test/r/query_cache_type_functionality.result
      mysql-test/r/sort_buffer_size_functionality.result
      mysql-test/r/table_open_cache_functionality.result
      mysql-test/r/thread_cache_size_functionality.result
      mysql-test/suite/perfschema/t/query_cache-master.opt
      mysql-test/suite/perfschema/t/stage_mdl_global-master.opt
      mysql-test/suite/sys_vars/t/query_cache_limit_func-master.opt
      mysql-test/suite/sys_vars/t/query_cache_type_basic-master.opt
      mysql-test/suite/sys_vars/t/query_cache_type_func-master.opt
      mysql-test/suite/sys_vars/t/query_cache_wlock_invalidate_func-master.opt
      mysql-test/suite/sys_vars/t/slow_launch_time_func-master.opt
      mysql-test/suite/sys_vars/t/thread_cache_size_func-master.opt
      mysql-test/t/cache_innodb-master.opt
      mysql-test/t/func_misc-master.opt
      mysql-test/t/grant_cache-master.opt
      mysql-test/t/innodb_log_file_size_functionality.test
      mysql-test/t/main.lowercase_table_qcache-master.opt
      mysql-test/t/partition_cache-master.opt
      mysql-test/t/query_cache-master.opt
      mysql-test/t/query_cache_28249-master.opt
      mysql-test/t/query_cache_debug-master.opt
      mysql-test/t/query_cache_merge-master.opt
      mysql-test/t/query_cache_notembedded-master.opt
      mysql-test/t/query_cache_ps_no_prot-master.opt
      mysql-test/t/query_cache_ps_ps_prot-master.opt
      mysql-test/t/query_cache_size_functionality.test
      mysql-test/t/query_cache_type_functionality.test
      mysql-test/t/query_cache_with_views-master.opt
      mysql-test/t/sp_notembedded-master.opt
      mysql-test/t/table_open_cache_functionality.test
      mysql-test/t/variables-master.opt
    modified:
      mysql-test/include/mtr_warnings.sql
      mysql-test/include/mysqld--help.inc
      mysql-test/r/innodb_mysql_sync.result
      mysql-test/r/lowercase_table_qcache.result
      mysql-test/r/merge.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/query_cache.result
      mysql-test/r/query_cache_debug.result
      mysql-test/r/query_cache_disabled.result
      mysql-test/r/query_cache_merge.result
      mysql-test/r/query_cache_notembedded.result
      mysql-test/r/variables.result
      mysql-test/suite/innodb/t/innodb_mysql-master.opt
      mysql-test/suite/perfschema/t/disabled.def
      mysql-test/suite/perfschema/t/threads_mysql-master.opt
      mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result
      mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test
      mysql-test/suite/sys_vars/inc/query_cache_size_basic.inc
      mysql-test/suite/sys_vars/r/query_cache_size_basic_32.result
      mysql-test/suite/sys_vars/r/query_cache_size_basic_64.result
      mysql-test/suite/sys_vars/r/query_cache_type_basic.result
      mysql-test/suite/sys_vars/r/table_definition_cache_basic.result
      mysql-test/suite/sys_vars/r/table_open_cache_basic.result
      mysql-test/suite/sys_vars/r/thread_cache_size_basic.result
      mysql-test/suite/sys_vars/t/query_cache_type_basic.test
      mysql-test/suite/sys_vars/t/table_definition_cache_basic.test
      mysql-test/suite/sys_vars/t/table_open_cache_basic.test
      mysql-test/t/disabled.def
      mysql-test/t/innodb_mysql_sync.test
      mysql-test/t/lowercase_table_qcache-master.opt
      mysql-test/t/lowercase_table_qcache.test
      mysql-test/t/merge.test
      mysql-test/t/mysql_client_test-master.opt
      mysql-test/t/query_cache.test
      mysql-test/t/query_cache_debug.test
      mysql-test/t/query_cache_disabled.test
      mysql-test/t/query_cache_merge.test
      mysql-test/t/query_cache_notembedded.test
      mysql-test/t/sp-master.opt
      mysql-test/t/udf-master.opt
      mysql-test/t/variables.test
      sql/mysqld.cc
      sql/mysqld.h
      sql/set_var.h
      sql/sql_const.h
      sql/sys_vars.cc
      tests/mysql_client_test.c
      unittest/gunit/test_utils.cc
      unittest/gunit/test_utils.h
 4436 Martin Hansson	2012-10-09 [merge]
      Bug #11761854: LEFT JOIN AND UNION PARSING ERROR
      
      Replaced a bad parser hack with a slightly better one.
      
      There is a test that checks that we don't put aliases after tables
      within parentheses, e.g. SELECT 1 FROM (table) AS alias. This is not
      legal syntax. At the same time, the test attempts to catch the case
      when we have a non-query on the left-hand side of a nested union,
      e.g. SELECT 1 FROM (table UNION SELECT 1).
      
      Unfortunately, the test also fired for any union queries where the
      right-hand side query term had a table within parentheses, e.g. SELECT
      1 UNION SELECT 1 FROM (table) would raise an artificial parse error,
      as it were, in error.
      
      Fixed by splitting the test in two. The check for non-queries is moved
      to the rule parsing nested union's. The test is put in a semantic
      action that goes *last* in the rule. This is the proper place for
      semantic actions in 99.9% of the cases. But since there was no
      semantic action here before, bison obviously creates a somewhat
      different PDA, hence some changed error messages in the subselect
      tests. The error message is still wrong, however - see Bug no 14731729
      - so we care not.

    modified:
      mysql-test/r/subquery_all.result
      mysql-test/r/subquery_all_bka.result
      mysql-test/r/subquery_all_bka_nixbnl.result
      mysql-test/r/subquery_nomat_nosj.result
      mysql-test/r/subquery_nomat_nosj_bka.result
      mysql-test/r/subquery_nomat_nosj_bka_nixbnl.result
      mysql-test/r/subquery_none.result
      mysql-test/r/subquery_none_bka.result
      mysql-test/r/subquery_none_bka_nixbnl.result
      sql/sql_yacc.yy
 4435 Anitha Gopi	2012-10-09
       Added debug-server in a few missing places. Reduced non debug runs to regular and embedded runs of the default suites. Some other improvements to the collections

    modified:
      mysql-test/collections/default.daily
      mysql-test/collections/default.weekly
 4434 Jimmy Yang	2012-10-09
      Fix Bug 14725278 - HANG IN SHUTDOWN, FTS AND DICTIONARY CACHE EVICTION
      
      rb://1373 approved by Sunny Bains

    modified:
      storage/innobase/fts/fts0opt.cc
      storage/innobase/fts/fts0que.cc
 4433 Nirbhay Choubey	2012-10-09
      Bug#11756377 STOP LOGGING PASSWORDS IN HISTORY
      
      On *NIX systems, in interactive mode, MySQL client
      maintains a history file (.mysql_history) to log
      all the commands executed through it. Hence, it may
      also log the 'password' carrying statements.
      
      Currently there is no way to disallow the logging
      of such statements.
      
      This patch changes the default logging behaviour.
      The statements carrying password/identified words
      will not be logged in the history file. A new option
      'histignore' is introduced which would accept a colon
      separated list of extra patterns. which will then get
      appended to the default patterns.
      Also, a new environment variable 'MYSQL_HISTIGNORE'
      has been introduced to pass a list of histignore patterns
      to mysql client. In case both are used, histignore option
      would be preferred.
      
      No test case provided, as this patch deals with history.
     @ client/client_priv.h
        Bug#11756377 STOP LOGGING PASSWORDS IN HISTORY
        
        Added a client option to accept a colon-separated
        list of history ignore patterns.
     @ client/mysql.cc
        Bug#11756377 STOP LOGGING PASSWORDS IN HISTORY
        
        Added an option 'histignore' to accept a colon
        separated list of history ignore patterns, that,
        if used, would get appended to the default patterns
        ("*IDENTIFIED*:*PASSWORD*") and be matched against
        the lines entered on mysql command prompt.
        If a match is found, the line will not get logged
        into the mysql history. A new environment variable
        'MYSQL_HISTIGNORE' is also added as an alternative
        to the option.

    modified:
      client/client_priv.h
      client/mysql.cc
 4432 Jimmy Yang	2012-10-09
      Fix Bug #14725336 - ASSERT LOCK->LOCK_WORD == X_LOCK_DECR,
      FTS_CACHE_DESTROY, DROP TEMP TBLE, ADD FK 
            
      rb://1381 approved by Sunny Bains

    modified:
      storage/innobase/fts/fts0fts.cc
      storage/innobase/row/row0mysql.cc
 4431 Marko Mäkelä	2012-10-09
      Bug#14732690 FAILING ASSERTION UPDATE->N_FIELDS > 0 IN ROW0LOG.CC
      
      row_log_apply_op_low(): Remove the bogus assertion.
      
      Sorry, no test case, because I failed to create
      a DEBUG_SYNC test case for this.

    modified:
      storage/innobase/row/row0log.cc
 4430 Marko Mäkelä	2012-10-09
      Bug#14733674 CREATE UNIQUE INDEX CREATES NON-UNIQUE INDEX
      
      row_log_apply_op_low(): Before inserting a record into a unique index,
      check the upper match for a duplicate.
      
      This reverts the buggy fix from rb:1383, which could turn an insert
      into an update of the succeeding record.
      
      rb:1385 approved by Jimmy Yang

    modified:
      storage/innobase/row/row0log.cc
 4429 Norvald H. Ryeng	2012-10-09
      Bug#14601127 CRASH IN RESOLVE_REF_IN_SELECT_AND_GROUP
      
      Problem: UPDATE statements that try to update a non-existent field,
      and has an ORDER BY clause with a subquery with an outer reference to
      the same non-existent field, triggers an assertion during resolving.
      
      The Item_field for the reference in the subquery is resolved by
      calling Item_field::fix_fields(). The field is not found in the
      subquery, so Item_field::fix_outer_field() is called. The field is not
      found in the table, so Item_field::fix_outer_field() calls
      resolve_ref_in_select_and_group(), even though the UPDATE statement's
      context has resolve_in_select_list set to false. The subquery's
      Item_field is resolved to the Item_field in the SET list. Since the
      found item is neither fixed nor of type OUTER_REF, an assertion fires.
      
      Fix: Don't call resolve_ref_in_select_and_group() if the context's
      resolve_in_select_list is set to false.

    modified:
      sql/item.cc
      sql/item.h
      sql/sql_lex.h
 4428 Marko Mäkelä	2012-10-09
      Bug#14735988 WARNING: CANNOT FIND INDEX ?FOO IN INNODB INDEX TRANSLATION TABLE
      
      innobase_get_mysql_key_number_for_index(): Suppress the printout if
      the InnoDB index name starts with TEMP_INDEX_PREFIX.
      
      rb:1384 approved by Jimmy Yang

    modified:
      mysql-test/suite/innodb/r/innodb-index-online.result
      mysql-test/suite/innodb/t/innodb-index-online.test
      storage/innobase/handler/ha_innodb.cc
 4427 mysql-builder@stripped	2012-10-09
      

 4426 mysql-builder@stripped	2012-10-09
      

 4425 mysql-builder@stripped	2012-10-09
      

 4424 mysql-builder@oracle.com	2012-10-09
      

 4423 Marko Mäkelä	2012-10-09 [merge]
      (Null) merge mysql-5.6 to working copy.

 4422 Marko Mäkelä	2012-10-09
      Bug#14733674 CREATE UNIQUE INDEX CREATES NON-UNIQUE INDEX
      
      row_log_apply_op_low(): Check the upper match as well.
      
      rb:1383 approved by Jimmy Yang

    modified:
      storage/innobase/row/row0log.cc
 4421 Vasil Dimov	2012-10-09
      Followup to vasil.dimov@stripped56-sx8tp21oir80c3yz and
      Bug#14733116 (rb:1382) with some cosmetic adjustments suggested by Marko.

    modified:
      storage/innobase/fil/fil0fil.cc
      storage/innobase/srv/srv0start.cc
 4420 mysql-builder@stripped	2012-10-09
      

 4419 mysql-builder@stripped	2012-10-08
      

 4418 Sunny Bains	2012-10-09
      Bug #14712962 - TRANSPORTING INNODB TABLESPACES WITH A FULL TEXT INDEX CRASHES MYSQLD
      
      Server crashes when importing a table with FTS indexes. The fix is to mark
      the FTS index as corrupt but allow the import of the data for the parent table.
      The user can then drop and rebuild the FTS index. Also, flush the contents of
      the parent table to disk even if the table has FTS indexes, when the user
      issues:
      
      	FLUSH TABLES t (WITH READ LOCK | FOR EXPORT);
      
      However, we return a warning to the user that it is not fully supported.
      
      With this change we partially support export/import of tables with FTS indexes.
      
      Note: Importing a table that has FTS indexes without a .cfg file is undefined
      behaviour and not recommended.
      
      rb://1365 Approved by Jimmy Yang.

    modified:
      storage/innobase/handler/handler0alter.cc
      storage/innobase/row/row0import.cc
      storage/innobase/row/row0mysql.cc
      storage/innobase/row/row0quiesce.cc
 4417 Sunny Bains	2012-10-09
      Bug #14723291 - FTS AUXILIARY CREATE TABLE IGNORES FILE PER TABLE SETTING
        
      The WL5980 changes changed the way srv_file_per_table is used, it was an
      improvement over previous usage. However, this introduces a bug because the
      FTS auxiliary tables are created using the internal SQL parser. We can't set
      any special flags or influence the setting from SQL. We have to use the global
      setting. The problem was that the AUX tables were being created in the System
      Tablespace. Additionally orphaned tables could be left in the system tablespace
      causing bloat and making it (close to) impossible to reclaim that space. This
      fix addresses both problems. Create the AUX tables in separate tablespaces if
      the srv_file_per_table flag is set and additionally checking for orphaned AUX
      tables and removing them.
      
      Drop FTS aux tables during DISCARD tablespace.
      
      Several tests were fixed because they list files and the AUX files were
      showing up in the directory listing after this fix.
      
      rb://1370 Approved by Jimmy Yang.

    modified:
      mysql-test/suite/innodb/r/innodb-wl5980-alter.result
      mysql-test/suite/innodb/t/innodb-alter.test
      mysql-test/suite/innodb/t/innodb-wl5980-alter.test
      mysql-test/suite/innodb/t/innodb-wl6445-1.test
      mysql-test/suite/innodb/t/innodb_stats_drop_locked.test
      storage/innobase/dict/dict0load.cc
      storage/innobase/fil/fil0fil.cc
      storage/innobase/fts/fts0fts.cc
      storage/innobase/include/fil0fil.h
      storage/innobase/pars/pars0pars.cc
      storage/innobase/row/row0mysql.cc
 4416 Praveenkumar Hulakund	2012-10-08 [merge]
      Merge from 5.5 to 5.6

    modified:
      mysql-test/include/rpl_start_server.inc
 4415 Annamalai Gurusami	2012-10-08 [merge]
      Null merge in mysql-5.5 to mysql-5.6. 

 4414 Vasil Dimov	2012-10-08 [merge]
      Merge mysql-5.6 from myrepo into my local repository

    modified:
      mysql-test/suite/perfschema/r/multi_table_io.result
      mysql-test/suite/perfschema/r/table_aggregate_global_2u_2t.result
      mysql-test/suite/perfschema/r/table_aggregate_global_2u_3t.result
      mysql-test/suite/perfschema/r/table_aggregate_global_4u_2t.result
      mysql-test/suite/perfschema/r/table_aggregate_global_4u_3t.result
      mysql-test/suite/perfschema/r/table_aggregate_hist_2u_2t.result
      mysql-test/suite/perfschema/r/table_aggregate_hist_2u_3t.result
      mysql-test/suite/perfschema/r/table_aggregate_hist_4u_2t.result
      mysql-test/suite/perfschema/r/table_aggregate_hist_4u_3t.result
      mysql-test/suite/perfschema/r/table_aggregate_thread_2u_2t.result
      mysql-test/suite/perfschema/r/table_aggregate_thread_2u_3t.result
      mysql-test/suite/perfschema/r/table_aggregate_thread_4u_2t.result
      mysql-test/suite/perfschema/r/table_aggregate_thread_4u_3t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_global_2u_2t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_global_2u_3t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_global_4u_2t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_global_4u_3t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_hist_2u_2t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_hist_2u_3t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_hist_4u_2t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_hist_4u_3t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_thread_2u_2t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_thread_2u_3t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_thread_4u_2t.result
      mysql-test/suite/perfschema/r/table_io_aggregate_thread_4u_3t.result
      mysql-test/suite/perfschema/r/trigger_table_io.result
      sql/event_db_repository.cc
      sql/handler.cc
      sql/item_subselect.cc
      sql/log_event_old.cc
      sql/opt_range.cc
      sql/opt_sum.cc
      sql/records.cc
      sql/sp.cc
      sql/sql_acl.cc
      sql/sql_executor.cc
      sql/sql_help.cc
 4413 Vasil Dimov	2012-10-08
      Remove trailing \n from strings passed to ib_logf() since that function
      adds a new line itself.
      
      Discussed with:	Marko (via IM)

    modified:
      storage/innobase/btr/btr0btr.cc
      storage/innobase/dict/dict0load.cc
      storage/innobase/fil/fil0fil.cc
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/log/log0log.cc
      storage/innobase/log/log0recv.cc
      storage/innobase/os/os0file.cc
      storage/innobase/srv/srv0start.cc
 4412 Vasil Dimov	2012-10-08
      Call os_file_get_last_error() as soon as possible after the sysall that
      has caused the failure. In particular, do not call ib_logf() before
      os_file_get_last_error() because it will reset the last error code to 0
      under Windows.

    modified:
      storage/innobase/fil/fil0fil.cc
      storage/innobase/os/os0file.cc
      storage/innobase/srv/srv0start.cc
 4411 Marko Mäkelä	2012-10-08 [merge]
      Merge mysql-5.5 to mysql-5.6.

    modified:
      storage/innobase/dict/dict0dict.cc
      storage/innobase/include/dict0mem.h
      storage/innobase/include/lock0lock.h
      storage/innobase/include/row0upd.ic
      storage/innobase/lock/lock0lock.cc
      storage/innobase/row/row0import.cc
 4410 Jimmy Yang	2012-10-08
      Temp backout Bug #14723291 Change. Need to verify with InnoDB FTS test suite

    modified:
      mysql-test/suite/innodb/r/innodb-wl5980-alter.result
      mysql-test/suite/innodb/t/innodb-alter.test
      mysql-test/suite/innodb/t/innodb-wl5980-alter.test
      mysql-test/suite/innodb/t/innodb-wl6445-1.test
      storage/innobase/fil/fil0fil.cc
      storage/innobase/fts/fts0fts.cc
      storage/innobase/include/fil0fil.h
      storage/innobase/pars/pars0pars.cc
 4409 Marko Mäkelä	2012-10-08
      Bug#14712710 BOGUS DUPLICATE KEY ERROR DURING ONLINE ALTER TABLE
      
      This is follow-up to rb:1366, aiming to completely prevent false
      duplicate key errors during online ALTER TABLE. With this change,
      purge will refuse to process records for tables that are being rebuilt
      online. Previously, purge only refused to free BLOBs for such tables.
      
      row_purge_upd_exist_or_extern_func(): No longer check whether the
      table is being rebuilt online.
      
      row_purge_record_func(): Refuse to process the record if the table is
      being rebulit online.
      
      BTR_CREATE_SAME_PK_FLAG: New flag, for indicating that the PRIMARY KEY
      is not being redefined during an ALTER operation.
      
      row_ins_duplicate_online_is_newer(): Read the undo log record, no
      matter how far the purge read view has advanced. This should prevent
      all false duplicates (except in the case where the PRIMARY KEY is
      being redefined).
      
      row_ins_duplicate_online(): New function, for checking for duplicates
      during online table rebuild. If the PRIMARY KEY is being redefined,
      rely on a strict check (requiring a full match of DB_TRX_ID and
      DB_ROLL_PTR) to weed out false duplicates.
      
      rb:1371 approved by Jimmy Yang

    modified:
      storage/innobase/include/btr0cur.h
      storage/innobase/include/trx0rec.h
      storage/innobase/row/row0ins.cc
      storage/innobase/row/row0log.cc
      storage/innobase/row/row0purge.cc
      storage/innobase/trx/trx0rec.cc
 4408 Tor Didriksen	2012-10-08
      Bug#14704503 BUILDS ON MAC OS X HAVE INCORRECT VERSION_COMPILE_MACHINE
      
      This is the same bug on intel/solaris and mac as
      Bug #13859866: VERSION_COMPILE_MACHINE SHOWS X86 FOR 
      64-BIT BINARIES ON 64-BIT WINDOWS MACHINE
      
      version_compile_machine will now show x86_64 for 64 bit binaries
      for intel/solaris and darwin.

    modified:
      cmake/os/Darwin.cmake
      cmake/os/SunOS.cmake
 4407 Sunny Bains	2012-10-08
      Bug #14723291 - FTS AUXILIARY CREATE TABLE IGNORES FILE PER TABLE SETTING
      
      The WL5980 changes changed the way srv_file_per_table is used, it was an
      improvement over previous usage. However, this introduces a bug because the
      FTS auxiliary tables are created using the internal SQL parser. We can't set
      any special flags or influence the setting from SQL. We have to use the global
      setting. The problem was that the AUX tables were being created in the System
      Tablespace. Additionally orphaned tables could be left in the system tablespace
      causing bloat and making it (close to) impossible to reclaim that space. This
      fix addresses both problems. Create the AUX tables in separate tablespaces if
      the srv_file_per_table flag is set and additionally checking for orphaned AUX
      tables and removing them.
      
      Several tests were fixed because they list files and the AUX files were
      showing up in the directory listing after this fix.
      
      rb://1370 Approved by Jimmy Yang.

    modified:
      mysql-test/suite/innodb/r/innodb-wl5980-alter.result
      mysql-test/suite/innodb/t/innodb-alter.test
      mysql-test/suite/innodb/t/innodb-wl5980-alter.test
      mysql-test/suite/innodb/t/innodb-wl6445-1.test
      storage/innobase/fil/fil0fil.cc
      storage/innobase/fts/fts0fts.cc
      storage/innobase/include/fil0fil.h
      storage/innobase/pars/pars0pars.cc
 4406 Marko Mäkelä	2012-10-05
      Bug#14723456 ONLINE ALTER TABLE REPORTS BOGUS DUPLICATE KEY ERROR
      
      We can easily avoid the bogus duplicates in two cases:
      
      1. When the row was inserted and updated in the same transaction, skip the
      log record for the insert. This can be detected from identical DB_TRX_ID.
      
      2. When the undo logs have not been purged yet, and we can follow the
      DB_ROLL_PTR links until we encounter a matching DB_TRX_ID.
      
      Case 2 is currently nondeterministic. If the purge is fast enough, we
      can still get bogus duplicates. Note that the purge may currently be
      suspended during online table-copying ALTER operation if it would free
      BLOB data in the table.
      
      TODO: if purge would discard undo log records for a table that is
      being altered online, move the undo log records to the tail of the
      undo log and continue the purge of other tables. This will fix case 2,
      and will fix also the current possibility of purge lag (if purge gets
      suspended due to a BLOB).
      
      row_ins_duplicate_error_in_clust(): Ignore DB_ROLL_PTR in the
      comparison. On DB_TRX_ID mismatch, check with
      row_ins_duplicate_is_newer() if we can ignore the log record.
      
      row_ins_duplicate_is_newer(): Retrieve old versions of the record as
      far as possible, and check if they match the specified DB_TRX_ID.
      
      ha_innobase::commit_inplace_alter_table(): When UNIV_DDL_DEBUG is
      defined, run CHECK TABLE while holding the exclusive meta-data lock
      before returning from a successful ALTER TABLE operation.
      
      rb:1369 approved by Jimmy Yang

    modified:
      storage/innobase/handler/handler0alter.cc
      storage/innobase/include/trx0rec.h
      storage/innobase/row/row0ins.cc
      storage/innobase/row/row0vers.cc
      storage/innobase/trx/trx0rec.cc
 4405 Roy Lyseng	2012-10-05
      Bug#14678404: Missing data on nested join with derived table + order by desc
      
      The accessor function join_read_last_key() missed code for preparing
      a scan (ie materializing the input table).
      
      This patch moves the prepare_scan() functions from the initial read
      functions (like join_init_read_record()) and into the sub_select()
      family of functions. sub_select() and sub_select_op() would always
      call an initial read function, so these positions are equivalent.
      
      The benefit of this move is that there are only two such functions,
      contrary to the number of access functions that we supply.

    modified:
      sql/sql_executor.cc
 4404 Roy Lyseng	2012-10-05
      Bug#14609394: Incorrect results with straight_join having semi-join and materialization on.
      
      We have a problem with materialized tables that are const (having exactly
      one row) and that are generated based on data from an outer query.
      Such tables must be re-read for each evaluation.

    modified:
      sql/sql_select.cc
 4403 Anitha Gopi	2012-10-05
      Removed unwanted collections

    removed:
      mysql-test/collections/mysql-trunk-bug27480.push
      mysql-test/collections/mysql-trunk-stage.push
      mysql-test/collections/mysql-trunk-wl3584-gtid-ON.push
      mysql-test/collections/mysql-trunk-wl3584.push
      mysql-test/collections/mysql-trunk-wl5223.push
 4402 Anitha Gopi	2012-10-05
      eventum##44592: Removed unnecessary .release files

    removed:
      mysql-test/collections/mysql-5.6.release
      mysql-test/collections/mysql-trunk.release
 4401 mysql-builder@oracle.com	2012-10-05
      

 4400 Marko Mäkelä	2012-10-05
      Bug#14712710 ASSERTION FAILURE FOR BOGUS DUPLICATE KEY ERROR DURING
      ONLINE ALTER TABLE
      
      An assertion failure occurred when a bogus duplicate key error was
      flagged during online ALTER TABLE, on a table that lacked a PRIMARY
      KEY and secondary keys. This patch will fix the assertion failure, but
      not the bogus duplicate key error (Bug#14723456).
      
      Here is a test case with a PRIMARY KEY:
      
      con1> CREATE TABLE t1(a INT PRIMARY KEY, b INT NOT NULL) ENGINE=InnoDB;
      con2> ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
      con1> INSERT INTO t1 VALUES(1,1);UPDATE t1 SET b=1;
      
      The following timing is possible:
      
      1. ALTER TABLE sets up the modification log.
      2. The INSERT and UPDATE are executed: (a,DB_TRX_ID,b)=(1,0xa,1),(1,0xb,1)
      3. ALTER TABLE copies the updated record: (1,0xb,1)
      4. ALTER TABLE starts applying the log (ROW_T_INSERT, ROW_T_UPDATE).
      5. For the ROW_T_INSERT (1,0xa,1), we see a fake duplicate (1,0xb,1) from the
      UPDATE.
      6. ALTER TABLE returns bogus-looking duplicate key error.
      
      rb:1366 approved by Jimmy Yang

    modified:
      storage/innobase/handler/handler0alter.cc
 4399 Roy Lyseng	2012-10-05
      Bug#14641759: Extra rows on second exec of prepared stmt with nested IN
                    (subquery) and view.
      
      This is related to bug#13773979, which fixed a bug with prepared
      statements that referenced views and performed semi-join transformation.
      However, it only fixed bugs for which a view reference was semijoin-
      transformed once. If transformation occurred more than once, the
      select_lex stored in the Name_resolution_context would still be wrong.
      
      Fixed by remembering which select_lex objects have been swallowed into
      a parent select_lex and updating context->select_lex for each of them
      to point to the parent select_lex.

    modified:
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_optimizer.cc
 4398 mysql-builder@oracle.com	2012-10-05
      

 4397 Marko Mäkelä	2012-10-04
      Bug#14630263 CREATE UNIQUE INDEX CREATES CORRUPTED INDEX ON NULLABLE COLUMN
      (second patch)
      
      row_log_apply_op_low(): When the key fields match on a unique index
      but some of them are NULL, do not replace a partially matching
      preceding record, but insert the new record after it.
      
      This fixes a case that was forgotten in the previous push (rb:1314).
      
      rb:1361 approved by Jimmy Yang

    modified:
      storage/innobase/row/row0log.cc
 4396 Jimmy Yang	2012-10-05
      Fix Bug 14709965 - FIX FTS ORPHAN TABLE DROP
                  
      rb://1360 approved by Sunny Bains

    modified:
      plugin/innodb_memcached/innodb_memcache/src/innodb_config.c
      storage/innobase/api/api0api.cc
      storage/innobase/dict/dict0crea.cc
      storage/innobase/dict/dict0load.cc
      storage/innobase/fts/fts0fts.cc
      storage/innobase/include/fts0priv.ic
      storage/innobase/include/univ.i
 4395 Jon Olav Hauglid	2012-10-04 [merge]
      Null merge from mysql-5.5 to mysql-5.6

 4394 Olav Sandstaa	2012-10-04
      Fix for Bug#14604223 - INCORRECT RESULTS FOR DESCENDING RANGE SCAN WITH 
                             INDEX CONDITION PUSHDOWN
      
      When a descending range scan uses index condition pushdown the storage
      engine needs to know about the end of the range in order to avoid that
      the storage engine reads to the beginning of the index. This was
      implemented as a fix to Bug#14503142. The code in
      QUICK_SELECT_DESC::get_next() uses both ha_index_prev() and
      ha_index_next_same() to read data. Setting the end range is only
      needed when using ha_index_prev(). The wrong result in this bug
      happens when the range scan consists of multiple ranges. If the first
      range sets the end range, it is necessary to either set the end range
      for all following ranges or to let the storage engine know that there
      is no end range. The later part was not implemented. If the second
      range to read was either an EQ_RANGE or did not have an end range, we
      failed to let the storage engine know this. Due to this, the storage
      engine would continue to evaluate records against the end range from
      the first range. This caused no records to be returned when reading
      from the second range.
      
      The fix for this problem is to call set_end_range(NULL,...) to let the
      storage engine know that the next range does not have an end range. This
      should be done both when the range is an EQ_RANGE and when the range does
      not have a lower end range.
     @ sql/opt_range.cc
        QUICK_SELECT_DESC::get_next() needs to call set_end_range(NULL,...)
        when there is an pushed index condition and the range is either
        EQ_RANGE or does not have an end range.

    modified:
      sql/opt_range.cc
 4393 Vasil Dimov	2012-10-04
      Fix Bug#14658648 XA ROLLBACK (DISTRIBUTED DATABASE) NOT WORKING WITH
      QUERY CACHE ENABLED
      
      The bug is caused by the fact that we do not restore table level locks
      for XA PREPARED transactions during crash recovery. Doing so may require
      changing the on-disk format, so we choose to disable query cache completely
      for all tables if XA PREPARED and recovered transactions exist in the
      system, even though they may not have touched the table in question in
      row_search_check_if_query_cache_permitted().
      
      We introduce a new trx_sys->n_prepared_recovered_trx member that keeps count
      of the number of recovered transactions that are in prepared state, so we
      can quickly determine in row_search_check_if_query_cache_permitted() whether
      the query cache should be disabled.
      
      Approved by:	Marko (rb:1351)

    modified:
      storage/innobase/include/trx0sys.h
      storage/innobase/lock/lock0lock.cc
      storage/innobase/row/row0sel.cc
      storage/innobase/trx/trx0trx.cc
 4392 mysql-builder@stripped	2012-10-04
      

 4391 mysql-builder@stripped	2012-10-04
      

 4390 Jon Olav Hauglid	2012-10-04
      Bug#14640599 MEMORY LEAK WHEN EXECUTING STORED ROUTINE EXCEPTION HANDLER
      
      When a SP handler is activated, memory is allocated to hold information
      about the condition that caused the activation, the instruction CONTINUE
      handlers should return to, etc. Most importantly, memory is allocated to
      hold the MESSAGE_TEXT string for the condition.
      
      The problem was that this memory was allocated on the MEM_ROOT belonging
      to the stored program. Since this MEM_ROOT is not freed until the
      stored program ends, a stored program that causes lots of handler
      activations can start using lots of memory. In 5.1 and earlier the
      problem did not exist as no condition object was allocated if a condition
      was raised with a handler present. However, this behavior lead to
      a number of other issues such as Bug#23032.
      
      This patch fixes the problem by allocating this memory on the heap
      rather than the SP MEM_ROOT. This means that the memory can be freed
      when the handler exits, rather than staying around until the stored
      program ends.
      
      This is the 5.6/trunk version of the patch.

    modified:
      sql/sp_rcontext.cc
      sql/sp_rcontext.h
 4389 Marko Mäkelä	2012-10-04 [merge]
      Merge mysql-5.6-wl6494 to mysql-5.6.

    added:
      mysql-test/suite/innodb/r/innodb-log-file-size-1.result
      mysql-test/suite/innodb/r/innodb-log-file-size.result
      mysql-test/suite/innodb/t/innodb-log-file-size-1.test
      mysql-test/suite/innodb/t/innodb-log-file-size.test
      mysql-test/suite/sys_vars/r/innodb_force_recovery_crash_basic.result
      mysql-test/suite/sys_vars/t/innodb_force_recovery_crash_basic.test
    modified:
      mysql-test/mysql-test-run.pl
      mysql-test/r/mysql_plugin.result
      mysql-test/suite/innodb/r/innodb-blob.result
      mysql-test/suite/innodb/t/innodb-blob.test
      mysql-test/suite/innodb/t/innodb-wl5522-debug.test
      mysql-test/suite/parts/r/partition_debug.result
      mysql-test/suite/parts/t/partition_debug.test
      mysql-test/t/mysql_plugin.test
      storage/innobase/fil/fil0fil.cc
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/fil0fil.h
      storage/innobase/include/log0log.h
      storage/innobase/include/log0recv.h
      storage/innobase/include/srv0srv.h
      storage/innobase/log/log0log.cc
      storage/innobase/log/log0recv.cc
      storage/innobase/os/os0file.cc
      storage/innobase/srv/srv0srv.cc
      storage/innobase/srv/srv0start.cc
 4388 Tatjana Azundris Nuernberg	2012-10-04 [merge]
      Bug#14619935: CRASH IN REGISTER_QUERY_CACHE_TABLE WHEN SELECTING FROM VIEWS
      
      In a set-up where a MERGE VIEW had an underlying TEMPTABLE view,
      we asked the (MyISAM-) engine whether we could cache a query.
      MyISAM decides this based on whether it thinks the table in question
      was changed since the query started. In the given setup, not only is
      the object in question a TEMPTABLE, we will also get to it on the 2nd
      iteration (of the loop testing all involved objects to see whether any
      prevents caching) anyway. We now skip the first test for efficiency.
      (In the example that means we don't test the TEMPTABLE of the TEMPTABLE
      VIEW while looking at the MERGE VIEW, but when we look at the TEMPTABLE
      VIEW. At that point, an existing optimization will fire on account of
      the TEMPTABLE VIEW being materializeable.)
      This issue would only show up if the sandwiched table was a MyISAM
      temptable as then the MyISAM table would try to then try to deref the
      table info despite the handler not having been inited yet. For this bug
      to show, we'd need a TEMPTABLE (specifically asked for with ALGORITHM,
      or forced through use of LIMIT etc.), and it would have to be of MyISAM
      type (due do used data type). Lastly, the issue would not show if we
      weren't using the query-cache anyway (as in that case, we don't have to
      ask the handler whether storing the query is safe).

    modified:
      sql/sql_cache.cc
 4387 mysql-builder@stripped	2012-10-04
      

 4386 Norvald H. Ryeng	2012-10-03
      Bug#14498914 CRASH IN ADD_FOUND_MATCH_TRIG_COND WITH _ROWID IN
      SUBQUERY
      
      Problem: A query with a subquery in the JOIN ... ON clause with an
      outer reference to a field that is out of scope may cause the server
      to crash.
      
      When an ON clause is encountered by the parser, a new
      Name_resolution_context is created for this clause and pushed to the
      context stack. This context limits resolving to the tables that are
      visible in this ON clause. Field references in the ON clause will be
      resolved using this context.
      
      When the ON clause contains a subquery, mysql_new_select() creates a
      new Name_resolution_context for the subquery, and this context is
      linked with the context of the outer query. Later, when resolving
      fields in the subquery, Item_field::fix_fields() will first look for
      the field in the subquery context, then, if it is not found, it will
      follow the context's outer_context pointer and try again with that
      context. Since the outer context for the subquery is the outer query's
      context, not the ON context, the resolver is able to find fields that
      are out of scope in the ON clause and therefore also in the subquery.
      Later on, the server crashes when it tries to follow a null pointer
      caused by this invalid field reference.
      
      Fix: Let subqueries in ON clauses have the ON context as outer
      context.

    modified:
      sql/item.cc
      sql/sql_parse.cc
 4385 Tor Didriksen	2012-10-03 [merge]
      merge 5.5 => 5.6

    modified:
      cmake/create_initial_db.cmake.in
      sql/CMakeLists.txt
 4384 Jon Olav Hauglid	2012-10-03 [merge]
      Merge from mysql-5.5 to mysql-5.6
      No conflicts

    modified:
      sql/ha_partition.cc
 4383 magnus.blaudd@stripped	2012-10-03 [merge]
      Merge 5.6-bug14704659 -> 5.6

    modified:
      sql/abstract_query_plan.cc
 4382 Mattias Jonsson	2012-10-03 [merge]
      merge

 4381 Mattias Jonsson	2012-10-03 [merge]
      merge

    modified:
      sql/ha_partition.cc
      sql/ha_partition.h
 4380 mysql-builder@stripped	2012-10-03
      

 4379 Sunny Bains	2012-10-03
      Bug #14676345 - TRX DICT OPERATION NOT SET WHEN TRUNCATING FTS AUXILIARY TABLES
                  
      Failure to recover because the transaction doesn't set the dict_operation
      flag correctly.  Fix the case in TRUNCATE and add debug code to catch this
      violation during trx_commit() instead of after failure in crash recovery.
      Added checks during lock release that enforces the invariant that a
      transaction that has modified a system table must set the dict_operation
      flag.
      
      Add debug code that sets the transaction start file and line number in trx_t.
        
      Approved by Jimmy Yang rb://1350

    modified:
      storage/innobase/dict/dict0crea.cc
      storage/innobase/fts/fts0fts.cc
      storage/innobase/include/fts0fts.h
      storage/innobase/include/trx0trx.h
      storage/innobase/include/trx0trx.ic
      storage/innobase/lock/lock0lock.cc
      storage/innobase/row/row0merge.cc
      storage/innobase/row/row0mysql.cc
      storage/innobase/trx/trx0trx.cc
 4378 mysql-builder@stripped	2012-10-03
      

 4377 Jimmy Yang	2012-10-03
      Fix Bug #14699434 - ASSERTION FAILURE (UT_A(PREBUILT->INDEX != NULL);) IN
      IB_CREATE_CURSOR
                  
      rb://1335 approved by Sunny Bains

    modified:
      storage/innobase/api/api0api.cc
 4376 Marko Mäkelä	2012-10-03
      Remove incorrect debug instrumentation for Bug#13688491 test.
      
      The test instrumentation evicts all pages from the buffer pool
      without flushing them to file. If there were any dirty pages
      in the buffer pool, these would get into inconsistent state.
      After a normal shutdown, the purge thread and change buffer merge
      may have work to do, dirtying pages in the buffer pool.
      
      This caused failures in other tests, including purge-related
      assertion failures.

    modified:
      storage/innobase/dict/dict0load.cc
 4375 mysql-builder@stripped	2012-10-03
      

 4374 Marko Mäkelä	2012-10-03
      Bug#14532308 ASSERT MAX_TRX_ID, ROW_SEARCH_FOR_MYSQL
      
      When applying insert operations during online ALTER TABLE (WL#6255),
      we would forget to update PAGE_MAX_TRX_ID on secondary index pages.
      
      row_ins_sec_index_entry_low(): Add a trx_id parameter for updating
      PAGE_MAX_TRX_ID during row_log_table_apply_insert().
      
      page_validate(): Check the validity of PAGE_MAX_TRX_ID.
      
      row_merge_tuple_cmp(): Tighten a debug assertion.
      
      rb:1354 approved by Jimmy Yang

    modified:
      storage/innobase/include/row0ins.h
      storage/innobase/page/page0page.cc
      storage/innobase/row/row0ins.cc
      storage/innobase/row/row0log.cc
      storage/innobase/row/row0merge.cc
 4373 Ravinder Thakur	2012-10-03
      Bug#14471052 MYSQL_PLUGIN.EXE CANT FIND MY_PRINT_DEFAULTS.EXE IN CURRENT DIRECTORY
      
      On Windows, MYSQL_PLUGIN.EXE is trying to find path of MY_PRINT_DEFAULTS.EXE 
      using non-absoute path. It uses CRT function _stati64 for this purpose. However 
      _stati64 works only with absolute path and as a result, MYSQL_PLUGIN.EXE cannot 
      find the path of MY_PRINT_DEFAULTS.EXE.
      
      I have now modified the code so that if the search using the relative path fails 
      on Windows, we prepend the path of the executable and then try to search 
      MY_PRINT_DEFAULTS.EXE in that path.
      
      I have also added a test case. This test case is based on mysql_plugin.test.
      
      This is a backport from the fix in mysql-trunk revid 
      ravinder.thakur@strippedm-20121001063602-csbaww1evsr07ive

    modified:
      client/mysql_plugin.c
 4372 Chaithra Gopalareddy	2012-10-03
      Bug#14338686: MYSQL IS GENERATING DIFFERENT AND SLOWER
                          (IN NEWER VERSIONS) EXECUTION PLAN
      
      Backported from mysql-5.7. Rev number: 4502. 
      Rev id:chaithra.gopalareddy@stripped0120918093140-gr2edi3xbl7w0wtq

    modified:
      mysql-test/r/subquery_all.result
      mysql-test/r/subquery_all_bka.result
      mysql-test/r/subquery_all_bka_nixbnl.result
      mysql-test/r/subquery_nomat_nosj.result
      mysql-test/r/subquery_nomat_nosj_bka.result
      mysql-test/r/subquery_nomat_nosj_bka_nixbnl.result
      mysql-test/r/subquery_none.result
      mysql-test/r/subquery_none_bka.result
      mysql-test/r/subquery_none_bka_nixbnl.result
      sql/sql_select.cc
 4371 kevin.lewis@oracle.com	2012-10-02
      Bug#14274066 INNODB-MULTIPLE-TABLESPACES "MOVE_FILE" FAILED
                   WITH ERROR 1 ON LINUX
      After several adjustments to this test case, we found that
      --move_file is still failing on systems that have tmpdir on
      a separate mount point.  The failure happens when this test
      tries to move a tablespace file from tmpdir to datadir, or
      between mount points.  This seems to be a limitation of
      mysql-test-run.  To get around this we tried replacing
      --move_file with --copy_file and --remove_file, which seemed
      to work.
      
      Patch suggested, tested and approved by Nuno Carvalho.

    modified:
      mysql-test/suite/innodb/t/innodb-multiple-tablespaces.test
 4370 Jon Olav Hauglid	2012-10-02
      Bug#14665052: OPTIMIZER TRACE DIFFERS WITH QUERY_CACHE ENABLED AND
                    QUERY_CACHE_SIZE=1M
      
      With optimizer_tracing enabled, INFORMATION_SCHEMA.OPTIMIZER_TRACE
      can be queried to find tracing information about the last statements.
      
      The problem was that if a query was executed by retrieving results
      from the query cache, no tracing information would not be added.
      This meant that querying INFORMATION_SCHEMA.OPTIMIZER_TRACE could
      give confusing results as it would omit information about queries
      where the result was retrieved form the query cache.
      
      This patch fixes the problem by adding an optimizer tracing
      information entry ("query_result_read_from_cache") in case
      of a query cache hit.

    modified:
      sql/sql_cache.cc
 4369 Marko Mäkelä	2012-10-02
      Bug#14630263 INDEX CORRUPTION AFTER CREATE INDEX
      
      row_log_apply_op_low(op=ROW_OP_INSERT): Do insert a NULL value into a
      UNIQUE index.
      
      rb:1314 approved by Jimmy Yang

    modified:
      storage/innobase/row/row0log.cc
 4368 Nuno Carvalho	2012-10-02
      BUG#11765124: RPL_SECONDS_BEHIND_MASTER FAILS MYSQLTEST: AT LINE 66
      
      rpl_seconds_behind_master was failing sporadicly on PB2 on slow or
      profiled platforms.
      
      Time constrains validations were not taking master execution time to
      account, what on slow or profiled platforms could have a significant
      length. Seconds_behind_master is calculated according the following
      formula SBM= now - (ev.when + ev.exec_time), fixed test case to also
      use it on time constrains validations.
      Improved error reporting.

    modified:
      mysql-test/collections/default.experimental
      mysql-test/suite/rpl/r/rpl_seconds_behind_master.result
      mysql-test/suite/rpl/t/rpl_seconds_behind_master.test
 4367 mysql-builder@stripped	2012-10-02
      

 4366 Tor Didriksen	2012-10-01 [merge]
      merge 5.5 => 5.6

    modified:
      sql/sql_lex.cc
 4365 Bjorn Munch	2012-10-01 [merge]
      Merge from mysql-5.6.7-release

    modified:
      CMakeLists.txt
      libmysqld/examples/CMakeLists.txt
      mysql-test/collections/mysql-5.6.release
      mysql-test/mysql-test-run.pl
      mysql-test/suite/rpl/r/rpl_alter_repository.result
      mysql-test/suite/rpl/t/rpl_alter_repository.test
      packaging/WiX/mysql_server.wxs.in
      sql/rpl_info_factory.cc
      sql/rpl_info_factory.h
      sql/rpl_info_file.cc
      sql/rpl_info_file.h
      sql/rpl_info_handler.cc
      sql/rpl_info_handler.h
      sql/rpl_rli.cc
      sql/rpl_slave.cc

Diff too large for email (179393 lines, the limit is 10000).
No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.6 branch (mysql-build:4365 to 4458) MySQL Build Team19 Nov