List:Commits« Previous MessageNext Message »
From:Tor Didriksen Date:February 3 2012 3:46pm
Subject:bzr push into mysql-trunk branch (tor.didriksen:3680 to 3811)
View as plain text  
 3811 Tor Didriksen	2012-02-03
      try std::list rather than ilist for linking THDs

    modified:
      libmysqld/lib_sql.cc
      sql/binlog.cc
      sql/event_scheduler.cc
      sql/mysqld.cc
      sql/mysqld.h
      sql/rpl_master.cc
      sql/rpl_slave.cc
      sql/rpl_slave.h
      sql/signal_handler.cc
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_insert.cc
      sql/sql_list.h
      sql/sql_parse.cc
      sql/sql_plugin.cc
      sql/sql_show.cc
      sql/sql_test.cc
      storage/perfschema/pfs_check.cc
 3810 Jorgen Loland	2012-01-31
      BUG#13599013 - MAX/MIN + SUBQUERY IN WHERE CLAUSE MATCHING NO
                     ROWS + INDEX DOES NOT RETURN NULL
      
      An aggregated expression of type MIN or MAX shall return NULL
      if the query is implicitly grouped and there is no HAVING 
      clause that evaluates to FALSE.  In this bug we had a query 
      of the form
      
        SELECT MIN(indexed_column) FROM t1 WHERE (4) IN (SELECT 1)
      
      No row can satisfy the WHERE condition but there is no HAVING
      clause, so the query should have returned NULL (but did
      return an empty set).
      
      The problem was that when a query only selects aggregate
      functions that are optimized away, JOIN::exec() goes into an
      early-exit branch. This branch did not honor the requirement
      stated by the definition above. The fix is to call
      return_zero_rows() instead of send_eof() in this branch. If
      the query selects aggregates and does not have a HAVING
      clause that evaluates to false, return_zero_rows() returns
      a NULL-based row before calling send_eof().
     @ mysql-test/include/subquery_sj.inc
        Add test for BUG#13599013
     @ mysql-test/r/subquery_mat.result
        Updated result of test that used to be incorrect
     @ mysql-test/r/subquery_mat_none.result
        Updated result of test that used to be incorrect
     @ mysql-test/r/subquery_sj_all.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_all_bka.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_all_bka_nixbnl.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_all_bkaunique.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_dupsweed.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_dupsweed_bka.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_dupsweed_bkaunique.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_firstmatch.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_firstmatch_bka.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_firstmatch_bkaunique.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_loosescan.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_loosescan_bka.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_loosescan_bkaunique.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_mat.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_mat_bka.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_mat_bka_nixbnl.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_mat_bkaunique.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_mat_nosj.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_none.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_none_bka.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_none_bka_nixbnl.result
        Add test for BUG#13599013
     @ mysql-test/r/subquery_sj_none_bkaunique.result
        Add test for BUG#13599013
     @ sql/sql_executor.cc
        Call return_zero_rows() instead of send_eof() if all tables have
        been optimized away and there are no matching rows.

    modified:
      mysql-test/include/subquery_sj.inc
      mysql-test/r/subquery_mat.result
      mysql-test/r/subquery_mat_none.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_bka.result
      mysql-test/r/subquery_sj_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_all_bkaunique.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_bka.result
      mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
      mysql-test/r/subquery_sj_dupsweed_bkaunique.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_bka.result
      mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
      mysql-test/r/subquery_sj_firstmatch_bkaunique.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_bka.result
      mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
      mysql-test/r/subquery_sj_loosescan_bkaunique.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_bka.result
      mysql-test/r/subquery_sj_mat_bka_nixbnl.result
      mysql-test/r/subquery_sj_mat_bkaunique.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_bka.result
      mysql-test/r/subquery_sj_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_none_bkaunique.result
      sql/sql_executor.cc
 3809 Georgi Kodinov	2012-01-31
      Addendum to the fix for bug #13586336
      Suppressed the warnings in the pre-existing test change_user 
      because this test is also run in embedded where the 
      authentication checks are not compiled, so no warnings are 
      emitted.

    modified:
      mysql-test/r/change_user.result
      mysql-test/t/change_user.test
 3808 Tor Didriksen	2012-01-31 [merge]
      merge opt-team => trunk

    modified:
      mysql-test/r/derived.result
      mysql-test/r/func_in_all.result
      mysql-test/r/group_by.result
      mysql-test/r/group_min_max.result
      mysql-test/r/index_merge_myisam.result
      mysql-test/r/innodb_icp_all.result
      mysql-test/r/innodb_mrr_all.result
      mysql-test/r/innodb_mrr_cost_all.result
      mysql-test/r/join_cache_bka.result
      mysql-test/r/join_cache_bka_nixbnl.result
      mysql-test/r/join_cache_bkaunique.result
      mysql-test/r/join_cache_bnl.result
      mysql-test/r/join_cache_nojb.result
      mysql-test/r/myisam_explain_non_select_all.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/optimizer_debug_sync.result
      mysql-test/r/order_by_all.result
      mysql-test/r/subquery_all.result
      mysql-test/r/subquery_all_bka.result
      mysql-test/r/subselect_innodb.result
      mysql-test/suite/innodb/r/innodb_mysql.result
      mysql-test/suite/opt_trace/r/bugs_no_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result
      mysql-test/suite/sys_vars/r/optimizer_switch_basic.result
      mysql-test/t/group_by.test
      mysql-test/t/optimizer_debug_sync.test
      sql/item.cc
      sql/sql_priv.h
 3807 Georgi Kodinov	2012-01-30
      Bug #13586336: SRVGEN - HIBISCUS: ISSUE DEPRECATION WARNING FOR 
      LEGACY AUTHENTICATION METHOD
      
      Added warnings as follows : 
      1) Make the server option secure_auth ON per default and issue a warning
      stating that legacy passwords are deprecated if it is ever overridden.
      2) Issue a deprecation warning if a new user account ever is created or
      otherwise configured to use the mysql_old_password plugin.
      3) When upgrading an old system, issue deprecation warnings if an old
      password hash digest is found in the password field.
      
      Added tests for the new warnings and updated existing tests to
      either set secure_auth back to FALSE or adjust the result where this is not
      possible.

    modified:
      mysql-test/r/change_user.result
      mysql-test/r/connect.result
      mysql-test/r/mysql_upgrade.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/suite/sys_vars/r/old_passwords_func.result
      mysql-test/suite/sys_vars/r/secure_auth_basic.result
      mysql-test/suite/sys_vars/r/secure_auth_func.result
      mysql-test/suite/sys_vars/t/secure_auth_basic.test
      mysql-test/t/change_user.test
      mysql-test/t/connect.test
      mysql-test/t/mysql_upgrade.test
      scripts/mysql_system_tables_fix.sql
      sql/sql_acl.cc
      sql/sys_vars.cc
 3806 Nuno Carvalho	2012-01-30
      BUG#13613270 - INCLUDE/WAIT_FOR_SLAVE_IO_ERROR.INC IS NOT USING INCLUDE/SHOW_SLAVE_STATUS.INC
      
      Unlike in previous versions, include/wait_for_slave_io_error.inc is not 
      using include/show_slave_status.inc duplicating test code lines and not
      taking advantage of include/show_slave_status.inc features.
      
      Changed include/wait_for_slave_io_error.inc to use 
      include/show_slave_status.inc. 
      Updated tests results that use include/wait_for_slave_io_error.inc.

    modified:
      mysql-test/include/wait_for_slave_io_error.inc
      mysql-test/suite/rpl/r/rpl_checksum.result
      mysql-test/suite/rpl/r/rpl_log_pos.result
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
      mysql-test/suite/rpl/r/rpl_packet.result
      mysql-test/suite/rpl/r/rpl_row_event_max_size.result
      mysql-test/suite/rpl/t/rpl_checksum.test
      mysql-test/suite/rpl/t/rpl_log_pos.test
      mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
      mysql-test/suite/rpl/t/rpl_packet.test
      mysql-test/suite/rpl/t/rpl_row_event_max_size.test
 3805 Inaam Rana	2012-01-30 [merge]
      Merge from 5.5

    modified:
      storage/innobase/os/os0file.cc
 3804 Tor Didriksen	2012-01-30 [merge]
      merge opt-team => trunk

    added:
      mysql-test/suite/opt_trace/r/eq_range_statistics.result
      mysql-test/suite/opt_trace/t/eq_range_statistics.test
      mysql-test/suite/sys_vars/r/eq_range_index_dive_limit_basic.result
      mysql-test/suite/sys_vars/t/eq_range_index_dive_limit_basic.test
    modified:
      include/my_base.h
      mysql-test/include/join_cache.inc
      mysql-test/include/subquery_mat.inc
      mysql-test/include/subquery_sj.inc
      mysql-test/r/derived.result
      mysql-test/r/greedy_optimizer.result
      mysql-test/r/join_cache_bka.result
      mysql-test/r/join_cache_bka_nixbnl.result
      mysql-test/r/join_cache_bkaunique.result
      mysql-test/r/join_cache_bnl.result
      mysql-test/r/join_cache_nojb.result
      mysql-test/r/join_nested.result
      mysql-test/r/join_nested_bka.result
      mysql-test/r/join_nested_bka_nixbnl.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/subquery_mat.result
      mysql-test/r/subquery_mat_all.result
      mysql-test/r/subquery_mat_none.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_bka.result
      mysql-test/r/subquery_sj_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_all_bkaunique.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_bka.result
      mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
      mysql-test/r/subquery_sj_dupsweed_bkaunique.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_bka.result
      mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
      mysql-test/r/subquery_sj_firstmatch_bkaunique.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_bka.result
      mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
      mysql-test/r/subquery_sj_loosescan_bkaunique.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_bka.result
      mysql-test/r/subquery_sj_mat_bka_nixbnl.result
      mysql-test/r/subquery_sj_mat_bkaunique.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_bka.result
      mysql-test/r/subquery_sj_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_none_bkaunique.result
      mysql-test/suite/opt_trace/r/bugs_no_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_no_prot_none.result
      mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_ps_prot_none.result
      mysql-test/suite/opt_trace/r/charset.result
      mysql-test/suite/opt_trace/r/general2_no_prot.result
      mysql-test/suite/opt_trace/r/general2_ps_prot.result
      mysql-test/suite/opt_trace/r/general_no_prot_all.result
      mysql-test/suite/opt_trace/r/general_no_prot_none.result
      mysql-test/suite/opt_trace/r/general_ps_prot_all.result
      mysql-test/suite/opt_trace/r/general_ps_prot_none.result
      mysql-test/suite/opt_trace/r/range_no_prot.result
      mysql-test/suite/opt_trace/r/range_ps_prot.result
      mysql-test/suite/opt_trace/r/subquery_no_prot.result
      mysql-test/suite/opt_trace/r/subquery_ps_prot.result
      sql/filesort.cc
      sql/filesort_utils.h
      sql/handler.cc
      sql/opt_range.cc
      sql/sql_class.h
      sql/sql_join_buffer.cc
      sql/sql_join_buffer.h
      sql/sql_optimizer.cc
      sql/sql_optimizer.h
      sql/sql_select.cc
      sql/structs.h
      sql/sys_vars.cc
      sql/table.h
      unittest/gunit/filesort_buffer-t.cc
 3803 Tor Didriksen	2012-01-30 [merge]
      merge 5.5 => trunk

    modified:
      libmysql/CMakeLists.txt
 3802 Praveenkumar Hulakund	2012-01-30
      BUG#12602983 - USER WITHOUT PRIVILEGE ON ROUTINE CAN DISCOVER ITS EXISTENCE
                       (TAKE #2)
        
        Description:
        ------------------------------------------------
        User which doesn't have any privileges on the routine or on mysql.proc table 
        still is able to discover its existence. This is wrong as one should not know 
        anything about a database object unless one has privileges on it.
        
        Analysis:
        ------------------------------------------------
        The problem was, user without any privileges on routine was able to find
        out whether it existed or not. "select <func_name>" and "call <proc_name>" 
        were checking for the existence of the <func_name> or <proc_name>" before 
        checking whether user has enough privileges to execute function or not. 
        Error "<func_name> doesn't exists" or "<proc_name> doesn't exists" was 
        reported.
        
        For CREATE, ALTER, DROP we are already providing proper error
            DROP:
            ---------
            mysql> drop function mysqltest.f1;
            ERROR 1370 (42000): alter routine command denied to user ''@'localhost' for
                                routine 'mysqltest.f1'
            mysql> drop procedure  mysqltest.f1;
            ERROR 1370 (42000): alter routine command denied to user ''@'localhost' for
                                routine 'mysqltest.f1'
            
            CREATE:
            ----------
            mysql> create function mysqltest.f1() returns int return 0; 
            ERROR 1044 (42000): Access denied for user ''@'localhost' to database 
                                'mysqltest'
            mysql> create procedure mysqltest.p1() begin end; 
            ERROR 1044 (42000): Access denied for user ''@'localhost' to database 
                                'mysqltest'
            
            ALTER:
            ---------
            mysql> alter function mysqltest.f1 comment "TESTING";
            ERROR 1370 (42000): alter routine command denied to user ''@'localhost' for
                                routine 'mysqltest.f1'
            mysql> alter procedure  mysqltest.f1 comment "TESTING";
            ERROR 1370 (42000): alter routine command denied to user ''@'localhost' for 
                                routine 'mysqltest.f1'
        
        For "SELECT <function_name>" and "CALL <procedure_name>" we were 
        providing "doesn't exists" error.  Also when non existing function is used while
        creating the views we see same issue.
        
        Fix:
        ------------------------------------------------
        SELECT and CALL didn't have the logic to check execute privilege on routine for
        the user. This patch solves problem by checking the privileges to user before 
        checking the existence of the function.
     @ mysql-test/r/lowercase_fs_off.result
            Permission to execute procedure is verified before searching the procedure.
            Since, procedure name printed from the name specified in query now, new o/p
            has capital P in  db1.P1 (for the statement "call db1.P1")
     @ sql/item_func.cc
            For stored functions call in select and create view, checking the privilege to
            execute stored function before checking the existence of it by calling
            "check_routine_access".
     @ sql/sql_parse.cc
            Checking the privilege to execute stored procedure before checking the existence
            of it by calling "check_routine_access".

    modified:
      mysql-test/r/lowercase_fs_off.result
      mysql-test/r/sp-security.result
      mysql-test/t/sp-security.test
      sql/item_func.cc
      sql/sql_parse.cc
 3801 Chaithra Gopalareddy	2012-01-30
      Bug#11764651-57510:Comparing uninitialized values in CTYPE-BIN.c
      
      The first part of the problem reported in the bug, is  fixed in the patch for 
      Bug#11766212.This fix is for the second part of the problem reported.
      
      PROBLEM:
      
      The following query results in an invalid read when run with valgrind
      
      select left(geomfromtext("point(0 0)"),1) not in ( @@global.query_cache_type,1 not between -1 and "a", elt(1,'',1,1,1), geomfromtext("point(1 -1)") in ("bbbbbbbbb"),1);
      
      5.5.8-debug valgrind output:
      Invalid read of size 1
      at: my_strnncollsp_utf8 (ctype-utf8.c:2590)
      by: sortcmp (sql_string.cc:668)
      by: cmp_item_sort_string::cmp (item_cmpfunc.h:1019)
      by: Item_func_in::val_int (item_cmpfunc.cc:4130)
      by: Item::send (item.cc:5864)
      by: Protocol::send_result_set_row (protocol.cc:848)
      by: select_send::send_data (sql_class.cc:1789)
      by: JOIN::exec (sql_select.cc:1857)
      by: mysql_select (sql_select.cc:2568)
      by: handle_select (sql_select.cc:296)
      by: execute_sqlcom_select (sql_parse.cc:4464)
      by: mysql_execute_command (sql_parse.cc:2066)
      by: mysql_parse (sql_parse.cc:5500)
      by: dispatch_command (sql_parse.cc:1030)
      by: do_command (sql_parse.cc:770)
      by: do_handle_one_connection (sql_connect.cc:745)
      by: handle_one_connection (sql_connect.cc:684)
      by: start_thread (pthread_create.c:301)
      
      Problem Analysis:
      The above mentioned invalid read can be reproduced using a simplified query like this one:
      select left(geomfromtext("point(0 0)"),1) in (@@global.query_cache_type,1,"");
      
      Problem is present in cmp_item_sort_string::store_value, because it does not make 
      its own copy of the value evaluated. Instead tries to refer to a temporary value 
      that could be changed or deleted by other functions. Hence while reusing the 
      evaluated value in case of Item_func_in::val_int, we get a valgrind error saying 
      Invalid read. 
      
      With respect to the above query, this is what happens:
      
      a) To be compared with @@global.query_cache_type, function left() is evaluated in 
      "string" context. This evaluation modifies Item_func_left::tmp_value, and returns 
      a pointer to this tmp_value. 
      The "comparator object" (cmp_item) stores the returned pointer in 
      cmp_item::value_res and then the comparison is done. 
      
      b) To be compared with 1, left() is evaluated in "real number" context, which 
      modifies Item_func_left::tmp_value again. Comparison is done with the real value.
      
      c) To be compared with "", left() is NOT evaluated again because cmp_item already 
      has a pointer to the value of left() in string context (from (a)). However, this 
      value was a pointer to Item_func_left::tmp_value, and (b) has modified this String. So we would be  looking at out-of-date data. 
      Hence while reusing the evaluated value in case of Item_func_in::val_int, we get 
      a valgrind error saying Invalid read. 
      
      Solution:
      The fix it to make a copy of the value retured from val_str() in 
      cmp_item_sort_string::store_value().
     @ mysql-test/include/func_in.inc
        Added test case for Bug#11764651
     @ mysql-test/r/func_in_all.result
        Result file changes for the test case added
     @ mysql-test/r/func_in_icp.result
        Result file changes for the test case added
     @ mysql-test/r/func_in_icp_mrr.result
        Result file changes for the test case added
     @ mysql-test/r/func_in_mrr.result
        Result file changes for the test case added
     @ mysql-test/r/func_in_mrr_cost.result
        Result file changes for the test case added
     @ mysql-test/r/func_in_none.result
        Result file changes for the test case added
     @ sql/item_cmpfunc.h
        Changed cmp_item_sort_string::store_value() to make a copy of the evaluated result

    modified:
      mysql-test/include/func_in.inc
      mysql-test/r/func_in_all.result
      mysql-test/r/func_in_icp.result
      mysql-test/r/func_in_icp_mrr.result
      mysql-test/r/func_in_mrr.result
      mysql-test/r/func_in_mrr_cost.result
      mysql-test/r/func_in_none.result
      sql/item_cmpfunc.h
 3800 Dmitry Shulga	2012-01-30
      This patch fixes bug#13608371 (formerly known as bug 62311):
      segfault in mysqld during early SIGHUP handling.
      
      If during server start up some signals like SIGHUP are caught before full
      server initialization has been done then server may crash.
      
      The reason for this bug is that there was a race condition between signal
      handler thread and main thread that was doing server initialization.
      For example, if SIGHUP signal was delivered to server and caught by signal
      handler thread before server had completed initialization of Event_scheduler
      then server crashed when try to access to uninitialized event_scheduler
      instance during signal handling.
      
      To avoid such race condition we suspend signal processing before full
      initialization of all server components has been completed successfully.
      It's achieved by waiting for on COND_server_started conditional variable
      until a flag mysqld_server_started is true.
      
      Moreover superfluous call of pthread_sigmask() to set thread signal mask
      was removed since all signal have been already blocked during execution
      of my_init_signal().
      
      Also call of mysql_cond_broadcast(&COND_thread_count) at signal_hand()
      was moved under protection of mutex LOCK_thread_count to provide deterministic
      schedule behaviour.

    modified:
      sql/mysqld.cc
 3799 Christopher Powers	2012-01-28
      Bug#13440472 MANY VALGRIND FAILURES ON DAILY-TRUNK
        
      Added Valgrind suppression case for add_pfs_instr_to_array().

    modified:
      mysql-test/valgrind.supp
 3798 Ole John Aske	2012-01-27
      Followup fix for bug#13330645.
      
      As we now don't request HA_MRR_SORTED when there are no sort requirements, we have
      to add some '--sorted_result' to the tests in order to get the expected row order
      in the results.

    modified:
      mysql-test/suite/parts/inc/partition-dml-1-7.inc
      mysql-test/suite/parts/inc/partition-dml-1-8.inc
      mysql-test/suite/parts/inc/partition_key_16col.inc
      mysql-test/suite/parts/inc/partition_key_32col.inc
      mysql-test/suite/parts/inc/partition_key_4col.inc
      mysql-test/suite/parts/inc/partition_key_8col.inc
      mysql-test/suite/parts/r/partition_special_myisam.result
 3797 Guilhem Bichot	2012-01-27
      Now that pb2 has a daily run with non-default innodb page size,
      we get test failures because page size influences cost 
      and thus influences the trace. Solution: disable the failing
      test if page size is non-default.

    modified:
      mysql-test/suite/opt_trace/include/range.inc
 3796 Praveenkumar Hulakund	2012-01-27
      BUG#11764786: 57657: TEMPORARY MERGE TABLE WITH TEMPORARY UNDERLYING IS BROKEN BY ALTER
            
            Analysis:
            --------------------------------------------
            When merge table is created, then MyISAM MERGE creates a file .MRG. Engine adds
            names of the tables (children tables) and insert method in this file. So, if we
            consider the tables listed in "HOW TO REPEAT" section then content of .MRG file 
            of "tm_temp_temp"table  will be as below
            
                    >cat #<tmp_file_name>.MRG
                    -----------------------
                    ./test/t1_temp
                    #INSERT_METHOD=FIRST
                    -----------------------
            
            So for both, temporary and non-temporary children table "table name" is added in
            .MRG file in "./<db_name>/<table_name>" format. So that the table can be opened
            using <db_name>.<table_name> [from comments written in function 
            "ha_myisammrg::create"].
            
            When sql query to alter merge table "tm_temp_temp" is called then "mysql_alter_table"
            function calls "open_and_lock_tables" which in turn call the table open function of 
            MyISAM MERGE storage. MyISAM MERGE storage handler, holds all the open table 
            information in open_tables of type MYRG_TABLE.So, in open function of MyISAM Merge 
            handler, table "tm_temp_temp" is opened and held with the open_tables.
            
            Since, this merge table contains child_table (t1_temp). All the child table are 
            opened and TABLE_LIST of child table will be "children_l" member of MyISAM Merge handler.
            children_l is doubly linked list of all child tables.
            
                children_l -> TABLE_LIST::next_global -> TABLE_LIST::next_global
                #             #               ^          #               ^
                #             #               |          #               |
                #             #               +--------- TABLE_LIST::prev_global
                #             #                                          |
                #       |<--- TABLE_LIST::prev_global                    |
                #                                                        |
                children_last_l -----------------------------------------+
            
            
            And information of all child tables are also held in the open_tables of MyISAM merge 
            handler.
            
            The name of the table file for each table opened is held in the "filename" of 
            open_tables->table (type is struct st_myisam_info). 
            
            * Why merge table is getting corrupted in "alter table"?
              Alter table calls function "update_create_info" function. In "update_create_info"
              function of MyISAM Merge Handler, merge list (TABLE_LIST of child tables) is 
              populated in create_info object of type HA_CREATE_INFO. And this list is then used 
              to create new .MRG file to reflect the alter operations.
            
              In function, "update_create_info" of MyISAM MERGE, the DB name and the TABLE name
              are extracted from the filename stored in the member "open_tables->table->filename"
              as below,
            
                split_file_name(open_table->table->filename, &db_name, &file_name);
            
              This db name and file name are stored in the create_info object. And while creating
              the .MRG file, table name of the child table is written into it in the 
              "./<db_name>/<table_name> format.
            
              When merge table has non-temporary child tables then "filename" contains proper db 
              name and file name.
            
              But when merge table has temporary tables then "filename" has a temporary filename
              created in "/tmp" directory (for eg: /tmp/#sql7a3b_2_1). So when "split_file_name"
              function is called with this value, "tmp" is stored in the db name "#sql7a3b_2_1"
              is stored in the file name. So here while creating new .MRG file, "./tmp/#sql7a3b_2_1"
              written as a child entry. 
            
                    >cat #<tmp_file_name>.MRG
                    -----------------------
                    "./tmp/#sql7a3b_2_1"
                    #INSERT_METHOD=LAST
                    -----------------------
            
              After this, any operation on merge table gives error as its fails to find "tmp" DB 
              and table name "#sql7a3b_2_1". And because of the same reason "check table" also
              reported the "table corruption" error.
            
            *. Why we wont see this issue while creating merge table?
               While creating merge table, "create_info" object of type HA_CREATE_INFO is formed by 
               parser with valid "merge_list" (with proper DB name and table name for temporary
               and non-temporary tables). So, create table function of MyISAM MERGE creates .MRG file.
               So, .MRG contains proper entry for table after creating a table.
            
                    >cat #<tmp_file_name>.MRG
                    -----------------------
                    ./test/t1_temp
                    #INSERT_METHOD=FIRST
                    -----------------------
            
               Since, create_info populated with merge_list by parser itself, function "update_create_info"
               is not called.
            
            Possible Fix:
            --------------------------------------------
            Instead of getting db name and table name from "open_tables->table->filename" in 
            update_create_info function, the db name and table name can be obtained from
            the TABLE_LIST of each child table stored in the "children_l" of MyISAM MERGE
            handler. For both the temporary and non-temporary child table the TABLE_LIST 
            is propogated with proper DB name and table name in members "db" and "table_name".
            
            So as a, logic of the "update_create_info" MyISAM MERGE handler is
            changed so that it gets db name and table from TABLE_LIST stored in "children_l".

    modified:
      mysql-test/r/merge.result
      mysql-test/t/merge.test
      storage/myisammrg/ha_myisammrg.cc
 3795 Dmitry Shulga	2012-01-27
      Patch for bug#12872824 (formerly known as 62125): testing stored function
      result for null incorrectly yields 1292 warning.
      
      The reason for this bug was that when server executed expression 'IS NULL'
      for return value of some stored function it calculated the return
      value before checking it for NULL. During return value calculation
      it's assumed that a value has INTEGER type that is not true in general.
      
      The solution is to evaluate return value for NULL without its calculation.
     @ mysql-test/r/sp.result
        Added results of test for bug#12872824.
     @ mysql-test/t/sp.test
        Added test for bug#12872824.
     @ sql/item_func.cc
        Added implementation for virtual method update_null_value into
        Item_func_sp. Implementation for this method doesn't call 
        Item::update_null_value() in order to get null flag for
        return value. Instead we call private method execute() that
        check return value for null and set null flag.

    modified:
      mysql-test/r/sp.result
      mysql-test/t/sp.test
      sql/item_func.cc
      sql/item_func.h
 3794 Yasufumi Kinoshita	2012-01-27 [merge]
      Fix for build break introduced at fix for Bug #13413535
      asked by Calvin

    modified:
      storage/innobase/lock/lock0lock.cc
 3793 Christopher Powers	2012-01-26
      Bug#13440472 MANY VALGRIND FAILURES ON DAILY-TRUNK
      
      Added one more suppression

    modified:
      mysql-test/valgrind.supp
 3792 Christopher Powers	2012-01-26
      Bug#13440472 MANY VALGRIND FAILURES ON DAILY-TRUNK
        
      Deallocate the array of PFS instrument configuration values during
      server shutdown to avoid Valgrind errors.

    modified:
      sql/mysqld.cc
      storage/perfschema/pfs_server.cc
 3791 Christopher Powers	2012-01-26 [merge]
      local merge

    renamed:
      mysql-test/suite/sys_vars/r/innodb_sort_buf_size_basic.result => mysql-test/suite/sys_vars/r/innodb_sort_buffer_size_basic.result
      mysql-test/suite/sys_vars/t/innodb_sort_buf_size_basic.test => mysql-test/suite/sys_vars/t/innodb_sort_buffer_size_basic.test
    modified:
      mysql-test/include/range.inc
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/optimizer_debug_sync.result
      mysql-test/r/plugin.result
      mysql-test/r/range_all.result
      mysql-test/r/range_icp.result
      mysql-test/r/range_icp_mrr.result
      mysql-test/r/range_mrr.result
      mysql-test/r/range_mrr_cost.result
      mysql-test/r/range_none.result
      mysql-test/t/optimizer_debug_sync.test
      mysql-test/t/plugin.test
      mysql-test/t/temp_table.test
      sql/handler.cc
      sql/handler.h
      sql/item.cc
      sql/opt_explain.cc
      sql/opt_range.cc
      storage/example/ha_example.cc
      storage/innobase/btr/btr0btr.cc
      storage/innobase/btr/btr0cur.cc
      storage/innobase/buf/buf0buf.cc
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/ibuf/ibuf0ibuf.cc
      storage/innobase/include/btr0btr.h
      storage/innobase/include/mtr0log.ic
      storage/innobase/lock/lock0lock.cc
      storage/innobase/page/page0page.cc
      storage/innobase/row/row0ins.cc
      storage/innobase/row/row0sel.cc
      storage/innobase/row/row0umod.cc
      storage/innobase/row/row0upd.cc
      storage/innobase/srv/srv0srv.cc
      storage/innobase/trx/trx0purge.cc
      storage/innobase/trx/trx0rec.cc
      mysql-test/suite/sys_vars/r/innodb_sort_buffer_size_basic.result
      mysql-test/suite/sys_vars/t/innodb_sort_buffer_size_basic.test
 3790 Christopher Powers	2012-01-26 [merge]
      local merge

    modified:
      mysql-test/suite/rpl/r/rpl_heartbeat_basic.result
      mysql-test/suite/rpl/t/rpl_heartbeat_basic.test
      storage/innobase/handler/ha_innodb.cc
 3789 Christopher Powers	2012-01-25
      Bug#13440472 MANY VALGRIND FAILURES ON DAILY-TRUNK
      
      Deallocate the array of PFS instrument configuration values during
      server shutdown to avoid Valgrind errors.

    modified:
      sql/mysqld.cc
      storage/perfschema/pfs_instr_class.cc
      storage/perfschema/pfs_instr_class.h
      storage/perfschema/pfs_server.cc
 3788 Tor Didriksen	2012-01-25 [merge]
      merge 5.5 => trunk

    modified:
      mysql-test/r/func_str.result
      mysql-test/t/func_str.test
      strings/dtoa.c
 3787 Inaam Rana	2012-01-25 [merge]
      merge from parent

    modified:
      sql/item.cc
 3786 Inaam Rana	2012-01-25
      Bug#13619598	HANG IN IO HELPER THREAD WHEN USING SIMULATED AIO
      
      rb://910
      approved by: Marko Makela
      
      When:
      
      * single page flush is performed
      * dblwr is disabled
      * simulated aio is used
      
      There is a possibility of hang in IO helper thread because we miss to
      wake up handler threads. This does not happen with native aio because
      IO threads in that case wait on io_getevents() call and need not to be
      woken up. 

    modified:
      storage/innobase/buf/buf0dblwr.cc
      storage/innobase/buf/buf0flu.cc
      storage/innobase/include/buf0flu.h
 3785 Ole John Aske	2012-01-25
      Fix for bug#13531865 TEST_IF_SKIP_SORT_ORDER() INCORRECTLY SKIP FILESORT IF 'TYPE' IS REF_OR_NULL
            
      Introduce the function is_ref_or_null_optimized() which is used by test_if_subkey()
      in order to avoid changing to an index requiring 'ref_or_null' access as we can
      never skip sort order for such an index. 
     @ mysql-test/include/order_by.inc
        Added testcase: REF_OR_NULL should never be selected as access 'type' when filesort is skipped by an ordered index.
     @ mysql-test/r/order_by_icp_mrr.result
        corrected testcase: As 'ref_or_null' can't skip filesort, use 'ref' access as choosen by condition optimizer.
     @ mysql-test/r/order_by_none.result
        corrected testcase: As 'ref_or_null' can't skip filesort, use 'ref' access as choosen by condition optimizer.

    modified:
      mysql-test/include/order_by.inc
      mysql-test/r/order_by_icp_mrr.result
      mysql-test/r/order_by_none.result
      sql/sql_select.cc
 3784 Ole John Aske	2012-01-25
      Fix for bug#13529048 TEST_IF_SKIP_SORT_ORDER() DON'T HAVE TO FILESORT A SINGLE ROW.
      
      test_if_skip_sort_order() should catch the jointypes
      JT_EQ_REF, JT_CONST and JT_SYSTEM and skip sort order for these.
      
      Didn't add a specific testcase for this bug as it should be
      covered by existing testcases which now will skip 'Using filesort'

    modified:
      mysql-test/r/innodb_mrr.result
      mysql-test/r/innodb_mrr_cost.result
      mysql-test/r/innodb_mrr_cost_icp.result
      mysql-test/r/innodb_mrr_icp.result
      mysql-test/r/innodb_mrr_none.result
      sql/sql_select.cc
 3783 Ole John Aske	2012-01-25
      Fix for Bug#13514959 QUERY PLAN FAILS TO 'USING INDEX' WHERE IT SHOULD
      
      Fix two issues related to 'keyread' from covering indexes (Explain: 'Using index')
      
      1)
         Recalculate (and set) keyread in test_if_skip_sort_order() whenever
         the best_key is changed (Optimizer may have changed its mind)
      
      2) If we during cleanup in test_if_skip_sort_order() decides
         to delete the 'save_quick' we had when entering
         test_if_skip_sort_order(), the ::~QUICK_RANGE_SELECT
         d'tor will set_keyread(FALSE)' even if another quick was
         set up to be used in 1) above.
     @ mysql-test/r/innodb_icp.result
        Updated resultfile where 'Using index' is expected
     @ mysql-test/r/innodb_icp_none.result
        Updated resultfile where 'Using index' is expected
     @ sql/opt_range.cc
        ::~QUICK_RANGE_SELECT Should not 'set_keyread(FALSE)' as that
        has nothing to do with destruction of the QUICK_RANGE_SELECT.
        ('head' might actually use another 'quick')
     @ sql/records.cc
        If 'keyread' is used, ut should be cleared when we clean up
        after have read this table. (Instead of doing it as a 
        side effect in QUICK_RANGE_SELECT d'tor)
     @ sql/sql_select.cc
        Fix code for setting of set_keyread() in test_if_skip_sort_order().
        Always recalculate it if 'best_key' is changed.
        ******
        Don't apply join-fanout and predicate selctivite if there was no
        limit-clause
        ******
        Fix up EXPLAIN to use the 'ordered_index_usage' as 
        calculated by ::optimize() instead of calling
        test_if_skip_sort_order()

    modified:
      mysql-test/r/innodb_icp.result
      mysql-test/r/innodb_icp_none.result
      sql/opt_range.cc
      sql/records.cc
      sql/sql_select.cc
 3782 Martin Hansson	2012-01-25
      Bug#13536661: Deactivates the test case until a better place for it is found.

    modified:
      mysql-test/r/temp_table.result
      mysql-test/t/temp_table.test
 3781 Mayank Prasad	2012-01-25
      Bug#13570079: - MAIN.MYSQL_EMBEDDED TEST FAILS ON WINDOWS-X86-64BIT ON DAILY-TRUNK
      
      Description: 
      -This test case (mysql_embedded) was failing on WINODWS 64 only.
      
      Issue:
      -In mysql_embedded test case, queries was wrappen in single
       quote ('), which was not treated as string delimiter. 
      
      Solution:
      -Changed single quote (') to double quote (") and test case
       is passing now.

    modified:
      mysql-test/mysql-test-run.pl
      mysql-test/t/mysql_embedded.test
 3780 Tor Didriksen	2012-01-25 [merge]
      merge 5.5 => trunk

    modified:
      mysql-test/r/bigint.result
      mysql-test/r/func_in_icp.result
      mysql-test/r/func_in_icp_mrr.result
      mysql-test/r/func_in_mrr.result
      mysql-test/r/func_in_mrr_cost.result
      mysql-test/r/func_in_none.result
      mysql-test/t/bigint.test
      sql/item.cc
      sql/item_cmpfunc.cc
 3779 Dmitry Shulga	2012-01-25 [merge]
      Manual merge of patch for bug#11753187 from mysql-5.5 tree.

    added:
      mysql-test/suite/sys_vars/r/stored_program_cache_basic.result
      mysql-test/suite/sys_vars/t/stored_program_cache_basic.test
    modified:
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      sql/mysqld.cc
      sql/mysqld.h
      sql/sp_cache.cc
      sql/sp_cache.h
      sql/sql_parse.cc
      sql/sql_prepare.cc
      sql/sys_vars.cc
 3778 Martin Hansson	2012-01-25
      Bug#13536661: VALGRIND: DEFINITELY LOST: 552 BYTES IN 1 BLOCKS IN
      CREATE_TMP_TABLE AND HIGHER
      
      A remnant from refactoring: When creating a temporary table we no
      longer keep a pointer to it in the JOIN structure, hence in case of
      subsequent errors inside JOIN::create_intermediate_table() there was a
      memory leak.
      
      Fixed by adding a goto label err: that does the cleanup.
      
      Made testable by adding the debug sync point tmp_table_created.

    modified:
      mysql-test/r/temp_table.result
      mysql-test/t/temp_table.test
      sql/sql_executor.cc
      sql/sql_tmp_table.cc
 3777 Marko Mäkelä	2012-01-25 [merge]
      Merge mysql-5.5 to mysql-trunk.

    modified:
      storage/innobase/btr/btr0cur.cc
 3776 Annamalai Gurusami	2012-01-25
      Bug #13604034 SET GLOBAL INNODB_UNDO_LOGS=0 SUCCEEDS BUT LEADS TO 
      AN ASSERT MAX_UNDO_LOGS > 0
      
      The min value was not checked, while setting the value of innodb_undo_logs config
      value.  This was fixed.  Also, the max value and the default value is not fixed in
      the case of innodb_undo_logs.  So after starting innodb, the max and default value
      of the innodb_undo_logs config will be reset to the proper value based on the 
      srv_available_undo_logs variable.  
      
      This system variable framework does not support doing the validation for default
      value (because the boundaries min and max is not fixed).  Because of this limitation
      of the framework, we needed to adjust the max and default value of the config object.

    modified:
      mysql-test/suite/sys_vars/r/innodb_undo_logs_basic.result
      mysql-test/suite/sys_vars/t/innodb_undo_logs_basic.test
      storage/innobase/handler/ha_innodb.cc
 3775 Christopher Powers	2012-01-24
      Bug 13018537 - TIMER NORMALIZATION FOR IDLE EVENTS
      
      PFS tables now uses the IDLE timer to normalize IDLE event times.
      Related changes:
       - Moved global class registration to a separate function
       - Added missing PFS class type enums
       - Created array of class-timer mapping
       - For all tables, cache timer normalizer in table class
       - For tables where timer normalizer changes row-to-row, get a new normalizer when the view (event type) changes
       - For tables where timer normalizer does not change, initialize normalizer once in rnd_init()

    modified:
      storage/perfschema/ha_perfschema.cc
      storage/perfschema/pfs_engine_table.cc
      storage/perfschema/pfs_engine_table.h
      storage/perfschema/pfs_instr_class.cc
      storage/perfschema/pfs_instr_class.h
      storage/perfschema/pfs_server.cc
      storage/perfschema/table_esgs_by_account_by_event_name.cc
      storage/perfschema/table_esgs_by_account_by_event_name.h
      storage/perfschema/table_esgs_by_host_by_event_name.cc
      storage/perfschema/table_esgs_by_host_by_event_name.h
      storage/perfschema/table_esgs_by_thread_by_event_name.cc
      storage/perfschema/table_esgs_by_thread_by_event_name.h
      storage/perfschema/table_esgs_by_user_by_event_name.cc
      storage/perfschema/table_esgs_by_user_by_event_name.h
      storage/perfschema/table_esgs_global_by_event_name.cc
      storage/perfschema/table_esgs_global_by_event_name.h
      storage/perfschema/table_esms_by_account_by_event_name.cc
      storage/perfschema/table_esms_by_account_by_event_name.h
      storage/perfschema/table_esms_by_host_by_event_name.cc
      storage/perfschema/table_esms_by_host_by_event_name.h
      storage/perfschema/table_esms_by_thread_by_event_name.cc
      storage/perfschema/table_esms_by_thread_by_event_name.h
      storage/perfschema/table_esms_by_user_by_event_name.cc
      storage/perfschema/table_esms_by_user_by_event_name.h
      storage/perfschema/table_esms_global_by_event_name.cc
      storage/perfschema/table_esms_global_by_event_name.h
      storage/perfschema/table_events_stages.cc
      storage/perfschema/table_events_stages.h
      storage/perfschema/table_events_statements.cc
      storage/perfschema/table_events_statements.h
      storage/perfschema/table_events_waits.cc
      storage/perfschema/table_events_waits_summary.cc
      storage/perfschema/table_ews_by_account_by_event_name.cc
      storage/perfschema/table_ews_by_host_by_event_name.cc
      storage/perfschema/table_ews_by_thread_by_event_name.cc
      storage/perfschema/table_ews_by_user_by_event_name.cc
      storage/perfschema/table_ews_global_by_event_name.cc
      storage/perfschema/table_tiws_by_index_usage.cc
      storage/perfschema/table_tiws_by_index_usage.h
      storage/perfschema/table_tiws_by_table.cc
      storage/perfschema/table_tiws_by_table.h
      storage/perfschema/table_tlws_by_table.cc
      storage/perfschema/table_tlws_by_table.h
 3774 Alexander Barkov	2012-01-24
      Better GCOV coverage for WL#946

    modified:
      mysql-test/r/date_formats.result
      mysql-test/r/temporal_literal.result
      mysql-test/r/type_date.result
      mysql-test/r/type_temporal_fractional.result
      mysql-test/r/type_temporal_upgrade.result
      mysql-test/r/type_time.result
      mysql-test/t/date_formats.test
      mysql-test/t/temporal_literal.test
      mysql-test/t/type_date.test
      mysql-test/t/type_temporal_fractional.test
      mysql-test/t/type_temporal_upgrade.test
      mysql-test/t/type_time.test
 3773 Alexander Barkov	2012-01-24 [merge]
      Merging from mysql-5.5

 3772 Alexander Barkov	2012-01-24 [merge]
      Merging from mysql-trunk

    modified:
      sql/debug_sync.cc
      sql/sql_select.cc
      storage/innobase/data/data0data.cc
      storage/innobase/include/data0data.h
      storage/innobase/include/data0data.ic
 3771 Alexander Barkov	2012-01-24 [merge]
      Merging from 5.5, with additional 5.6 changes:
      
      Now LAST_DAY('YYYY-MM-DD') does not require non-zero DD value
      to return a non-NULL result.

    modified:
      mysql-test/r/func_time.result
      mysql-test/t/func_time.test
      sql/item_timefunc.cc
 3770 Nuno Carvalho	2012-01-23 [merge]
      Automerge from mysql-5.5 into mysql-trunk.

    modified:
      mysql-test/include/wait_for_ndb_to_binlog.inc
 3769 Vasil Dimov	2012-01-23
      In fts_get_total_document_count() the stats of a table should have
      been initialized when the table was opened. This convert a conditional
      stats recalc (if not initialized) to an assert.
      
      Discussed with:	Jimmy (via IM)

    modified:
      storage/innobase/fts/fts0fts.cc
 3768 Vasil Dimov	2012-01-23
      Non-functional change: whitespace fixups in printout messages

    modified:
      storage/innobase/dict/dict0stats.cc
 3767 Manish Kumar	2012-01-23 [merge]
      BUG#11752315 
      Null merge from mysql-5.5 to mysql-trunk.

 3766 Raghav Kapoor	2012-01-23
      BUG#13601606 - FAILED VIEW CREATION ERROR MESSAGE (FOR DB NOT PRESENT) 
                     NEEDS BIG IMPROVEMENT
      
      BACKGROUND:
      Trying to create a view in a non-existent database gave the 
      error "Can't create/write to file ..." which does not really 
      describe the reason for the failure and is also different 
      from how the similar problem is reported for CREATE TABLE. 
      
      FIX:
      This bug is fixed by reporting ER_BAD_DB_ERROR "Unknown 
      database ..." when trying to create a view in a non-existent
      database.This is the same error already reported by CREATE 
      TABLE. A test case has been written and corresponding result 
      file has been updated.

    modified:
      mysql-test/r/view.result
      mysql-test/t/view.test
      sql/sql_view.cc
 3765 Alexander Barkov	2012-01-23 [merge]
      Merging from mysql-trunk

    modified:
      storage/innobase/dict/dict0load.cc
      storage/innobase/handler/ha_innodb.cc
 3764 Alexander Barkov	2012-01-23 [merge]
      Merging Bug#11752408 from mysql-5.5

    modified:
      include/m_ctype.h
      mysql-test/r/ctype_utf8.result
      mysql-test/t/ctype_utf8.test
      mysys/charset-def.c
      strings/ctype-ucs2.c
      strings/ctype-utf8.c
 3763 Andrei Elkin	2012-01-22
      merging the final part of post-fixes from 5.5 bug13593869-64035 branch.

    modified:
      mysql-test/suite/rpl/r/rpl_log_pos.result
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
      mysql-test/suite/rpl/r/rpl_packet.result
      mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result
      sql/rpl_master.cc
 3762 Sunny Bains	2012-01-21
      Remove extra new line.

    modified:
      storage/innobase/trx/trx0trx.cc
 3761 Mattias Jonsson	2012-01-21
      post-push fix of Bug#13559657.
      
      main.partition_explicit_prune fails on embedded builds
      due to different default engine (MyISAM instead of InnoDB).
      
      Fixed by setting the engine to InnoDB.

    modified:
      mysql-test/r/partition_explicit_prune.result
      mysql-test/t/partition_explicit_prune.test
 3760 Christopher Powers	2012-01-20
      Bug#13440472 - MANY VALGRIND FAILURES ON DAILY-TRUNK
        
      Disable inline optimizations for valgrind builds to avoid false positives.

    modified:
      cmake/build_configurations/mysql_release.cmake
 3759 Inaam Rana	2012-01-20 [merge]
      merge from mysql-5.5

    modified:
      storage/innobase/os/os0file.cc
 3758 Mattias Jonsson	2012-01-20 [merge]
      merge of bug#13559657 into -trunk
      
      Also updated two result files.

    modified:
      mysql-test/r/partition_explicit_prune.result
      mysql-test/suite/parts/r/partition-dml-1-9-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-9-myisam.result
      mysql-test/t/partition_explicit_prune.test
      sql/sql_lex.cc
 3757 Mattias Jonsson	2012-01-20 [merge]
      merge

    modified:
      mysql-test/r/partition_binlog_stmt.result
      mysql-test/t/partition_binlog_stmt.test
 3756 Georgi Kodinov	2012-01-20 [merge]
      merge

    modified:
      mysql-test/include/have_example_plugin.inc
      mysql-test/include/have_semisync_plugin.inc
      mysql-test/include/have_simple_parser.inc
      mysql-test/include/have_udf.inc
      mysql-test/t/udf_skip_grants-master.opt
 3755 Dmitry Shulga	2012-01-20 [merge]
      Auto-merge of patch for bug#13070308 from mysql-5.5 tree.

    modified:
      mysql-test/r/xa.result
      mysql-test/t/xa.test
 3754 Vasil Dimov	2012-01-18
      Revert sunny.bains@stripped14755-9zzp2oscgvem35th
      
      The asm code that was introduced in that revision causes a crash in
      ut_cpuid() when that function is not inlined, e.g. compiled with an
      attribute ``__attribute__((noinline))'' or with gcc's -fno-inline.
      The crash only happens on some 64 bit platforms, fimafeng09.no.oracle.com
      for example.
      
      It is not clear what sunny.bains@oracle.com-20111103014755-9zzp2oscgvem35th
      was trying to address, but the old code (before that changeset) does pass all
      tests currently.
      
      Should any problems arise later (the ones that the reverted changeset was
      addressing) and if they are due to C vs. C++ difference we could add
      ``extern "C"'' to the function ut_cpuid().
      
      Discussed with:	Marko and Sunny (via IM)

    modified:
      storage/innobase/ut/ut0crc32.cc
 3753 Nuno Carvalho	2012-01-19 [merge]
      Merge from mysql-5.5 into mysql-trunk.
      
      Conflicts:
       mysql-test/include/show_slave_status.inc

    modified:
      mysql-test/extra/rpl_tests/rpl_start_stop_slave.test
      mysql-test/include/show_slave_status.inc
      mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result
 3752 Andrei Elkin	2012-01-19 [merge]
      merging from repo.

    modified:
      storage/innobase/os/os0file.cc
 3751 Andrei Elkin	2012-01-19 [merge]
      merge from 5.5.

    modified:
      mysql-test/extra/rpl_tests/rpl_start_stop_slave.test
      sql/share/errmsg-utf8.txt
 3750 Jimmy Yang	2012-01-19
      Fix Bug #13552359, SOME INFORMATION SCHEMA TABLE FOR FTS SHOULD RESTRICT
      ACCESSIBILIY TO SUPER USER
      
      rb://881 Approved by Inaam

    modified:
      storage/innobase/handler/i_s.cc
 3749 Norvald H. Ryeng	2012-01-19
      Bug#13500371 63704: CONVERSION OF '1.' TO A NUMBER GIVES ERROR 1265
      (WARN_DATA_TRUNCATED)
      
      Problem: Converting strings ending with a decimal point (such as '1.')
      to floating point numbers causes a truncation warning to be emitted.
      
      Field_float::store() and Field_double::store() calls my_strtod_int()
      to convert strings to floating point numbers. Function my_strtod_int()
      doesn't consume the decimal point if it is the last character of the
      string, and this leads to Field_float::store() and
      Field_double::store() reporting unconsumed character as truncated
      data.
      
      Fix: Let my_strtod_int() consume the decimal point also if it is the
      last character of the string. This behavior is consistent with that of
      scanf().
     @ mysql-test/r/type_float.result
        Test case for bug #13500371.
     @ mysql-test/t/type_float.test
        Test case for bug #13500371.
     @ strings/dtoa.c
        Consume decimal point also at end of string.

    modified:
      mysql-test/r/type_float.result
      mysql-test/t/type_float.test
      strings/dtoa.c
 3748 kevin.lewis@stripped	2012-01-18
      Fix a UNIV_DEBUG compile error.

    modified:
      storage/innobase/dict/dict0boot.cc
 3747 kevin.lewis@stripped	2012-01-18
      The primary change is to use macro constants for system table field
      and column numbers more consistently.  The code uses hard coded
      numbers for both column numbers and cluster index field numbers.
      Contants are used very inconsistently.  This patch uses the
      convention DICT_COL__{table_name}__{column_name) for the columns
      of the table and of DICT_FLD__{table_name}__{column_name) for the
      field numbers in the indexes.  Instead of using precompiled macros,
      these constants are declared as enum values which the debugger can
      interpret.  The preprocessor macros that tested the consistency of
      these constants are converted to debug runtime asserts.
      
      Some included files are deleted from ha_innodb.cc since they no
      longer need to be included directly.  All other changes are just
      code cleanup.
      
      Patch approved by Marko in http://bur03.no.oracle.com/rb/r/877.

    modified:
      storage/innobase/dict/dict0boot.cc
      storage/innobase/dict/dict0crea.cc
      storage/innobase/dict/dict0dict.cc
      storage/innobase/dict/dict0load.cc
      storage/innobase/dict/dict0mem.cc
      storage/innobase/fil/fil0fil.cc
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/handler/i_s.cc
      storage/innobase/include/dict0boot.h
      storage/innobase/include/dict0mem.h
      storage/innobase/include/dict0types.h
      storage/innobase/include/fil0fil.h
      storage/innobase/pars/pars0pars.cc
      storage/innobase/row/row0merge.cc
      storage/innobase/row/row0mysql.cc
      storage/innobase/srv/srv0start.cc
 3746 Tor Didriksen	2012-01-18
      Bug#13580775 ASSERTION FAILED: RECORD_LENGTH == M_RECORD_LENGTH
      
      filesort tries to re-use the sort buffer between invocations in order to save
      malloc/free overhead.
      The fix for Bug 11748783 - 37359: FILESORT CAN BE MORE EFFICIENT.
      added an assert that buffer properties (num_records, record_length) are
      consistent between invocations. Indeed, they are not necessarily consistent.
      
      Fix: re-allocate the sort buffer if properties change.
     @ mysql-test/r/partition.result
        New test case.
     @ mysql-test/t/partition.test
        New test case.
     @ sql/filesort.cc
        If we already have allocated a sort buffer, then verify that the same properties
        (keys, rec_length) that we need for this invocation.
     @ sql/filesort_utils.h
        Add sort_buffer_properties
     @ sql/table.h
        Add sort_buffer_properties
     @ unittest/gunit/filesort_buffer-t.cc
        Test new member funciton.

    modified:
      mysql-test/r/partition.result
      mysql-test/t/partition.test
      sql/filesort.cc
      sql/filesort_utils.h
      sql/table.h
      unittest/gunit/filesort_buffer-t.cc
 3745 Praveenkumar Hulakund	2012-01-18
      BUG#11764724 - 57586: UNKNOWN TABLE WHEN TRYING TO DROP A TABLE AND NO AVAILABLE UNDO 
      SLOTS LEFT
      
      Modified changes made as part of fix for this bug to  fix Perf regression.
      FIX for perf regression:
      -------------------------------
      Current fix had a if condition to check whether return value of function "ha_delete_table"
      is "HA_ERR_TOO_MANY_CONCURRENT_TRXS". If yes then I used to "goto err" and in "err:" check
      whether error is "HA_ERR_TOO_MANY_CONCURRENT_TRXS" and print error message. So there were 
      TWO if conditions added to check whether error is "HA_ERR_TOO_MANY_CONCURRENT_TRXS" or not.
      These conditions were getting evaluated every time, this caused perf regression.
      
      As a fix, removed both the if conditions and added only one if condition in "if (error)" block.
      This condition is added to check whether error is "HA_ERR_TOO_MANY_CONCURRENT_TRXS". If yes 
      then print error and then "goto err". Now, this condition is checked only if there is any error.
      Otherwise it will not be evaluated and so performance should not be affected.
      
      Actual Issue Description:
      -------------------------------
      If you attempt to drop an existing InnoDB table, but you do not have any 
      available undo slots open, then you will receive an "unknown table" error. 
      
      mysql> DROP TABLE test.innodb_table_monitor; 
      ERROR 1051 (42S02): Unknown table 'innodb_table_monitor' 
      
      Actual issue Analysis:
      -------------------------------
      Here, max number of concurrent transactions/connections are started and then the
      next transaction to drop a table is initiated. Since, system has already max number
      of transactions running, next transaction to "drop table" was not started and innodb
      returned error "DB_TOO_MANY_CONCURRENT_TRXS". But this error was not handled properly 
      in sql layer because of which "drop table" operation was throwing wrong error message. 
      
      Fix:
      -------------------------------
      As a fix, I have added check in sql (in function "mysql_rm_table_part2") to handle error 
      code "HA_ERR_TOO_MANY_CONCURRENT_TRXS" and throw proper error message.
      
      Ouput of drop command after fix (with max number of concurrent transaction running)
      
      mysql> drop table test;
      ERROR 177 (HY000): Too many active concurrent transactions

    modified:
      sql/sql_table.cc
 3744 Andrei Elkin	2012-01-18 [merge]
      merging from local branch to mysql-trunk.

 3743 Andrei Elkin	2012-01-18 [merge]
      manual merge due to bug3593869-64035 from 5.5 to mysql-trunk.

    modified:
      mysql-test/extra/rpl_tests/rpl_start_stop_slave.test
      mysql-test/suite/rpl/r/rpl_log_pos.result
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
      mysql-test/suite/rpl/r/rpl_packet.result
      mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result
      mysql-test/suite/rpl/t/rpl_stm_start_stop_slave.test
      sql/rpl_master.cc
      sql/share/errmsg-utf8.txt
 3742 Tor Didriksen	2012-01-17 [merge]
      merge opt-team => trunk

    modified:
      mysql-test/include/subquery_mat.inc
      mysql-test/include/subquery_sj.inc
      mysql-test/r/group_by.result
      mysql-test/r/subquery_mat.result
      mysql-test/r/subquery_mat_all.result
      mysql-test/r/subquery_mat_none.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_bka.result
      mysql-test/r/subquery_sj_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_all_bkaunique.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_bka.result
      mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
      mysql-test/r/subquery_sj_dupsweed_bkaunique.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_bka.result
      mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
      mysql-test/r/subquery_sj_firstmatch_bkaunique.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_bka.result
      mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
      mysql-test/r/subquery_sj_loosescan_bkaunique.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_bka.result
      mysql-test/r/subquery_sj_mat_bka_nixbnl.result
      mysql-test/r/subquery_sj_mat_bkaunique.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_bka.result
      mysql-test/r/subquery_sj_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_none_bkaunique.result
      mysql-test/t/group_by.test
      sql/item_subselect.cc
      sql/sql_base.cc
      sql/sql_executor.cc
      sql/sql_optimizer.cc
      sql/sql_planner.cc
      sql/sql_select.h
 3741 Norvald H. Ryeng	2012-01-17
      Bug#11764371 57196: MORE FUN WITH ASSERTION: !TABLE->FILE ||
      TABLE->FILE->INITED == HANDLER::
      
      Problem: An assertion is triggered by queries that assign the result
      of a subquery to a user variable when the outer query is doing
      DISTINCT and GROUP BY.
      
      Because of the DISTINCT and GROUP BY, the query is executed using two
      temporary tables. The first temporary table is filled by executing the
      query over the base tables. The subquery is also executed, and the
      result is stored in the user variable. After this execution,
      join_free() is called to free data from the old join and release all
      read locks since the next execution is based on the temporary table.
      
      The second round of execution is over the first temporary table, but
      because of the user variable assignment, the subquery is re-executed
      over the base tables. Since these tables are now unlocked, an
      assertion guarding handler::ha_rnd_next() against reading from
      unlocked tables is triggered.
      
      Fix: In change_to_use_tmp_field(), if the item is an
      Item_func_set_user_var that stores the value of a subquery, replace it
      with a cloned Item_func_set_user_var that stores the result of an
      Item_field that contains the result of the subquery. This makes the
      next execution round use the stored value instead of re-executing the
      subquery.
      
      This patch also fixes bug #13260504. No additional testcase required.
     @ mysql-test/r/user_var.result
        Test case for bug #11764371.
     @ mysql-test/t/user_var.test
        Test case for bug #11764371.
     @ sql/item_func.h
        Add constructors.
     @ sql/sql_executor.cc
        Change user variable assignment functions to read from fields after
        tables have been unlocked.

    modified:
      mysql-test/r/user_var.result
      mysql-test/t/user_var.test
      sql/item_func.h
      sql/sql_executor.cc
 3740 Vasil Dimov	2012-01-17
      Adjust mtr .result files after
      vasil.dimov@stripped120117090419-4sjlh72v00w0chv4

    modified:
      mysql-test/suite/funcs_1/r/is_columns_mysql.result
      mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result
      mysql-test/suite/funcs_1/r/is_tables_mysql.result
      mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result
 3739 Georgi Kodinov	2012-01-17 [merge]
      merge

    modified:
      mysql-test/r/func_time.result
      mysql-test/t/func_time.test
      scripts/mysql_system_tables.sql
      sql/item.cc
      storage/innobase/dict/dict0stats.cc
 3738 Georgi Kodinov	2012-01-17 [merge]
      merge mysql-5.5->mysql-trunk

    modified:
      include/my_global.h
      mysql-test/suite/sys_vars/r/character_sets_dir_basic.result
      mysql-test/suite/sys_vars/r/plugin_dir_basic.result
      mysql-test/suite/sys_vars/t/character_sets_dir_basic.test
      scripts/mysqld_safe.sh
      sql/mysqld.cc
      sql/sql_plugin.cc
      sql/sql_udf.cc
 3737 Nirbhay Choubey	2012-01-17 [merge]
      Null-merge from mysql-5.5.

 3736 Nirbhay Choubey	2012-01-17
      Bug#13006947 62472: MYSQLHOTCOPY ERRORS ON DATABASES
                          CONTAINING MYISAM VIEWS
      
      mysqlhotcopy failed when 'views' were involved. This
      happened as it tried to lock the views (along with the
      base tables) using 'FLUSH TABLES <table_name> .. WITH
      READ LOCK' command, which is invalid.
      
      Fixed by dividing the table list into views & base tables,
      and then locking the views separately.
     @ scripts/mysqlhotcopy.sh
        Bug#13006947 62472: MYSQLHOTCOPY ERRORS ON DATABASES
                            CONTAINING MYISAM VIEWS
        
        Views will now be locked separately (from base tables)
        as they cannot be flushed/locked using 'FLUSH TABLE ..
        WITH READ LOCK'.

    modified:
      scripts/mysqlhotcopy.sh
 3735 Marko Mäkelä	2012-01-16 [merge]
      Merge mysql-5.5 to mysql-trunk.

    added:
      mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result
      mysql-test/suite/sys_vars/r/innodb_doublewrite_batch_size_basic.result
      mysql-test/suite/sys_vars/r/innodb_page_hash_locks_basic.result
      mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result
      mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test
      mysql-test/suite/sys_vars/t/innodb_doublewrite_batch_size_basic.test
      mysql-test/suite/sys_vars/t/innodb_page_hash_locks_basic.test
      mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test
    modified:
      mysql-test/suite/sys_vars/r/all_vars.result
      mysql-test/suite/sys_vars/t/all_vars.test
 3734 Marko Mäkelä	2012-01-16 [merge]
      Merge mysql-5.5 to mysql-trunk.

    modified:
      storage/innobase/ibuf/ibuf0ibuf.cc
 3733 Tor Didriksen	2012-01-16 [merge]
      merge 5.5 => trunk

    modified:
      CMakeLists.txt
 3732 Nuno Carvalho	2012-01-16 [merge]
      Automerge from mysql-5.5 to mysql-trunk.

    modified:
      mysql-test/extra/rpl_tests/rpl_extra_col_master.test
 3731 Norvald H. Ryeng	2012-01-16
      Bug#11766143 59185: ASSERTION FAILED: (FIXED == 1), FILE
      ITEM_STRFUNC.CC, LINE 2760
      
      Problem: The server crashes when a subquery that is involved in a
      comparison requiring a character set conversion causes an error.
      
      During optimization, predicates are combined into multiple equality
      predicates by a call to optimize_cond(). As part of this,
      Item_equal::compare_const() is called to evaluate the comparison. Part
      of this evaluation is to set the comparison function by a call to
      Item_func_eq::set_cmp_func(), which calls
      Arg_comparator::set_cmp_func(). Since the character sets of the two
      arguments differ, it needs to call agg_item_set_converter() to set up
      a conversion. There, a new Item_func_conv_charset is constructed, and
      the constructor calls val_str() on its argument (the subquery). The
      subquery is evaluated and stores an error in the diagnostics
      area.
      
      Later, agg_item_set_converter() calls fix_fields() on the character
      set converter. Item_func::fix_fields() checks for thd->is_error() and
      misinterprets the error as if it occurred in
      Item_func::fix_length_and_dec(). This error is propagated by return
      values back to Arg_comparator::set_cmp_func(), which therefore skips
      setting the func attribute of the comparator.
      
      After the error occurs, Item_equal::compare_const() does not do any
      error checking before calling Item_func_eq::val_int(), where the crash
      occurs when Arg_comparator::compare() tries to call the function
      pointed to by the func attribute, which is a null pointer.
      
      Fix: Skip the call to Item_func_eq::val_int() in
      Item_equal::compare_const() if an error has been stored in the
      diagnostics area. The diagnostics area is checked and the error is
      caught in JOIN::optimize() right after the call to optimize_cond()
      returns.
      
      This patch also fixes bug #11765734.
     @ mysql-test/r/ctype_many.result
        Add test for bug #11766143.
     @ mysql-test/t/ctype_many.test
        Add test for bug #11766143.
     @ sql/item_cmpfunc.cc
        Skip condition evaluation if an error has occurred.
     @ sql/item_cmpfunc.h
        Add return value to Item_bool_func2::set_cmp_func().
     @ sql/sql_optimizer.cc
        Add error handling.

    modified:
      mysql-test/r/ctype_many.result
      mysql-test/t/ctype_many.test
      sql/item_cmpfunc.cc
      sql/item_cmpfunc.h
      sql/sql_optimizer.cc
 3730 Marko Mäkelä	2012-01-16 [merge]
      Merge mysql-5.5 to mysql-trunk.

    modified:
      storage/innobase/buf/buf0buf.cc
 3729 Annamalai Gurusami	2012-01-16 [merge]
      Null merge from mysql-5.5 to mysql-trunk. 

 3728 Tor Didriksen	2012-01-13 [merge]
      merge opt-team => trunk

    modified:
      mysql-test/include/subquery_mat.inc
      mysql-test/include/subquery_sj.inc
      mysql-test/r/archive_gis.result
      mysql-test/r/case.result
      mysql-test/r/func_if.result
      mysql-test/r/gis.result
      mysql-test/r/group_by.result
      mysql-test/r/subquery_mat.result
      mysql-test/r/subquery_mat_all.result
      mysql-test/r/subquery_mat_none.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_bka.result
      mysql-test/r/subquery_sj_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_all_bkaunique.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_bka.result
      mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
      mysql-test/r/subquery_sj_dupsweed_bkaunique.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_bka.result
      mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
      mysql-test/r/subquery_sj_firstmatch_bkaunique.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_bka.result
      mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
      mysql-test/r/subquery_sj_loosescan_bkaunique.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_bka.result
      mysql-test/r/subquery_sj_mat_bka_nixbnl.result
      mysql-test/r/subquery_sj_mat_bkaunique.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_bka.result
      mysql-test/r/subquery_sj_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_none_bkaunique.result
      mysql-test/r/view.result
      mysql-test/r/view_alias.result
      mysql-test/suite/innodb/r/innodb_gis.result
      mysql-test/suite/opt_trace/r/filesort_pq.result
      mysql-test/suite/opt_trace/r/general2_no_prot.result
      mysql-test/suite/opt_trace/r/general2_ps_prot.result
      mysql-test/suite/opt_trace/r/subquery_no_prot.result
      mysql-test/suite/opt_trace/r/subquery_ps_prot.result
      mysql-test/t/group_by.test
      sql/filesort.cc
      sql/item.cc
      sql/item.h
      sql/sql_executor.cc
      sql/sql_lex.cc
      sql/sql_optimizer.cc
      sql/sql_parse.cc
      sql/sql_planner.cc
      sql/sql_resolver.cc
      sql/sql_select.cc
      sql/sql_select.h
      sql/sql_tmp_table.cc
      sql/table.h
 3727 Alexander Barkov	2012-01-13
      BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIME
      Fixing the 5.6 part (the 5.5 was earlier committed in a separate commit).
      
      Problem:
      UNIX_TIMESTAMP() could return NULL in case of maybe_null==0.
      
      Fix:
      
      Moving NULL/0 decision logic from 
      Item_func_unix_timestamp::val_timeval()
      to
      Item::get_timeval()
      Item_field::get_timeval()

    modified:
      mysql-test/r/func_time.result
      mysql-test/t/func_time.test
      sql/item.cc
      sql/item_timefunc.cc
 3726 Tor Didriksen	2012-01-12 [merge]
      empty merge 5.5 => trunk

 3725 Georgi Kodinov	2012-01-12
      fixed a test case result after a merge.

    modified:
      mysql-test/r/mysqldump.result
 3724 Georgi Kodinov	2012-01-12 [merge]
      merge mysql-5.5->mysql-trunk

    modified:
      cmd-line-utils/libedit/chartype.h
      cmd-line-utils/libedit/eln.c
      cmd-line-utils/libedit/readline.c
      mysql-test/r/func_time.result
      mysql-test/r/mysqlcheck.result
      mysql-test/t/func_time.test
      mysql-test/t/mysqlcheck.test
      sql/item.cc
 3723 Georgi Kodinov	2012-01-12 [merge]
      merge mysql-trunk-security-fixed->mysql-trunk

    added:
      mysql-test/r/mysqlimport.result
      mysql-test/t/mysqlimport.test
    modified:
      client/mysql.cc
      client/mysql_upgrade.c
      client/mysqladmin.cc
      client/mysqlbinlog.cc
      client/mysqlcheck.c
      client/mysqldump.c
      client/mysqlimport.c
      client/mysqlshow.c
      client/mysqlslap.c
      include/my_getopt.h
      mysql-test/r/key_cache.result
      mysql-test/r/log_tables_upgrade.result
      mysql-test/r/mysql.result
      mysql-test/r/mysql_upgrade.result
      mysql-test/r/mysql_upgrade_ssl.result
      mysql-test/r/mysqladmin.result
      mysql-test/r/mysqlbinlog.result
      mysql-test/r/mysqlcheck.result
      mysql-test/r/mysqldump.result
      mysql-test/r/mysqlshow.result
      mysql-test/r/mysqlslap.result
      mysql-test/r/partition_key_cache.result
      mysql-test/r/plugin_auth.result
      mysql-test/r/plugin_auth_qa_1.result
      mysql-test/r/plugin_auth_qa_2.result
      mysql-test/r/plugin_auth_qa_3.result
      mysql-test/suite/federated/federated_debug.result
      mysql-test/suite/perfschema/r/pfs_upgrade.result
      mysql-test/t/key_cache.test
      mysql-test/t/mysql.test
      mysql-test/t/mysql_upgrade.test
      mysql-test/t/mysqladmin.test
      mysql-test/t/mysqlbinlog.test
      mysql-test/t/mysqlcheck.test
      mysql-test/t/mysqldump.test
      mysql-test/t/mysqlshow.test
      mysql-test/t/mysqlslap.test
      mysql-test/t/partition_key_cache.test
      mysys/default.c
      mysys/my_getopt.c
      sql/sql_admin.cc
      storage/myisam/mi_preload.c
 3722 Tor Didriksen	2012-01-11
      WL#6159 Refactoring of my_global.h post-push fixes for sparc64
      Use the uintXkorr macros rather than uXXXget macros.

    modified:
      libmysqld/emb_qcache.cc
      sql/binlog.cc
      sql/ha_partition.cc
      sql/spatial.cc
      sql/unireg.cc
      storage/archive/ha_archive.cc
 3721 Tor Didriksen	2012-01-11
      need HAVE_purify

    modified:
      include/byteorder/byte_order_generic_x86_64.h
 3720 Tor Didriksen	2012-01-11
      fix compile warning: may be used uninitialized

    modified:
      client/mysqldump.c
 3719 Tor Didriksen	2012-01-11
      Cleanup of byteorder store/get #ifdef stuff.
      Add new optimized macros for __x86_64__ 
     @ config.h.cmake
        #define NOMINMAX to avoid getting min/max macros on windows.
     @ include/CMakeLists.txt
        New header files, containing code that used to be in my_global.h
     @ libmysqld/emb_qcache.cc
        Avoid type-punning warning.
     @ sql/binlog.cc
        Avoid type-punning warning.
     @ sql/ha_partition.cc
        Avoid type-punning warning.
     @ sql/log_event.cc
        Avoid type-punning warning.
     @ sql/rpl_slave.cc
        Avoid type-punning warning.
     @ sql/spatial.cc
        Avoid type-punning warning.
     @ sql/sql_join_buffer.h
        Fix compile error in visual studio.
     @ sql/unireg.cc
        Avoid type-punning warning.
     @ storage/archive/ha_archive.cc
        Avoid type-punning warning.
     @ unittest/gunit/CMakeLists.txt
        New unit tests

    added:
      include/byteorder/
      include/byteorder/big_endian.h
      include/byteorder/byte_order_generic.h
      include/byteorder/byte_order_generic_x86.h
      include/byteorder/byte_order_generic_x86_64.h
      include/byteorder/little_endian.h
      include/my_byteorder.h
      unittest/gunit/alignment-t.cc
      unittest/gunit/byteorder-t.cc
    modified:
      config.h.cmake
      include/CMakeLists.txt
      include/my_global.h
      libmysqld/emb_qcache.cc
      sql/binlog.cc
      sql/ha_partition.cc
      sql/log_event.cc
      sql/rpl_slave.cc
      sql/spatial.cc
      sql/sql_join_buffer.h
      sql/unireg.cc
      storage/archive/ha_archive.cc
      unittest/gunit/CMakeLists.txt
 3718 Nirbhay Choubey	2012-01-10 [merge]
      Merge of fix for bug#11760384 from mysql-5.5.

    modified:
      client/mysqldump.c
      mysql-test/r/mysqldump.result
      mysql-test/t/mysqldump.test
 3717 Chaithra Gopalareddy	2012-01-10
      Bug#12911480: GROUP BY MAKE SET WITH EMPTY SET VALUES CRASH IN MY_HASH_SORT_SIMPLE
      
      Problem Description:
      While executing a make_set funtion in a group by clause with null output,
       we see problems like, accessing uninitialized area.
      
      Problem Analysis:
      While deducing the nullability of make_set function 
      (in Item_func_make_set::fix_fields), we do not take into consideration that the 
      first argument can be null and as a result the overall function result could be 
      null. 
      
      In the scenario presented, the first argument is null. So the result of 
      make_set will be null and therefor while accessing the keys in "hp_hashnr" 
      function, it tries to access an uninitialized area (as null bit is not set) 
      and hence the valgrind error. 
      
      While we do consider that the result set can be null when one of the arguments 
      (starting from the second) can be null in a make_set function. 
      
      In the current scenario, which is "select count(*) from t1 group by make_set(a,b)", 
      we do not consider field "a"s nullability. We only consider the rest of the 
      argument list which is "b" here.  As "b" is defined as not null while creating the 
      table, we are seeing the problem. 
      
      Solution:
      In Item_func_make_set::fix_fields(), we take into consideration even the first 
      argument's nullability.
     @ mysql-test/r/func_set.result
        Add test for Bug#12911480
     @ mysql-test/t/func_set.test
        Add test for Bug#12911480
     @ sql/item_strfunc.h
        Changed Item_func_make_set::fix_fields( ) function to calculate maybe_null variable.

    modified:
      mysql-test/r/func_set.result
      mysql-test/t/func_set.test
      sql/item_strfunc.h
 3716 Manish Kumar	2012-01-10
      BUG#11746146 - 23894: MYSQLBINLOG OUTPUTS SET INSERT_ID=N STATEMENTS UNNECESARILY WITH --DATABA
      
      This is a post-push fix that addresses review comments. In particular, improves coding style 
      and ensures that all memory is freed.
     @ client/mysqlbinlog.cc
        Modified the file with improved coding style.

    modified:
      client/mysqlbinlog.cc
 3715 Sneha Modi	2012-01-10 [merge]
      Bug#11748572:
      
      Merging from mysql-5.5 -> mysql-trunk

    modified:
      mysql-test/collections/default.experimental
      mysql-test/suite/sys_vars/t/disabled.def
 3714 Yasufumi Kinoshita	2012-01-10 [merge]
      Bug#12400341 INNODB CAN LEAVE ORPHAN IBD FILES AROUND
      
      If we meet DB_TOO_MANY_CONCURRENT_TRXS during the execution tab_create_graph from row_create_table_for_mysql(), .ibd file for the table should be created already but was not deleted for the error handling.
      
      rb:875 approved by Jimmy Yang

    added:
      mysql-test/suite/innodb/r/innodb_bug12400341.result
      mysql-test/suite/innodb/t/innodb_bug12400341-master.opt
      mysql-test/suite/innodb/t/innodb_bug12400341.test
    modified:
      mysql-test/suite/sys_vars/r/all_vars.result
      mysql-test/suite/sys_vars/t/all_vars.test
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/trx0rseg.ic
      storage/innobase/include/trx0sys.h
      storage/innobase/row/row0mysql.cc
      storage/innobase/trx/trx0sys.cc
 3713 Vinay Fisrekar	2012-01-09
      bug#13555970 - INNODB_FTS.INNODB_FTS_LARGE_RECORDS TIMEOUT FOR SOLARIS ON PB2
      
      Test Fix : Reducing the test run time by lowering the number of records.

    modified:
      mysql-test/suite/innodb_fts/r/innodb_fts_large_records.result
      mysql-test/suite/innodb_fts/t/disabled.def
      mysql-test/suite/innodb_fts/t/innodb_fts_large_records.test
 3712 Vasil Dimov	2012-01-09
      Fix some whitespace

    modified:
      storage/innobase/fts/fts0fts.cc
 3711 Raghav Kapoor	2012-01-09
      BUG#11751736 - 42708: DROP DATABASE STATEMENT SHOULD REMOVE .OLD SUFFIX FROM 
      		      DATABASE DIRECTORY
      
      BACKGROUND:
      Create database, tables and load data.Execute myisampack to
      compress the tables, also use -b option to have backup of 
      datafile.Try dropping the database, will fail because of 
      .OLD file that is created in database directory.
      	
      FIX:
      DROP DATABASE will fail with the error described in the bug report
      if an unknown file is found while trying to delete the database
      directory. This bug is fixed by adding ".OLD" to the list of known file
      extensions that DROP DATABASE uses when checking if a file can be
      silently deleted. 

    modified:
      mysql-test/r/myisampack.result
      mysql-test/t/myisampack.test
      sql/sql_db.cc
 3710 Christopher Powers	2012-01-06
      Bug#12790483 - OBJECTS_SUMMARY_GLOBAL_BY_TYPE AND RENAME TABLE
        
      Further updates to perfschema.misc.test to verify PFS table shares.

    modified:
      mysql-test/suite/perfschema/r/misc.result
      mysql-test/suite/perfschema/t/misc.test
 3709 Christopher Powers	2012-01-06 [merge]
      local merge

    modified:
      include/mysql/psi/mysql_socket.h
      include/mysql/psi/mysql_table.h
      include/mysql/psi/mysql_thread.h
      include/mysql/psi/psi.h
      include/mysql/psi/psi_abi_v0.h.pp
      include/mysql/psi/psi_abi_v1.h.pp
      include/mysql/psi/psi_abi_v2.h.pp
      mysql-test/include/show_slave_status.inc
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
      mysql-test/suite/engines/funcs/r/tc_rename_error.result
      mysql-test/suite/rpl/r/rpl_log_pos.result
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
      mysql-test/suite/rpl/t/rpl_log_pos.test
      mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
      mysys/psi_noop.c
      sql/handler.cc
      storage/innobase/include/os0sync.ic
      storage/innobase/include/sync0rw.ic
      storage/innobase/include/sync0sync.ic
      storage/perfschema/pfs.cc
      storage/perfschema/pfs_instr.cc
      storage/perfschema/pfs_instr.h
      storage/perfschema/pfs_instr_class.cc
      storage/perfschema/pfs_server.cc
      storage/perfschema/pfs_stat.h
      storage/perfschema/table_events_waits.cc
      storage/perfschema/unittest/pfs-t.cc
 3708 Christopher Powers	2012-01-05
      Bug#12790483 - OBJECTS_SUMMARY_GLOBAL_BY_TYPE AND RENAME TABLE
      
      Updated perfschema.misc.test to catch orphaned table view objects.

    modified:
      mysql-test/suite/perfschema/r/misc.result
      mysql-test/suite/perfschema/t/misc.test
 3707 Christopher Powers	2012-01-05
      Bug#12790483 - OBJECTS_SUMMARY_GLOBAL_BY_TYPE AND RENAME TABLE
      
      Don't create PFS table shares for table views.

    modified:
      storage/perfschema/pfs.cc
 3706 Christopher Powers	2012-01-05
      Bug#12790483 - OBJECTS_SUMMARY_GLOBAL_BY_TYPE AND RENAME TABLE
        
      Fixed build break.

    modified:
      mysys/psi_noop.c
 3705 Christopher Powers	2012-01-05 [merge]
      local merge

    modified:
      mysql-test/collections/default.experimental
      mysql-test/r/distinct.result
      mysql-test/r/group_by.result
      mysql-test/r/having.result
      mysql-test/r/innodb_explain_non_select_all.result
      mysql-test/r/innodb_icp.result
      mysql-test/r/innodb_icp_all.result
      mysql-test/r/innodb_icp_none.result
      mysql-test/r/innodb_mrr_all.result
      mysql-test/r/innodb_mrr_cost_all.result
      mysql-test/r/join.result
      mysql-test/r/join_outer.result
      mysql-test/r/join_outer_bka.result
      mysql-test/r/join_outer_bka_nixbnl.result
      mysql-test/r/myisam_icp.result
      mysql-test/r/myisam_icp_all.result
      mysql-test/r/myisam_icp_none.result
      mysql-test/r/select_all_bka.result
      mysql-test/r/select_all_bka_nixbnl.result
      mysql-test/suite/opt_trace/include/general2.inc
      mysql-test/suite/opt_trace/r/general2_no_prot.result
      mysql-test/suite/opt_trace/r/general2_ps_prot.result
      mysql-test/suite/opt_trace/r/temp_table.result
      mysql-test/t/distinct.test
      mysql-test/t/group_by.test
      mysql-test/t/having.test
      mysql-test/t/join.test
      mysql-test/t/join_outer.test
      sql/field.h
      sql/field_conv.cc
      sql/item_sum.cc
      sql/opt_sum.cc
      sql/sql_base.cc
      sql/sql_executor.cc
      sql/sql_lex.cc
      sql/sql_optimizer.cc
      sql/sql_parse.cc
      sql/sql_planner.cc
      sql/sql_select.cc
      sql/sql_tmp_table.cc
      sql/table.cc
      sql/table.h
      storage/myisam/mi_create.c
      unittest/gunit/bounded_queue-t.cc
      unittest/gunit/bounds_checked_array-t.cc
      unittest/gunit/cost_estimate-t.cc
      unittest/gunit/dbug-t.cc
      unittest/gunit/dynarray-t.cc
      unittest/gunit/field-t.cc
      unittest/gunit/filesort_buffer-t.cc
      unittest/gunit/get_diagnostics-t.cc
      unittest/gunit/gunit_test_main.cc
      unittest/gunit/item-t.cc
      unittest/gunit/mdl-t.cc
      unittest/gunit/mdl_mytap-t.cc
      unittest/gunit/my_regex-t.cc
      unittest/gunit/opt_range-t.cc
      unittest/gunit/opt_trace-t.cc
      unittest/gunit/sql_list-t.cc
      unittest/gunit/sql_plist-t.cc
      unittest/gunit/stdcxx-t.cc
      unittest/gunit/tap_event_listener.cc
      unittest/gunit/test_utils.cc
      unittest/gunit/thread_utils-t.cc
      unittest/gunit/thread_utils.cc
 3704 Christopher Powers	2012-01-04
      Bug#12790483 - OBJECTS_SUMMARY_GLOBAL_BY_TYPE AND RENAME TABLE
      
      Resolved causes of orphaned rows in OBJECTS_SUMMARY_GLOBAL_BY_TYPE:
        
      - Delete PFS table share of 'old' table during RENAME TABLE
      - Delete newly created PFS table share following a failed CREATE_TABLE
      - Added 'temporary' paramter to drop_table_share() API
      - Enhance detection of temporary table in ha_create_table()
      - Do not create PFS table shares or track events for temporary tables, internal or otherwise
     @ include/mysql/psi/psi.h
        Added 'temporary' paramter to drop_table_share()
     @ mysql-test/suite/perfschema/r/innodb_table_io.result
        Re-recorded to exclude temporary table output
     @ mysql-test/suite/perfschema/r/temp_table_io.result
        Re-recorded to exclude temporary table output
     @ mysql-test/suite/perfschema/t/dml_handler.test
        Clean up temporary table before exiting
     @ mysql-test/suite/perfschema/t/misc.test
        Added test for RENAME_TABLE
        For each test, verify that no objects remain in OBJECTS_SUMMARY_GLOBAL_BY_TYPE
     @ sql/handler.cc
        ha_create_table()
        - Call drop_table_share() if create fails
        - Improve detection of temporary tables
     @ sql/sql_table.cc
        mysql_rename_table()
        - Call drop_table_share() for 'old' table
        - Fixed whitespace issues
     @ storage/perfschema/pfs.cc
        get_table_share_v1() and drop_table_share_v1()
        - Ignore temporary tables

    modified:
      include/mysql/psi/psi.h
      include/mysql/psi/psi_abi_v1.h.pp
      mysql-test/suite/perfschema/r/dml_handler.result
      mysql-test/suite/perfschema/r/innodb_table_io.result
      mysql-test/suite/perfschema/r/misc.result
      mysql-test/suite/perfschema/r/temp_table_io.result
      mysql-test/suite/perfschema/t/dml_handler.test
      mysql-test/suite/perfschema/t/misc.test
      sql/handler.cc
      sql/sql_table.cc
      storage/perfschema/pfs.cc
 3703 Jimmy Yang	2012-01-04
      Backout kinoyasu's checkin for Bug#12400341. The connection setting
      in the test could exceed the max limit thus the test failure.

    removed:
      mysql-test/suite/innodb/r/innodb_bug12400341.result
      mysql-test/suite/innodb/t/innodb_bug12400341-master.opt
      mysql-test/suite/innodb/t/innodb_bug12400341.test
    modified:
      storage/innobase/row/row0mysql.cc
 3702 Tor Didriksen	2012-01-04
      WL#946 Post-push fix:
      In Field_year::store_time(), store the year of a MYSQL_TIMESTAMP_DATE
      rather than trying to add current time.

    modified:
      sql/field.cc
 3701 kinoyasu	2012-01-04 [merge]
      Bug#12400341 INNODB CAN LEAVE ORPHAN IBD FILES AROUND
      
      If we meet DB_TOO_MANY_CONCURRENT_TRXS during the execution tab_create_graph from row_create_table_for_mysql(), .ibd file for the table should be created already but was not deleted for the error handling.
      
      rb:875 approved by Jimmy Yang

    added:
      mysql-test/suite/innodb/r/innodb_bug12400341.result
      mysql-test/suite/innodb/t/innodb_bug12400341-master.opt
      mysql-test/suite/innodb/t/innodb_bug12400341.test
    modified:
      storage/innobase/row/row0mysql.cc
 3700 Manish Kumar	2012-01-04
      BUG#13071203 - ERROR LOGGING FOR CHANGE MASTER USES QUOTES FOR OPTIONS THAT DON'T ACCEPT THEM
      
      Problem: The error logging shows all parameters as quoted but CHANGE MASTER command
               syntax doesn't accept quotes for some of the command options.
               This makes it difficult when cutting and pasting from the error log, making
               it more error prone. Particularly a problem with CHANGE MASTER as an error in
               entering the values can be disasterous.The reason of such logging is due to the formatting
               used to print the master_info values.
               
      Fix: the problem was fixed by removing the quotes from the numeric parameters of the master info
            in the file rpl_slave.cc, when a change master to command is used.
     @ sql/rpl_slave.cc
        Removed the quotes from the required numeric parameters.

    modified:
      sql/rpl_slave.cc
 3699 Tatjana Azundris Nuernberg	2012-01-02 [merge]
      auto-merge of Bug#12990746

    modified:
      sql/sql_class.h
      sql/sql_parse.cc
 3698 Tatjana Azundris Nuernberg	2012-01-02 [merge]
      auto-merge

    modified:
      sql/sql_table.cc
 3697 Tatjana Azundris Nuernberg	2012-01-02 [merge]
      manual merge for Bug#11755281

    modified:
      mysql-test/r/init_connect.result
      mysql-test/t/init_connect.test
      sql/sql_connect.cc
 3696 Vasil Dimov	2011-12-29 [merge]
      Null merge mysql-5.5 -> mysql-trunk
      
      The merged revisions are already in mysql-trunk and were backported
      into mysql-5.5.

 3695 Nirbhay Choubey	2011-12-29
      Bug#12589167 60901: 5.6.2 CLIENT TRUNCATES LINES AT
                   255 CHARS/MULTILINE QUERIES DONT WORK
                   ON WINDOWS
      
      The synopsis of the bug does not outline the real
      problem. The actual problem being the copy/paste,
      i.e. whenever a multi-lined string is copied leaving
      the trailing line-separator characters "CRLF" of the
      last line, the first character of the last line
      always gets altered to 'm', and that is the reason
      behind this bug.
      
      Fixed by changing the way lines are read from the
      console buffer (initially done as part of WL#5331).
      Now, the entire line will be read in a single go
      instead of character-by-character reading.
     @ mysys/my_conio.c
        Bug#12589167 60901: 5.6.2 CLIENT TRUNCATES LINES AT
                     255 CHARS/MULTILINE QUERIES DONT WORK
                     ON WINDOWS
        
        Changed the way lines are read from the console input
        buffer. Now, (post-patch) ReadConsoleW() function will
        wait (block) for the entire line to be entered, and then
        will copy the entire line to 'u16buf' buffer.

    modified:
      mysys/my_conio.c
 3694 Nirbhay Choubey	2011-12-28
      Bug#13460909 :STACK SMASHING DETECTED IN LIBMYSQLD
                    DEBUG BUILD
      
      An embedded-mysql application can crash in debug
      mode with 'stack smashing detected' error when it
      tries to connect without specifying the user name
      (NULL).
      
      The problem lies in the length of the buffer (array)
      allocated to store user name in mysql_real_connect
      function. This length did not take into consideration
      an extra byte that strmake requires in order to store
      either '\0' or 'Z' in debug mode (for padding empty
      bytes).
      
      Fixed by increasing the name buffer length by 1.
     @ libmysqld/libmysqld.c
        Bug#13460909 :STACK SMASHING DETECTED IN
                      LIBMYSQLD DEBUG BUILD
        
        Increased the buffer size by one to cope
        up with the requirement placed by strmake
        function, which requires an extra byte in
        the destination buffer to store '\0' or
        'Z' (in debug mode).

    modified:
      libmysqld/libmysqld.c
 3693 Marko Mäkelä	2011-12-28 [merge]
      Merge mysql-5.5 to mysql-trunk.

    modified:
      storage/innobase/buf/buf0buf.cc
      storage/innobase/include/mem0mem.ic
      storage/innobase/include/univ.i
      storage/innobase/include/ut0mem.h
      storage/innobase/mem/mem0pool.cc
      storage/innobase/os/os0proc.cc
      storage/innobase/ut/ut0mem.cc
 3692 Annamalai Gurusami	2011-12-28
      Bug #13255225: THE VALUE OF INNODB_UNDO_LOGS IN MY.CNF IS IGNORED
      
      Introduced a new read only status variable srv_available_undo_logs.  
      During startup, this variable will be set to the total available 
      number of rollback segments.  Users can access this variable to find
      out the available number of rollback segments.  The innodb_undo_logs
      will contain the number of active rollback segments. 
      
      Review Board link:
      http://bur03.no.oracle.com/rb/r/862/

    modified:
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/srv0srv.h
      storage/innobase/srv/srv0srv.cc
      storage/innobase/srv/srv0start.cc
 3691 Marko Mäkelä	2011-12-27
      Correct the comment of rw_lock_x_lock_low().

    modified:
      storage/innobase/sync/sync0rw.cc
 3690 Marko Mäkelä	2011-12-27
      Remove unused functions when analyzing Bug#13537504
      
      rw_lock_s_unlock_direct(), rw_lock_x_unlock_direct(): Remove.

    modified:
      storage/innobase/include/sync0rw.h
      storage/innobase/include/sync0rw.ic
 3689 Vasil Dimov	2011-12-27
      Remove innodb.innodb_bug56143 from default.experimental after
      
      Bug#11765460 DROP TABLE USES INEFFICIENT METHODS TO REMOVE FKS/INDEXES
      FROM INNODB SYS TABLES
      
      has been fixed.

    modified:
      mysql-test/collections/default.experimental
 3688 Rohit Kalhans	2011-12-26 [merge]
      upmerge from mysql-5.5 to mysql-trunk

    modified:
      mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
      mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
 3687 Praveenkumar Hulakund	2011-12-26
      BUG#11764724 - 57586: UNKNOWN TABLE WHEN TRYING TO DROP A TABLE AND NO AVAILABLE UNDO 
      SLOTS LEFT
      
      Description:
      If you attempt to drop an existing InnoDB table, but you do not have any 
      available undo slots open, then you will receive an "unknown table" error. 
      
      mysql> DROP TABLE test.innodb_table_monitor; 
      ERROR 1051 (42S02): Unknown table 'innodb_table_monitor' 
      
      How To Repeat: 
      <first> make sure max_connections > 1024 </first> 
      
      use test; 
      create table t (id int) engine=innodb; 
      create table innodb_table_monitor (id int) engine=innodb; 
      
      Run following script: 
      
      <? 
      $db_arr=array(); 
      for ($i = 1; $i <= 1024; $i++) { 
      $db=$db_arr[$i]=mysql_connect("localhost:3307","root","pass",1); 
              mysql_select_db("test",$db); 
              mysql_query("BEGIN",$db) or die(mysql_error()); 
              mysql_query("INSERT INTO t VALUES ($i)",$db) or die(mysql_error()); 
      } 
      $db=$db_arr[$i]=mysql_connect("localhost:3307","root","pass",1); 
      mysql_select_db("test",$db); 
      mysql_query("DROP TABLE test.innodb_table_monitor",$db) or die(mysql_error()); 
      
      sleep(60); 
      ?> 
      
      
      After the above script, it will throw the following error: 
      
      Unknown table 'innodb_table_monitor' 
      
      Analysis:
      Here, max number of concurrent transactions/connections are started and then the
      next transaction to drop a table is initiated. Since, system has already max number
      of transactions running, next transaction to "drop table" was not started and innodb
      returned error "DB_TOO_MANY_CONCURRENT_TRXS". But this error was not handled properly 
      in sql layer because of which "drop table" operation was throwing wrong error message. 
      
      Fix:
      As a fix, I have added check in sql (in function "mysql_rm_table_part2") to handle error 
      code "HA_ERR_TOO_MANY_CONCURRENT_TRXS" and throw proper error message.
      
      Ouput of drop command after fix (with max number of concurrent transaction running)
      
      mysql> drop table test;
      ERROR 177 (HY000): Too many active concurrent transactions
      
      To reproduce this issue, max_connections should be set to value greater than 1024 and
      1024 connections/transactions need to be started. Since, this process consumes lot of
      time and resource, I havent added test case in mysql_test. But I will update but list
      with request of QA assistance to verify fix.

    modified:
      sql/sql_table.cc
 3686 Nirbhay Choubey	2011-12-24 [merge]
      Merge of post-fix for bug#12809202 from mysql-5.5

    modified:
      client/mysqldump.c
      mysql-test/r/mysqldump.result
      mysql-test/t/mysqldump.test
 3685 Nirbhay Choubey	2011-12-23 [merge]
      Merge of patch for bug#12809202 from mysql-5.5.

    modified:
      client/mysqldump.c
      mysql-test/r/mysqldump.result
      mysql-test/t/mysqldump.test
 3684 Ramil Kalimullin	2011-12-23 [merge]
      Auto-merge from mysql-5.5.

    modified:
      storage/federated/ha_federated.cc
 3683 Ramil Kalimullin	2011-12-23 [merge]
      Auto-merge from mysql-5.5.

    modified:
      storage/federated/ha_federated.cc
 3682 Inaam Rana	2011-12-23
      [part 1 of WL5655] refactoring dblwr code
      
      rb://861
      approved by: Jimmy
      
      * Refactor dblwr code in a separate module
      * Cleanup support of pre-4.1 ibuf record format

    added:
      storage/innobase/buf/buf0dblwr.cc
      storage/innobase/include/buf0dblwr.h
    modified:
      storage/innobase/CMakeLists.txt
      storage/innobase/buf/buf0buf.cc
      storage/innobase/buf/buf0flu.cc
      storage/innobase/buf/buf0lru.cc
      storage/innobase/buf/buf0rea.cc
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/ibuf/ibuf0ibuf.cc
      storage/innobase/include/buf0types.h
      storage/innobase/include/mtr0log.ic
      storage/innobase/include/sync0sync.h
      storage/innobase/include/trx0sys.h
      storage/innobase/include/trx0types.h
      storage/innobase/log/log0recv.cc
      storage/innobase/srv/srv0start.cc
      storage/innobase/trx/trx0sys.cc
 3681 Mayank Prasad	2011-12-23
      bug#12561297:
            
      Details: 
       - fixed failing test case on pb2 for sparc platform.
      
      Issue:
       In function init_embedded_server(), fake_argv (*char[]), which has a string 
       constant as its first element, was being assigned to argvp (char***), which  
       was not proper as while dereferencing argvp[0][0] (in my_load_defaults()), 
       it was not able to access that memory location.
      
      Solution:
      - Removed unnecessary C-Style type casting which is potential cause to
        introduce similar issue.
      - First assigning 'array of char pointer' to '**char' (temp pointer) and then
        assigning its address to '***char' resolves the issue.
      - Tell the master server to not use innodb, otherwise mysqld_embedded
        (which starts innodb) will hang for a looong time waiting to lock innodb
        data segments. 

    added:
      mysql-test/t/mysql_embedded-master.opt
    modified:
      libmysqld/lib_sql.cc
      mysql-test/mysql-test-run.pl
 3680 Sneha Modi	2011-12-22 [merge]
      Bug#11754150: A test case for bug#6857 has been disabled in sp.test:
      
      Merging from mysql-5.5 -> mysql-trunk

    modified:
      mysql-test/t/sp.test

Diff too large for email (53027 lines, the limit is 10000).
No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (tor.didriksen:3680 to 3811) Tor Didriksen6 Feb