1. 29 Jan, 2010 3 commits
    • Ramil Kalimullin's avatar
      Auto-merge. · 5fda4812
      Ramil Kalimullin authored
      5fda4812
    • Georgi Kodinov's avatar
      Bug #49552 : sql_buffer_result cause crash + not found records · 9853ce75
      Georgi Kodinov authored
        in multitable delete/subquery
      
      SQL_BUFFER_RESULT should not have an effect on non-SELECT 
      statements according to our documentation.
      Fixed by not passing it through to multi-table DELETE (similarly
      to how it's done for multi-table UPDATE).
      9853ce75
    • Ramil Kalimullin's avatar
      Fix for bug#49897: crash in ptr_compare when char(0) NOT NULL · 57f9915f
      Ramil Kalimullin authored
      column is used for ORDER BY
      
      Problem: filesort isn't meant for null length sort data
      (e.g. char(0)), that leads to a server crash.
      
      Fix: disregard sort order if sort data record length is 0 (nothing
      to sort).
      
      
      mysql-test/r/select.result:
        Fix for bug#49897: crash in ptr_compare when char(0) NOT NULL 
        column is used for ORDER BY
          - test result.
      mysql-test/t/select.test:
        Fix for bug#49897: crash in ptr_compare when char(0) NOT NULL 
        column is used for ORDER BY
          - test case.
      sql/filesort.cc:
        Fix for bug#49897: crash in ptr_compare when char(0) NOT NULL 
        column is used for ORDER BY
          - assert added as filesort cannot handle null length sort data.
      sql/sql_select.cc:
        Fix for bug#49897: crash in ptr_compare when char(0) NOT NULL 
        column is used for ORDER BY
          - don't sort null length data e.g. in case of ORDER BY CHAR(0).
      57f9915f
  2. 28 Jan, 2010 3 commits
    • Davi Arnaut's avatar
      Fix for compiler warnings: · 47e52b90
      Davi Arnaut authored
      Rename method as to not hide a base.
      Reorder attributes initialization.
      Remove unused variable.
      Rework code to silence a warning due to assignment used as truth value.
      
      
      sql/item_strfunc.cc:
        Rename method as to not hide a base.
      sql/item_strfunc.h:
        Rename method as to not hide a base.
      sql/log_event.cc:
        Reorder attributes initialization.
      sql/rpl_injector.cc:
        Rework code to silence a warning due to assignment used as truth value.
      sql/rpl_record.cc:
        Remove unused variable.
      sql/sql_db.cc:
        Rework code to silence a warning due to assignment used as truth value.
      sql/sql_parse.cc:
        Rework code to silence a warning due to assignment used as truth value.
      sql/sql_table.cc:
        Rework code to silence a warning due to assignment used as truth value.
      47e52b90
    • Andrei Elkin's avatar
      1319802e
    • Andrei Elkin's avatar
      5ae3165d
  3. 27 Jan, 2010 9 commits
    • Andrei Elkin's avatar
      bug#47142 · 03797aa0
      Andrei Elkin authored
      merging patches prepared for 5.0 to 5.1-bt. That caused a few changes in the test file
      03797aa0
    • Bjorn Munch's avatar
      Bug #49210 Enable MTR timeout configuration through environment variables · 49b69d5d
      Bjorn Munch authored
      Define env. vars for both timeout settings
      Also incorporated 5.0 patch into mtr version 1
      49b69d5d
    • Staale Smedseng's avatar
      Bug #49223 Change help description for mysqldump · 0629b135
      Staale Smedseng authored
      --extended-insert
      
      Help message changed to the same as in the 5.1 online 
      documentation.
      0629b135
    • Bjorn Munch's avatar
      Bug #49210 Enable MTR timeout configuration through environment variables · 105c6032
      Bjorn Munch authored
        Define env. vars for both timeout settings
        This patch is for 5.0 (mtr v1) and should replaces for 5.1 up
      105c6032
    • Andrei Elkin's avatar
      bug#47142 · 4c904c93
      Andrei Elkin authored
      improving comments
      4c904c93
    • Magne Mahre's avatar
      WL#5182 Remove more deprecated 4.1/5.0 features · 25af09b9
      Magne Mahre authored
            
      WL#5182 is a follow-up to WL#5154, deprecating a few more options
      and system variables.
      
      
      client/client_priv.h:
        The warning message has been changed to not include
        a specific version number in the text.
      client/mysql.cc:
        --no-tee is deprecated
      client/mysqldump.c:
        --all is deprecated
        -a now points to create-options
      mysql-test/r/mysqlbinlog.result:
        Warning text changed
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Warning text changed
      sql/mysql_priv.h:
        The warning message has been changed to not include
        a specific version number in the text.
      sql/mysqld.cc:
        --use-symbolic-links is deprecated
        -s now points to --symbolic-links
        --warnings is deprecated
        -W now points to --log-warnings
                
        myisam_max_extra_sort_file_size is deprecated
        record_buffer is deprecated
                
        --log-update is deprecated
        --sql-bin-update-same is deprecated
        --skip-locking is deprecated
        --skip-symlink is deprecated
        --enable-locking is deprecated
        --delay-key-write-for-all-tables is deprecated
      25af09b9
    • Staale Smedseng's avatar
      Merging from 5.0-bugteam · 1be60e35
      Staale Smedseng authored
      1be60e35
    • Staale Smedseng's avatar
      Bug#50409 Solaris 8 compatibility broken by assumption about · a29090e4
      Staale Smedseng authored
      printstack() being present
      
      When Bug#47391 was fixed, no assumption was made that support
      for Solaris 8 was needed. Solaris 8 lacks printstack(), and 
      the build breaks because of this.
      
      This patch adds a test for the presence of printstack() to
      configure.in for 5.0, and uses HAVE_PRINTSTACK to make
      decisions rather than the __sun define.
      a29090e4
    • unknown's avatar
      Bug #49191 rpl_get_master_version_and_clock failed on PB2: COM_REGISTER_SLAVE failed · e29fdb2c
      unknown authored
      The 'rpl_get_master_version_and_clock' test verifies if the slave I/O
      thread tries to reconnect to master when it tries to get the values of
      the UNIX_TIMESTAMP, SERVER_ID from master under network disconnection.
      So the master server is restarted for making the transient network
      disconnection, during the period the COM_REGISTER_SLAVE failures are
      produced in server log file when the slave I/O thread tries to
      register on master.
      
      To fix the problem, suppress COM_REGISTER_SLAVE failures in server log
      file by mtr suppression, because they are expected.
      
      
      mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result:
        Removed mtr.add_suppression("Get master clock failed with error: ")
        and mtr.add_suppression("Get master SERVER_ID failed with error: ").
        Because they are suppressed globally.
      e29fdb2c
  4. 26 Jan, 2010 3 commits
  5. 25 Jan, 2010 2 commits
    • Andrei Elkin's avatar
      Bug #47142 "slave start until" stops 1 event too late in 4.1 to 5.0 replication · 4d042ff4
      Andrei Elkin authored
      When replicating from 4.1 master to 5.0 slave START SLAVE UNTIL can stop too late.
      The necessary in calculating of the beginning of an event the event's length
      did not correspond to the master's genuine information at the event's execution time.
      That piece of info was changed at the event's relay-logging due to binlog_version<4 event
      conversion by IO thread.
      
      Fixed with storing the master genuine Query_log_event size into a new status
      variable at relay-logging of the event. The stored info is extacted at the event
      execution and participate further to caclulate the correct start position of the event
      in the until-pos stopping routine.
      The new status variable's algorithm will be only active when the event comes
      from the master of version < 5.0 (binlog_version < 4).
      
      
      mysql-test/r/rpl_until.result:
        results changed.
      mysql-test/std_data/bug47142_master-bin.000001:
        a binlog from 4.1 master to replace one of the running 5.x master is added as 
        part of Bug #47142 regression test.
      mysql-test/t/rpl_until.test:
        Regression test for Bug #47142 is added.
      sql/log_event.cc:
        Storing and extracting the master's genuine size of the event from the status
        var of the event packet header.
        The binlog_version<4 query-log-event is 
        a. converted into the modern binlog_version==4 to store the original size of the event
           into a new status var; the converted representation goes into the relay log.
        b. the converted event is read out and the stored size is engaged in the start pos calculation.
        
        The new status is active only for events that IO thread instantiates for the sake of the conversion.
      sql/log_event.h:
        Incrementing the max szie of MAX_SIZE_LOG_EVENT_STATUS because of the new status var;
        Defining the new status variable to hold the master's genuine event size;
        Augmenting the Query_log_event with a new member to hold a value to store/extact from the status
        var of the event packet header.
      4d042ff4
    • unknown's avatar
      Manual merge with Conflicts: · 722bf7a4
      unknown authored
      sql_udf.cc
      722bf7a4
  6. 24 Jan, 2010 1 commit
  7. 22 Jan, 2010 12 commits
    • Sergey Vojtovich's avatar
      108ca62a
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot, fixes BUG#49396. · ba6c1527
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6471 | calvin | 2010-01-16 01:43:27 +0200 (Sat, 16 Jan 2010) | 4 lines
      branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
      
      Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
      mode and normal server mode.
      ba6c1527
    • Sergey Glukhov's avatar
      Bug#49501 Inefficient information_schema check (system collation), addon · 5f106ea2
      Sergey Glukhov authored
      removed wrongly introduced strlen calls
      
      
      sql/events.cc:
        removed wrongly introduced strlen calls
      sql/mysql_priv.h:
        removed wrongly introduced strlen calls
      sql/repl_failsafe.cc:
        removed wrongly introduced strlen calls
      sql/sql_db.cc:
        removed wrongly introduced strlen calls
      sql/sql_parse.cc:
        removed wrongly introduced strlen calls
      sql/sql_show.cc:
        removed wrongly introduced strlen calls
      5f106ea2
    • Sergey Vojtovich's avatar
      e88140d7
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 41063702
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line
      branches/5.1: Add reference to bug#47621 in the comment.
      41063702
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 4af52ec0
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines
      branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
      into a separate test/result files.
      4af52ec0
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · e06f6ab5
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines
      branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
      into a separate test/result files.
      e06f6ab5
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot, fixes BUG#46193. · 7939efc0
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
      branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
      the maximum auto-increment value from the table if
      innodb_force_recovery is set to at least 4, so that writes are
      disabled. (Bug #46193)
      
      innobase_get_int_col_max_value(): Move the function definition before
      ha_innobase::innobase_initialize_autoinc(), because that function now
      calls this function.
      
      ha_innobase::innobase_initialize_autoinc(): Change the return type to
      void.  Do not attempt to read the maximum auto-increment value from
      the table if innodb_force_recovery is set to at least 4.  Issue
      ER_AUTOINC_READ_FAILED to the client when the auto-increment value
      cannot be read.
      
      rb://144 by Sunny, revised by Marko
      7939efc0
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 6f90077e
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6422 | marko | 2010-01-12 11:34:27 +0200 (Tue, 12 Jan 2010) | 3 lines
      branches/5.1: Non-functional change:
      Make innobase_get_int_col_max_value() a static function.
      It does not access any fields of class ha_innobase.
      6f90077e
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot, fixes BUG#49238. · 78ad89c6
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6421 | jyang | 2010-01-12 07:59:16 +0200 (Tue, 12 Jan 2010) | 8 lines
      branches/5.1: Fix bug #49238: Creating/Dropping a temporary table
      while at 1023 transactions will cause assert. Handle possible
      DB_TOO_MANY_CONCURRENT_TRXS when deleting metadata in
      row_drop_table_for_mysql().
      
      rb://220, approved by Marko
      78ad89c6
    • unknown's avatar
      Bug #49132 Replication failure on temporary table + DDL · e55c0397
      unknown authored
      In RBR, DDL statement will change binlog format to non row-based
      format before it is binlogged, but the binlog format was not be
      restored, and then manipulating a temporary table can not reset binlog
      format to row-based format rightly. So that the manipulated statement
      is binlogged with statement-based format.
      
      To fix the problem, restore the state of binlog format after the DDL
      statement is binlogged.
      
      mysql-test/extra/rpl_tests/rpl_tmp_table_and_DDL.test:
        Added the test file to verify if executing DDL statement before
        trying to manipulate a temporary table causes row-based replication
        to break with error 'table does not exist'.
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
        Correct the test result, all the above binlog event
        should be row-based after the bug49132 is fixed IN RBR.
      mysql-test/suite/ndb/r/ndb_tmp_table_and_DDL.result:
        Test result for bug#49132 base on ndb engine.
      mysql-test/suite/ndb/t/ndb_tmp_table_and_DDL.test:
        Added the test file to verify if executing DDL statement before
        trying to manipulate a temporary table causes row-based replication
        to break with error 'table does not exist' base on ndb engine.
      mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result:
        Test result for bug#49132 base on myisam engine.
      mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test:
        Added the test file to verify if executing DDL statement before
        trying to manipulate a temporary table causes row-based replication
        to break with error 'table does not exist' base on myisam engine.
      sql/event_db_repository.cc:
        Added code to restore the state of binlog format after the DDL
        statement is binlogged.
      sql/events.cc:
        Added code to restore the state of binlog format after the DDL
        statement is binlogged.
      sql/sp.cc:
        Added code to restore the state of binlog format after the DDL
        statement is binlogged.
      sql/sql_acl.cc:
        Added code to restore the state of binlog format after the DDL
        statement is binlogged.
      sql/sql_udf.cc:
        Added code to restore the state of binlog format after the DDL
        statement is binlogged.
      e55c0397
    • Magne Mahre's avatar
      Post-commit fix of two tests · 3ab6bb3e
      Magne Mahre authored
      The WL#5154 commit added a couple of warning messages that
      was not fixed in the result files for two RPL tests.
      3ab6bb3e
  8. 21 Jan, 2010 4 commits
    • Luis Soares's avatar
      BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on delete: · 04ebaf7b
      Luis Soares authored
      cant find record
      
      Some engines return data for the record. Despite the fact that
      the null bit is set for some fields, their old value may still in
      the row. This can happen when unpacking an AI from the binlog on
      top of a previous record in which a field is set to NULL, which
      previously contained a value. Ultimately, this may cause the
      comparison of records to fail when the slave is doing an index or
      range scan.
      
      We fix this by deploying a call to reset() for each field that is
      set to null while unpacking a row from the binary log.
      Furthermore, we also add mixed mode test case to cover the
      scenario where updating and setting a field to null through a
      Query event and later searching it through a rows event will
      succeed.
      
      Finally, we also change the reset() method, from Field_bit class,
      so that it takes into account bits stored among the null bits and
      not only the ones stored in the record.
      
      mysql-test/suite/rpl/t/rpl_set_null_innodb.test:
        InnoDB test.
      mysql-test/suite/rpl/t/rpl_set_null_myisam.test:
        MyISAM test.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test:
        NDB test.
      sql/field.h:
        Changed reset so that it also clears the bits
        among the null_bits for the Field_bit class.
      sql/rpl_record.cc:
        Resetting field after setting it to null when unpacking
        row.
      04ebaf7b
    • Magne Mahre's avatar
      WL#5154 Remove deprecated 4.1 features · b50244fb
      Magne Mahre authored
      Several items said to be deprecated in the 4.1 manual
      have never been removed.  This worklog adds deprecation
      warnings when these items are used, and warns the user 
      that the items will be removed in MySQL 5.6.
      
      A couple of previously deprecation decision have been
      reversed (see single file comments)
      
      
      
      client/client_priv.h:
        Macro similar to the one in the server (mysql_priv.h)
        for printing a deprecation warning message
      client/mysql.cc:
        no-auto-rehash  will not be deprecated
        skip-line-numbers will not be deprecated
        skip-column-names will not be deprecated
        no-pager is deprecated
        set-variable is deprecated
        no-named-commands is deprecated
      client/mysqladmin.cc:
        set-variable is deprecated
      client/mysqlbinlog.cc:
        position is deprecated
      client/mysqldump.c:
        first-slave is deprecated
        no-set-names is deprecated
        set-variable is deprecated
      mysql-test/r/mysqlbinlog.result:
        Adding the [Warning] to the test case, just to show that the
        deprecation works.
        The test case will be changed in Celosia to use --start-position.
      mysys/my_getopt.c:
        set-variable (include -O) is deprecated
      scripts/mysqld_multi.sh:
        Warning for mysqld_multi
      sql/mysqld.cc:
        default-collation is deprecated
        log-bin-trust-routine-creators is deprecated
        set-variable is deprecated
        default-character-set is deprecated
        safe-show-database is deprecated
      sql/share/errmsg.txt:
        Added version number for sql_log_update deprecation message.
      b50244fb
    • Davi Arnaut's avatar
      Apply patch on behalf of Magnus: · c0c30d1d
      Davi Arnaut authored
      3325 Magnus Blåudd    2010-01-05
           Bug #49860 new compiler warning ha_archive
            - fix compiler warning by casting to ulong 
      c0c30d1d
    • Davi Arnaut's avatar
      Apply patch on behalf of the NDB team: · 9517b08a
      Davi Arnaut authored
      3321 Magnus Blåudd    2010-01-05
           BUG#44840 - ndbapi compiler warning - type qualifier ignored for function return type
            - Remove the "const"
            - NOTE! This is an ABI incompatible change for some C++ compilers, NdbApi applications
              using any of the four changed functions may need a recompile if it's using dynamic linking.
      9517b08a
  9. 20 Jan, 2010 1 commit
    • Alfranio Correia's avatar
      BUG#46364 MyISAM transbuffer problems (NTM problem) · a02a4cf4
      Alfranio Correia authored
      It is well-known that due to concurrency issues, a slave can become
      inconsistent when a transaction contains updates to both transaction and
      non-transactional tables in statement and mixed modes.
      
      In a nutshell, the current code-base tries to preserve causality among the
      statements by writing non-transactional statements to the txn-cache which
      is flushed upon commit. However, modifications done to non-transactional
      tables on behalf of a transaction become immediately visible to other
      connections but may not immediately get into the binary log and therefore
      consistency may be broken.
      
      In general, it is impossible to automatically detect causality/dependency
      among statements by just analyzing the statements sent to the server. This
      happen because dependency may be hidden in the application code and it is
      necessary to know a priori all the statements processed in the context of
      a transaction such as in a procedure. Moreover, even for the few cases that
      we could automatically address in the server, the computation effort
      required could make the approach infeasible.
      
      So, in this patch we introduce the option
          - "--binlog-direct-non-transactional-updates" that can be used to bypass
          the current behavior in order to write directly to binary log statements
          that change non-transactional tables.
      
      mysql-test/extra/rpl_tests/rpl_mixing_engines.inc:
        Backported this from Celosia to improve the test cases related to the NTM issue.
      sql/log.cc:
        Checks the --binlog-direct-non-transactional-updates before choosing
        to either use the trxn-cache or not.
      sql/mysqld.cc:
        Introduces the option --binlog-direct-non-transactional-updates.
      sql/set_var.cc:
        Introduces the option --binlog-direct-non-transactional-updates.
      sql/sql_class.h:
        Introduces the option --binlog-direct-non-transactional-updates.
      a02a4cf4
  10. 19 Jan, 2010 2 commits