1. 30 Oct, 2009 7 commits
  2. 29 Oct, 2009 2 commits
    • Georgi Kodinov's avatar
      Bug #42116 : Mysql crash on specific query · 1d8cceae
      Georgi Kodinov authored
      Queries with nested outer joins may lead to crashes or 
      bad results because an internal data structure is not handled
      correctly.
      The optimizer uses bitmaps of nested JOINs to determine
      if certain table can be placed at a certain place in the
      JOIN order.
      It does maintain a bitmap describing in which JOINs 
      last placed table is nested.
      When it puts a table it makes sure the bit of every JOIN that
      contains the table in question is set (because JOINs can be nested).
      It does that by recursively setting the bit for the next enclosing
      JOIN when this is the first table in the JOIN and recursively 
      resetting the bit if it's the last table in the JOIN.
      When it removes a table from the join order it should do the
      opposite : recursively unset the bit if it's the only remaining 
      table in this join and and recursively set the bit if it's removing
      the last table of a JOIN.
      There was an error in how the bits was set for the upper levels :
      when removing a table it was setting the bit for all the enclosing 
      nested JOINs even if there were more tables left in the current JOIN
      (which practically means that the upper nested JOINs were not affected).
      Fixed by stopping the recursion at the relevant level.
      1d8cceae
    • 's avatar
      Bug #46828 rpl_get_master_version_and_clock fails on PB-2 · fccc33a3
      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. Restarting master server can bring two problems as following:
      
      1. The time out error is encountered sporadically. The slave I/O thread tries 
         to reconnect master ten times, which is set in my.cnf. So in the test 
         framework sporadically the slave I/O thread really stoped when it can't 
         reconnect to master in the ten times successfully before the master starts, 
         then the time out error will be encountered while waiting for the slave to 
         start.
      
      2. These warnings and errors are produced in server log file when 
         the slave I/O thread tries to get the values of the UNIX_TIMESTAMP, 
         SERVER_ID from master under the transient network disconnection.
      
      To fix problem 1, increase the master retry count to sixty times, 
      so that the slave I/O thread has enough time to reconnect master 
      successfully.
      To fix problem 2, suppress these warnings and errors by mtr suppression, 
      because they are expected.
      fccc33a3
  3. 28 Oct, 2009 4 commits
    • Konstantin Osipov's avatar
      A patch and a test case for · fdcf0aff
      Konstantin Osipov authored
      Bug#46539 Various crashes on INSERT IGNORE SELECT + SELECT FOR UPDATE.
      
      If a transaction was rolled back inside InnoDB due to a deadlock
      or lock wait timeout, and the statement had IGNORE clause,
      the server could crash at the end of the statement or on shutdown.
      
      This was caused by the error handling infrastructure's attempt to 
      ignore a non-ignorable error.
      
      When a transaction rollback request is raised, switch off 
      current_select->no_error flag, so that the following error
      won't be ignored.
      
      Instead, we could add !thd->is_fatal_sub_stmt_error to
      my_message_sql(), but since in write_record() we switch
      off no_error, the same approach is used in 
      thd_mark_transaction_to_rollback().
      
      @todo: call thd_mark_transaction_to_rollback() from 
      handler::print_error(), then we can easily make sure
      that the error reported by print_error is not ignored.
      fdcf0aff
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 384bbf11
      Sergey Glukhov authored
      384bbf11
    • Sergey Glukhov's avatar
      Bug#41049 does syntax "grant" case insensitive? · c1a298d0
      Sergey Glukhov authored
      test result fix
      c1a298d0
    • 's avatar
      Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand · 6bd4cfe0
      authored
      Append the description of the 'decode-rows' value for --base64-output argument.
      6bd4cfe0
  4. 27 Oct, 2009 14 commits
    • Sergey Vojtovich's avatar
      Merge 5.1-bugteam -> 5.1-bugteam-local. · c23f7562
      Sergey Vojtovich authored
      c23f7562
    • Sergey Vojtovich's avatar
      A follow-up to fix for · 9fbc44eb
      Sergey Vojtovich authored
      BUG#47073 - valgrind errs, corruption,failed repair of partition,
                  low myisam_sort_buffer_size
      
      Fixed race conditions discovered with the provided test case and
      stabilized test case.
      9fbc44eb
    • Tatiana A. Nurnberg's avatar
      auto-merge · 5c7f01a0
      Tatiana A. Nurnberg authored
      5c7f01a0
    • Georgi Kodinov's avatar
      merge · b9553d83
      Georgi Kodinov authored
      b9553d83
    • Tatiana A. Nurnberg's avatar
      Bug#46586: When using the plugin interface the type "set" for options caused a crash. · 2f069a2c
      Tatiana A. Nurnberg authored
      "What do you mean, there's a bug? There isn't even code!"
      
      There was some token code for plug-in variables of the SET type,
      but clearly this never worked, or was subject to massive bit rot
      since. Bug-fixes ... fail-safes ... tests -- fais au mieux, mon chou!
      2f069a2c
    • Georgi Kodinov's avatar
      merge from 4.1 · 95dce2b0
      Georgi Kodinov authored
      95dce2b0
    • Sergey Glukhov's avatar
      null merge · 87adf6ff
      Sergey Glukhov authored
      87adf6ff
    • Sergey Glukhov's avatar
      automerge · fa63ac11
      Sergey Glukhov authored
      fa63ac11
    • Sergey Glukhov's avatar
      automerge · 80b79bae
      Sergey Glukhov authored
      80b79bae
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 1968895e
      Sergey Glukhov authored
      1968895e
    • Tatiana A. Nurnberg's avatar
      auto-merge · 842039a1
      Tatiana A. Nurnberg authored
      842039a1
    • Sergey Vojtovich's avatar
      df1fe9ee
    • Sergey Vojtovich's avatar
      An addition to fix for · cf41b43b
      Sergey Vojtovich authored
      BUG#41597 - After rename of user, there are additional grants
                  when grants are reapplied.
      
      Fixed build failure on Windows. Added missing cast.
      cf41b43b
    • Sergey Glukhov's avatar
      Bug#41049 does syntax "grant" case insensitive? · 58b7761e
      Sergey Glukhov authored
      Problem 1:
      column_priv_hash uses utf8_general_ci collation
      for the key comparison. The key consists of user name,
      db name and table name. Thus user with privileges on table t1
      is able to perform the same operation on T1
      (the similar situation with user name & db name, see acl_cache).
      So collation which is used for column_priv_hash and acl_cache
      should be case sensitive.
      The fix:
      replace system_charset_info with my_charset_utf8_bin for
      column_priv_hash and acl_cache
      Problem 2:
      The same situation with proc_priv_hash, func_priv_hash,
      the only difference is that Routine name is case insensitive.
      So the fix is to use my_charset_utf8_bin for
      proc_priv_hash & func_priv_hash and convert routine name into lower
      case before writing the element into the hash and
      before looking up the key.
      Additional fix: mysql.procs_priv Routine_name field collation
      is changed to utf8_general_ci.
      It's necessary for REVOKE command
      (to find a field by routine hash element values).
      Note: 
      It's safe for lower-case-table-names mode too because
      db name & table name are converted into lower case
      (see GRANT_NAME::GRANT_NAME).
      58b7761e
  5. 26 Oct, 2009 2 commits
  6. 21 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #47780: crash when comparing GIS items from subquery · dd02c4a1
      Georgi Kodinov authored
            
      If the first argument to GeomFromWKB function is a geometry
      field then the function just returns its value.
      However in doing so it's not preserving first argument's 
      null_value flag and this causes unexpected null value to
      be returned to the calling function.
            
      Fixed by updating the null_value of the GeomFromWKB function
      in such cases (and all other cases that return a NULL e.g.
      because of not enough memory for the return buffer).
      dd02c4a1
  7. 23 Oct, 2009 1 commit
  8. 21 Oct, 2009 2 commits
  9. 20 Oct, 2009 4 commits
    • Georgi Kodinov's avatar
      Bug #47320: OpenSSL client does not check YaSSL server certificate · 90d32d8b
      Georgi Kodinov authored
      Removed the verify callback, as it's not needed to verify even self
      signed certificates and is a security problem.
      90d32d8b
    • Satya B's avatar
      merge to mysql-5.0-bugteam · 607abec5
      Satya B authored
      607abec5
    • Satya B's avatar
      Fix for Bug #41597 - After rename of user, there are additional grants when · b2cd0a0f
      Satya B authored
                           grants are reapplied.
      
      
      After renaming a user and trying to re-apply grants results in additional
      grants.
      
      This is because we use username as part of the key for GRANT_TABLE structure.
      When the user is renamed, we only change the username stored and the hash key
      still contains the old user name and this results in the extra privileges
      
      Fixed by rebuilding the hash key and updating the column_priv_hash structure
      when the user is renamed
      b2cd0a0f
    • Tatiana A. Nurnberg's avatar
      Bug#28141: Control C on query waiting on lock causes ERROR 1053 (server shutdown) · 3f42e4bd
      Tatiana A. Nurnberg authored
      If a thread is killed in the server, we throw "shutdown" only if one is actually in
      progress; otherwise, we throw "query interrupted".
      
      Control-C in the mysql command-line client is "incremental" now.
      First Control-C sends KILL QUERY (when connected to 5.0+ server, otherwise, see next)
      Next  Control-C sends KILL CONNECTION
      Next  Control-C aborts client.
      
      As the first two steps only pertain to an existing query,
      Control-C will abort the client right away if no query is running.
      
      client will give more detailed/consistent feedback on Control-C now.
      3f42e4bd
  10. 19 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #47788: Crash in TABLE_LIST::hide_view_error on · db944fda
      Georgi Kodinov authored
        UPDATE + VIEW + SP + MERGE + ALTER
      
      When cleaning up the stored procedure's internal 
      structures the flag to ignore the errors for 
      INSERT/UPDATE IGNORE was not cleaned up.
      As a result error ignoring was on during name 
      resolution. And this is an abnormal situation : the
      SELECT_LEX flag can be on only during query execution.
      
      Fixed by correctly cleaning up the SELECT_LEX flag 
      when reusing the SELECT_LEX in a second execution.
      db944fda
  11. 26 Oct, 2009 1 commit
  12. 24 Oct, 2009 1 commit