List:Commits« Previous MessageNext Message »
From:Mattias Jonsson Date:February 21 2011 4:30pm
Subject:bzr push into mysql-trunk branch (mattias.jonsson:3680 to 3692) WL#4443
View as plain text  
 3692 Mattias Jonsson	2011-02-21
      WL#4443 proof of concept.
      
      Prototype for designing WL#4443.
      
      Moved open_tables() and lock_tables()
      (was open_and_lock_tables()) into
      mysql_select/handle_select/mysql_union.
      
      Splitted JOIN::optimize to
      JOIN::optimize_before_locking +
      JOIN::optimize_after_locking
      
      
      Not yet done:
      Implement pruning for INSERT.
      Fix all problems with Items that uses tables
      in the prepare/optimize_before_locking stages.

    added:
      mysql-test/r/wl4443.result
      mysql-test/t/wl4443.test
    modified:
      sql/ha_partition.cc
      sql/handler.h
      sql/item_row.cc
      sql/item_subselect.cc
      sql/opt_range.cc
      sql/sql_base.cc
      sql/sql_base.h
      sql/sql_derived.cc
      sql/sql_derived.h
      sql/sql_insert.cc
      sql/sql_parse.cc
      sql/sql_select.cc
      sql/sql_select.h
      sql/sql_union.cc
      sql/sql_union.h
      sql/sql_update.cc
      sql/table.h
 3691 Magnus Blåudd	2011-02-21 [merge]
      Merge empty merge changeset into trunk

 3690 Magnus Blåudd	2011-02-21 [merge]
      Merge

    modified:
      include/my_global.h
      include/mysql_embed.h
      sql/ha_ndbcluster_cond.cc
 3689 Mattias Jonsson	2011-02-21 [merge]
      merge from latest mysql-trunk

    modified:
      mysql-test/r/alter_table.result
      mysql-test/t/alter_table.test
 3688 Mattias Jonsson	2011-02-21 [merge]
      Merge of WL#5217 into mysql-trunk

    added:
      mysql-test/r/partition_explicit_prune.result
      mysql-test/suite/parts/inc/partition-dml-1-1-modes.inc
      mysql-test/suite/parts/inc/partition-dml-1-1.inc
      mysql-test/suite/parts/inc/partition-dml-1-10.inc
      mysql-test/suite/parts/inc/partition-dml-1-11.inc
      mysql-test/suite/parts/inc/partition-dml-1-2.inc
      mysql-test/suite/parts/inc/partition-dml-1-3.inc
      mysql-test/suite/parts/inc/partition-dml-1-4.inc
      mysql-test/suite/parts/inc/partition-dml-1-5.inc
      mysql-test/suite/parts/inc/partition-dml-1-6.inc
      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-dml-1-9.inc
      mysql-test/suite/parts/inc/partition-dml_cr_tab.inc
      mysql-test/suite/parts/inc/partition-dml_ins_tab.inc
      mysql-test/suite/parts/inc/rpl-partition-dml-1-1.inc
      mysql-test/suite/parts/r/partition-dml-1-1-innodb-modes.result
      mysql-test/suite/parts/r/partition-dml-1-1-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-1-myisam-modes.result
      mysql-test/suite/parts/r/partition-dml-1-1-myisam.result
      mysql-test/suite/parts/r/partition-dml-1-10-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-10-myisam.result
      mysql-test/suite/parts/r/partition-dml-1-11-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-11-myisam.result
      mysql-test/suite/parts/r/partition-dml-1-2-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-2-myisam.result
      mysql-test/suite/parts/r/partition-dml-1-3-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-4-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-5-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-6-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-7-innodb.result
      mysql-test/suite/parts/r/partition-dml-1-8-innodb.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/suite/parts/r/rpl-partition-dml-1-1-innodb.result
      mysql-test/suite/parts/r/rpl-partition-dml-1-1-myisam.result
      mysql-test/suite/parts/t/partition-dml-1-1-innodb-modes.test
      mysql-test/suite/parts/t/partition-dml-1-1-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-1-myisam-modes.test
      mysql-test/suite/parts/t/partition-dml-1-1-myisam.test
      mysql-test/suite/parts/t/partition-dml-1-10-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-10-myisam.test
      mysql-test/suite/parts/t/partition-dml-1-11-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-11-myisam.test
      mysql-test/suite/parts/t/partition-dml-1-2-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-2-myisam.test
      mysql-test/suite/parts/t/partition-dml-1-3-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-4-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-5-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-6-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-7-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-8-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-9-innodb.test
      mysql-test/suite/parts/t/partition-dml-1-9-myisam.test
      mysql-test/suite/parts/t/rpl-partition-dml-1-1-innodb.test
      mysql-test/suite/parts/t/rpl-partition-dml-1-1-myisam.test
      mysql-test/t/partition_explicit_prune.test
    modified:
      include/my_base.h
      include/welcome_copyright_notice.h
      mysql-test/r/partition_exchange.result
      mysql-test/suite/parts/inc/partition_fail.inc
      mysql-test/suite/parts/r/partition_exch_qa_13.result
      mysql-test/suite/parts/r/partition_exch_qa_2.result
      mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
      mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
      mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
      mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
      mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
      mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
      mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
      mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
      mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
      mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
      mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
      mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
      mysql-test/suite/parts/r/partition_repair_myisam.result
      mysql-test/suite/parts/t/partition_debug_myisam.test
      mysql-test/suite/parts/t/partition_exch_qa_14.test
      mysql-test/suite/parts/t/partition_repair_myisam.test
      mysql-test/t/partition_binlog.test
      mysys/hash.c
      mysys/my_handler.c
      mysys/my_handler_errors.h
      sql/ha_partition.cc
      sql/ha_partition.h
      sql/handler.cc
      sql/handler.h
      sql/mysqld.cc
      sql/opt_range.cc
      sql/partition_info.cc
      sql/partition_info.h
      sql/share/errmsg-utf8.txt
      sql/sql_base.cc
      sql/sql_class.h
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_parse.cc
      sql/sql_partition.cc
      sql/sql_table.cc
      sql/sql_table.h
      sql/sql_yacc.yy
      sql/table.cc
      sql/table.h
 3687 Jorgen Loland	2011-02-21
      Bug#11766642: crash in Item_field::register_field_in_read_map 
                    with view
      
      (Former 59793)
      
      Prior to the refactoring in this patch, Item_cond_xor behaved 
      partially as an Item_cond and partially as an Item_func. The
      reasoning behind this was that XOR is currently not optimized
      (thus should be Item_func instead of Item_cond), but it was 
      planned optimize it in the future (thus, made Item_cond anyway 
      to ease optimization later). 
      
      Even though Item_cond inherits from Item_func, there are 
      differences between these two. One difference is that the 
      arguments are stored differently. Item_cond stores them in a 
      list while Item_func store them in an args[]. 
      
      BUG no 45221 was caused by Item_cond_xor storing arguments in 
      the list while users of the objects would look for them in 
      args[]. The fix back then was to store the arguments in both 
      locations.
      
      In this bug, Item_cond_xor initially gets two Item_field 
      arguments. These are stored in the list inherited from 
      Item_cond and in args[] inherited from Item_func. During
      resolution, find_field_in_view() replaces the Item_fields 
      stored in the list with Item_direct_view_refs, but args[] 
      still points to the unresolved Item_fields. This shows that 
      the fix for 45221 was incorrect.
      
      The refactoring performed in this patch removes the confusion
      by making the XOR item an Item_func period. A neg_transformer() 
      is also implemented for Item_func_xor to improve performance 
      when negating XOR expressions. An XOR is negated by negating 
      one of the operands.
     @ mysql-test/include/subquery_sj.inc
        Add test for BUG#11766642
     @ mysql-test/r/negation_elimination.result
        Add tests for XOR
     @ mysql-test/r/subquery_sj_none.result
        Add test for BUG#11766642
     @ mysql-test/t/negation_elimination.test
        Add tests for XOR
     @ sql/item_cmpfunc.cc
        Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond. Also added neg_transformer() function to improve performance when XOR is negated.
     @ sql/item_cmpfunc.h
        Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond. Also added neg_transformer() function to improve performance when XOR is negated.
     @ sql/item_func.h
        Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond
     @ sql/sql_yacc.yy
        Refactor XOR item: it is now a pure Item_func, inheriting from Item_bool_func2 instead of Item_cond
     @ unittest/gunit/item-t.cc
        Add unit test for Item_func_xor

    modified:
      mysql-test/include/subquery_sj.inc
      mysql-test/r/negation_elimination.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/t/negation_elimination.test
      sql/item_cmpfunc.cc
      sql/item_cmpfunc.h
      sql/item_func.h
      sql/sql_yacc.yy
      unittest/gunit/item-t.cc
 3686 Vasil Dimov	2011-02-21 [merge]
      Merge mysql-trunk-innodb -> mysql-trunk

    modified:
      storage/innobase/btr/btr0sea.c
      storage/innobase/include/ha0ha.h
 3685 Tor Didriksen	2011-02-18
      Bug #11788245 - 60110 DO MORE THD AND GLOBAL INITIALIZATION FOR UNIT TESTING
     @ sql/mysqld.cc
        Let unit test setup call init_common_variables() rather than init_thread_environment()
        
        Add utility set_remaining_args() to set global variables remaining_xxx.
        
        check_enough_stack_size should have C linkage (warning by sun compiler)
     @ sql/mysqld.h
        Let unit test setup call init_common_variables() rather than init_thread_environment()
        
        Add utility set_remaining_args() to set global variables remaining_xxx.
     @ sql/sql_class.cc
        Change interface of plugin_thdvar_init()
     @ sql/sql_plugin.cc
        Change interface of plugin_thdvar_init()
     @ sql/sql_plugin.h
        Change interface of plugin_thdvar_init()
     @ unittest/gunit/item-t.cc
        More initializations in SetUpTestCase()
        New tests: ItemFuncSetUserVar, OutOfMemory

    modified:
      sql/mysqld.cc
      sql/mysqld.h
      sql/sql_class.cc
      sql/sql_plugin.cc
      sql/sql_plugin.h
      unittest/gunit/item-t.cc
 3684 Sergey Vojtovich	2011-02-21 [merge]
      Merge.

    modified:
      mysql-test/r/func_time.result
      mysql-test/t/func_time.test
      sql/item_timefunc.cc
      sql/item_timefunc.h
 3683 Nirbhay Choubey	2011-02-21
      Post fix for mysqldump test.

    modified:
      mysql-test/r/mysqldump.result
      mysql-test/t/mysqldump.test
 3682 Nirbhay Choubey	2011-02-21 [merge]
      Merge of fix for bug#11766310 from mysql-5.5 -> mysql-trunk.

    modified:
      client/mysqldump.c
      mysql-test/r/mysqldump.result
      mysql-test/t/mysqldump.test
 3681 Libing Song	2011-02-21
      WL#5576 Prohibit CREATE TABLE ... SELECT to modify other tables
      BUG#11749792 and BUG#11763193 are fixed by this worklog.
            
      In 'CREATE TABLE ... SELECT' statement, SELECT clause could call store functions
      to modify other tables. It made CTS's behavior towards complex and not
      understandable. It also caused some binlogging problem. So the behavior modifying
      other tables is prohibited in this worklog.
            
      In this patch, code is added to check if there is any other table owning WRITE
      lock just after all tables have been locked. CREATE TABLE ... SELECT will fail
      and print an error immediately if any other table has WRITE lock.
      As SELECT ... FOR UPDATE uses WRITE lock too. FOR UPDATE clause is also
      prohibited in CREATE TABLE ... SELECT statement.
     @ mysql-test/include/unsafe_binlog.inc
        The CREATE TABLE ... SELECT with a store function which updates
        other tables fails with a new error added by WL#5576.
     @ mysql-test/r/create.result
        Added test to verify WL#5576.
     @ mysql-test/r/func_rollback.result
        The CREATE TABLE ... SELECT with a store function which updates 
        other tables fails with a new error added by WL#5576.
     @ mysql-test/r/mdl_sync.result
        The CREATE TABLE ... SELECT with a store function which updates 
        other tables fails with a new error added by WL#5576.
     @ mysql-test/r/unsafe_binlog_innodb.result
        The CREATE TABLE ... SELECT with a store function which updates 
        other tables fails with a new error added by WL#5576.
     @ mysql-test/suite/innodb/r/innodb.result
        The CREATE TABLE ... SELECT with a store function which updates 
        other tables fails with a new error added by WL#5576.
     @ mysql-test/suite/innodb/t/innodb.test
        The CREATE TABLE ... SELECT with a store function which updates 
        other tables fails with a new error added by WL#5576.
     @ mysql-test/t/create.test
        Added test to verify WL#5576.
     @ mysql-test/t/func_rollback.test
        The CREATE TABLE ... SELECT with a store function which updates
        other tables fails with a new error added by WL#5576.
     @ mysql-test/t/mdl_sync.test
        'FOR UPDATE' is disallowed in CREATE TABLE ... SELECT statement
        after WL#5576. Using a new method to lock the table.
     @ sql/share/errmsg-utf8.txt
        Added a new error for WL#5576.
     @ sql/sql_parse.cc
        Implemented WL#5576.

    modified:
      mysql-test/include/unsafe_binlog.inc
      mysql-test/r/create.result
      mysql-test/r/func_rollback.result
      mysql-test/r/mdl_sync.result
      mysql-test/r/unsafe_binlog_innodb.result
      mysql-test/suite/innodb/r/innodb.result
      mysql-test/suite/innodb/t/innodb.test
      mysql-test/t/create.test
      mysql-test/t/func_rollback.test
      mysql-test/t/mdl_sync.test
      sql/share/errmsg-utf8.txt
      sql/sql_parse.cc
 3680 Alexander Barkov	2011-02-18 [merge]
      Merging from 5.5

    modified:
      tests/mysql_client_test.c

Diff too large for email (18447 lines, the limit is 10000).
No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (mattias.jonsson:3680 to 3692) WL#4443Mattias Jonsson21 Feb