1. 07 Oct, 2008 6 commits
  2. 06 Oct, 2008 7 commits
    • Guilhem Bichot's avatar
      merge · ba3b4ccd
      Guilhem Bichot authored
      ba3b4ccd
    • Tatiana A. Nurnberg's avatar
      WL#4403 deprecate @log and @slow_log_queries variables · 980f04e0
      Tatiana A. Nurnberg authored
      Adds --general-log-file, --slow-query-log-file command-
      line options to match system variables of the same names.
      
      Deprecates --log, --log-slow-queries command-line option
      and log, log_slow_queries system-variables for v7.0; they
      are superseded by general_log/general_log_file and
      slow_query_log/slow_query_log_file, respectively.
      
      mysql-test/r/log_basic.result:
        Change deprecated system variable "log" to
        general log.
      mysql-test/r/log_bin_trust_routine_creators_basic.result:
        Change deprecation warning so it's more obvious we're referring
        to a variable.
      mysql-test/r/log_state.result:
        Show that all log-related server variables that
        should throw deprecation warnings do, and the
        others don't.
      mysql-test/r/warnings.result:
        Change deprecation warning so it's more obvious we're referring
        to a variable.
      mysql-test/suite/rpl/r/rpl_sp.result:
        Change deprecation warning so it's more obvious we're referring
        to a variable.
      mysql-test/t/log_basic.test:
        Change deprecated system variable "log" to
        general log.
      mysql-test/t/log_state.test:
        Show that all log-related server variables that
        should throw deprecation warnings do, and the
        others don't.
      sql/mysqld.cc:
        Add command-line options --general-log-file and
        --slow-query-log-file to match server options of
        the same name.
        
        Deprecated --log and --log-slow-queries command-line
        options; they are superseded by --general-log/
        --general-log-file and --slow-query-log/--slow-query-log-file,
        respectively
      sql/set_var.cc:
        Deprecate system-variables log in favour of general_log,
        log_slow_queries in favour of slow_query_log for 7.0,
        both for value- and DEFAULT-setting.
      980f04e0
    • Guilhem Bichot's avatar
      Fix for BUG#31612 · 84c1fffa
      Guilhem Bichot authored
      "Trigger fired multiple times leads to gaps in auto_increment sequence".
      The bug was that if a trigger fired multiple times inside a top
      statement (for example top-statement is a multi-row INSERT,
      and trigger is ON INSERT), and that trigger inserted into an auto_increment
      column, then gaps could be observed in the auto_increment sequence,
      even if there were no other users of the database (no concurrency).
      It was wrong usage of THD::auto_inc_intervals_in_cur_stmt_for_binlog.
      Note that the fix changes "class handler", I'll tell the Storage Engine API team.
      
      mysql-test/r/trigger-trans.result:
        result; before the bugfix, the sequence was 1,2,4,6,8,10,12...
      mysql-test/t/trigger-trans.test:
        test for BUG#31612
      sql/handler.cc:
        See revision comment of handler.h.
        As THD::auto_inc_intervals_in_cur_stmt_for_binlog is cumulative
        over all trigger invokations by the top statement, the
        second invokation of the trigger arrived in handler::update_auto_increment()
        with already one interval in
        THD::auto_inc_intervals_in_cur_stmt_for_binlog. The method thus
        believed it had already reserved one interval for that invokation,
        thus reserved a twice larger interval (heuristic when we don't know
        how large the interval should be: we grow by powers of two). InnoDB
        thus increased its internal per-table auto_increment counter by 2
        while only one row was to be inserted. Hence a gap in the sequence.
        The fix is to use the new handler::auto_inc_intervals_count.
        Note that the trigger's statement knows how many rows it is going
        to insert, but provides estimation_rows_to_insert == 0 (see comments
        in sql_insert.cc why triggers don't call handler::ha_start_bulk_insert()).
        * removing white space at end of line
        * we don't need to maintain THD::auto_inc_intervals_in_cur_stmt_for_binlog
        if no binlogging or if row-based binlogging. Using auto_inc_intervals_count in
        the heuristic makes the heuristic independent of binary logging, which is good.
      sql/handler.h:
        THD::auto_inc_intervals_in_cur_stmt_for_binlog served
         - for binlogging
         - as a heuristic when we have no estimation of how many records the
           statement will insert.
        But the first goal needs to be cumulative over all statements which
        form a binlog event, while the second one needs to be attached to each
        statement. THD::auto_inc_intervals_in_cur_stmt_for_binlog is cumulative,
        leading to BUG#31612. So we introduce handler::auto_inc_intervals_count
        for the second goal. See the revision comment of handler.cc.
        A smaller issue was that, even when the binlog event was only one
        statement (no triggers, no stored functions),
        THD::auto_inc_intervals_in_cur_stmt.nb_elements() could be lower than
        the number of reserved intervals (fooling the heuristic), because its
        append() method collapses two contiguous intervals in one.
        Note that as auto_inc_intervals_count is in class 'handler' and not
        in class 'THD', it does not need to be handled in
        THD::reset|restore_sub_statement_state().
      sql/log.cc:
        Comment is wrong: if auto_increment is second, in handler::update_auto_increment()
        'append' is false and so auto_inc_intervals_in_cur_stmt_for_binlog
        is empty, we do not come here.
      sql/sql_class.h:
        comment
      84c1fffa
    • Alexey Botchkov's avatar
      keep compiler happy · 449fe80f
      Alexey Botchkov authored
      449fe80f
    • Alexey Botchkov's avatar
      Bug#38005 Partitions: error with insert select. · afbb52c4
      Alexey Botchkov authored
      MyISAM blocks index usage for bulk insert into zero-records tables.
      See ha_myisam::start_bulk_insert() lines from
      ...
          if (file->state->records == 0 ...
      ...
      
      That causes problems for partition engine when some partitions have records some not
      as the engine uses same access method for all partitions.
      
      Now partition engine doesn't call index_first/index_last
      for empty tables.
      
      per-file comments:
        mysql-test/r/partition.result
              Bug#38005 Partitions: error with insert select.
              test result
      
        mysql-test/t/partition.test
              Bug#38005 Partitions: error with insert select.
              test case
      
        sql/ha_partition.cc
              Bug#38005 Partitions: error with insert select.
              ha_engine::index_first and
              ha_engine::index_last not called for empty tables.
      afbb52c4
    • Alexey Botchkov's avatar
    • Tatiana A. Nurnberg's avatar
      WL#4403 deprecate @log and @slow_log_queries variables · 07953513
      Tatiana A. Nurnberg authored
      Adds --general_log_file, --slow_query_log_file command-
      line options to match system variables of the same names.
      
      Deprecates --log, --log-slow-queries command-line options
      and log, log_slow_queries system-variables for v7.0; they
      are superseded by general_log/general_log_file and
      slow_query_log/slow_query_log_file, respectively.
      
      mysql-test/r/log_basic.result:
        Change deprecated system variable "log" to
        general log.
      mysql-test/r/log_state.result:
        Show that all log-related server variables that
        should throw deprecation warnings do, and the
        others don't.
      mysql-test/t/log_basic.test:
        Change deprecated system variable "log" to
        general log.
      mysql-test/t/log_state.test:
        Show that all log-related server variables that
        should throw deprecation warnings do, and the
        others don't.
      sql/mysqld.cc:
        Add command-line options --general_log_file and
        --slow_query_log_file to match server options of
        the same name.
        
        Deprecated --log and --log-slow-queries command-line
        options; they are superseded by --general-log/
        --general-log-file and --slow-query-log/--slow-query-log-file,
        respectively
      sql/set_var.cc:
        Deprecate system-variables log in favour of general_log,
        log_slow_queries in favour of slow_query_log for 7.0,
        both for value- and DEFAULT-setting.
      07953513
  3. 03 Oct, 2008 9 commits
    • Mattias Jonsson's avatar
      merge · eb656b21
      Mattias Jonsson authored
      eb656b21
    • Georgi Kodinov's avatar
      Bug #39812: Make statement replication default for 5.1 (to match 5.0) · 19256b96
      Georgi Kodinov authored
      Make STMT replication default for 5.1.
      Add a default of MIXED into the config files
      Fix the tests that needed MIXED replication mode.
      
      mysql-test/include/mix1.inc:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/innodb-semi-consistent.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/innodb.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/innodb_mysql.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/tx_isolation_func.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/t/innodb-semi-consistent.test:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/t/innodb.test:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/t/tx_isolation_func.test:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      sql/mysqld.cc:
        Bug #39812: Make STMT replication default for 5.1.
      support-files/my-huge.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-innodb-heavy-4G.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-large.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-medium.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-small.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      19256b96
    • Mats Kindahl's avatar
      Merging with 5.1-5.1.29-rc. · d1fb7dad
      Mats Kindahl authored
      d1fb7dad
    • Mats Kindahl's avatar
      The test rpl_blackhole was executed even when · acfd0ff7
      Mats Kindahl authored
      there were no blackhole installed. This patch
      adds a check for that.
      
      mysql-test/suite/rpl/t/rpl_blackhole.test:
        Adding include of have_blackhole.
      acfd0ff7
    • Georgi Kodinov's avatar
      Bug #38370: The test ndb.ndb_index_ordered fails with the community features on · 2ab558de
      Georgi Kodinov authored
      The problem was caused by a wrong merge. Fixed by enabling the correct ndb variables
      initialization.
      
      mysql-test/suite/ndb/t/disabled.def:
        Bug #38370: remove disabled test case
      sql/mysqld.cc:
        Bug #38370: corrected a wrong merge to have all the NDB variables intiialized
        correctly
      2ab558de
    • Georgi Kodinov's avatar
      merged 5.1.29-rc · e7763d5d
      Georgi Kodinov authored
      e7763d5d
    • Mattias Jonsson's avatar
      post push fix for bug#38804 (back port of bug#33479) · 51cb9ac0
      Mattias Jonsson authored
      Removes the regression bug#38751.
      
      sql/ha_partition.cc:
        post push fix for bug#38804 (back port of bug#33479)
        Removes the regression bug#38751.
        
        archive relies on a ha_archive::info call to flush data before
        the copy takes place in alter table.
        
        This ensures that all partitions gets a info call, without having
        to always forward info(HA_STATUS_AUTO) to all partitions.
      51cb9ac0
    • Georgi Kodinov's avatar
      merged 5.1-5.1.29-rc · a2b67b20
      Georgi Kodinov authored
      a2b67b20
    • Mats Kindahl's avatar
      Merging with 5.1-5.1.29-rc. · f2a7af7b
      Mats Kindahl authored
      f2a7af7b
  4. 02 Oct, 2008 7 commits
    • Mats Kindahl's avatar
      Bug #38360: BLACKHOLE replication with RBR is broken · 690fd28a
      Mats Kindahl authored
      Incremental patch to add comments to test cases.
      690fd28a
    • Georgi Kodinov's avatar
      Bug #37348: Crash in or immediately after JOIN::make_sum_func_list · a18639b6
      Georgi Kodinov authored
            
      The optimizer pulls up aggregate functions which should be aggregated in
      an outer select. At some point it may substitute such a function for a field
      in the temporary table. The setup_copy_fields function doesn't take this
      into account and may overrun the copy_field buffer.
            
      Fixed by filtering out the fields referenced through the specialized
      reference for aggregates (Item_aggregate_ref).
      Added an assertion to make sure bugs that cause similar discrepancy 
      don't go undetected.
      
      mysql-test/r/func_group.result:
        Bug #37348: test case
      mysql-test/t/func_group.test:
        Bug #37348: test case
      sql/item.cc:
        Bug #37348: Added a way to distinguish Item_aggregate_ref from the other types of refs
      sql/item.h:
        Bug #37348: Added a way to distinguish Item_aggregate_ref from the other types of refs
      sql/sql_select.cc:
        Bug #37348: 
         - Don't consider copying field references
            seen through Item_aggregate_ref
         - check for discrepancies between the number of expected 
           fields that need copying and the actual fields copied.
      a18639b6
    • Mats Kindahl's avatar
      Bug #38360: BLACKHOLE replication with RBR is broken · 8d9cf89e
      Mats Kindahl authored
      The Blackhole engine did not support row-based replication
      since the delete_row(), update_row(), and the index and range
      searching functions were not implemented.
      
      This patch adds row-based replication support for the
      Blackhole engine by implementing the two functions mentioned
      above, and making the engine pretend that it has found the
      correct row to delete or update when executed from the slave
      SQL thread by implementing index and range searching functions.
      
      It is necessary to only pretend this for the SQL thread, since
      a SELECT executed on the Blackhole engine will otherwise never
      return EOF, causing a livelock.
      
      
      mysql-test/extra/binlog_tests/blackhole.test:
        Blackhole now handles row-based replication.
      mysql-test/extra/rpl_tests/rpl_blackhole.test:
        Test helper file for testing that blackhole actually
        writes something to the binary log on the slave.
      mysql-test/suite/binlog/t/binlog_multi_engine.test:
        Replication now handles row-based replcation.
      mysql-test/suite/rpl/t/rpl_blackhole.test:
        Test that Blackhole works with primary key, index, or none.
      sql/log_event.cc:
        Correcting code to only touch filler bits and leave
        all other bits alone. It is necessary since there is
        no guarantee that the engine will be able to fill in
        the bits correctly (e.g., the blackhole engine).
      storage/blackhole/ha_blackhole.cc:
        Adding definitions for update_row() and delete_row() to return OK
        when executed from the slave SQL thread with thd->query == NULL
        (indicating that row-based replication events are being processed).
        
        Changing rnd_next(), index_read(), index_read_idx(), and
        index_read_last() to return OK when executed from the slave SQL
        thread (faking that the row has been found so that processing
        proceeds to update/delete the row).
      storage/blackhole/ha_blackhole.h:
        Enabling row capabilities for engine.
        Defining write_row(), update_row(), and delete_row().
        Making write_row() private (as it should be).
      8d9cf89e
    • Andrei Elkin's avatar
      45a78d00
    • Ramil Kalimullin's avatar
      merge · 1ce81aac
      Ramil Kalimullin authored
      1ce81aac
    • Andrei Elkin's avatar
      Bug #36968 rpl_temporary_errors.test produces warning in pushbuild · 64accb36
      Andrei Elkin authored
      backporting a part of the bug patch to 5.1.29 tree which uses an older version of mtr.
      
      mysql-test/lib/mtr_report.pl:
        refining a suppression rule.
      64accb36
    • Ramil Kalimullin's avatar
      Merge · 6037e8ec
      Ramil Kalimullin authored
      6037e8ec
  5. 01 Oct, 2008 11 commits
    • Georgi Kodinov's avatar
      merged 5.1-5.1.29 -> 5.1-bugteam · 71e061db
      Georgi Kodinov authored
      71e061db
    • Mattias Jonsson's avatar
      merge · 20cf5c16
      Mattias Jonsson authored
      20cf5c16
    • Georgi Kodinov's avatar
      cdb8a2a9
    • Georgi Kodinov's avatar
    • Davi Arnaut's avatar
      Bug#35164: Large number of invalid pthread_attr_setschedparam calls · a8ab9ce2
      Davi Arnaut authored
      Bug#37536: Thread scheduling causes performance degradation at low thread count
      
      Deprecated --skip-thread-priority startup option as newer versions of
      the server won't change the thread priorities by default.
      
      Giving threads different priorities might yield marginal improvements
      in some platforms (where it actually works) but on the other hand it
      might cause significant degradation depending on the thread count and
      number of processors. Meddling with the thread priorities is a not a
      safe bet as it is very dependent on the behavior of the cpu scheduler
      and system where MySQL is being run.
      
      From MySQL 6.0 and up the default behavior is that of not modifying
      the threads priorities.
      
      sql/mysqld.cc:
        Deprecate --skip-thread-priority
      a8ab9ce2
    • Mattias Jonsson's avatar
      pre push fix for bug#38804 · 3a2727f7
      Mattias Jonsson authored
      sql/ha_partition.cc:
        pre push fix for bug#38804
        Found a missing 'if' for releasing the mutex
      3a2727f7
    • Mattias Jonsson's avatar
      merge · 22e03196
      Mattias Jonsson authored
      22e03196
    • Georgi Kodinov's avatar
      5b1b7320
    • Georgi Kodinov's avatar
      merged 5.0-bugteam -> 5.1-bugteam · 7c0e7cdb
      Georgi Kodinov authored
      7c0e7cdb
    • Ramil Kalimullin's avatar
      Fix for bug#39182: Binary log producing incompatible character set query · d3e317d1
      Ramil Kalimullin authored
      from stored procedure. 
      
      Problem: we replace all references to local variables in stored procedures     
      with NAME_CONST(name, value) logging to the binary log. However, if the
      value's collation differs we might get an 'illegal mix of collation'           
      error as we don't pass the collation to the function.
      
      Fix: pass the value's collation to NAME_CONST().
      
      Note: actually we should pass to NAME_CONST() the value's derivation as well.
      It's impossible without the parser modifying. Now we always set the 
      derivation to DERIVATION_IMPLICIT, the same as local variables have.
      
      
      mysql-test/r/binlog.result:
        Fix for bug#39182: Binary log producing incompatible character set query
        from stored procedure.
          - test result.
      mysql-test/r/ctype_cp932_binlog.result:
        Fix for bug#39182: Binary log producing incompatible character set query
        from stored procedure.
          - results adjusted.
      mysql-test/r/rpl_sp.result:
        Fix for bug#39182: Binary log producing incompatible character set query
        from stored procedure.
          - results adjusted.
      mysql-test/t/binlog.test:
        Fix for bug#39182: Binary log producing incompatible character set query
        from stored procedure.
          - test case.
      sql/item.cc:
        Fix for bug#39182: Binary log producing incompatible character set query
        from stored procedure.
          - allow NAME_CONST() to get _charset'foo' COLLATE 'bar' strings
        (see Item_func_set_collation).
      sql/sp_head.cc:
        Fix for bug#39182: Binary log producing incompatible character set query
        from stored procedure. 
          - pass the value's collation to NAME_CONST().
      d3e317d1
    • Georgi Kodinov's avatar
      merged 5.1-5.1.29-rc -> 5.1-bugteam · 63a3ce6e
      Georgi Kodinov authored
      63a3ce6e