1. 17 Aug, 2010 1 commit
  2. 16 Aug, 2010 6 commits
    • Mattias Jonsson's avatar
      merge · 4417be8f
      Mattias Jonsson authored
      4417be8f
    • Mattias Jonsson's avatar
    • Mattias Jonsson's avatar
      merge · eb2e8df9
      Mattias Jonsson authored
      eb2e8df9
    • Mattias Jonsson's avatar
      Bug#49907: ALTER TABLE ... TRUNCATE PARTITION does not wait for · 36c82480
      Mattias Jonsson authored
                 locks on the table
      
      Fixing the partitioning specifics after TRUNCATE TABLE in
      bug-42643 was fixed.
      
      Reorganize of code to decrease the size of the giant switch
      in mysql_execute_command, and to prepare for future parser
      reengineering. Moved code into Sql_statement objects.
      
      Updated patch according to davi's review comments.
      
      libmysqld/CMakeLists.txt:
        Added new files.
      libmysqld/Makefile.am:
        Added new files.
      mysql-test/r/not_partition.result:
        now returning error on partitioning commands
        if partitioning is not enabled.
      mysql-test/r/partition_disabled.result:
        There is no partition handlerton, so it cannot
        find the specified engine in the .frm file.
      mysql-test/r/partition_truncate.result:
        Updated test results.
      mysql-test/suite/parts/inc/partition_mgm.inc:
        Added check that TRUNCATE PARTITION does not delete on failure.
      mysql-test/suite/parts/r/partition_debug_sync_innodb.result:
        updated results.
      mysql-test/suite/parts/r/partition_mgm_lc0_archive.result:
        updated results.
      mysql-test/suite/parts/r/partition_mgm_lc1_archive.result:
        updated results.
      mysql-test/suite/parts/r/partition_mgm_lc2_archive.result:
        updated results.
      mysql-test/suite/parts/t/partition_debug_sync_innodb.test:
        Test case for this bug.
      mysql-test/t/not_partition.test:
        Added check for TRUNCATE PARTITION without partitioning.
      mysql-test/t/partition_truncate.test:
        Added test of TRUNCATE PARTITION on non partitioned table.
      sql/CMakeLists.txt:
        Added new files.
      sql/Makefile.am:
        Added new files.
      sql/datadict.cc:
        Moved out the storage engine check into an own
        function, including assert for lock.
      sql/datadict.h:
        added dd_frm_storage_engine.
      sql/sql_alter_table.cc:
        moved the code for SQLCOM_ALTER_TABLE in mysql_execute_command
        into its own file, and using the Sql_statement object to
        prepare for future parser reengineering.
      sql/sql_alter_table.h:
        Created Sql_statement object for ALTER TABLE.
      sql/sql_lex.cc:
        resetting m_stmt.
      sql/sql_lex.h:
        Temporary hack for forward declaration of enum_alter_table_change_level.
      sql/sql_parse.cc:
        Moved out ALTER/ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
        from the giant switch into their own Sql_statement
        objects.
      sql/sql_parse.h:
        Exporting check_merge_table_access.
      sql/sql_partition_admin.cc:
        created Sql_statement for
        ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR/TRUNCATE
        PARTITION. To be able to reuse the TABLE equivalents.
      sql/sql_partition_admin.h:
        Added Sql_statement of partition admin statements.
      sql/sql_table.cc:
        Moved table maintenance code into sql_table_maintenance.cc
      sql/sql_table.h:
        Moved table maintenance code into sql_table_maintenance.h
        exporting functions used by sql_table_maintenance.
      sql/sql_table_maintenance.cc:
        Moved table maintenance code from sql_table.cc
      sql/sql_table_maintenance.h:
        Sql_statement objects for ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE.
        Also declaring the keycache functions.
      sql/sql_truncate.cc:
        Moved code from SQLCOM_TRUNCATE in mysql_execute_command into
        Truncate_statement::execute.
        Added check for partitioned table on TRUNCATE PARTITION.
        Moved locking fix for partitioned table into
        Alter_table_truncate_partition::execute.
      sql/sql_truncate.h:
        Truncate_statement declaration (sub class of Sql_statement).
      sql/sql_yacc.yy:
        Using the new Sql_statment objects.
      36c82480
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5. · 71636efa
      Alexander Nozdrin authored
      71636efa
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.5-stage. · c187598c
      Alexander Nozdrin authored
      c187598c
  3. 14 Aug, 2010 1 commit
    • Evgeny Potemkin's avatar
      Bug#49746: Const expression caching led to NDB not using engine condition · 3c282ea2
      Evgeny Potemkin authored
      pushdown.
            
      NDB supports only a limited set of item nodes for use in engine condition
      pushdown. Because of this adding cache for const expression effectively
      disabled this optimization.
            
      The ndb_serialize_cond function is extended to support Item_cache and treat
      it as a constant values.
      A helper function called ndb_serialize_const is added. It is used to create
      Ndb_cond value node from given const item.
      
      
      mysql-test/suite/ndb/t/disabled.def:
        Bug#49746: Const expression caching led to NDB not using engine condition
        pushdown.
        Enabled ndb_condition_pushdown test after fixing appropriate bug.
      sql/ha_ndbcluster_cond.cc:
        Bug#49746: Const expression caching led to NDB not using engine condition
        pushdown.
        The ndb_serialize_cond function is extended to support Item_cache and treat
        it as a constant values.
        A helper function called ndb_serialize_const is added. It is used to create
        Ndb_cond value node from given const item.
      sql/item.cc:
        Bug#49746: Const expression caching led to NDB not using engine condition
        pushdown.
        The Item::cache_const_expr_analyzer function is adjusted to not create
        cache for Item_int_with_ref objects.
      sql/item.h:
        Bug#49746: Const expression caching led to NDB not using engine condition
        pushdown.
        The result_type() method is added to Item_cache class.
        The Item_cache_str now initializes its collation.
      3c282ea2
  4. 13 Aug, 2010 2 commits
    • Mattias Jonsson's avatar
      merge · ca0268fd
      Mattias Jonsson authored
      ca0268fd
    • Mattias Jonsson's avatar
      Bug#53676: Unexpected errors and possible table · 4e21cd08
      Mattias Jonsson authored
                 corruption on ADD PARTITION and LOCK TABLE
      Bug#53770: Server crash at handler.cc:2076 on
                 LOAD DATA after timed out COALESCE PARTITION
      
      5.5 fix for:
      Bug#51042: REORGANIZE PARTITION can leave table in an
                 inconsistent state in case of crash
      Needs to be back-ported to 5.1
      
      5.5 fix for:
      Bug#50418: DROP PARTITION does not interact with
                 transactions
      
      Main problem was non-persistent operations done
      before meta-data lock was taken (53770+53676).
      And 53676 needed to keep the table/partitions opened and locked
      while copying the data to the new partitions.
      
      Also added thorough tests to spot some additional bugs
      in the ddl_log code, which could result in bad state
      between the .frm and partitions.
      
      Collapsed patch, includes all fixes required from the reviewers.
      
      mysql-test/r/partition_innodb.result:
        updated result with new test
      mysql-test/suite/parts/inc/partition_crash.inc:
        crash test include file
      mysql-test/suite/parts/inc/partition_crash_add.inc:
        test all states in fast_alter_partition_table
        ADD PARTITION branch
      mysql-test/suite/parts/inc/partition_crash_change.inc:
        test all states in fast_alter_partition_table
        CHANGE PARTITION branch
      mysql-test/suite/parts/inc/partition_crash_drop.inc:
        test all states in fast_alter_partition_table
        DROP PARTITION branch
      mysql-test/suite/parts/inc/partition_fail.inc:
        recovery test including injecting errors
      mysql-test/suite/parts/inc/partition_fail_add.inc:
        test all states in fast_alter_partition_table
        ADD PARTITION branch
      mysql-test/suite/parts/inc/partition_fail_change.inc:
        test all states in fast_alter_partition_table
        CHANGE PARTITION branch
      mysql-test/suite/parts/inc/partition_fail_drop.inc:
        test all states in fast_alter_partition_table
        DROP PARTITION branch
      mysql-test/suite/parts/inc/partition_mgm_crash.inc:
        include file that runs all crash and failure injection tests.
      mysql-test/suite/parts/r/partition_debug_innodb.result:
        new test result file
      mysql-test/suite/parts/r/partition_debug_myisam.result:
        new test result file
      mysql-test/suite/parts/r/partition_special_innodb.result:
        updated result
      mysql-test/suite/parts/r/partition_special_myisam.result:
        updated result
      mysql-test/suite/parts/t/partition_debug_innodb-master.opt:
        opt file for using with crashing tests of partitioned innodb
      mysql-test/suite/parts/t/partition_debug_innodb.test:
        partitioned innodb test that require debug builds
      mysql-test/suite/parts/t/partition_debug_myisam-master.opt:
        opt file for using with crashing tests of partitioned myisam
      mysql-test/suite/parts/t/partition_debug_myisam.test:
        partitioned myisam test that require debug builds
      mysql-test/suite/parts/t/partition_special_innodb-master.opt:
        added innodb-file-per-table to easier verify partition status on disk
      mysql-test/suite/parts/t/partition_special_innodb.test:
        added test case
      mysql-test/suite/parts/t/partition_special_myisam.test:
        added test case
      mysql-test/t/partition_innodb.test:
        added test case
      sql/sql_base.cc:
        Moved alter_close_tables to sql_partition.cc
      sql/sql_base.h:
        removed some non existing and duplicated functions.
      sql/sql_partition.cc:
        fast_alter_partition_table:
        Spletted abort_and_upgrad_lock_and_close_table
        to its parts (wait_while_table_is_used and
        alter_close_tables) and always have
        wait_while_table_is_used before any persistent
        operations (including logs, which will be executed
        on failure) and alter_close_tables after
        create/read/write operations and before
        drop operations.
        
        moved alter_close_tables here from sql_base.cc
        
        Added error injections for better test coverage.
        
        write_log_final_change_partition:
        fixed a log_entry linking bug (delete_frm was not
        linked to change/drop partition)
        and drop partition must be executed before
        change partition (change partition can rename a
        partition to an old name, like REORG p1 INTO (p1,p2).
        
        write_log_add_change_partition:
        need to use drop_frm first, and relinking that entry
        and reusing its execute entry.
      sql/sql_table.cc:
        added initialization of next_active_log_entry.
      sql/table.h:
        removed a duplicate declaration.
      4e21cd08
  5. 12 Aug, 2010 4 commits
  6. 11 Aug, 2010 2 commits
    • Joerg Bruehe's avatar
      Fix Bug#55015 · f685b6f0
      Joerg Bruehe authored
        "MySQL server is not restarted properly after RPM upgrade"
      
      The problem is that with the general spec file cleanup and
      alignment we also did a name change, dropping the "-community"
      part from the package file name.
      
      As a result of this, RPM (some versions of it) will report
      file conflicts, because it considers this name difference
      to imply different packages.
      To avoid this, the spec file explicitly "obsoletes" the old
      packages (with "-community" in the file name).
      
      Now, RPM will first install these packages and the remove the
      old ones, and part of that removal is running the "%preun"
      section which stops the server and uninstalls the service
      (removes the symlinks to "/etc/init.d/mysql" from the run
      level directories).
      This stop/uninstall will affect the new server!
      
      The fix is to define a "%triggerpostun" in this spec file
      which will watch for removal of the "-community" server.
      If this is done (as part of this install/upgrade), the
      trigger code will re-install the service and restart the
      server process.
      
      In addition, the "sleep" calls after starting the server
      have been cleaned up: Rather than doing 2* "sleep 2",
      it is now 1 "sleep 5".
      f685b6f0
    • Guilhem Bichot's avatar
      fix for Bug #55672 "mysql_upgrade dies with internal error": · 0cde3aee
      Guilhem Bichot authored
      it couldn't parse the --ssl option.
      
      client/mysql_upgrade.c:
        mysql_upgrade parses its options and passes some of them to the underlying
        tools (mysqlcheck etc). To do this passdown, it reconstructs a
        command-line-suitable text from the my_option object (which
        contains the option's name and option's value). For options
        which expect no parameter, it just had to use the option's name;
        for other options, it had to concatenate the option's name,
        a "=" symbol, and the option's value; it had code to handle
        this latter case, but only for GET_STR options (options taking a
        string as value). But since the work on WL 4738, the --ssl
        option, a GET_BOOL, which used to have no parameter (NO_ARG), can
        now have one (OPT_ARG), so with --ssl we came to the "default"
        label, error. Fixed by constructing the command-line-suitable
        representation for GET_BOOL too. For --ssl it will produce
        --ssl=1 ; for --ssl=0, it will produce --ssl=0.
      mysql-test/include/mysql_upgrade_preparation.inc:
        handles requirements of tests which use mysql_upgrade
      mysql-test/r/mysql_upgrade_ssl.result:
        result; without the code fix we would get "internal error".
      mysql-test/t/mysql_upgrade.test:
        This test has requirements before running; moved them
        to an include file in order to share with mysql_upgrade_ssl.
      mysql-test/t/mysql_upgrade_ssl.test:
        test for bug. Couldn't go into mysql_upgrade.test as this new test requires
        SSL support. --force is needed, in case mysql_upgrade.test run before
        (in which case mysql_upgrade_ssl would say that upgrade has already been
        done); --force forces the upgrade in all cases.
      0cde3aee
  7. 12 Aug, 2010 1 commit
  8. 10 Aug, 2010 2 commits
    • Jonathan Perkin's avatar
      Merge to mysql-5.5-bugfixing · b8752fd0
      Jonathan Perkin authored
      b8752fd0
    • Alfranio Correia's avatar
      BUG#50312 Warnings for unsafe sub-statement not returned to client · 98626f1e
      Alfranio Correia authored
                              
      After BUG#36649, warnings for sub-statements are cleared when a 
      new sub-statement is started. This is problematic since it suppresses
      warnings for unsafe statements in some cases. It is important that we
      always give a warning to the client, because the user needs to know
      when there is a risk that the slave goes out of sync.
                              
      We fixed the problem by generating warning messages for unsafe statements
      while returning from a stored procedure, function, trigger or while
      executing a top level statement.
                              
      We also started checking unsafeness when both performance and log tables are
      used. This is necessary after the performance schema which does a distinction
      between performance and log tables.
      
      mysql-test/extra/rpl_tests/create_recursive_construct.inc:
        Changed the order of the calls in the procedure because the code
        that checks if a warning message is printed out expects that the
        first statement gives an warning what is not the case for INSERT
        INTO ta$CRC_ARG_level VALUES (47);
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
        Updated the result file.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        There are several changes here:
                
        (1) - Changed the CREATE PROCEDURE $CRC.
                                        
        (2) - The procedure $CRC was failing and the content of the binlog
              was being printed out, after fix (1) the failure disappeared.
                                        
        (3) - The warning message for unsafeness due to auto-increment collumns was
              changed.
                                        
        (4) - The warning message for unsafeness due to VERSION(), RAND() was changed.
      mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test:
        Tested filters.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Reenabled the test case binlog_unsafe.
      mysql-test/suite/binlog/t/disabled.def:
        Reenabled the test case binlog_unsafe.
      mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result:
        Updated the result file.
      mysql-test/suite/rpl/r/rpl_non_direct_stm_mixing_engines.result:
        Updated the result file.
      mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result:
        Updated the result file.
      sql/sql_class.cc:
        Moved the stmt_accessed_table_flag variable and related information to the
        LEX as we need the variable reset after each statement even inside a stored
        procedure, what did not happen if the information was in the THD.
                
        Changed the routine in the THD::binlog_query that prints the warning
        messages to avoid trying to print them when inside a stored procedure,
        function or trigger.
                                
        Checked for unsafeness when both performance and log tables where used.
        After the introduction of the performance schema, we need to check both.
      98626f1e
  9. 09 Aug, 2010 7 commits
  10. 06 Aug, 2010 1 commit
  11. 05 Aug, 2010 5 commits
    • Bjorn Munch's avatar
      merge from trunk-mtr · dd281cb9
      Bjorn Munch authored
      dd281cb9
    • Bjorn Munch's avatar
      upmerge 55582 · 51e8d3d1
      Bjorn Munch authored
      51e8d3d1
    • Davi Arnaut's avatar
      Bug#55601: BUILD/check-cpu in mysql-trunk is broken on Mac OS X 10.5 · 0cbc2008
      Davi Arnaut authored
      Restore the original behavior of check-cpu with respect to core2.
      It isn't used as a actual target processor type, but as a mean to
      perform other kinds of architecture checks.
      0cbc2008
    • Vladislav Vaintroub's avatar
      Build cleanups · 29d04b9c
      Vladislav Vaintroub authored
      - Simplify sql-bench installation, 
      do not try to resolve names : this leads to probem
      if builddir is symlink located on different filesystem.
      (reported by alik)
      
      - Make WITHOUT_XXX (disabling plugin) work for DEFAULT
      plugins. Prior to the patch is behaved just like 
      MANDATORY.
      
      - LINK_LIBRARIES in MYSQL_ADD_PLUGIN had no effect for
      statically linked plugins.
      
      - Fix constant rebuild of initdb target on Windows.
      29d04b9c
    • Evgeny Potemkin's avatar
      Auto-merged. · 0c9a5fdd
      Evgeny Potemkin authored
      0c9a5fdd
  12. 04 Aug, 2010 4 commits
  13. 03 Aug, 2010 1 commit
  14. 02 Aug, 2010 3 commits