1. 27 Oct, 2009 14 commits
    • Sergey Vojtovich's avatar
      Merge 5.1-bugteam -> 5.1-bugteam-local. · a5b5db32
      Sergey Vojtovich authored
      a5b5db32
    • Sergey Vojtovich's avatar
      A follow-up to fix for · 57800740
      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.
      
      include/myisam.h:
        Serialize submission of messages from multi-threaded REPAIR.
      mysql-test/r/myisam.result:
        REPAIR output highly depend on threads activity. Disabled
        result log to make test case deterministic.
      mysql-test/t/myisam.test:
        REPAIR output highly depend on threads activity. Disabled
        result log to make test case deterministic.
      storage/myisam/ha_myisam.cc:
        Serialize submission of messages from multi-threaded REPAIR.
      storage/myisam/mi_check.c:
        Serialize submission of messages from multi-threaded REPAIR.
      storage/myisam/sort.c:
        Only master thread is allowed to detach write cache from
        the share.
      57800740
    • Tatiana A. Nurnberg's avatar
      auto-merge · 754dee8e
      Tatiana A. Nurnberg authored
      754dee8e
    • Georgi Kodinov's avatar
      merge · b611592b
      Georgi Kodinov authored
      b611592b
    • Tatiana A. Nurnberg's avatar
      Bug#46586: When using the plugin interface the type "set" for options caused a crash. · 0ba101d4
      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!
      
      mysys/my_getopt.c:
        SETs set-up should set up a default value, but no min/max bounding.
      mysys/typelib.c:
        fail-safe requested by serg: don't try to skip separator when we're
        already at end of string.
      sql/sql_plugin.cc:
        check_func_set:
        Initialize error_len as find_set() will only update it on error,
        and we're using the value to see whether an error has occurred (!= 0),
        so we'd better not have a random val in there.
        
        value_ptr:
        There's no guarantee we're handed string lengths, so play it safe!
        Use prepared string lengths where possible for minimum speed gain,
        otherwise determine on the fly!
      0ba101d4
    • Georgi Kodinov's avatar
      merge from 4.1 · a7d26e10
      Georgi Kodinov authored
      a7d26e10
    • Sergey Glukhov's avatar
      null merge · 49c7d8f7
      Sergey Glukhov authored
      49c7d8f7
    • Sergey Glukhov's avatar
      automerge · 3823ac32
      Sergey Glukhov authored
      3823ac32
    • Sergey Glukhov's avatar
      automerge · f4d01357
      Sergey Glukhov authored
      f4d01357
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · f554a3c0
      Sergey Glukhov authored
      f554a3c0
    • Tatiana A. Nurnberg's avatar
      auto-merge · 6ceaf234
      Tatiana A. Nurnberg authored
      6ceaf234
    • Sergey Vojtovich's avatar
      749ffc17
    • Sergey Vojtovich's avatar
      An addition to fix for · eeee9117
      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.
      
      sql/sql_acl.cc:
        Fixed build failure on Windows. Added missing cast.
      eeee9117
    • Sergey Glukhov's avatar
      Bug#41049 does syntax "grant" case insensitive? · f0a7ff84
      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).
      
      
      mysql-test/include/have_case_insensitive_fs.inc:
        test case
      mysql-test/r/case_insensitive_fs.require:
        test case
      mysql-test/r/grant_lowercase_fs.result:
        test result
      mysql-test/r/lowercase_fs_off.result:
        test result
      mysql-test/r/ps_grant.result:
        test result
      mysql-test/r/system_mysql_db.result:
        changed Routine_name field collation to case insensitive
      mysql-test/t/grant_lowercase_fs.test:
        test case
      mysql-test/t/lowercase_fs_off.test:
        test case
      scripts/mysql_system_tables.sql:
        changed Routine_name field collation to case insensitive
      scripts/mysql_system_tables_fix.sql:
        changed Routine_name field collation to case insensitive
      sql/sql_acl.cc:
        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).
      f0a7ff84
  2. 26 Oct, 2009 1 commit
  3. 21 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #47780: crash when comparing GIS items from subquery · 19ffe230
      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).
      19ffe230
  4. 23 Oct, 2009 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug#48258: Assertion failed when using a spatial index · b7ce2a01
      Ramil Kalimullin authored
      Problem: involving a spatial index for "non-spatial" queries
      (that don't containt MBRXXX() functions) may lead to failed assert.
      
      Fix: don't use spatial indexes in such cases.
      
      
      mysql-test/r/gis-rtree.result:
        Fix for bug#48258: Assertion failed when using a spatial index
          - test result.
      mysql-test/t/gis-rtree.test:
        Fix for bug#48258: Assertion failed when using a spatial index
          - test case.
      sql/opt_range.cc:
        Fix for bug#48258: Assertion failed when using a spatial index
          - allow only spatial functions (MBRXXX) for itMBR keyparts.
      b7ce2a01
  5. 21 Oct, 2009 2 commits
    • Ramil Kalimullin's avatar
      Fix for bug#47019: Assertion failed: 0, file .\rt_mbr.c, · 17ed6b9a
      Ramil Kalimullin authored
      line 138 when forcing a spatial index
      
      Problem: "Spatial indexes can be involved in the search 
      for queries that use a function such as MBRContains() 
      or MBRWithin() in the WHERE clause".
      Using spatial indexes for JOINs with =, <=> etc.
      predicates is incorrect.
      
      Fix: disable spatial indexes for such queries.
      
      
      mysql-test/r/select.result:
        Fix for bug#47019: Assertion failed: 0, file .\rt_mbr.c, 
        line 138 when forcing a spatial index
          - test result.
      mysql-test/t/select.test:
        Fix for bug#47019: Assertion failed: 0, file .\rt_mbr.c, 
        line 138 when forcing a spatial index
          - test case.
      sql/sql_select.cc:
        Fix for bug#47019: Assertion failed: 0, file .\rt_mbr.c, 
        line 138 when forcing a spatial index
          - disable spatial indexes for queries which use 
        non-spatial conditions (e.g. NATURAL JOINs).
      17ed6b9a
    • Tatiana A. Nurnberg's avatar
      auto-merge · b25cc8f2
      Tatiana A. Nurnberg authored
      b25cc8f2
  6. 20 Oct, 2009 4 commits
    • Georgi Kodinov's avatar
      Bug #47320: OpenSSL client does not check YaSSL server certificate · 7fa2f921
      Georgi Kodinov authored
      Removed the verify callback, as it's not needed to verify even self
      signed certificates and is a security problem.
      7fa2f921
    • Satya B's avatar
      merge to mysql-5.0-bugteam · 034627ae
      Satya B authored
      034627ae
    • Satya B's avatar
      Fix for Bug #41597 - After rename of user, there are additional grants when · 88253542
      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
      
      mysql-test/r/grant3.result:
        Bug #41597 - After rename of user, there are additional grants when 
                     grants are reapplied.
        
        Testcase for BUG#41597
      mysql-test/t/grant3.test:
        Bug #41597 - After rename of user, there are additional grants when 
                     grants are reapplied.
        
        Testcase for BUG#41597
      sql/sql_acl.cc:
        Bug #41597 - After rename of user, there are additional grants when 
                     grants are reapplied.
        
        Fixed handle_grant_struct() to update the hash key when the user is renamed.
        Added to set_user_details() method to GRANT_NAME class
      88253542
    • Tatiana A. Nurnberg's avatar
      Bug#28141: Control C on query waiting on lock causes ERROR 1053 (server shutdown) · 5ef63a4f
      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.
      
      
      client/mysql.cc:
        Extends Control-C handling; enhances up feedback to user.
        
        On 5.0+ servers, we try to be nice and send KILL QUERY first
        if Control-C is pressed in the command-line client, but if
        that doesn't work, we now give the user the opportunity to
        send KILL CONNECTION with another Control-C (and to kill the
        client with another Control-C if that somehow doesn't work
        either).
      mysql-test/t/flush_read_lock_kill.test:
        we're getting correct "thread killed" rather than
        "in shutdown" error now
      mysql-test/t/kill.test:
        we're getting correct "thread killed" rather than
        "in shutdown" error now
      mysql-test/t/rpl000001.test:
        we're getting correct "thread killed" rather than
        "in shutdown" error now
      mysql-test/t/rpl_error_ignored_table.test:
        we're getting correct "thread killed" rather than
        "in shutdown" error now
      sql/records.cc:
        make error messages on KILL uniform for rr_*()
        by folding that handling into rr_handle_error()
      sql/sql_class.h:
        Only throw "shutdown" when we have one flagged as being in progress;
        otherwise, throw "query interrupted" as it's likely to be "KILL CONNECTION"
        or related.
      5ef63a4f
  7. 19 Oct, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #47788: Crash in TABLE_LIST::hide_view_error on · 74b0f6be
      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.
      74b0f6be
  8. 26 Oct, 2009 1 commit
  9. 24 Oct, 2009 1 commit
  10. 23 Oct, 2009 7 commits
  11. 22 Oct, 2009 2 commits
  12. 21 Oct, 2009 2 commits
  13. 20 Oct, 2009 3 commits
    • Tatiana A. Nurnberg's avatar
      manual merge of 28141 · 3f0d0d06
      Tatiana A. Nurnberg authored
      3f0d0d06
    • Bjorn Munch's avatar
      merge 48149 · 0777ef56
      Bjorn Munch authored
      0777ef56
    • Luis Soares's avatar
      BUG#34582: FLUSH LOGS does not close and reopen the binlog index · 6395cb8e
      Luis Soares authored
      file
            
      Issuing 'FLUSH LOGS' does not close and reopen indexfile.
      Instead a SEEK_SET is performed.
            
      This patch makes index file to be closed and reopened whenever a
      rotation happens (FLUSH LOGS is issued or binary log exceeds 
      maximum configured size).
      
      mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result:
        Result file.
      mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test:
        Test case.
      sql/log.cc:
        Added LOG_CLOSE_INDEX flag when calling MYSQL_BIN_LOG::close
        from within MYSQL_BIN_LOG::new_file_impl (which should just be
        called whenever a rotation is to happen - FLUSH LOGS issued or
        binlog size exceeds the maximum configured).
      6395cb8e