1. 05 Mar, 2009 11 commits
    • Luis Soares's avatar
      BUG#39753: Replication failure on MIXED + bit + myisam + no PK · 58339038
      Luis Soares authored
                                
      When using mixed mode the record values stored inside the storage
      engine differed from the ones computed from the row event. This
      happened because the prepare_record function was calling
      empty_record macro causing some don't care bits to be left set.
                                
      Replacing the empty_record plus explicitly setting defaults with 
      restore_record to restore the record default values fixes this.                          
      58339038
    • Sergey Glukhov's avatar
      removed unused variable · abfe3437
      Sergey Glukhov authored
      abfe3437
    • Sergey Glukhov's avatar
      automerge · aa5441e1
      Sergey Glukhov authored
      aa5441e1
    • Guangbao Ni's avatar
      Auto merged · d65f6b54
      Guangbao Ni authored
      d65f6b54
    • Guangbao Ni's avatar
      BUG#41980 SBL, INSERT .. SELECT .. LIMIT = ERROR, even when @@SQL_LOG_BIN is 0 ! · 4f0f021c
      Guangbao Ni authored
            
      When binlog_format is STATEMENT and the statement is unsafe before,
      the unsafe warning/error message was issued without checking
      whether the SQL_LOG_BIN was turned on or not.
            
      Fixed with adding a sql_log_bin_toplevel flag in THD to check
      whether SQL_LOG_BIN is ON in current session whatever the current is in sp or not.
      
      
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Test case result for unsafe warning/error message
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Test case for unsafe message warning/error
      sql/set_var.cc:
        Adding a function set_option_log_bin_bit() which specailly handles to
        the change of SQL_LOG_BIN bit in order to set sql_log_bin_toplevel
        according to SQL_LOG_BIN current value at the same time.
      sql/sql_class.cc:
        Initialize the flag sql_log_bin_toplevel in THD::init(),
        and add the condition to check whether unsafe ror message was issued.
      sql/sql_class.h:
        Add a sql_log_bin_toplevel flag in THD to indicate whether the toplevel SQL_LOG_BIN is
      4f0f021c
    • Sergey Glukhov's avatar
      Bug#41030 Wrong meta data (incorrect fieldlen) · 3ef86918
      Sergey Glukhov authored
      set user variable max length on
      fix_length_and_dec() stage
      using real value length.
      
      
      mysql-test/r/variables.result:
        test result
      mysql-test/t/variables.test:
        test case
      sql/item_func.cc:
        set user variable max length on
        fix_length_and_dec() stage
        using real value length.
      3ef86918
    • Sergey Glukhov's avatar
      Bug#42758 INFORMATION_SCHEMA.COLUMNS is inconsistent · 326de495
      Sergey Glukhov authored
      remove 'unsigned', 'zerofill' attributes
      from DATA_TYPE column value.
      
      
      mysql-test/suite/funcs_1/r/is_columns_innodb.result:
        result fix
      mysql-test/suite/funcs_1/r/is_columns_memory.result:
        result fix
      mysql-test/suite/funcs_1/r/is_columns_myisam.result:
        result fix
      sql/sql_show.cc:
        remove 'unsigned', 'zerofill' attributes 
        from DATA_TYPE column value.
      326de495
    • He Zhenxing's avatar
      Auto merge · ccd73047
      He Zhenxing authored
      ccd73047
    • He Zhenxing's avatar
    • He Zhenxing's avatar
      BUG#37051 Replication rules not evaluated correctly · b4fdb8ae
      He Zhenxing authored
      Backporting patch to 5.0.
      b4fdb8ae
    • Staale Smedseng's avatar
      Addendum to previous patch for Bug#29458. A number · f08d47b4
      Staale Smedseng authored
      of system errnos when opening a table are masked 
      as ER_FILE_NOT_FOUND. This patch handles this as
      "Operation failed" as well.
      f08d47b4
  2. 04 Mar, 2009 4 commits
  3. 03 Mar, 2009 9 commits
    • Timothy Smith's avatar
      16c0631f
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4007, part 2. Fixes · 17c0218a
      Timothy Smith authored
      Bug #42152: Race condition in lock_is_table_exclusive()
      
      Detailed revision comments:
      
      r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines
      branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
      accessing table->locks and release kernel_mutex before returning from
      the function.  This fixes a portential race condition in the
      "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
      and OPTIMIZE TABLE. (Bug #42152)
      
      rb://80 approved by Heikki Tuuri
      17c0218a
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4007, part 1. Fixes · d2e4204a
      Timothy Smith authored
      Bug #41571: MySQL segfaults after innodb recovery
      
      Detailed revision comments:
      
      r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines
      branches/5.1: Merge r4003 from branches/5.0:
      
      rec_set_nth_field(): When the field already is SQL null,
      do nothing when it is being changed to SQL null. (Bug #41571)
      
      Normally, MySQL does not pass "do-nothing" updates to the storage engine.
      When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
      is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
      without this fix.
      
      rb://81 approved by Heikki Tuuri
      d2e4204a
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss3931, part 2. Fixes · 39a4ab6c
      Timothy Smith authored
      Bug #42075: dict_load_indexes failure in dict_load_table will corrupt the dictionary cache
      
      Detailed revision comments:
      
      r3930 | marko | 2009-01-14 15:51:30 +0200 (Wed, 14 Jan 2009) | 4 lines
      branches/5.1: dict_load_table(): If dict_load_indexes() fails,
      invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
      so that the data dictionary will not point to freed data.
      (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
      39a4ab6c
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss3931, part 1. Fixes · 20b1c21b
      Timothy Smith authored
      Bug #38187: Error 153 when creating savepoints
      
      Detailed revision comments:
      
      r3911 | sunny | 2009-01-13 14:15:24 +0200 (Tue, 13 Jan 2009) | 13 lines
      branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
      InnoDB previously treated savepoints as a stack e.g.,
        SAVEPOINT a;
        SAVEPOINT b;
        SAVEPOINT c;
        SAVEPOINT b; <- This would delete b and c.
      
      This fix changes the behavior to:
        SAVEPOINT a;
        SAVEPOINT b;
        SAVEPOINT c;
        SAVEPOINT b; <- Does not delete savepoint c
      20b1c21b
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.0-ss4007, part 3. Fixes · 62d5d85c
      Timothy Smith authored
      Bug #41571: MySQL segfaults after innodb recovery
      
      This 5.0 fix will not be pushed into 5.1; a separate fix (from
      innodb-5.1-ss4007) will be pushed into 5.1+.
      
      Detailed revision comments:
      
      r4003 | marko | 2009-01-20 16:12:50 +0200 (Tue, 20 Jan 2009) | 10 lines
      branches/5.0: rec_set_nth_field(): When the field already is SQL null,
      do nothing when it is being changed to SQL null. (Bug #41571)
      
      Normally, MySQL does not pass "do-nothing" updates to the storage engine.
      When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
      is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
      without this fix.
      
      rb://81 approved by Heikki Tuuri
      62d5d85c
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.0-ss4007, part 2. Fixes · c3fec5d2
      Timothy Smith authored
      Bug #18828: If InnoDB runs out of undo slots, it returns misleading 'table is full'
      
      This is a backport of code already in 5.1+.  The error message change referred
      to in the detailed revision comments is still pending.
      
      Detailed revision comments:
      
      r3937 | calvin | 2009-01-15 03:11:56 +0200 (Thu, 15 Jan 2009) | 17 lines
      branches/5.0:
      
      Backport the fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS
      when we run out of UNDO slots in the rollback segment. The backport
      is requested by MySQL under bug#41529 - Safe handling of InnoDB running
      out of undo log slots.
      
      This is a partial fix since the MySQL error code requested to properly
      report the error condition back to the client has not yet materialized.
      Currently we have #ifdef'd the error code translation in ha_innodb.cc.
      This will have to be changed as and when MySQl add the new requested
      code or an equivalent code that we can then use.
      
      Given the above, currently we will get the old behavior, not the
      "fixed" and intended behavior.
      
      Approved by:	Heikki (on IM)
      c3fec5d2
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.0-ss4007, part 1. Fixes · 901b2986
      Timothy Smith authored
      Bug #39939: DROP TABLE/DISCARD TABLESPACE takes long time in buf_LRU_invalidate_tablespace()
      
      This was already fixed in 5.1+; this is a backport to 5.0.
      
      Detailed revision comments:
      
      r2743 | inaam | 2008-10-08 22:18:12 +0300 (Wed, 08 Oct 2008) | 13 lines
      branches/5.0:
      
      Backport of r2742 from branches/5.1:
      
      Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in
      buf_LRU_invalidate_tablespace()
      
      Improve implementation of buf_LRU_invalidate_tablespace by attempting
      hash index drop in batches instead of doing it one by one.
      
      Reviewed by: Heikki, Sunny, Marko
      Approved by: Heikki
      901b2986
    • Timothy Smith's avatar
      ea3c4994
  4. 02 Mar, 2009 5 commits
  5. 28 Feb, 2009 1 commit
    • Leonard Zhou's avatar
      BUG#39526 sql_mode not retained in binary log for CREATE PROCEDURE · 63c9bb32
      Leonard Zhou authored
            
      Set wrong sql_mode when creating a procedure. 
      So that the sql_mode can't be writen into binary log correctly.
            
      Restore the current session sql_mode right before generating the binlog event
      when creating a procedure.
      
      mysql-test/suite/binlog/r/binlog_sql_mode.result:
        Test result
      mysql-test/suite/binlog/t/binlog_sql_mode.test:
        Test file for sql_mode testing
      sql/sp.cc:
        Restore the current session sql_mode right before generating the binlog event.
      63c9bb32
  6. 27 Feb, 2009 10 commits
    • Staale Smedseng's avatar
      Commit after merge from 5.0-bugteam · a2231e59
      Staale Smedseng authored
      a2231e59
    • Staale Smedseng's avatar
      Commit after merge from 5.1-bugteam · d61f114f
      Staale Smedseng authored
      d61f114f
    • Georgi Kodinov's avatar
      2bc070a0
    • Staale Smedseng's avatar
      Commit for merge and push · 8eb09f01
      Staale Smedseng authored
      8eb09f01
    • Staale Smedseng's avatar
      Recommit for merging and pushing · 97b68934
      Staale Smedseng authored
      97b68934
    • Georgi Kodinov's avatar
      Bug #41610: key_infix_len can be overwritten causing some group by queries to · 15760fe9
      Georgi Kodinov authored
      return no rows
      
      The algorithm of determining the best key for loose index scan is doing a loop
      over the available indexes and selects the one that has the best cost.
      It retrieves the parameters of the current index into a set of variables.
      If the cost of using the current index is lower than the best cost so far it 
      copies these variables into another set of variables that contain the 
      information for the best index so far.
      After having checked all the indexes it uses these variables (outside of the 
      index loop) to create the table read plan object instance.
      The was a single omission : the key_infix/key_infix_len variables were used 
      outside of the loop without being preserved in the loop for the best index 
      so far.
      This causes these variables to get overwritten by the next index(es) checked.
      Fixed by adding variables to hold the data for the current index, passing 
      the new variables to the function that assigns values to them and copying 
      the new variables into the existing ones when selecting a new current best 
      index.
      To avoid further such problems moved the declarations of the variables used 
      to keep information about the current index inside the loop's compound 
      statement.
      
      mysql-test/r/group_min_max.result:
        Bug #41610: test case
      mysql-test/t/group_min_max.test:
        Bug #41610: test case
      sql/opt_range.cc:
        Bug #41610: copy the infix data for the current best index
      15760fe9
    • Patrick Crews's avatar
    • Ingo Struewing's avatar
      auto-merge · 34143e4e
      Ingo Struewing authored
      34143e4e
    • Ingo Struewing's avatar
      Bug#40446 - mysql-test-run --gcov is broken · 9573707f
      Ingo Struewing authored
      Some variable values were missing and perl constructs failed.
      
      Initialized the variables and refactored the gcov functions.
      
      
      .bzrignore:
        Bug#40446 - mysql-test-run --gcov is broken
        Added gcov log files.
      mysql-test/lib/mtr_gcov.pl:
        Bug#40446 - mysql-test-run --gcov is broken
        Refactored the gcov functions.
      mysql-test/mysql-test-run.pl:
        Bug#40446 - mysql-test-run --gcov is broken
        Initialized gcov variables.
        Added usage information.
      9573707f
    • Magnus Svensson's avatar
      Merge · fd0aaee2
      Magnus Svensson authored
      fd0aaee2