1. 18 Mar, 2009 2 commits
    • Alexey Kopytov's avatar
      Automerge. · 9da759e8
      Alexey Kopytov authored
      9da759e8
    • Alexey Kopytov's avatar
      Fix for bug#41486: extra character appears in BLOB for every · e7feb6f7
      Alexey Kopytov authored
                         ~40Mb after mysqldump/import 
              
      When the input string exceeds the maximum allowed size for the 
      internal buffer, batch_readline() returns a truncated string. 
      Since there was no way for a caller to determine whether the 
      string was truncated or not, the command line client assumed 
      batch_readline() to always return the whole input string and 
      appended a newline character. This resulted in garbled data 
      when importing dumps containing strings longer than the 
      maximum input buffer size. 
        
      Fixed by adding a flag to the batch_readline() interface to 
      signal a truncated string to the caller. 
        
      Other minor problems fixed during patch implementation: 
       
      - The maximum allowed buffer size for batch_readline() was set 
      up depending on the client's max_allowed_packet value. It does 
      not actully make any sense, as those variables are not 
      related. The input buffer size limit is now always set to 1 
      MB. 
        
      - fill_buffer() did not always set the EOF flag. 
       
      - The input buffer could actually grow twice as the specified 
      limit due to insufficient checks in intern_read_line(). 
      
      client/my_readline.h:
        Changed the interface of batch_readline().
      client/mysql.cc:
        Honor the truncated flag returned by batch_readline() and do  
        not append the newline character if it was set. Since we can't 
        change the interfaces for readline()/fgets() used in the  
        interactive mode, always assume the returned string was not  
        truncated. In addition, always set the batch_readline()  
        internal buffer to 1 MB, independently from the client's  
        max_allowed_packet.
      client/readline.cc:
        Added the 'truncated' argument do batch_readline() to signal 
        truncated string to a caller. 
        Fixed fill_buffer() to set the EOF flag correctly. 
        Fixed checks in intern_read_line() to not allow the internal  
        buffer grow past the specified limit.
      mysql-test/r/mysql.result:
        Added a test case for bug #41486.
      mysql-test/t/mysql.test:
        Added a test case for bug #41486.
      e7feb6f7
  2. 17 Mar, 2009 1 commit
  3. 15 Mar, 2009 1 commit
  4. 13 Mar, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #22047 : Time in SHOW PROCESSLIST for SQL thread in replication · c46f872e
      Georgi Kodinov authored
      seems to become negative
      
      THD::start_time has a dual meaning : it's either the time since the process
      entered a given state or is the transaction time returned by e.g. NOW().
      This causes problems, as sometimes THD::start_time may be set to a value
      that is correct and needed when used as a base for NOW(), but these times
      may be arbitrary (SET @@timestamp) or non-local (coming from the master 
      through the replication feed).
      If one such non-local time is set there's no way to return a correct value
      for e.g. SHOW PROCESSLIST or SELECT ... FROM INFORMATION_SCHEMA.PROCESSLIST.
      Fixed by making the Time column in SHOW PROCESSLIST SIGNED LONG instead of 
      UNSIGNED LONG and doing the correct conversions.
            
      Note that no reliable test suite can be constructed, since it would require
      knowing the local time and can't be achieved by the means of the current test
      suite.
      
      sql/sql_show.cc:
        Bug #22047: make the Time in SHOW PROCESSLIST LONG from 
        LONG UNSIGNED
      c46f872e
  5. 12 Mar, 2009 1 commit
  6. 11 Mar, 2009 2 commits
  7. 10 Mar, 2009 1 commit
  8. 09 Mar, 2009 3 commits
    • Chad MILLER's avatar
      Bug#42635: mysqldump includes views that were excluded using the \ · a99cd3df
      Chad MILLER authored
      	--ignore-table option
      
      mysqldump would correctly omit temporary tables for views, but would
      incorrectly still emit all CREATE VIEW statements.
      
      Backport a fix from 5.1, where we capture the names we want to emit
      views for in one pass (the placeholder tables) and in the pass where
      we actually emit the views, we don't emit a view if it wasn't in that
      list.
      a99cd3df
    • Chad MILLER's avatar
      Fix non-DBUG return. · 911109a0
      Chad MILLER authored
      911109a0
    • Georgi Kodinov's avatar
      Bug #42434: license of mysys MD5 implementation is not GPL-compatible · 028e731d
      Georgi Kodinov authored
      Took the Xfree implementation (based on the same rewrite as the NDB one)
      and added it instead of the current implementation.
      Added a macro to make the calls to MD5 more streamlined. 
      
      client/mysqlmanager-pwgen.c:
        Bug #42434: changed to call the macro
      include/my_md5.h:
        Bug #42434: use the Xfree implementation
      mysys/md5.c:
        Bug #42434: use the Xfree implementation
      sql/item_strfunc.cc:
        Bug #42434: changed to call the macro
      sql/table.cc:
        Bug #42434: changed to call the macro
      tools/mysqlmanager.c:
        Bug #42434: changed to call the macro
      028e731d
  9. 11 Mar, 2009 2 commits
    • Georgi Kodinov's avatar
      merged 5.0-main -> 5.0-bugteam · e2bb4177
      Georgi Kodinov authored
      e2bb4177
    • Georgi Kodinov's avatar
      Bug #43354: Use key hint can crash server in explain extended query · 32e258d7
      Georgi Kodinov authored
            
      The copy of the original arguments of a aggregate function was not
      initialized until after fix_fields().
      Sometimes (e.g. when there's an error processing the statement)
      the print() can be called with no corresponding fix_fields() call.
            
      Fixed by adding a check if the Item is fixed before using the arguments
      copy.
      
      mysql-test/r/explain.result:
        Bug #43354: test case
      mysql-test/t/explain.test:
        Bug #43354: test case
      sql/item_sum.cc:
        Bug #43354: use the argument list copy only if it's initialized
      32e258d7
  10. 10 Mar, 2009 1 commit
  11. 09 Mar, 2009 6 commits
  12. 06 Mar, 2009 3 commits
    • Kristofer Pettersson's avatar
      Manual merge · e327e572
      Kristofer Pettersson authored
      e327e572
    • He Zhenxing's avatar
      Auto merge · a8bc9544
      He Zhenxing authored
      a8bc9544
    • He Zhenxing's avatar
      BUG#22082 Slave hangs(holds mutex) on "disk full" · 5e6bb207
      He Zhenxing authored
      When disk is full, server may waiting for free space while
      writing binlog, relay-log or MyISAM tables. The server will 
      continue after user have freed some space. But the error
      message printed was not quite clear about the how often the
      error message is printed, and there will be a delay before
      the server continue and user freeing space. And caused users
      thinking that the server was hanging forever.
      
      This patch fixed the problem by making the error messages
      printed more clear. The error message is split into two part,
      the first part will only be printed once, and the second part
      will be printed very 10 times.
      
      Message first part:
      Disk is full writing '<filename>' (Errcode: <errorno>). Waiting
      for someone to free space... (Expect up to 60 secs delay for 
      server to continue after freeing disk space)
      
      Message second part:
      Retry in 60 secs, Message reprinted in 600 secs
      5e6bb207
  13. 05 Mar, 2009 3 commits
  14. 03 Mar, 2009 4 commits
    • Matthias Leich's avatar
      Last slice of fix for Bug#42003 tests missing the disconnect of connections <> default · 077c008c
      Matthias Leich authored
      + Fix for Bug#43114 wait_until_count_sessions too restrictive, random PB failures
      + Removal of a lot of other weaknesses found
      + modifications according to review
      077c008c
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.0-ss4007, part 3. Fixes · 31f226b0
      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
      31f226b0
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.0-ss4007, part 2. Fixes · 25609759
      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)
      25609759
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.0-ss4007, part 1. Fixes · 9486c5e1
      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
      9486c5e1
  15. 02 Mar, 2009 2 commits
  16. 27 Feb, 2009 6 commits
    • Staale Smedseng's avatar
      Commit after merge from 5.0-bugteam · c8eade99
      Staale Smedseng authored
      c8eade99
    • Staale Smedseng's avatar
      Recommit for merging and pushing · 76ff67d6
      Staale Smedseng authored
      76ff67d6
    • Georgi Kodinov's avatar
      Bug #41610: key_infix_len can be overwritten causing some group by queries to · baf88385
      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
      baf88385
    • Patrick Crews's avatar
    • Patrick Crews's avatar
      merge. · f26b50dc
      Patrick Crews authored
      f26b50dc
    • Georgi Kodinov's avatar
  17. 26 Feb, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #41354: Access control is bypassed when all columns · 6f026345
      Georgi Kodinov authored
      of a view are selected by * wildcard
      
      Backported a part of the fix for 36086 to 5.0
      
      mysql-test/r/view_grant.result:
        Bug #41354: test case
      mysql-test/t/view_grant.test:
        Bug #41354: test case
      sql/sql_acl.cc:
        Bug #41354: return table error when no access and *
      sql/sql_base.cc:
        Bug #41354: backported the check in bug 36086 to 5.0
      6f026345